summaryrefslogtreecommitdiff
path: root/components/Button.qml
blob: 772205ddabba62a57cda85c948ac078cb5d7e083 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import QtQuick 1.1
import "custom" as Components

Components.Button {
    id: button

    width: Math.max(72, sizehint.width)
    height: Math.max(22, sizehint.height)

    property alias containsMouse: tooltip.containsMouse
    property variant sizehint: backgroundItem.sizeFromContents(80, 6)
    property bool defaultbutton: false
    property string styleHint

    TooltipArea {
        // Note this will eat hover events
        id: tooltip
        anchors.fill: parent
        text: button.tooltip
    }

    background: StyleItem {
        id: styleitem
        anchors.fill: parent
        elementType: "button"
        sunken: pressed || checked
        raised: !(pressed || checked)
        hover: containsMouse
        text: iconSource === "" ? "" : button.text
        hasFocus: button.focus
        hint: button.styleHint

        // If no icon, let the style do the drawing
        activeControl: defaultbutton ? "default" : "f"
    }

    label: Item {
        // Used as a fallback since I can't pass the imageURL
        // directly to the style object
        visible: button.iconSource === ""
        Row {
            id: row
            anchors.centerIn: parent
            spacing: 4
            Image {
                source: iconSource
                anchors.verticalCenter: parent.verticalCenter
                fillMode: Image.Stretch //mm Image should shrink if button is too small, depends on QTBUG-14957
            }
            Text {
                id:text
                color: textColor
                anchors.verticalCenter: parent.verticalCenter
                text: button.text
                horizontalAlignment: Text.Center
            }
        }
    }
    Keys.onSpacePressed:animateClick()
}