diff options
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankBar/AxisContext.qml')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankBar/AxisContext.qml | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankBar/AxisContext.qml b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankBar/AxisContext.qml new file mode 100644 index 0000000..8a8fe97 --- /dev/null +++ b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/DankBar/AxisContext.qml @@ -0,0 +1,57 @@ +import QtQuick + +QtObject { + id: root + + property string edge: "top" + + readonly property string orientation: isVertical ? "vertical" : "horizontal" + readonly property bool isVertical: edge === "left" || edge === "right" + readonly property bool isHorizontal: !isVertical + + function primarySize(item) { + return isVertical ? item.height : item.width + } + + function crossSize(item) { + return isVertical ? item.width : item.height + } + + function setPrimaryPos(item, value) { + if (isVertical) { + item.y = value + } else { + item.x = value + } + } + + function getPrimaryPos(item) { + return isVertical ? item.y : item.x + } + + function primaryAnchor(anchors) { + return isVertical ? anchors.verticalCenter : anchors.horizontalCenter + } + + function crossAnchor(anchors) { + return isVertical ? anchors.horizontalCenter : anchors.verticalCenter + } + + function outerVisualEdge() { + if (edge === "bottom") return "bottom" + if (edge === "left") return "right" + if (edge === "right") return "left" + if (edge === "top") return "top" + return "bottom" + } + + signal axisEdgeChanged() + signal axisOrientationChanged() + signal changed() // Single coalesced signal + + onEdgeChanged: { + axisEdgeChanged() + axisOrientationChanged() + changed() + } +} |