Source Code (Use browser search to find items of interest.)
Class Index
ksmiletris'GameWindow (./kdegames/ksmiletris/gamewindow.h:36)
class GameWindow : public KTMainWindow {
Q_OBJECT
public:
GameWindow(QWidget *parent=0, const char *name=0);
private:
enum menuPosition { Top, Bottom, Floating }; // hack
KMenuBar *menu;
QPopupMenu *file_popup, *pieces_popup, *options_popup, *help_popup;
int pauseID, smilesID, symbolsID, iconsID, soundsID;
KStatusBar *status;
GameWidget *game;
public slots:
void menu_newGame();
void menu_pause();
void menu_endGame();
void menu_highScores();
void menu_smiles();
void menu_symbols();
void menu_icons();
void menu_sounds();
void updateStats(int level, int points);
void gameOver();
void movedMenu(menuPosition);
};
ksmiletris'GameWindow::GameWindow() (./kdegames/ksmiletris/gamewindow.cpp:48)
GameWindow::GameWindow(QWidget *, const char *name)
: KTMainWindow(name)
{
setCaption(i18n("Smiletris"));
file_popup = new QPopupMenu();
file_popup->insertItem(i18n("&New Game"), this, SLOT(menu_newGame()), CTRL+Key_N);
pauseID = file_popup->insertItem(i18n("&Pause"), this, SLOT(menu_pause()), Key_F2);
file_popup->insertItem(i18n("&End Game"), this, SLOT(menu_endGame()), CTRL+Key_E);
file_popup->insertSeparator();
file_popup->insertItem(i18n("&High Scores..."), this, SLOT(menu_highScores()));
file_popup->insertSeparator();
file_popup->insertItem(i18n("&Quit"), qApp, SLOT(quit()), CTRL+Key_Q);
pieces_popup = new QPopupMenu();
smilesID = pieces_popup->insertItem(i18n("&Smiles"), this, SLOT(menu_smiles()));
symbolsID = pieces_popup->insertItem(i18n("S&ymbols"), this, SLOT(menu_symbols()));
iconsID = pieces_popup->insertItem(i18n("&Icons"), this, SLOT(menu_icons()));
options_popup = new QPopupMenu();
options_popup->insertItem(i18n("&Pieces"), pieces_popup);
options_popup->insertSeparator();
soundsID = options_popup->insertItem(i18n("&Sounds"), this, SLOT(menu_sounds()));
QString about;
about = i18n(
"KSmiletris %1\n\n"
"by Sandro Sigala <ssigala@globalnet.it>\n\n"
"Feedbacks are welcome!\n").arg(VERSION);
help_popup = helpMenu(about);
menu = new KMenuBar(this);
menu->insertItem(i18n("&File"), file_popup);
menu->insertItem(i18n("&Options"), options_popup);
menu->insertSeparator();
menu->insertItem(i18n("&Help"), help_popup);
setMenu(menu);
connect(menu, SIGNAL(moved(menuPosition)),
this, SLOT(movedMenu(menuPosition)));
status = new KStatusBar(this);
status->insertItem(i18n("Level: 99"), 1);
status->insertItem(i18n("Score: 999999"), 2);
setStatusBar(status);
status->changeItem("", 1);
status->changeItem("", 2);
game = new GameWidget(this);
setView(game);
connect(game, SIGNAL(changedStats(int, int)),
this, SLOT(updateStats(int, int)));
connect(game, SIGNAL(gameOver()), this, SLOT(gameOver()));
resize(default_width, default_height + menu->height() + status->height());
setMaximumSize(width(), height());
setMinimumSize(width(), height());
// Read configuration
KConfig *config = kapp->config();
config->setGroup("Options");
PiecesType pieces_type = (PiecesType)config->readNumEntry("Pieces", static_cast<int>(Pieces_Smiles));
game->setPieces(pieces_type);
switch (pieces_type) {
case Pieces_Smiles:
pieces_popup->setItemChecked(smilesID, true);
break;
case Pieces_Symbols:
pieces_popup->setItemChecked(symbolsID, true);
break;
case Pieces_Icons:
pieces_popup->setItemChecked(iconsID, true);
}
game->do_sounds = config->readBoolEntry("Sounds", true);
options_popup->setItemChecked(soundsID, game->do_sounds);
}
ksmiletris'GameWindow::menu_newGame() (./kdegames/ksmiletris/gamewindow.cpp:126)
void GameWindow::menu_newGame()
{
file_popup->setItemChecked(pauseID, false);
game->newGame();
}
ksmiletris'GameWindow::menu_pause() (./kdegames/ksmiletris/gamewindow.cpp:132)
void GameWindow::menu_pause()
{
if (game->in_game) {
game->in_pause = !game->in_pause;
file_popup->setItemChecked(pauseID, game->in_pause);
game->repaintChilds();
}
}
ksmiletris'GameWindow::menu_endGame() (./kdegames/ksmiletris/gamewindow.cpp:141)
void GameWindow::menu_endGame()
{
if (game->in_game) {
game->in_game = false;
game->repaintChilds();
file_popup->setItemChecked(pauseID, false);
gameOver();
}
}
ksmiletris'GameWindow::menu_highScores() (./kdegames/ksmiletris/gamewindow.cpp:151)
void GameWindow::menu_highScores()
{
ScoreDialog d(this);
d.exec();
}
ksmiletris'GameWindow::menu_smiles() (./kdegames/ksmiletris/gamewindow.cpp:157)
void GameWindow::menu_smiles()
{
options_popup->setItemChecked(smilesID, true);
options_popup->setItemChecked(symbolsID, false);
options_popup->setItemChecked(iconsID, false);
KConfig *config = kapp->config();
config->setGroup("Options");
config->writeEntry("Pieces", static_cast<int>(Pieces_Smiles));
game->setPieces(Pieces_Smiles);
}
ksmiletris'GameWindow::menu_symbols() (./kdegames/ksmiletris/gamewindow.cpp:168)
void GameWindow::menu_symbols()
{
options_popup->setItemChecked(smilesID, false);
options_popup->setItemChecked(symbolsID, true);
options_popup->setItemChecked(iconsID, false);
KConfig *config = kapp->config();
config->setGroup("Options");
config->writeEntry("Pieces", static_cast<int>(Pieces_Symbols));
game->setPieces(Pieces_Symbols);
}
ksmiletris'GameWindow::menu_icons() (./kdegames/ksmiletris/gamewindow.cpp:179)
void GameWindow::menu_icons()
{
options_popup->setItemChecked(smilesID, false);
options_popup->setItemChecked(symbolsID, false);
options_popup->setItemChecked(iconsID, true);
KConfig *config = kapp->config();
config->setGroup("Options");
config->writeEntry("Pieces", static_cast<int>(Pieces_Icons));
game->setPieces(Pieces_Icons);
}
ksmiletris'GameWindow::menu_sounds() (./kdegames/ksmiletris/gamewindow.cpp:190)
void GameWindow::menu_sounds()
{
game->do_sounds = !game->do_sounds;
options_popup->setItemChecked(soundsID, game->do_sounds);
KConfig *config = kapp->config();
config->setGroup("Options");
config->writeEntry("Sounds", game->do_sounds);
}
ksmiletris'GameWindow::updateStats() (./kdegames/ksmiletris/gamewindow.cpp:199)
void GameWindow::updateStats(int level, int points)
{
QString l, p;
l.setNum(level);
p.setNum(points);
status->changeItem(QString("Level: ") + l, 1);
status->changeItem(QString("Score: ") + p, 2);
}
ksmiletris'GameWindow::gameOver() (./kdegames/ksmiletris/gamewindow.cpp:208)
void GameWindow::gameOver()
{
status->changeItem("", 1);
status->changeItem("", 2);
KConfig *config = kapp->config();
config->setGroup("High Score");
QString s, num, level, score, name;
int i;
for (i = 1; i <= 10; ++i) {
num.setNum(i);
s = "Pos" + num + "Score";
score = config->readEntry(s);
if (game->num_points > score.toInt())
break;
}
if (i <= 10) {
NewScoreDialog d(this);
if (d.exec()) {
for (int j = 10; j > i; --j) {
num.setNum(j - 1);
s = "Pos" + num + "Level";
level = config->readEntry(s, "0");
s = "Pos" + num + "Score";
score = config->readEntry(s, "0");
s = "Pos" + num + "Name";
name = config->readEntry(s, "Noname");
num.setNum(j);
s = "Pos" + num + "Level";
config->writeEntry(s, level);
s = "Pos" + num + "Score";
config->writeEntry(s, score);
s = "Pos" + num + "Name";
config->writeEntry(s, name);
}
num.setNum(i);
s = "Pos" + num + "Level";
level.setNum(game->num_level);
config->writeEntry(s, level);
s = "Pos" + num + "Score";
score.setNum(game->num_points);
config->writeEntry(s, score);
s = "Pos" + num + "Name";
config->writeEntry(s, d.name());
ScoreDialog h(this);
h.exec();
}
}
}
ksmiletris'GameWindow::movedMenu() (./kdegames/ksmiletris/gamewindow.cpp:261)
void GameWindow::movedMenu(menuPosition pos)
{
if (pos == Top) {
setMinimumSize(default_width, default_height + menu->height() + status->height());
setMaximumSize(default_width, default_height + menu->height() + status->height());
resize(width(), height() + menu->height());
} else {
setMinimumSize(default_width, default_height + status->height());
setMaximumSize(default_width, default_height + status->height());
resize(width(), height() - menu->height());
}
}