51 lines
1.4 KiB
QML
51 lines
1.4 KiB
QML
pragma ComponentBehavior: Bound
|
|
|
|
import Quickshell
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
|
|
PopupWindow {
|
|
id: root
|
|
required property QsMenuHandle menu
|
|
property int height: menuOpener.children.values.length * entryHeight
|
|
property int entryHeight: 25
|
|
implicitWidth: 300
|
|
implicitHeight: height
|
|
|
|
QsMenuOpener {
|
|
id: menuOpener
|
|
menu: root.menu
|
|
}
|
|
|
|
ColumnLayout {
|
|
anchors.fill: parent
|
|
spacing: 0
|
|
Repeater {
|
|
model: menuOpener.children
|
|
Rectangle {
|
|
id: menuItem
|
|
width: root.implicitWidth
|
|
height: modelData.isSeparator ? 5 : root.entryHeight
|
|
color: mouseArea.containsMouse ? "#22000000" : "transparent"
|
|
required property QsMenuEntry modelData
|
|
MouseArea {
|
|
id: mouseArea
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
acceptedButtons: Qt.LeftButton
|
|
onClicked: {
|
|
menuItem.modelData.triggered();
|
|
root.visible = false;
|
|
}
|
|
Text {
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: 10
|
|
text: menuItem.modelData.text
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|