Unity 8
PinPadButton.qml
1 /*
2  * Copyright (C) 2013 Canonical, Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 import QtQuick 2.4
18 import Ubuntu.Components 1.3
19 
20 AbstractButton {
21  id: root
22  opacity: enabled ? 1 : 0.6
23 
24  property alias text: label.text
25  property string iconName
26  property color foregroundColor: "#000000"
27 
28  UbuntuShape {
29  anchors.fill: parent
30  opacity: root.pressed ? 1 : 0
31  Behavior on opacity {
32  UbuntuNumberAnimation {}
33  }
34  }
35 
36  Label {
37  id: label
38  anchors.centerIn: parent
39  horizontalAlignment: Text.AlignHCenter
40  color: root.foregroundColor
41  fontSize: "x-large"
42  font.weight: Font.DemiBold
43  visible: text.length > 0
44  scale: root.pressed ? 0.9 : 1
45  Behavior on scale {
46  UbuntuNumberAnimation {}
47  }
48  }
49 
50  Icon {
51  id: icon
52  height: units.gu(3)
53  width: height
54  anchors.centerIn: parent
55  name: root.iconName
56  color: root.foregroundColor
57  visible: name.length > 0
58  scale: root.pressed ? 0.9 : 1
59  Behavior on scale {
60  UbuntuNumberAnimation { duration: UbuntuAnimation.SlowDuration }
61  }
62  }
63 }