Files
DankMaterialShell/quickshell/PLUGINS/ControlCenterExample/ControlCenterExampleWidget.qml
T
bbedward ccbf1d38ad widgets: bump qml-common, rename Dank* prefixed widgets to D, add
deprecation notice to plugin compatibility shims

- When qml-common became a thing, we left qs.Widgets shims in place for
  plugin compatibility
- It's annoying to need to maintain them when qml-common has any change,
  add a warning so we can safely deprecate them in the future
- One shot rename the common stuff to D to make it shorter and nicer to
  write
2026-10-05 16:47:19 -04:00

68 lines
2.1 KiB
QML

import QtQuick
import qs.Common
import qs.Services
import qs.DCommon.Widgets
import qs.Modules.Plugins
PluginComponent {
id: root
property bool isEnabled: pluginData.isEnabled || false
property int clickCount: pluginData.clickCount || 0
ccWidgetIcon: isEnabled ? "toggle_on" : "toggle_off"
ccWidgetPrimaryText: "Example Toggle"
ccWidgetSecondaryText: isEnabled ? `Active • ${clickCount} clicks` : "Inactive"
ccWidgetIsActive: isEnabled
onCcWidgetToggled: {
isEnabled = !isEnabled;
clickCount += 1;
if (pluginService) {
pluginService.savePluginData("controlCenterExample", "isEnabled", isEnabled);
pluginService.savePluginData("controlCenterExample", "clickCount", clickCount);
}
ToastService.showInfo("Example Toggle", isEnabled ? "Activated!" : "Deactivated!");
}
horizontalBarPill: Component {
Row {
spacing: Theme.spacingXS
DIcon {
name: root.isEnabled ? "toggle_on" : "toggle_off"
color: root.isEnabled ? Theme.primary : Theme.surfaceVariantText
size: root.iconSize
anchors.verticalCenter: parent.verticalCenter
}
StyledText {
text: `${root.clickCount}`
color: root.isEnabled ? Theme.primary : Theme.surfaceVariantText
font.pixelSize: root.textSize
anchors.verticalCenter: parent.verticalCenter
}
}
}
verticalBarPill: Component {
Column {
spacing: Theme.spacingXS
DIcon {
name: root.isEnabled ? "toggle_on" : "toggle_off"
color: root.isEnabled ? Theme.primary : Theme.surfaceVariantText
size: root.iconSize
anchors.horizontalCenter: parent.horizontalCenter
}
StyledText {
text: `${root.clickCount}`
color: root.isEnabled ? Theme.primary : Theme.surfaceVariantText
font.pixelSize: root.textSize
anchors.horizontalCenter: parent.horizontalCenter
}
}
}
}