Files

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();
}
}