nixnew/modules/user/modules/quickshell/shell/bar/systray/MenuChildrenRevealer.qml

56 lines
1.1 KiB
QML

import QtQuick
import QtQuick.Shapes
import Quickshell
Item {
property bool expanded: false;
readonly property bool open: progress != 0;
readonly property bool animating: internalProgress != -1 && internalProgress != 101;
implicitHeight: 16
implicitWidth: 16
property var xStart: Math.round(width * 0.3)
property var yStart: Math.round(height * 0.1)
property var xEnd: Math.round(width * 0.7)
property var yEnd: Math.round(height * 0.9)
property real internalProgress: expanded ? 101 : -1;
Behavior on internalProgress { SmoothedAnimation { velocity: 300 } }
EasingCurve {
id: curve
curve.type: Easing.InOutQuad
}
readonly property real progress: curve.valueAt(Math.min(100, Math.max(internalProgress, 0)) * 0.01)
rotation: progress * 90;
Shape {
anchors.fill: parent
layer.enabled: true
layer.samples: 3
ShapePath {
strokeWidth: 2
capStyle: ShapePath.RoundCap
joinStyle: ShapePath.MiterJoin
fillColor: "transparent"
startX: xStart
startY: yStart
PathLine {
x: xEnd
y: height / 2
}
PathLine {
y: yEnd
x: xStart
}
}
}
}