mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-14 15:24:00 -04:00
62 lines
1.4 KiB
QML
62 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();
|
|
}
|
|
}
|