You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegames/knetwalk/src/mainwindow.h

98 lines
2.7 KiB

/***************************************************************************
* Copyright (C) 2004, 2005 Andi Peredri *
* andi@ukr.net *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 *
* as published by the Free Software Foundation (see COPYING) *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
***************************************************************************/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <kapplication.h>
#include <kmainwindow.h>
class Cell;
class TQAction;
class TQSound;
class TQLCDNumber;
class KSelectAction;
class MainWindow : public KMainWindow
{
Q_OBJECT
public:
MainWindow(TQWidget *parent=0, const char* name=0, WFlags fl=0);
protected:
virtual void closeEvent(TQCloseEvent*);
private:
//enum Skill { Novice, Normal, Expert, Master };
enum BoardSize
{
NoviceBoardSize = 5,
NormalBoardSize = 7,
ExpertBoardSize = 9,
MasterBoardSize = 9
};
enum
{
NumHighscores = 10,
MinimumNumCells = 20
};
typedef TQValueList<Cell*> CellList;
public slots:
void slotNewGame();
void newGame(int);
void lClicked(int index);
void rClicked(int index);
void mClicked(int index);
void showHighscores();
void configureHighscores();
void configureNotifications();
private:
Cell* uCell(Cell* cell) const;
Cell* dCell(Cell* cell) const;
Cell* lCell(Cell* cell) const;
Cell* rCell(Cell* cell) const;
bool isGameOver();
bool startBrowser(const TQString& url);
bool updateConnections();
void blink(int index);
void rotate(int index, bool toleft);
void addRandomDir(CellList& list);
void dialog(const TQString& caption, const TQString& text);
private:
bool wrapped;
Cell* root;
Cell* board[MasterBoardSize * MasterBoardSize];
TQSound* clicksound;
TQSound* connectsound;
TQSound* startsound;
TQSound* turnsound;
TQSound* winsound;
TQString username;
TQString soundpath;
TQAction* soundaction;
TQStringList highscores;
TQLCDNumber* lcd;
TQPopupMenu* gamemenu;
TQPopupMenu* skillmenu;
int m_clickcount;
KSelectAction* m_levels;
};
#endif // MAINWINDOW_H