40 lines
1.5 KiB
QML
40 lines
1.5 KiB
QML
// NavigationRailTabArray.qml from end-4 https://github.com/end-4/dots-hyprland/blob/eac4ab3e3c249008d9596023f79dbc2d31012600/.config/quickshell/ii/modules/common/widgets/NavigationRailTabArray.qml
|
|
import qs.common
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
|
|
Item {
|
|
id: root
|
|
property int currentIndex: 0
|
|
property bool expanded: false
|
|
default property alias data: tabBarColumn.data
|
|
implicitHeight: tabBarColumn.implicitHeight
|
|
implicitWidth: tabBarColumn.implicitWidth
|
|
Layout.topMargin: 25
|
|
Rectangle {
|
|
property real itemHeight: tabBarColumn.children[0].baseSize
|
|
property real baseHighlightHeight: tabBarColumn.children[0].baseHighlightHeight
|
|
anchors {
|
|
top: tabBarColumn.top
|
|
left: tabBarColumn.left
|
|
topMargin: itemHeight * root.currentIndex + (root.expanded ? 0 : ((itemHeight - baseHighlightHeight) / 2))
|
|
}
|
|
radius: Appearance.rounding.full
|
|
color: Appearance.colors.colSecondaryContainer
|
|
implicitHeight: root.expanded ? itemHeight : baseHighlightHeight
|
|
implicitWidth: tabBarColumn.children[root.currentIndex].visualWidth
|
|
|
|
Behavior on anchors.topMargin {
|
|
NumberAnimation {
|
|
duration: Appearance.animationCurves.expressiveFastSpatialDuration
|
|
easing.type: Appearance.animation.elementMove.type
|
|
easing.bezierCurve: Appearance.animationCurves.expressiveFastSpatial
|
|
}
|
|
}
|
|
}
|
|
ColumnLayout {
|
|
id: tabBarColumn
|
|
anchors.fill: parent
|
|
spacing: 0
|
|
}
|
|
} |