diff options
author | Paul Olav Tvete <paul.tvete@theqtcompany.com> | 2015-11-25 15:20:28 +0100 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@theqtcompany.com> | 2015-11-27 09:23:31 +0000 |
commit | 59b00bdd750217f7fdb4d5ba5115a4f1047b5ad1 (patch) | |
tree | 48a9c61d2527e69b587fd814e317af652e4cfc7d /wayland/democompositor/qml/TimedButton.qml | |
parent | 6850443f545bffb9ee7d821b14e3f71097c2fd7b (diff) |
Demo of the new QtWayland compositor API
Change-Id: Icc027eb0994240848604bf0311e0d22c3a6d5020
Reviewed-by: Kalle Viironen <kalle.viironen@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'wayland/democompositor/qml/TimedButton.qml')
-rw-r--r-- | wayland/democompositor/qml/TimedButton.qml | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/wayland/democompositor/qml/TimedButton.qml b/wayland/democompositor/qml/TimedButton.qml new file mode 100644 index 0000000..012875a --- /dev/null +++ b/wayland/democompositor/qml/TimedButton.qml @@ -0,0 +1,122 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the examples of Qt for Device Creation. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.6 + +Rectangle { + id: theButton + + radius: 10 + color: "lightgray" + + property alias text: buttonText.text + signal triggered() + + property int percent : 0 + state: "UNPRESSED" + + states: [ + State { + name: "UNPRESSED" + }, + State { + name: "PRESSED" + } + ] + + transitions: [ Transition { + from: "UNPRESSED" + to: "PRESSED" + NumberAnimation { + target: theButton + property: "percent" + to: 100 + duration: 1500 + } + }, + Transition { + from: "PRESSED" + to: "UNPRESSED" + NumberAnimation { + target: theButton + property: "percent" + to: 0 + duration: 100 + } + } + ] + Rectangle { + radius: 10 + color: "red" + anchors.left: parent.left + anchors.top: parent.top + anchors.bottom: parent.bottom + width: parent.width * percent / 100 + visible: percent > 0 + } + + Text { + id: buttonText + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.right: parent.right + anchors.margins: 10 + text: "[Uninitialized]" + } + + MouseArea { + id: mouser + anchors.fill: parent + + Timer { + id: timer + interval: 1000 + } + + onPressed: parent.state = "PRESSED" + + onReleased: { + if (containsMouse && parent.percent >= 100) { + parent.triggered() + } + parent.state = "UNPRESSED" + } + + onPositionChanged: { + parent.state = containsMouse ? "PRESSED" : "UNPRESSED" + } + } +} |