doc/src/examples/qtscripttetrix.qdoc
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the documentation of the Qt Toolkit.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    15 **
       
    16 ** GNU Lesser General Public License Usage
       
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    18 ** General Public License version 2.1 as published by the Free Software
       
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    20 ** packaging of this file.  Please review the following information to
       
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    23 **
       
    24 ** In addition, as a special exception, Nokia gives you certain additional
       
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
       
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
       
    27 **
       
    28 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 /*!
       
    43     \example script/qstetrix
       
    44     \title Qt Script Tetrix Example
       
    45 
       
    46     The QSTetrix example is a Qt Script version of the classic Tetrix game.
       
    47 
       
    48     \image tetrix-example.png
       
    49 
       
    50     \section1 Overview
       
    51 
       
    52     The program logic in this example is a fairly straight port of the
       
    53     logic in the C++ \l{Tetrix Example}. You may find it useful to compare
       
    54     the implementations of the \c TetrixBoard, \c TetrixPiece and
       
    55     \c TetrixWindow classes to see how Qt Script is used to implement
       
    56     methods, call Qt functions, and emit signals.
       
    57 
       
    58     \section1 Setting up the GUI
       
    59 
       
    60     The graphical user interface is defined in a UI file, created
       
    61     using Qt Designer, and is set up in the example's C++ \c{main.cpp} file.
       
    62 
       
    63     \snippet examples/script/qstetrix/main.cpp 0
       
    64 
       
    65     We define a custom UI loader that handles our \c TetrixBoard widget; this
       
    66     is the main component of the UI (where the pieces are drawn).
       
    67 
       
    68     \snippet examples/script/qstetrix/main.cpp 1
       
    69 
       
    70     We initialize the script engine to have the Qt namespace, so that
       
    71     e.g., \l{Qt::Key_Left}{Qt.Key_Left} will be available to script code.
       
    72     We also make the application object available (for the
       
    73     \l{QApplication::}{quit()} slot).
       
    74 
       
    75     \snippet examples/script/qstetrix/main.cpp 2
       
    76 
       
    77     Several scripts are evaluated as part of the engine setup process.
       
    78     The \c{tetrixpiece.js} file contains the definition of the \c TetrixPiece
       
    79     class, which is used to populate the play field. The \c{tetrixboard.js}
       
    80     file contains the definition of the \c TetrixBoard class, which contains
       
    81     the main game logic. Finally, \c{tetrixwindow.js} contains the definition
       
    82     of the \c TetrixWindow class, which wires up the top-level widget.
       
    83 
       
    84     \snippet examples/script/qstetrix/main.cpp 3
       
    85 
       
    86     A form is created from the UI file. A new \c TetrixWindow script object
       
    87     is then constructed, passing the form as its argument.
       
    88 
       
    89     \snippet examples/script/qstetrix/main.cpp 4
       
    90 
       
    91     The form is shown, and the event loop is entered.
       
    92 */