SubMenuButton.qml 2.93 KB
Newer Older
1 2
import QtQuick                  2.3
import QtQuick.Controls         1.2
3
import QtQuick.Controls.Styles  1.4
4
import QtGraphicalEffects       1.0
5

6 7
import QGroundControl.Palette       1.0
import QGroundControl.ScreenTools   1.0
Don Gagne's avatar
Don Gagne committed
8

9 10 11
// Important Note: SubMenuButtons must manage their checked state manually in order to support
// view switch prevention. This means they can't be checkable or autoExclusive.

Don Gagne's avatar
Don Gagne committed
12
Button {
DonLakeFlyer's avatar
DonLakeFlyer committed
13
    id:             _rootButton
14 15 16
    property bool   setupComplete:  true                                    ///< true: setup complete indicator shows as completed
    property bool   setupIndicator: true                                    ///< true: show setup complete indicator
    property string imageResource:  "/qmlimages/subMenuButtonImage.png"     ///< Button image
17
    property size   sourceSize:     Qt.size(ScreenTools.defaultFontPixelHeight * 2, ScreenTools.defaultFontPixelHeight * 2)
Don Gagne's avatar
Don Gagne committed
18

19 20
    text:               "Button"  ///< Pass in your own button text
    activeFocusOnPress: true
21

dogmaphobic's avatar
dogmaphobic committed
22
    implicitHeight: ScreenTools.isTinyScreen ? ScreenTools.defaultFontPixelHeight * 3.5 : ScreenTools.defaultFontPixelHeight * 2.5
DonLakeFlyer's avatar
DonLakeFlyer committed
23
    implicitWidth:  __panel.implicitWidth
Don Gagne's avatar
Don Gagne committed
24

25 26
    onCheckedChanged: checkable = false

Don Gagne's avatar
Don Gagne committed
27 28 29
    style: ButtonStyle {
        id: buttonStyle

30 31 32
        QGCPalette {
            id:                 qgcPal
            colorGroupEnabled:  control.enabled
Don Gagne's avatar
Don Gagne committed
33 34
        }

35
        property bool showHighlight: control.pressed | control.checked
36

Don Gagne's avatar
Don Gagne committed
37
        background: Rectangle {
38
            id:     innerRect
39
            color:  showHighlight ? qgcPal.buttonHighlight : qgcPal.windowShade
Don Gagne's avatar
Don Gagne committed
40

41 42
            implicitWidth: titleBar.x + titleBar.contentWidth + ScreenTools.defaultFontPixelWidth

43 44 45 46 47 48 49 50
            QGCColoredImage {
                id:                     image
                anchors.leftMargin:     ScreenTools.defaultFontPixelWidth
                anchors.left:           parent.left
                anchors.verticalCenter: parent.verticalCenter
                width:                  ScreenTools.defaultFontPixelHeight * 2
                height:                 ScreenTools.defaultFontPixelHeight * 2
                fillMode:               Image.PreserveAspectFit
51
                mipmap:                 true
52 53
                color:                  control.setupComplete ? qgcPal.button : "red"
                source:                 control.imageResource
54
                sourceSize:             _rootButton.sourceSize
55
            }
Don Gagne's avatar
Don Gagne committed
56

57 58
            QGCLabel {
                id:                     titleBar
59 60 61
                anchors.leftMargin:     ScreenTools.defaultFontPixelWidth
                anchors.left:           image.right
                anchors.verticalCenter: parent.verticalCenter
62 63 64
                verticalAlignment:      TextEdit.AlignVCenter
                color:                  showHighlight ? qgcPal.buttonHighlightText : qgcPal.buttonText
                text:                   control.text
Don Gagne's avatar
Don Gagne committed
65 66 67
            }
        }

68
        label: Item {}
Don Gagne's avatar
Don Gagne committed
69 70
    }
}