Files
Panama/config/dot/quickshell/modules/quicksettings/IconButton.qml
T

54 lines
1.1 KiB
QML

// A small circular icon button — mute toggles, chevrons, per-row actions.
import QtQuick
import Quickshell
import qs.config
import qs.widgets
Rectangle {
id: root
property string icon: ""
property string iconFallback: "dialog-information-symbolic"
property int size: 28
property int iconSize: 16
property color tint: Theme.fg
signal clicked
implicitWidth: root.size
implicitHeight: root.size
radius: root.size / 2
border.width: 0
color: {
if (mouse.pressed)
return Theme.alpha(Theme.fg, Theme.activeAlpha);
if (mouse.containsMouse)
return Theme.alpha(Theme.fg, Theme.hoverAlpha);
return "transparent";
}
Behavior on color {
ColorAnimation {
duration: Theme.durFast
}
}
ThemedIcon {
anchors.centerIn: parent
size: root.iconSize
icon: root.icon
iconFallback: root.iconFallback
tint: root.tint
}
MouseArea {
id: mouse
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: root.clicked()
}
}