5import QGroundControl.Controls
7// Important Note: SubMenuButtons must manage their checked state manually in order to support
8// view switch prevention. This means they can't be checkable or autoExclusive.
13 focusPolicy: Qt.ClickFocus
14 hoverEnabled: !ScreenTools.isMobile
15 implicitHeight: ScreenTools.defaultFontPixelHeight * 2.5
17 property bool setupComplete: true ///< true: setup complete indicator shows as completed
18 property var imageColor: undefined
19 property string imageResource: "/qmlimages/subMenuButtonImage.png" ///< Button image
20 property bool largeSize: false
21 property bool showHighlight: control.pressed | control.checked
23 property size sourceSize: Qt.size(ScreenTools.defaultFontPixelHeight * 2, ScreenTools.defaultFontPixelHeight * 2)
25 property ButtonGroup buttonGroup: null
26 onButtonGroupChanged: {
28 buttonGroup.addButton(control)
32 onCheckedChanged: checkable = false
36 colorGroupEnabled: control.enabled
39 background: Rectangle {
41 color: qgcPal.windowShade
43 implicitWidth: titleBar.x + titleBar.contentWidth + ScreenTools.defaultFontPixelWidth
47 color: qgcPal.buttonHighlight
48 opacity: showHighlight ? 1 : control.enabled && control.hovered ? .2 : 0
53 anchors.leftMargin: ScreenTools.defaultFontPixelWidth
54 anchors.left: parent.left
55 anchors.verticalCenter: parent.verticalCenter
56 width: ScreenTools.defaultFontPixelHeight * 2
57 height: ScreenTools.defaultFontPixelHeight * 2
58 fillMode: Image.PreserveAspectFit
60 color: imageColor ? imageColor : (control.setupComplete ? titleBar.color : "red")
61 source: control.imageResource
62 sourceSize: control.sourceSize
67 anchors.leftMargin: ScreenTools.defaultFontPixelWidth
68 anchors.left: image.right
69 anchors.verticalCenter: parent.verticalCenter
70 verticalAlignment: TextEdit.AlignVCenter
71 color: showHighlight ? qgcPal.buttonHighlightText : qgcPal.buttonText