/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** 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 Digia.  For licensing terms and
** conditions see http://qt.digia.com/licensing.  For further information
** use the contact form at http://qt.digia.com/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: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\page qtquick-index.html
\title Qt Quick
\brief The Qt Quick module implements the "standard library" for QML

The Qt Quick module is the standard library for writing QML applications.
While the \l{Qt QML} module provides the QML engine and
language infrastructure, the Qt Quick module provides all the basic
types necessary for creating user interfaces with QML. It
provides a visual canvas and includes types for creating and animating
visual components, receiving user input, creating data models and views
and delayed object instantiation.

The Qt Quick module provides both a \l{Qt Quick QML Types}{QML API} which supplies
QML types for creating user interfaces with the QML language, and a
\l{Qt Quick C++ Classes}{C++ API} for extending QML applications with C++ code.

\note From Qt 5.1, a set of Qt Quick based UI controls is available to
create user interfaces. Please see \l{Qt Quick Controls}
for more information.

For those new to QML and Qt Quick, please see
\l{QML Application Developer Resources}
for an introduction to writing QML applications.

\section1 Important Concepts in Qt Quick

Qt Quick provides everything needed to create a rich application with a fluid
and dynamic user interface. It enables user interfaces to be built around the
behavior of user interface components and how they connect with one another,
and it provides a visual canvas with its own coordinate system and rendering
engine. Animation and transition effects are a first class concept in Qt Quick,
and visual effects can be supplemented through specialised components for
particle and shader effects.

\list
\li \l{qtquick-visualcanvas-topic.html}{The Visual Canvas}
\li \l{qtquick-input-topic.html}{User Input}
\li \l{qtquick-positioning-topic.html}{Positioning}
\li \l{qtquick-statesanimations-topic.html}{States, Transitions And Animations}
\li \l{qtquick-modelviewsdata-topic.html}{Data - Models, Views and Data Storage}
\li \l{qtquick-effects-topic.html}{Particles And Graphical Effects}
\li \l{qtquick-convenience-topic.html}{Convenience Types}
\endlist

When using the \c QtQuick module, you will need to know how to write QML
applications using the QML language. In particular, you should have a grasp
of the \l{qtquick-quickstart-basics.html}{QML Basics} and
\l{qtquick-quickstart-essentials.html}{QML Essentials} from the
\l{qtquick-applicationdevelopers.html}{QML Application Developer Resources}.

To find out more about using the QML language, see the \l{Qt QML} module documentation.


\section1 Qt Quick Module Documentation

\list
    \li \l{qtquick-qmltypereference.html}{Qt Quick QML Types}
        \list
        \li \l{qtquick-qmltypereference.html#importing-qtquick}{Importing QtQuick}
        \li \l{qtquick-qmltypereference.html#basic-types}{Basic Types}
        \li \l{qtquick-qmltypereference.html#object-types}{Object Types}
            \list
            \li \l{qtquick-qmltypereference.html#visual-types}{Visual Types}
            \li \l{qtquick-qmltypereference.html#user-input}{User Input}
            \li \l{qtquick-qmltypereference.html#positioning}{Positioning}
            \li \l{qtquick-qmltypereference.html#states-transitions-and-animations}{States, Transitions And Animations}
            \li \l{qtquick-qmltypereference.html#model-view-types-and-data-storage-and-access}{Model/View Types And Data Storage And Access}
            \li \l{qtquick-qmltypereference.html#graphical-effects}{Graphical Effects}
            \li \l{qtquick-qmltypereference.html#convenience-types}{Convenience Types}
            \li \l{qtquick-qmltypereference.html#canvas-similar-to-html5-canvas}{Canvas (similar to HTML5 Canvas)}
            \endlist
        \endlist

    \li \l{qtquick-cppextensionpoints.html}{C++ Extension Points}
        \list
        \li \l{qtquick-cppextensionpoints.html#user-defined-qquickitem-derived-types}{Creating User-Defined QQuickItem-Derived Types}
        \li \l{qtquick-cppextensionpoints.html#scene-graph-related-classes}{Scene Graph-Related Classes}
        \li \l{qtquick-cppextensionpoints.html#pixmap-and-threaded-image-support}{Pixmap and Threaded Image Support}
        \endlist

\endlist

\section1 Reference Documentation

Additional Qt Quick information:
\list
\li \l{Qt Quick C++ Classes} - the C++ API provided by the
    Qt Quick module
\li \l{Qt Quick QML Types} - a list of QML types provided by the
    \c{QtQuick} import
    \list
    \li \l{QtQuick.XmlListModel 2}{XML List Model} - contains types
    for creating models from XML data
    \li \l{QtQuick.LocalStorage 2}{Local Storage} - a submodule
    containing a JavaScript interface for an SQLite database
    \li \l{QtQuick.Particles 2}{Particles} - provides a particle
    system for Qt Quick
    \li \l{QtQuick.Window 2}{Window} - contains types for creating
    top-level windows and accessing screen information
    \li \l{Qt Quick Dialogs}{Dialogs} - contains types for creating and
    interacting with system dialogs
    \endlist
\li \l{Qt Quick Release Notes} - list of changes and additions in the Qt Quick
\li \l{Qt Quick Code Samples} - list of all Qt Quick examples
module
\endlist

Further information for writing QML applications:
\list
\li \l{QML Application Developer Resources}
    - essential information for application development with QML and Qt Quick
\li \l{Qt QML} - documentation for the
    Qt QML module, which provides the QML engine and language infrastructure
\endlist
*/
