// One segment of the Screen / Window / Selection control. // // Icons are Nerd Font glyphs rather than freedesktop icons on purpose: the // Adwaita "symbolic" SVGs are flat black and Qt, unlike GTK, will not recolor // them, so they'd be invisible on this dark overlay. import QtQuick import qs.config Rectangle { id: root property string glyph: "" property string label: "" property bool active: false signal clicked implicitWidth: content.implicitWidth + 30 implicitHeight: 40 radius: Theme.pillRadius border.width: 0 color: { if (root.active) return mouse.containsMouse ? Qt.lighter(Theme.accent, 1.1) : Theme.accent; 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 } } readonly property color contentColor: root.active ? Theme.bgDark : Theme.fg Row { id: content anchors.centerIn: parent spacing: 8 Text { anchors.verticalCenter: parent.verticalCenter text: root.glyph color: root.contentColor font.family: Theme.fontMono font.pixelSize: Theme.fontSizeLarge } Text { anchors.verticalCenter: parent.verticalCenter text: root.label color: root.contentColor font.family: Theme.fontFamily font.pixelSize: Theme.fontSize font.weight: Font.Medium } } MouseArea { id: mouse anchors.fill: parent hoverEnabled: true cursorShape: Qt.PointingHandCursor onClicked: root.clicked() } }