// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \module QtGui
    \title Qt GUI C++ Classes
    \ingroup modules
    \qtcmakepackage Gui
    \qtvariable gui

    \brief The Qt GUI module provides the basic enablers for graphical
    applications written with Qt.

    The \l{Qt GUI} page contains information about how to use the module.
*/

/*!
    \module QtGuiPrivate
    \title Qt GUI Private C++ Classes
    \qtcmakepackage Gui
    \qtvariable gui-private

    \brief Provides access to private GUI functionality.

    Use the following CMake commands in your \c {CMakeLists.txt} to access
    private Qt GUI APIs:

    \badcode
    find_package(Qt6 REQUIRED COMPONENTS Gui)
    target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
    \endcode
*/

/*!
    \page qtgui-index.html
    \title Qt GUI

    The Qt GUI module provides classes for windowing system
    integration, event handling, OpenGL and OpenGL ES integration, 2D
    graphics, basic imaging, fonts, and text. These classes are used
    internally by Qt's user interface technologies but can also be
    used directly, for example to write applications using low-level
    OpenGL ES graphics APIs.

    For application developers writing user interfaces, Qt provides
    higher level APIs, like Qt Quick, that are much more suitable
    than the enablers found in the Qt GUI module.

    \if !defined(qtforpython)

    \section1 Using the Module

    \include {module-use.qdocinc} {using the c++ api}

    \section2 Building with CMake

    \include {module-use.qdocinc} {building with cmake} {Gui}

    \section2 Building with qmake

    If you use \l qmake to build your projects, Qt GUI is included by
    default. To disable Qt GUI, add the following line to your \c .pro file:

    \snippet code/doc_src_qtgui.pro 1
    \endif

    \section1 Articles and Guides

    \list
        \li \l {Qt GUI Overview}
        \list
            \li \l {Application Windows} {Qt GUI Application Windows}
            \li \l {2D Graphics} {Qt GUI 2D Graphics}
            \li \l {RHI Graphics} {Qt GUI Accelerated 2D and 3D Graphics using the Qt RHI}
            \li \l {3D Matrix and Vector Math} {Qt GUI Matrix and Vector Math}
            \li \l {OpenGL and OpenGL ES Integration}
                   {Qt GUI OpenGL and OpenGL ES Integration}
            \li \l {Vulkan Integration} {Qt GUI Vulkan Integration}
        \endlist
    \endlist

    \section1 Reference

    \list
        \li \l{Qt GUI C++ Classes}
            \list
                \li \l{Event Classes}
                \li \l{Painting Classes}
                \li \l{Rendering in 3D}
            \endlist
    \endlist

    \section1 Module Evolution

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

    \section1 Licenses and Attributions

    Qt GUI 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.

    Furthermore, Qt GUI in Qt \QtVersion may contain third-party
    modules under following permissive licenses:

    \generatelist{groupsbymodule attributions-qtgui}
 */
