/**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the Technology Preview License Agreement accompanying ** this package. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@nokia.com. ** ** ** ** ** ** ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include "tetrixboard.h" #include "tetrixwindow.h" //! [0] TetrixWindow::TetrixWindow() { board = new TetrixBoard; //! [0] nextPieceLabel = new QLabel; nextPieceLabel->setFrameStyle(QFrame::Box | QFrame::Raised); nextPieceLabel->setAlignment(Qt::AlignCenter); board->setNextPieceLabel(nextPieceLabel); //! [1] scoreLcd = new QLCDNumber(5); scoreLcd->setSegmentStyle(QLCDNumber::Filled); //! [1] levelLcd = new QLCDNumber(2); levelLcd->setSegmentStyle(QLCDNumber::Filled); linesLcd = new QLCDNumber(5); linesLcd->setSegmentStyle(QLCDNumber::Filled); //! [2] startButton = new QPushButton(tr("&Start")); startButton->setFocusPolicy(Qt::NoFocus); quitButton = new QPushButton(tr("&Quit")); quitButton->setFocusPolicy(Qt::NoFocus); pauseButton = new QPushButton(tr("&Pause")); //! [2] //! [3] pauseButton->setFocusPolicy(Qt::NoFocus); //! [3] //! [4] connect(startButton, SIGNAL(clicked()), board, SLOT(start())); //! [4] //! [5] connect(quitButton , SIGNAL(clicked()), qApp, SLOT(quit())); connect(pauseButton, SIGNAL(clicked()), board, SLOT(pause())); connect(board, SIGNAL(scoreChanged(int)), scoreLcd, SLOT(display(int))); connect(board, SIGNAL(levelChanged(int)), levelLcd, SLOT(display(int))); connect(board, SIGNAL(linesRemovedChanged(int)), linesLcd, SLOT(display(int))); //! [5] //! [6] QGridLayout *layout = new QGridLayout; layout->addWidget(createLabel(tr("NEXT")), 0, 0); layout->addWidget(nextPieceLabel, 1, 0); layout->addWidget(createLabel(tr("LEVEL")), 2, 0); layout->addWidget(levelLcd, 3, 0); layout->addWidget(startButton, 4, 0); layout->addWidget(board, 0, 1, 6, 1); layout->addWidget(createLabel(tr("SCORE")), 0, 2); layout->addWidget(scoreLcd, 1, 2); layout->addWidget(createLabel(tr("LINES REMOVED")), 2, 2); layout->addWidget(linesLcd, 3, 2); layout->addWidget(quitButton, 4, 2); layout->addWidget(pauseButton, 5, 2); setLayout(layout); setWindowTitle(tr("Tetrix")); resize(550, 370); } //! [6] //! [7] QLabel *TetrixWindow::createLabel(const QString &text) { QLabel *lbl = new QLabel(text); lbl->setAlignment(Qt::AlignHCenter | Qt::AlignBottom); return lbl; } //! [7]