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.0
18 import Ubuntu.Components 1.1
19 
20 AbstractButton {
21  id: root
22  opacity: enabled ? 1 : 0.6
23 
24  property alias text: label.text
25  property string iconName
26 
27  UbuntuShape {
28  anchors.fill: parent
29  opacity: root.pressed ? 1 : 0
30  Behavior on opacity {
31  UbuntuNumberAnimation {}
32  }
33  }
34 
35  Label {
36  id: label
37  anchors.centerIn: parent
38  horizontalAlignment: Text.AlignHCenter
39  color: "#f3f3e7"
40  fontSize: "x-large"
41  font.weight: Font.DemiBold
42  visible: text.length > 0
43  scale: root.pressed ? 0.9 : 1
44  Behavior on scale {
45  UbuntuNumberAnimation {}
46  }
47  }
48 
49  Icon {
50  id: icon
51  height: units.gu(3)
52  width: height
53  anchors.centerIn: parent
54  name: root.iconName
55  color: "#f3f3e7"
56  visible: name.length > 0
57  scale: root.pressed ? 0.9 : 1
58  Behavior on scale {
59  UbuntuNumberAnimation { duration: UbuntuAnimation.SlowDuration }
60  }
61  }
62 }