// 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()
    }
}
