forked from Shinonome/dots-hyprland
45 lines
1.2 KiB
QML
45 lines
1.2 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import org.kde.kirigami as Kirigami
|
|
import qs.services
|
|
import qs.modules.common
|
|
import qs.modules.waffle.looks
|
|
|
|
BarButton {
|
|
id: root
|
|
|
|
required property string iconName
|
|
property bool separateLightDark: false
|
|
leftInset: 2
|
|
rightInset: 2
|
|
implicitWidth: height - topInset - bottomInset + leftInset + rightInset
|
|
|
|
onDownChanged: {
|
|
scaleAnim.duration = root.down ? 150 : 200
|
|
scaleAnim.easing.bezierCurve = root.down ? Looks.transition.easing.bezierCurve.easeIn : Looks.transition.easing.bezierCurve.easeOut
|
|
contentItem.scale = root.down ? 5/6 : 1 // If/When we do dragging, the scale is 1.25
|
|
}
|
|
|
|
contentItem: Item {
|
|
id: contentItem
|
|
anchors.centerIn: root.background
|
|
|
|
implicitHeight: iconWidget.implicitHeight
|
|
implicitWidth: iconWidget.implicitWidth
|
|
|
|
Behavior on scale {
|
|
NumberAnimation {
|
|
id: scaleAnim
|
|
easing.type: Easing.BezierSpline
|
|
}
|
|
}
|
|
|
|
AppIcon {
|
|
id: iconWidget
|
|
anchors.centerIn: parent
|
|
iconName: root.iconName
|
|
separateLightDark: root.separateLightDark
|
|
}
|
|
}
|
|
}
|