QGCComboBox.qml 2.18 KB
Newer Older
1 2 3
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
4
import QtQuick.Controls.Private 1.0
5 6

import QGroundControl.Palette 1.0
7
import QGroundControl.ScreenTools 1.0
8 9

ComboBox {
10 11
    property var    _qgcPal:        QGCPalette { colorGroupEnabled: enabled }
    property bool   _showHighlight: pressed | hovered
12
    property bool   _showBorder:    _qgcPal.globalTheme === QGCPalette.Light
13 14

    style: ComboBoxStyle {
15
        font.pointSize: ScreenTools.defaultFontPointSize
16 17 18
        textColor: _showHighlight ?
                    control._qgcPal.buttonHighlightText :
                    control._qgcPal.buttonText
19 20

        background: Item {
dogmaphobic's avatar
dogmaphobic committed
21 22
            implicitWidth:      Math.round(ScreenTools.defaultFontPixelWidth * 4.5)
            implicitHeight:     ScreenTools.isMobile ? Math.max(25, Math.round(ScreenTools.defaultFontPixelHeight * 2)) : Math.max(25, Math.round(ScreenTools.defaultFontPixelHeight * 1.2))
23 24

            Rectangle {
25 26
                anchors.fill:   parent
                color:          _showHighlight ? control._qgcPal.buttonHighlight : control._qgcPal.button
27
                //radius:       3
28 29
                border.width:   _showBorder ? 1: 0
                border.color:  control._qgcPal.buttonText
30 31 32 33
            }

            Image {
                id: imageItem
34
                source: "/qmlimages/arrow-down.png"
35 36 37 38 39 40 41
                anchors.verticalCenter: parent.verticalCenter
                anchors.right: parent.right
                anchors.rightMargin: dropDownButtonWidth / 2
                opacity: control.enabled ? 0.6 : 0.3
            }
        }
    }
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

    // Capture Wheel events to disable scrolling options in ComboBox.
    // As a side effect, this also prevents scrolling the page when
    // mouse is over a ComboBox, but this would also the case when
    // scrolling items in the ComboBox is enabled.
    MouseArea {
        anchors.fill: parent
        onWheel: {
            // do nothing
            wheel.accepted = true;
        }
        onPressed: {
            // propogate to ComboBox
            mouse.accepted = false;
        }
        onReleased: {
            // propogate to ComboBox
            mouse.accepted = false;
        }
    }
62
}