MenuButton: add submenus

This commit is contained in:
moneromooo.monero 2016-12-18 00:18:18 +00:00
parent aea9c233cc
commit 67a76464e8

View File

@ -34,15 +34,48 @@ Rectangle {
property bool checked: false property bool checked: false
property alias dotColor: dot.color property alias dotColor: dot.color
property alias symbol: symbolText.text property alias symbol: symbolText.text
property int numSelectedChildren: 0
property var under: null
signal clicked() signal clicked()
height: (appWindow.height >= 800) ? 64 : 56 function getOffset() {
var offset = 0
var item = button
while (item.under) {
offset += 20
item = item.under
}
return offset
}
color: checked ? "#FFFFFF" : "#1C1C1C" color: checked ? "#FFFFFF" : "#1C1C1C"
property bool present: !under || under.checked || checked || under.numSelectedChildren > 0
height: present ? ((appWindow.height >= 800) ? 64 : 56) : 0
transform: Scale {
yScale: button.present ? 1 : 0
Behavior on yScale {
NumberAnimation { duration: 500; easing.type: Easing.InOutCubic }
}
}
Behavior on height {
SequentialAnimation {
NumberAnimation { duration: 500; easing.type: Easing.InOutCubic }
}
}
Behavior on checked {
// we get the value of checked before the change
ScriptAction { script: if (under) under.numSelectedChildren += checked > 0 ? -1 : 1 }
}
Item { Item {
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: parent.getOffset()
width: 50 width: 50
Rectangle { Rectangle {
@ -85,6 +118,7 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: 20 anchors.rightMargin: 20
anchors.leftMargin: parent.getOffset()
source: "../images/menuIndicator.png" source: "../images/menuIndicator.png"
} }
@ -92,7 +126,7 @@ Rectangle {
id: label id: label
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: 50 anchors.leftMargin: parent.getOffset() + 50
font.family: "Arial" font.family: "Arial"
font.pixelSize: 18 font.pixelSize: 18
color: parent.checked ? "#000000" : "#FFFFFF" color: parent.checked ? "#000000" : "#FFFFFF"