/* QSoloCards is a collection of Solitaire card games written using Qt Copyright (C) 2009 Steve Moore This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include "GameBoard.h" #include "Help.h" #include "About.h" #include "GameMgr.h" class MainWindow : public QMainWindow { Q_OBJECT public: static const unsigned int MaxWidth; static const unsigned int MaxHeight; static const QString SizeStr; static const QString PtStr; static const QString HelpStr; static const QString GameIdStr; static const QString AnimationStr; MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: void slotNewGame(); void slotRestartGame(); void slotSelectGame(QAction *); void slotAnimation(bool); void slotCheat(bool); void slotUndo(); void slotRedo(); void slotHint(); void slotUndoAvail(bool avail); void slotRedoAvail(bool avail); void slotScoreChanged(int score,const QString &); void slotHelp(); void slotAbout(); void slotHelpClosed(int); void slotShowHelp(const QString & helpFile); void slotAnimationStarted(); void slotAnimationComplete(); void slotNewGameTimer(); void slotDemoStarted(); void slotDemoStopped(); void slotDemoActionItem(bool); protected: void showEvent(QShowEvent * pShowEvent); private: void addMenuItems(); void setupGameBoard(GameBoard * pGameBoard); GameBoard * m_pGameBoard; QMenuBar * m_pMenuBar; QMenu * m_pGameSelectMenu; QMenu * m_pGameOptionsMenu; QMenu * m_pHelpMenu; QSettings m_settings; QAction * m_pNewGameAction; QAction * m_pRestartAction; QAction * m_pUndoAction; QAction * m_pRedoAction; QAction * m_pHintAction; QAction * m_pAnimationAction; QAction * m_pDemoAction; QAction * m_pCheatAction; QStatusBar * m_pStatusBar; QLabel * m_pStatusBarLabel; QPointer m_helpWindow; // use a QPointer so we don't have to worry about knowing if // the help window has been deleted. The Window auto deletes // when closes. QPointer m_aboutWindow; GameMgr m_gameMgr; bool m_firstShow; }; #endif // MAINWINDOW_H