diff options
| author | Nippy <nippy@rp1.hu> | 2026-05-09 13:33:09 +0200 |
|---|---|---|
| committer | Nippy <nippy@rp1.hu> | 2026-05-09 13:33:09 +0200 |
| commit | a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5 (patch) | |
| tree | 1a8769217f84bfe9d6216fafaadaf8cdd876d457 /raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Widgets/DankToggle.qml | |
| parent | 34b9c34f982b2596cfa9e368a2d7f74e9a17477c (diff) | |
| download | RaveOS-PKGBUILD-a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5.tar.gz RaveOS-PKGBUILD-a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5.zip | |
raveos update
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Widgets/DankToggle.qml')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Widgets/DankToggle.qml | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Widgets/DankToggle.qml b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Widgets/DankToggle.qml deleted file mode 100644 index 3b19a5a..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Widgets/DankToggle.qml +++ /dev/null @@ -1,195 +0,0 @@ -import QtQuick -import qs.Common -import qs.Widgets - -Item { - id: toggle - - LayoutMirroring.enabled: I18n.isRtl - LayoutMirroring.childrenInherit: true - - // API - property bool checked: false - property bool enabled: true - property bool toggling: false - property string text: "" - property string description: "" - property color descriptionColor: Theme.surfaceVariantText - property bool hideText: false - - signal clicked - signal toggled(bool checked) - signal toggleCompleted(bool checked) - - readonly property bool showText: text && !hideText - - readonly property int trackWidth: 52 - readonly property int trackHeight: 30 - readonly property int insetCircle: 24 - - width: showText ? parent.width : trackWidth - height: showText ? Math.max(trackHeight, textColumn.implicitHeight + Theme.spacingM * 2) : trackHeight - - function handleClick() { - if (!enabled) - return; - clicked(); - toggled(!checked); - } - - StyledRect { - id: background - anchors.fill: parent - radius: showText ? Theme.cornerRadius : 0 - color: "transparent" - visible: showText - - StateLayer { - visible: showText - disabled: !toggle.enabled - stateColor: Theme.primary - cornerRadius: parent.radius - onClicked: toggle.handleClick() - } - } - - Row { - anchors.left: parent.left - anchors.right: toggleTrack.left - anchors.verticalCenter: parent.verticalCenter - anchors.leftMargin: Theme.spacingM - anchors.rightMargin: Theme.spacingM - spacing: Theme.spacingXS - visible: showText - - Column { - id: textColumn - width: parent.width - anchors.verticalCenter: parent.verticalCenter - spacing: Theme.spacingXS - - StyledText { - text: toggle.text - font.pixelSize: Appearance.fontSize.normal - font.weight: Font.Medium - opacity: toggle.enabled ? 1 : 0.4 - width: parent.width - horizontalAlignment: Text.AlignLeft - } - - StyledText { - text: toggle.description - font.pixelSize: Appearance.fontSize.small - color: toggle.descriptionColor - wrapMode: Text.WordWrap - width: parent.width - visible: toggle.description.length > 0 - horizontalAlignment: Text.AlignLeft - } - } - } - - StyledRect { - id: toggleTrack - - width: showText ? trackWidth : Math.max(parent.width, trackWidth) - height: showText ? trackHeight : Math.max(parent.height, trackHeight) - anchors.right: parent.right - anchors.rightMargin: showText ? Theme.spacingM : 0 - anchors.verticalCenter: parent.verticalCenter - radius: Theme.cornerRadius - - // Distinguish disabled checked vs unchecked so unchecked disabled switches don't look enabled - color: !toggle.enabled ? (toggle.checked ? Qt.alpha(Theme.surfaceText, 0.12) : "transparent") : (toggle.checked ? Theme.primary : Theme.surfaceVariantAlpha) - opacity: toggle.toggling ? 0.6 : 1 - - // M3 disabled unchecked border: on surface 12% opacity - border.color: toggle.checked ? "transparent" : (!toggle.enabled ? Qt.alpha(Theme.surfaceText, 0.12) : Theme.outline) - - readonly property int pad: Math.round((height - thumb.width) / 2) - readonly property int edgeLeft: pad - readonly property int edgeRight: width - thumb.width - pad - - StyledRect { - id: thumb - - width: toggle.checked ? insetCircle : insetCircle - 4 - height: toggle.checked ? insetCircle : insetCircle - 4 - radius: Theme.cornerRadius - anchors.verticalCenter: parent.verticalCenter - - // M3 disabled thumb: - // checked = solid surface | unchecked = outlined off-state thumb - color: !toggle.enabled ? (toggle.checked ? Theme.surface : "transparent") : (toggle.checked ? Theme.surface : Theme.outline) - border.color: !toggle.enabled ? (toggle.checked ? "transparent" : Qt.alpha(Theme.surfaceText, 0.38)) : Theme.outline - border.width: (toggle.checked && toggle.enabled) ? 1 : 2 - - x: toggle.checked ? toggleTrack.edgeRight : toggleTrack.edgeLeft - - Behavior on x { - SequentialAnimation { - NumberAnimation { - duration: Appearance.anim.durations.normal - easing.type: Easing.BezierSpline - easing.bezierCurve: Appearance.anim.curves.emphasizedDecel - } - ScriptAction { - script: { - toggle.toggleCompleted(toggle.checked); - } - } - } - } - - Behavior on color { - ColorAnimation { - duration: Appearance.anim.durations.normal - easing.type: Easing.BezierSpline - easing.bezierCurve: Appearance.anim.curves.emphasized - } - } - - Behavior on border.width { - NumberAnimation { - duration: Appearance.anim.durations.normal - easing.type: Easing.BezierSpline - easing.bezierCurve: Appearance.anim.curves.emphasized - } - } - - DankIcon { - id: checkIcon - anchors.centerIn: parent - name: "check" - size: 20 - // M3 disabled icon: on surface 38% - color: toggle.enabled ? Theme.surfaceText : Qt.alpha(Theme.surfaceText, 0.38) - filled: true - opacity: (toggle.checked && toggle.enabled) ? 1 : 0 - scale: (toggle.checked && toggle.enabled) ? 1 : 0.6 - - Behavior on opacity { - NumberAnimation { - duration: Anims.durShort - easing.type: Easing.BezierSpline - easing.bezierCurve: Anims.emphasized - } - } - Behavior on scale { - NumberAnimation { - duration: Anims.durShort - easing.type: Easing.BezierSpline - easing.bezierCurve: Anims.emphasized - } - } - } - } - - StateLayer { - disabled: !toggle.enabled - stateColor: Theme.primary - cornerRadius: parent.radius - onClicked: toggle.handleClick() - } - } -} |