/****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the Qt Installer Framework.
**
** $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$
**
****************************************************************************/

/*!
    \contentspage{index.html}{Qt Installer Framework}
    \previouspage ifw-component-description.html
    \page noninteractive.html
    \nextpage scripting.html

    \title Installer Pages

    This section describes the functions that are called to implement the
    installer pages and the widgets available on each page, such as push
    buttons, radio buttons, and line edits.

    \section1 Introduction Page

    Call the \a IntroductionPageCallback function to construct the introduction
    page.

    Wizard buttons:
    \list
        \o  \gui Next
        \o  \gui Cancel
    \endlist

    \section1 License Check Page

    Call the \a LicenseAgreementPageCallback function to construct the license
    check page.

    Wizard buttons:
    \list
        \o  \gui Next
        \o  \gui Cancel
        \o  \gui Back
    \endlist

    Radio buttons:
    \list
    \o \a acceptLicenseRB

       Accepts the license agreement. Not selected by default.
    \o \a rejectLicenseRB

       Rejects the license agreement. Selected by default.
    \endlist

    \section1 Target Directory Selection Page

    Call the \a TargetDirectoryPageCallback function to implement the target
    directory selection page.

    Wizard buttons:
    \list
        \o \gui Next
        \o \gui Cancel
        \o \gui Back
    \endlist

    To specify a default value for the target directory for installation, use
    the \a targetDirectoryLE line edit widget.

    \section1 Component Selection Page

    Call the \a ComponentSelectionPageCallback function to implement the
    component selection page.

    Wizard buttons:
    \list
        \o  \gui Next
        \o  \gui Cancel
        \o  \gui Back
    \endlist

    Methods:
    \list
        \o  \a {selectComponent( id )}

            Selects the component with \c id (string).
        \o  \a {deselectComponent( id )}

            Deselects the component with \c id (string).
    \endlist

    In uninstallation mode, additional radio buttons are available:
    \list
        \o  \a uninstallAllComponentsRB

            Uninstalls all components. Default.
        \o  \a keepSelectedComponentsRB

            Uninstalls only unselected components. Mark components selected
            (\a selectComponent) or not selected (\a deselectComponent) to add
            and remove components.
    \endlist

    \section1 Ready for Installation Page

    Call the \a ReadyForInstallationPageCallback function to implement the ready
    for installation page.

    Wizard buttons:
    \list
        \o  \gui Install
        \o  \gui Cancel
        \o  \gui Back
    \endlist

    \section1 Perform Installation Page

    Call the \a IntroductionPageCallback function to implement the perform
    installation page.

    To show or hide installation details, implement the \a details.button push
    button widget.

    Wizard buttons:
    \list
        \o  \gui Cancel
    \endlist

    \section1 Installation Finished Page

    Call the \a FinishedPageCallback function to implement the installation
    finished page.

    Wizard buttons:
    \list
        \o  \gui Finish
    \endlist

    \section1 Custom Pages

    Custom pages are registered as \a{Dynamic${ObjectName}}, where \a{${ObjectName}}
    is the object name set in the UI file.
    Thus, the \a{Dynamic${ObjectName}Callback()} function is called. Widgets can
    be addressed using their object names (from the UI file):
    \code
    var page = pageWidgetByObjectName( "DynamicSomePage" )
    page.myButton.click //direct child of the UI file's widget
    page.someFancyWidget.subWidget.setText( "foobar" ) // nested widget
    \endcode


    \section1 Message Boxes
    \table
    \header
                      \o Identifier
                      \o Possible Answers
                      \o Description
    \row
                      \o \a cancelInstallation
                      \o Yes, No
                      \o Confirmation for canceling the installation when end
                         users select \gui Cancel on the installer pages.
    \row
                      \o \a overwriteTargetDirectory
                      \o Yes, No
                      \o Confirmation for using an already existing directory as
                         the target directory for installation.
    \row
                      \o \a installationError
                      \o OK
                      \o A fatal error occurred while performing the
                         installation.
    \row
                      \o \a installationErrorWithRetry
                      \o Retry, Ignore, Cancel
                      \o An error occurred while performing the installation.
                         End users can select \gui Retry to try again.
    \row
                      \o \a metaInfoJobError
                      \o OK
                      \o An error occurred while retrieving meta information
                         when using an online installer.
    \endtable

*/
