46 lines
1.2 KiB
QML
46 lines
1.2 KiB
QML
// Month-stepping arrow in CalendarGrid's header. A round hover target sized
|
|
// like GNOME's calendar arrows rather than a bare glyph, so it reads as a
|
|
// button before the pointer is anywhere near it.
|
|
|
|
import QtQuick
|
|
import qs.config
|
|
|
|
Rectangle {
|
|
id: root
|
|
|
|
signal activated
|
|
|
|
required property string glyph
|
|
|
|
implicitWidth: 26
|
|
implicitHeight: 26
|
|
radius: width / 2
|
|
border.width: 0
|
|
color: mouse.containsMouse ? Theme.alpha(Theme.fg, Theme.hoverAlpha) : "transparent"
|
|
|
|
// Fast in, relaxed out — the arrow answers the pointer, so arriving should
|
|
// feel immediate and leaving should not snap.
|
|
Behavior on color {
|
|
ColorAnimation {
|
|
duration: mouse.containsMouse ? Theme.durFast : Theme.durNormal
|
|
}
|
|
}
|
|
|
|
Text {
|
|
anchors.centerIn: parent
|
|
text: root.glyph
|
|
// fontMono is the Nerd Font: used here to draw an icon, never text.
|
|
font.family: Theme.fontMono
|
|
font.pixelSize: Theme.fontSize
|
|
color: mouse.containsMouse ? Theme.fg : Theme.fgDim
|
|
}
|
|
|
|
MouseArea {
|
|
id: mouse
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
cursorShape: Qt.PointingHandCursor
|
|
onClicked: root.activated()
|
|
}
|
|
}
|