diff options
Diffstat (limited to 'modules/system/quickshell/Toggle.qml')
| -rw-r--r-- | modules/system/quickshell/Toggle.qml | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/modules/system/quickshell/Toggle.qml b/modules/system/quickshell/Toggle.qml new file mode 100644 index 0000000..76eb36c --- /dev/null +++ b/modules/system/quickshell/Toggle.qml @@ -0,0 +1,31 @@ +import QtQuick + +// iOS-style on/off switch. `checked` is the visual state; the parent +// owns truth and handles `toggled` by flipping it. Uses Item.enabled +// for the disabled visual + input gating. +Rectangle { + id: root + property bool checked: false + signal toggled() + + width: 40 + height: 22 + radius: 11 + color: checked ? Theme.accent : Theme.sliderTrack + opacity: enabled ? 1.0 : 0.4 + + Rectangle { + width: 18 + height: 18 + radius: 9 + color: Theme.text + anchors { verticalCenter: parent.verticalCenter } + x: root.checked ? parent.width - width - 2 : 2 + Behavior on x { NumberAnimation { duration: 150 } } + } + + MouseArea { + anchors { fill: parent } + onClicked: root.toggled() + } +} |
