summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/scxml/scxml.pro1
-rw-r--r--examples/scxml/trafficlight-qml-simple/Light.qml65
-rw-r--r--examples/scxml/trafficlight-qml-simple/TrafficLight.qml108
-rw-r--r--examples/scxml/trafficlight-qml-simple/doc/images/trafficlight.pngbin0 -> 4522 bytes
-rw-r--r--examples/scxml/trafficlight-qml-simple/doc/src/trafficlight-qml-simple.qdoc63
-rw-r--r--examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.cpp71
-rw-r--r--examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.pro14
-rw-r--r--examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.qrc6
8 files changed, 328 insertions, 0 deletions
diff --git a/examples/scxml/scxml.pro b/examples/scxml/scxml.pro
index 7a93fd4..9da27ce 100644
--- a/examples/scxml/scxml.pro
+++ b/examples/scxml/scxml.pro
@@ -14,6 +14,7 @@ qtHaveModule(qml) {
SUBDIRS += calculator-qml
SUBDIRS += trafficlight-qml-static
SUBDIRS += trafficlight-qml-dynamic
+ SUBDIRS += trafficlight-qml-simple
SUBDIRS += mediaplayer-qml-static
SUBDIRS += mediaplayer-qml-dynamic
diff --git a/examples/scxml/trafficlight-qml-simple/Light.qml b/examples/scxml/trafficlight-qml-simple/Light.qml
new file mode 100644
index 0000000..8502d35
--- /dev/null
+++ b/examples/scxml/trafficlight-qml-simple/Light.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtScxml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** 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 https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.5
+
+Item {
+ property color color
+ height: parent.height / 3
+ width: height
+
+ Rectangle {
+ anchors.fill: parent
+ anchors.margins: 3
+ color: parent.color
+ radius: width
+ }
+}
+
diff --git a/examples/scxml/trafficlight-qml-simple/TrafficLight.qml b/examples/scxml/trafficlight-qml-simple/TrafficLight.qml
new file mode 100644
index 0000000..da51ded
--- /dev/null
+++ b/examples/scxml/trafficlight-qml-simple/TrafficLight.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtScxml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** 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 https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.5
+import QtQuick.Window 2.2
+import TrafficLightStateMachine 1.0
+
+Window {
+ id: root
+ visible: true
+ width: 100
+ height: 350
+
+ TrafficLightStateMachine {
+ id: stateMachine
+ running: true
+ }
+
+ Item {
+ id: lights
+ width: parent.width
+ height: 300
+
+ Light {
+ anchors.top: parent.top
+ color: "red"
+ visible: stateMachine.red || stateMachine.redGoingGreen
+ }
+
+ Light {
+ anchors.centerIn: parent
+ color: "yellow"
+ visible: stateMachine.yellow || stateMachine.blinking
+ }
+
+ Light {
+ anchors.bottom: parent.bottom
+ color: "green"
+ visible: stateMachine.green
+ }
+ }
+
+ Rectangle {
+ anchors.top: lights.bottom
+ anchors.bottom: parent.bottom
+ width: parent.width
+ border.color: "black"
+
+ Text {
+ anchors.fill: parent
+ text: stateMachine.working ? "Pause" : "Unpause"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: stateMachine.submitEvent(stateMachine.working ? "smash" : "repair");
+ }
+ }
+}
diff --git a/examples/scxml/trafficlight-qml-simple/doc/images/trafficlight.png b/examples/scxml/trafficlight-qml-simple/doc/images/trafficlight.png
new file mode 100644
index 0000000..ddd7431
--- /dev/null
+++ b/examples/scxml/trafficlight-qml-simple/doc/images/trafficlight.png
Binary files differ
diff --git a/examples/scxml/trafficlight-qml-simple/doc/src/trafficlight-qml-simple.qdoc b/examples/scxml/trafficlight-qml-simple/doc/src/trafficlight-qml-simple.qdoc
new file mode 100644
index 0000000..f66f5f7
--- /dev/null
+++ b/examples/scxml/trafficlight-qml-simple/doc/src/trafficlight-qml-simple.qdoc
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example trafficlight-qml-simple
+ \title Qt SCXML Traffic Light QML Example (Simple)
+ \ingroup examples-qtscxml
+
+ \brief A Qt Quick application that uses a compiled state machine to
+ implement a simplified traffic light.
+
+ \image trafficlight.png
+
+ \e{Traffic Light QML Example (Simple)} demonstrates how to connect to the
+ active properties of a state in a state machine that is compiled to a class.
+
+ The UI is created using Qt Quick.
+
+ \include examples-run.qdocinc
+
+ \include trafficlight-compiling.qdocinc
+
+ \section1 Instantiating the State Machine
+
+ We instantiate the state machine as follows:
+
+ \quotefromfile trafficlight-qml-simple/TrafficLight.qml
+
+ \skipto TrafficLightStateMachine {
+ \printuntil }
+
+ \include trafficlight-state-machine.qdocinc
+
+ We connect to the states as follows:
+
+ \quotefromfile trafficlight-qml-simple/TrafficLight.qml
+ \skipto Light {
+ \printuntil /^ {4}\}/
+*/
diff --git a/examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.cpp b/examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.cpp
new file mode 100644
index 0000000..c9950c4
--- /dev/null
+++ b/examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.cpp
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtScxml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** 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 https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QGuiApplication>
+#include <QQmlApplicationEngine>
+#include <QQmlContext>
+
+#include "statemachine.h"
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication app(argc, argv);
+
+ qmlRegisterType<TrafficLightStateMachine>("TrafficLightStateMachine", 1, 0,
+ "TrafficLightStateMachine");
+
+ QQmlApplicationEngine engine;
+ engine.load(QUrl(QStringLiteral("qrc:/TrafficLight.qml")));
+ if (engine.rootObjects().isEmpty())
+ return -1;
+
+ return app.exec();
+}
+
diff --git a/examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.pro b/examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.pro
new file mode 100644
index 0000000..4de04ea
--- /dev/null
+++ b/examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.pro
@@ -0,0 +1,14 @@
+TEMPLATE = app
+
+QT += qml scxml
+CONFIG += c++11
+
+SOURCES += trafficlight-qml-simple.cpp
+
+RESOURCES += trafficlight-qml-simple.qrc
+
+STATECHARTS = ../trafficlight-common/statemachine.scxml
+
+target.path = $$[QT_INSTALL_EXAMPLES]/scxml/trafficlight-qml-simple
+INSTALLS += target
+
diff --git a/examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.qrc b/examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.qrc
new file mode 100644
index 0000000..bb75dba
--- /dev/null
+++ b/examples/scxml/trafficlight-qml-simple/trafficlight-qml-simple.qrc
@@ -0,0 +1,6 @@
+<RCC>
+ <qresource prefix="/">
+ <file>TrafficLight.qml</file>
+ <file>Light.qml</file>
+ </qresource>
+</RCC>