diff options
| author | nippy <you@example.com> | 2026-04-18 13:49:56 +0200 |
|---|---|---|
| committer | nippy <you@example.com> | 2026-04-18 13:49:56 +0200 |
| commit | 5d94c0a7d44a2255b81815a52a7056a94a39842d (patch) | |
| tree | 759bdea9645c6a62f9e1e4c001f7d81cccd120d2 /raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Widgets/StateLayer.qml | |
| parent | e79cdf210b267f21a186255ce1a4d50029439d54 (diff) | |
| download | RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.tar.gz RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.zip | |
update Raveos themes
Diffstat (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Widgets/StateLayer.qml')
| -rw-r--r-- | raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Widgets/StateLayer.qml | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Widgets/StateLayer.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Widgets/StateLayer.qml new file mode 100644 index 0000000..8969d93 --- /dev/null +++ b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Widgets/StateLayer.qml @@ -0,0 +1,74 @@ +import QtQuick +import qs.Common + +MouseArea { + id: root + + property bool disabled: false + property color stateColor: Theme.surfaceText + property real cornerRadius: parent && parent.radius !== undefined ? parent.radius : Theme.cornerRadius + property var tooltipText: null + property string tooltipSide: "bottom" + property bool enableRipple: typeof SettingsData !== "undefined" ? (SettingsData.enableRippleEffects ?? true) : true + + readonly property real stateOpacity: disabled ? 0 : pressed ? 0.12 : containsMouse ? 0.08 : 0 + + anchors.fill: parent + cursorShape: disabled ? undefined : Qt.PointingHandCursor + hoverEnabled: true + + onPressed: mouse => { + if (!disabled && enableRipple) { + rippleLayer.trigger(mouse.x, mouse.y); + } + } + + Rectangle { + id: stateRect + anchors.fill: parent + radius: root.cornerRadius + color: Qt.rgba(stateColor.r, stateColor.g, stateColor.b, stateOpacity) + + Behavior on color { + enabled: Theme.currentAnimationSpeed !== SettingsData.AnimationSpeed.None + DankColorAnim { + duration: Theme.shorterDuration + easing.bezierCurve: Theme.expressiveCurves.standardDecel + } + } + } + + DankRipple { + id: rippleLayer + anchors.fill: parent + rippleColor: root.stateColor + cornerRadius: root.cornerRadius + enableRipple: root.enableRipple + } + + Timer { + id: hoverDelay + interval: 400 + repeat: false + onTriggered: { + tooltip.show(root.tooltipText, root, 0, 0, root.tooltipSide); + } + } + + onEntered: { + if (!tooltipText) + return; + hoverDelay.restart(); + } + + onExited: { + if (!tooltipText) + return; + hoverDelay.stop(); + tooltip.hide(); + } + + DankTooltipV2 { + id: tooltip + } +} |