/****************************************************************************
**
** 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$
**
****************************************************************************/

/*!
    \page qtscxml-index.html
    \title Qt SCXML
    \brief Provides functionality to create state machines from SCXML files.

    The Qt SCXML module provides functionality to create state machines from
    \l {SCXML Specification}{SCXML} files. This includes both dynamically
    creating state machines (loading the SCXML file and instantiating states
    and transitions) and generating a C++ file that has a class implementing
    the state machine. It also contains functionality to support data models
    and executable content.

    \section1 Getting Started

    To include the definitions of the module's classes, use the following directive:

    \code
    #include <QScxmlStateMachine>
    \endcode

    To import the QML types into your application, use the following import statement
    in your .qml file:

    \qml
    import QtScxml
    \endqml

    To link against the module:

    Using cmake:
    \include qtscxml-module-use.qdocinc cmakebuild

    Using qmake:
    \include qtscxml-module-use.qdocinc qmakebuild

    \section1 Articles and Guides

    \list
      \li \l {Qt SCXML Overview}
      \li \l {Instantiating State Machines}
      \li \l {SCXML Compliance}
      \li \l {Using the Qt SCXML Compiler (qscxmlc)}
    \endlist

    \section1 Examples

    \list
      \li \l {Qt SCXML Examples}
    \endlist

    \section1 Reference

    \list
      \li \l {Qt SCXML C++ Classes} {C++ Classes and Namespaces}
      \li \l {Qt SCXML QML Types} {QML Types}
    \endlist

    \section1 Module Evolution
    \l{Changes to Qt SCXML} lists important changes in the module API
       and functionality that were done for the Qt 6 series of Qt.

    \section1 Licenses and Trademarks

    The Qt SCXML module is available under commercial licenses from
    \l{The Qt Company}. In addition, it is available under free software licenses:
       The \l{GNU Lesser General Public License, version 3}, or
       the \l{GNU General Public License, version 2}.
       See \l{Qt Licensing} for further details.
*/
