summaryrefslogtreecommitdiffstats
path: root/examples/scxml/invoke/doc/src/invoke.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scxml/invoke/doc/src/invoke.qdoc')
-rw-r--r--examples/scxml/invoke/doc/src/invoke.qdoc75
1 files changed, 75 insertions, 0 deletions
diff --git a/examples/scxml/invoke/doc/src/invoke.qdoc b/examples/scxml/invoke/doc/src/invoke.qdoc
new file mode 100644
index 0000000..8e8d903
--- /dev/null
+++ b/examples/scxml/invoke/doc/src/invoke.qdoc
@@ -0,0 +1,75 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \example invoke
+ \title SCXML Invoke
+ \examplecategory {Data Processing & I/O}
+ \ingroup examples-qtscxml
+
+ \brief Invokes a compiled nested state machine.
+
+ \image invoke.png
+
+ \e{Invoke} demonstrates how to use the \c <invoke> element
+ with generated nested state-machines, where the SCXML file is compiled to
+ a C++ class. The \c <invoke> element is used to create an instance of an
+ external service.
+
+ \include examples-run.qdocinc
+
+ \section1 Invoking the State Machine
+
+ In \e statemachine.scxml, we specify a state machine with the name
+ \e DirectionsStateMachine of type \e http://www.w3.org/TR/scxml/ to invoke:
+
+ \quotefromfile invoke/statemachine.scxml
+ \skipto scxml
+ \printuntil
+
+ \section1 Compiling the State Machine
+ We link against the Qt SCXML module by adding the following lines to the
+ example's build files.
+
+ \section2 \e invoke.pro when using qmake:
+
+ \quotefromfile invoke/invoke.pro
+ \skipto QT
+ \printline scxml
+
+ We then specify the state machine to compile:
+ \skipto STATECHARTS
+ \printline scxml
+
+ \section2 \e CMakeLists.txt when using cmake:
+ \quotefromfile invoke/CMakeLists.txt
+ \skipto find_package
+ \printline Scxml
+ \skipto target_link_libraries
+ \printuntil )
+
+ We then specify the state machine to compile:
+ \skipto qt6_add_statecharts
+ \printuntil )
+
+ The statechart directives \e STATECHARTS or \e qt6_add_statecharts invoke the Qt SCXML
+ Compiler, \c qscxmlc, which is run automatically to generate \e statemachine.h and
+ \e statemachine.cpp, which are then added appropriately as headers and sources for
+ compilation.
+
+ \section1 Declaring the state machine as QML element
+
+ The state machine is declared as a QML element as follows:
+ \quotefromfile invoke/invoke-qml.h
+ \skipto struct
+ \printuntil }
+
+ \section1 Instantiating the State Machine
+
+ We instantiate the generated \c DirectionsStateMachine element in the \e MainView.qml
+ file, as follows:
+
+ \quotefromfile invoke/MainView.qml
+ \skipto DirectionsStateMachine
+ \printuntil }
+*/