Revision control
++ // Copyright (C) 2021 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
++ /*!
++ \title Qt Quick Examples - Window and Screen
++ \example window
++ \brief This example demonstrates the Window and Screen types in QML.
++ \image qml-window-example.png {Control Window with visibility buttons
++ and screen properties, alongside a secondary Test Window}
++ \ingroup qtquickexamples
++ \examplecategory {Graphics}
++
++ \e{Window and Screen} shows how to:
++
++ \list
++ \li create a window in QML
++ \li control its \l {QQuickWindow::visibility} {visibility}
++ \li present a splash screen during application startup
++ \li access the properties of the \l Screen
++ \endlist
++
++ It also demonstrates how to package QML into \l {The Qt Resource System}
++ {resources} and provide an \l {Setting the Application Icon} {icon} to
++ create a standalone QML desktop application.
++
++ \include examples-run.qdocinc
++
++ \section1 Window Implementation
++
++ A splash screen can be created with the \l {Qt::SplashScreen}
++ {Qt.SplashScreen} flag, and should be \l {Qt::ApplicationModal}
++ {ApplicationModal} to prevent interaction with the main window. If the
++ splash window is also transparent, and showing a partially transparent
++ image, then it will look like a shaped window.
++
++ \snippet window/Splash.qml splash-properties
++
++ In this example a \l Timer will automatically dismiss the splash screen,
++ but in a real application you might want to connect to a signal from the
++ application logic to hide the splash when initialization is complete.
++
++ \snippet window/Splash.qml timer
++
++ The main window in this example is the control window, with some buttons
++ and checkboxes to control and provide feedback on the state of a secondary
++ window. Each checkbox has a binding to the property whose state it is
++ displaying, and also an onClicked handler to change the state. This is the
++ typical pattern to create a two-way binding while avoiding binding loops.
++
++ \snippet window/window.qml windowedCheckbox
++
++ \l Screen has several properties which are generally useful to
++ applications which need to rotate some content when the screen orientation
++ changes, to position windows on the screen or to convert real units to
++ logical pixel units. CurrentScreen.qml (which is displayed inline in
++ window.qml, or can be run by itself with the
++ \l {Prototyping with the QML Runtime Tool}{qml tool}) simply displays the
++ property values, while the splash screen uses them to center the window on
++ the screen.
++
++ \snippet window/Splash.qml screen-properties
++
++ If a \l Window is nested inside an \l Item or another Window, the inner
++ window becomes \e{transient for} the outer one (see \l Window for more
++ explanation). But if you want to create multiple top-level windows as
++ unrelated peers, you can create them inside a non-visual \l QtObject root
++ item, as this example does.
++ */