on b5e6cf2 help sign in
unity8/Components/Tile.qml
93 lines 2.7 kB history raw
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 */
17import QtQuick 2.0
18import Ubuntu.Components 0.1
20AbstractButton {
21 id: root
22 property alias source: image.source
23 property alias fillMode: image.fillMode
24 property alias horizontalAlignment: image.horizontalAlignment
25 property alias verticalAlignment: image.verticalAlignment
26 property alias text: label.text
27 property int imageWidth
28 property int imageHeight
29 opacity: GridView.view.highlightIndex === -1 ? 1 :
30 GridView.view.highlightIndex === index ? 0.6 : 0.2
32 Behavior on opacity {
33 UbuntuNumberAnimation {}
34 }
36 UbuntuShape {
37 id: icon
38 anchors {
39 top: parent.top
40 horizontalCenter: parent.horizontalCenter
41 }
42 radius: "medium"
43 width: imageWidth
44 height: imageHeight
45 image: Image {
46 id: image
47 objectName: "image"
48 sourceSize { width: icon.width; height: icon.height }
49 asynchronous: true
50 cache: false
51 }
52 }
54 UbuntuShape {
55 id: borderPressed
56 objectName: "borderPressed"
58 anchors.fill: icon
59 radius: "medium"
60 borderSource: "radius_pressed.sci"
61 opacity: root.pressed ? 1.0 : 0.0
62 Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
63 }
65 Item {
66 anchors {
67 left: parent.left
68 right: parent.right
69 top: icon.bottom
70 }
71 height: units.gu(2)
73 Label {
74 id: label
75 objectName: "label"
76 anchors {
77 baseline: parent.bottom
78 left: parent.left
79 right: parent.right
80 leftMargin: units.gu(1)
81 rightMargin: units.gu(1)
82 }
84 color: Theme.palette.selected.backgroundText
85 opacity: 0.9
86 style: Text.Raised
87 styleColor: "black"
88 fontSize: "small"
89 elide: Text.ElideMiddle
90 horizontalAlignment: Text.AlignHCenter
91 }
92 }