summaryrefslogtreecommitdiffstats
path: root/framework/qml/Button.qml
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-04-04 19:19:41 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-04-04 19:19:41 +0200
commitd9295fc8f19e4005f8454e7f193f80316550ac0c (patch)
treef27c370d54bced09212b9c4a12b827d1cebb6110 /framework/qml/Button.qml
parentd002eae7f8b443dd1bad914444c296088c2b6e85 (diff)
downloadkube-d9295fc8f19e4005f8454e7f193f80316550ac0c.tar.gz
kube-d9295fc8f19e4005f8454e7f193f80316550ac0c.zip
One framework plugin to rule them all
Diffstat (limited to 'framework/qml/Button.qml')
-rw-r--r--framework/qml/Button.qml57
1 files changed, 57 insertions, 0 deletions
diff --git a/framework/qml/Button.qml b/framework/qml/Button.qml
new file mode 100644
index 00000000..948312b0
--- /dev/null
+++ b/framework/qml/Button.qml
@@ -0,0 +1,57 @@
1/*
2 * Copyright (C) 2017 Christian Mollekopf, <mollekopf@kolabsys.com>
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; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18
19import QtQuick 2.7
20import org.kube.components.theme 1.0 as KubeTheme
21
22Rectangle {
23 id: root
24
25 signal clicked()
26 property alias text: text.text
27 property color textColor: KubeTheme.Colors.highlightedTextColor
28 property string iconName: ""
29 property alias implicitHeight: content.implicitHeight
30 property alias implicitWidth: content.implicitWidth
31 width: implicitWidth
32 height: implicitHeight
33
34 clip: true
35
36 Row {
37 id: content
38 anchors.centerIn: parent
39 spacing: KubeTheme.Units.smallSpacing
40 Text {
41 id: text
42 anchors.verticalCenter: parent.verticalCenter
43 color: root.textColor
44 }
45 Icon {
46 id: icon
47 anchors.verticalCenter: parent.verticalCenter
48 iconName: root.iconName
49 visible: iconName != ""
50 }
51 }
52
53 MouseArea {
54 anchors.fill: parent
55 onClicked: root.clicked()
56 }
57}