eliot/qt/main_window.h

91 lines
2.4 KiB
C
Raw Normal View History

/*****************************************************************************
* Eliot
* Copyright (C) 2008 Olivier Teulière
* Authors: Olivier Teulière <ipkiss @@ gmail.com>
*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*****************************************************************************/
#ifndef MAIN_WINDOW_H_
#define MAIN_WINDOW_H_
#include <QMainWindow>
#include <ui/main_window.ui.h>
class Dictionary;
class Bag;
class Board;
class History;
class Game;
class NewGame;
class PrefsDialog;
class AuxWindow;
class MainWindow: public QMainWindow
{
Q_OBJECT;
public:
MainWindow(QWidget *iParent = 0);
~MainWindow();
signals:
void dicChanged(QString iDicFile, QString iDicName);
void gameChanged(const Game *iGame);
void gameChangedNonConst(Game *iGame);
void gameUpdated();
public slots:
/// Display an error message to the user
void displayErrorMsg(QString iMsg, QString iContext = "");
private slots:
void on_action_GameNew_triggered();
void on_action_GameLoad_triggered();
void on_action_GameSaveAs_triggered();
void on_action_SettingsChooseDic_triggered();
void on_action_SettingsPreferences_triggered();
void on_action_WindowsBag_triggered();
void on_action_HelpAbout_triggered();
private:
/// Current dictionary
const Dictionary *m_dic;
/// Current game
Game *m_game;
/// The UI file generated with Qt Designer
Ui::MainWindow m_ui;
/// Dialog for creating a new game
NewGame *m_newGameDialog;
/// Dialog for the preferences
PrefsDialog *m_prefsDialog;
/// Bag window
AuxWindow *m_bagWindow;
/// Destroy the current game (if any) and the associated widgets
void destroyCurrentGame();
};
#endif