aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml')
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml113
1 files changed, 93 insertions, 20 deletions
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml
index 7298b4d3..2d05b74a 100644
--- a/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml
+++ b/src/imports/controls/doc/snippets/qtquickcontrols2-menu-custom.qml
@@ -25,36 +25,109 @@
**
****************************************************************************/
-//! [file]
-import QtQuick 2.6
-import QtQuick.Controls 2.1
+import QtQuick 2.10
+import QtQuick.Controls 2.3
-Item {
+ApplicationWindow {
id: window
- width: menu.contentItem.width
- height: menu.contentItem.height
+ width: menu.width
+ height: menu.height
visible: true
+ Component.onCompleted: menu.popup(menu.itemAt(1))
+
// Indent it like this so that the indenting in the generated doc is normal.
Menu {
id: menu
- contentItem.parent: window
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 200
- color: "#ffffff"
- border.color: "#353637"
+
+ Action { text: qsTr("Tool Bar"); checkable: true }
+ Action { text: qsTr("Side Bar"); checkable: true; checked: true }
+ Action { text: qsTr("Status Bar"); checkable: true; checked: true }
+
+ MenuSeparator {
+ contentItem: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 1
+ color: "#21be2b"
+ }
}
- MenuItem {
- text: qsTr("New...")
+ Menu {
+ title: qsTr("Advanced")
+ // ...
}
- MenuItem {
- text: qsTr("Open...")
+
+ topPadding: 2
+ bottomPadding: 2
+
+ delegate: MenuItem {
+ id: menuItem
+ implicitWidth: 200
+ implicitHeight: 40
+
+ arrow: Canvas {
+ x: parent.width - width
+ implicitWidth: 40
+ implicitHeight: 40
+ visible: menuItem.subMenu
+ onPaint: {
+ var ctx = getContext("2d")
+ ctx.fillStyle = menuItem.highlighted ? "#ffffff" : "#21be2b"
+ ctx.moveTo(15, 15)
+ ctx.lineTo(width - 15, height / 2)
+ ctx.lineTo(15, height - 15)
+ ctx.closePath()
+ ctx.fill()
+ }
+ }
+
+ indicator: Item {
+ implicitWidth: 40
+ implicitHeight: 40
+ Rectangle {
+ width: 26
+ height: 26
+ anchors.centerIn: parent
+ visible: menuItem.checkable
+ border.color: "#21be2b"
+ radius: 3
+ Rectangle {
+ width: 14
+ height: 14
+ anchors.centerIn: parent
+ visible: menuItem.checked
+ color: "#21be2b"
+ radius: 2
+ }
+ }
+ }
+
+ contentItem: Text {
+ leftPadding: menuItem.indicator.width
+ rightPadding: menuItem.arrow.width
+ text: menuItem.text
+ font: menuItem.font
+ opacity: enabled ? 1.0 : 0.3
+ color: menuItem.highlighted ? "#ffffff" : "#21be2b"
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
+ }
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 40
+ opacity: enabled ? 1 : 0.3
+ color: menuItem.highlighted ? "#21be2b" : "transparent"
+ }
}
- MenuItem {
- text: qsTr("Save")
+
+ background: Rectangle {
+ implicitWidth: 200
+ implicitHeight: 40
+ color: "#ffffff"
+ border.color: "#21be2b"
+ radius: 2
}
}
-}
-//! [file]
+} //! [eof]