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