mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 13:32:50 -05:00
* ci: change to prek for pre-commit * refactor: fix shellcheck warnings for the scripts * chore: unify whitespace formatting * nix: add prek to dev shell
58 lines
1.4 KiB
QML
58 lines
1.4 KiB
QML
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()
|
|
}
|
|
}
|