1
/****************************************************************************
3
** Copyright (C) 2004-2005 Trolltech AS. All rights reserved.
5
** This file is part of the example classes of the Qt Toolkit.
7
** This file may be distributed under the terms of the Q Public License
8
** as defined by Trolltech AS of Norway and appearing in the file
9
** LICENSE.QPL included in the packaging of this file.
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 as published by the Free Software
13
** Foundation and appearing in the file LICENSE.GPL included in the
14
** packaging of this file.
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
17
** information about Qt Commercial License Agreements.
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
21
** Contact info@trolltech.com if any conditions of this licensing are
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27
****************************************************************************/
31
#include "tetrixboard.h"
32
#include "tetrixwindow.h"
34
TetrixWindow::TetrixWindow()
36
board = new TetrixBoard;
38
nextPieceLabel = new QLabel;
39
nextPieceLabel->setFrameStyle(QFrame::Box | QFrame::Raised);
40
nextPieceLabel->setAlignment(Qt::AlignCenter);
41
board->setNextPieceLabel(nextPieceLabel);
43
scoreLcd = new QLCDNumber(5);
44
scoreLcd->setSegmentStyle(QLCDNumber::Filled);
45
levelLcd = new QLCDNumber(2);
46
levelLcd->setSegmentStyle(QLCDNumber::Filled);
47
linesLcd = new QLCDNumber(5);
48
linesLcd->setSegmentStyle(QLCDNumber::Filled);
50
startButton = new QPushButton(tr("&Start"));
51
startButton->setFocusPolicy(Qt::NoFocus);
52
quitButton = new QPushButton(tr("&Quit"));
53
quitButton->setFocusPolicy(Qt::NoFocus);
54
pauseButton = new QPushButton(tr("&Pause"));
55
pauseButton->setFocusPolicy(Qt::NoFocus);
57
connect(startButton, SIGNAL(clicked()), board, SLOT(start()));
58
connect(quitButton , SIGNAL(clicked()), qApp, SLOT(quit()));
59
connect(pauseButton, SIGNAL(clicked()), board, SLOT(pause()));
60
connect(board, SIGNAL(scoreChanged(int)), scoreLcd, SLOT(display(int)));
61
connect(board, SIGNAL(levelChanged(int)), levelLcd, SLOT(display(int)));
62
connect(board, SIGNAL(linesRemovedChanged(int)),
63
linesLcd, SLOT(display(int)));
65
QGridLayout *layout = new QGridLayout;
66
layout->addWidget(createLabel(tr("NEXT")), 0, 0);
67
layout->addWidget(nextPieceLabel, 1, 0);
68
layout->addWidget(createLabel(tr("LEVEL")), 2, 0);
69
layout->addWidget(levelLcd, 3, 0);
70
layout->addWidget(startButton, 4, 0);
71
layout->addWidget(board, 0, 1, 6, 1);
72
layout->addWidget(createLabel(tr("SCORE")), 0, 2);
73
layout->addWidget(scoreLcd, 1, 2);
74
layout->addWidget(createLabel(tr("LINES REMOVED")), 2, 2);
75
layout->addWidget(linesLcd, 3, 2);
76
layout->addWidget(quitButton, 4, 2);
77
layout->addWidget(pauseButton, 5, 2);
80
setWindowTitle(tr("Tetrix"));
84
QLabel *TetrixWindow::createLabel(const QString &text)
86
QLabel *lbl = new QLabel(text);
87
lbl->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);