mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-05 20:28:25 +02:00
41 lines
1.4 KiB
QML
41 lines
1.4 KiB
QML
import QtQuick
|
|
import qs.Commons
|
|
|
|
// Rectangle-compatible surface with Omarchy border specs. Uses native
|
|
// Rectangle.border for cheap flat/uniform borders and BorderOverlay for
|
|
// gradients or per-side widths.
|
|
Rectangle {
|
|
id: root
|
|
|
|
property var borderSpec: Border.none()
|
|
property real padding: 0
|
|
property real topPadding: padding
|
|
property real rightPadding: padding
|
|
property real bottomPadding: padding
|
|
property real leftPadding: padding
|
|
|
|
readonly property real borderTop: Border.top(borderSpec)
|
|
readonly property real borderRight: Border.right(borderSpec)
|
|
readonly property real borderBottom: Border.bottom(borderSpec)
|
|
readonly property real borderLeft: Border.left(borderSpec)
|
|
readonly property real contentTopInset: borderTop + topPadding
|
|
readonly property real contentRightInset: borderRight + rightPadding
|
|
readonly property real contentBottomInset: borderBottom + bottomPadding
|
|
readonly property real contentLeftInset: borderLeft + leftPadding
|
|
readonly property bool usesOverlayBorder: Border.needsOverlay(borderSpec)
|
|
|
|
border.color: Border.canUseNative(borderSpec) ? Border.color(borderSpec) : "transparent"
|
|
border.width: Border.canUseNative(borderSpec) ? Border.uniformWidth(borderSpec) : 0
|
|
|
|
Loader {
|
|
anchors.fill: parent
|
|
active: root.usesOverlayBorder
|
|
|
|
sourceComponent: BorderOverlay {
|
|
anchors.fill: parent
|
|
radius: root.radius
|
|
borderSpec: root.borderSpec
|
|
}
|
|
}
|
|
}
|