Skip to content
SubMenuButton.qml 2.53 KiB
Newer Older
Don Gagne's avatar
Don Gagne committed
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtGraphicalEffects 1.0

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

Button {
    checkable: true
Don Gagne's avatar
Don Gagne committed

    text: "Button"
    property bool setupComplete: true
    property bool setupIndicator: true
    property string imageResource: "subMenuButtonImage.png"
Don Gagne's avatar
Don Gagne committed

    style: ButtonStyle {
        id: buttonStyle

        property var __qgcPal: QGCPalette {
            colorGroupEnabled: control.enabled
        property bool __showHighlight: control.pressed | control.checked

Don Gagne's avatar
Don Gagne committed
        background: Rectangle {
            id: innerRect
            readonly property real titleHeight: 20
            color: __showHighlight ? __qgcPal.buttonHighlight : __qgcPal.button
Don Gagne's avatar
Don Gagne committed

            Text {
                id: titleBar

                width: parent.width
                height: parent.titleHeight

                verticalAlignment: TextEdit.AlignVCenter
                horizontalAlignment: TextEdit.AlignHCenter

                text: control.text
                font.pointSize: ScreenTools.defaultFontPointSize
                antialiasing: true
                color: __showHighlight ? __qgcPal.buttonHighlightText : __qgcPal.buttonText
Don Gagne's avatar
Don Gagne committed

                Rectangle {
                    id: setupIndicator

                    readonly property real indicatorRadius: 4
Don Gagne's avatar
Don Gagne committed
                    x: parent.width - (indicatorRadius * 2) - 3
Don Gagne's avatar
Don Gagne committed
                    y: (parent.height - (indicatorRadius * 2)) / 2
                    width: indicatorRadius * 2
                    height: indicatorRadius * 2

                    radius: indicatorRadius
                    color: control.setupIndicator ? (control.setupComplete ? "#00d932" : "red") : innerRect.color
Don Gagne's avatar
Don Gagne committed
                }
            }

            Rectangle {
                width: parent.width
                height: parent.height - parent.titleHeight

                y: parent.titleHeight

                color: __qgcPal.windowShade
                QGCColoredImage {
                    source: control.imageResource
                    fillMode: Image.PreserveAspectFit
                    width: parent.width - 20
                    height: parent.height - 20
Don Gagne's avatar
Don Gagne committed
                    anchors.horizontalCenter: parent.horizontalCenter
                    anchors.verticalCenter: parent.verticalCenter
                    smooth: true
                    color: __showHighlight ? __qgcPal.buttonHighlight : __qgcPal.button
Don Gagne's avatar
Don Gagne committed
                }
            }
        }

    label: Item {}
    }
}