From d8debd2429f939ff6306cbf0c89a1e2401d22a33 Mon Sep 17 00:00:00 2001 From: quadbyte Date: Sat, 9 Aug 2025 13:59:34 -0400 Subject: [PATCH] NIconButton and NToggle --- Widgets/NIconButton.qml | 44 ++++++++++++++++++++ Widgets/{NoctaliaToggle.qml => NToggle.qml} | 0 Widgets/NoctaliaIconButton.qml | 45 --------------------- 3 files changed, 44 insertions(+), 45 deletions(-) create mode 100644 Widgets/NIconButton.qml rename Widgets/{NoctaliaToggle.qml => NToggle.qml} (100%) delete mode 100644 Widgets/NoctaliaIconButton.qml diff --git a/Widgets/NIconButton.qml b/Widgets/NIconButton.qml new file mode 100644 index 0000000..e8b1228 --- /dev/null +++ b/Widgets/NIconButton.qml @@ -0,0 +1,44 @@ +import QtQuick +import Quickshell +import Quickshell.Widgets +import qs.Services +import qs.Theme + +Rectangle { + id: root + + // Local scale convenience with safe fallback + readonly property real scale: (typeof screen !== 'undefined' + && screen) ? Scaling.scale(screen) : 1.0 + + property real size: 32 * scale + property string icon + property bool enabled: true + property bool hovering: false + + implicitWidth: size + implicitHeight: size + radius: width * 0.5 + + color: root.hovering ? Theme.accentPrimary : "transparent" + + Text { + id: iconText + anchors.centerIn: parent + text: root.icon + font.family: "Material Symbols Outlined" + font.pixelSize: 24 * scale + color: root.hovering ? Theme.onAccent : Theme.textPrimary + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + opacity: root.enabled ? 1.0 : 0.5 + } + + MouseArea { + anchors.fill: parent + cursorShape: Qt.PointingHandCursor + hoverEnabled: true + onEntered: hovering = true + onExited: hovering = false + } +} diff --git a/Widgets/NoctaliaToggle.qml b/Widgets/NToggle.qml similarity index 100% rename from Widgets/NoctaliaToggle.qml rename to Widgets/NToggle.qml diff --git a/Widgets/NoctaliaIconButton.qml b/Widgets/NoctaliaIconButton.qml deleted file mode 100644 index 7df74be..0000000 --- a/Widgets/NoctaliaIconButton.qml +++ /dev/null @@ -1,45 +0,0 @@ -import QtQuick -import Quickshell -import Quickshell.Widgets -import qs.Services -import qs.Theme - -MouseArea { - id: root - - // Local scale convenience with safe fallback - readonly property real scale: (typeof screen !== 'undefined' - && screen) ? Scaling.scale(screen) : 1.0 - - property string icon - property bool enabled: true - property bool hovering: false - property real size: 32 - - cursorShape: Qt.PointingHandCursor - implicitWidth: size - implicitHeight: size - - hoverEnabled: true - onEntered: hovering = true - onExited: hovering = false - - Rectangle { - - anchors.fill: parent - radius: width * 0.5 - color: root.hovering ? Theme.accentPrimary : "transparent" - - Text { - id: iconText - anchors.centerIn: parent - text: root.icon - font.family: "Material Symbols Outlined" - font.pixelSize: 24 * scale - color: root.hovering ? Theme.onAccent : Theme.textPrimary - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - opacity: root.enabled ? 1.0 : 0.5 - } - } -}