2008-06-07 21:11:57 +00:00
|
|
|
/***************************************************************************
|
|
|
|
|
* Copyright (C) 2006 by FThauer FHammer *
|
|
|
|
|
* f.thauer@web.de *
|
|
|
|
|
* *
|
|
|
|
|
* 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., *
|
|
|
|
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
|
|
|
|
***************************************************************************/
|
|
|
|
|
#ifndef STARTWINDOWIMPL_H
|
|
|
|
|
#define STARTWINDOWIMPL_H
|
|
|
|
|
|
2008-06-08 21:18:29 +00:00
|
|
|
#include <boost/shared_ptr.hpp>
|
2008-06-07 21:11:57 +00:00
|
|
|
#include "ui_startwindow.h"
|
2008-06-08 21:18:29 +00:00
|
|
|
#include "game_defs.h"
|
|
|
|
|
|
|
|
|
|
class GuiInterface;
|
|
|
|
|
class Session;
|
|
|
|
|
class Game;
|
2008-06-07 21:11:57 +00:00
|
|
|
|
|
|
|
|
class ConfigFile;
|
|
|
|
|
class gameTableImpl;
|
2008-06-08 21:18:29 +00:00
|
|
|
class newGameDialogImpl;
|
|
|
|
|
class settingsDialogImpl;
|
|
|
|
|
class selectAvatarDialogImpl;
|
|
|
|
|
class aboutPokerthImpl;
|
|
|
|
|
class joinNetworkGameDialogImpl;
|
|
|
|
|
class connectToServerDialogImpl;
|
|
|
|
|
class createNetworkGameDialogImpl;
|
|
|
|
|
class startNetworkGameDialogImpl;
|
|
|
|
|
class changeHumanPlayerNameDialogImpl;
|
|
|
|
|
class gameLobbyDialogImpl;
|
|
|
|
|
class timeoutMsgBoxImpl;
|
|
|
|
|
|
2008-06-07 21:11:57 +00:00
|
|
|
|
|
|
|
|
class startWindowImpl: public QMainWindow, public Ui::startWindow {
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
public:
|
|
|
|
|
startWindowImpl(gameTableImpl *w = 0, ConfigFile *c =0);
|
|
|
|
|
|
2008-06-08 21:18:29 +00:00
|
|
|
void setSession(boost::shared_ptr<Session> session) { mySession = session; }
|
|
|
|
|
Session &getSession() { assert(mySession.get()); return *mySession; }
|
2008-06-07 21:11:57 +00:00
|
|
|
|
2008-06-08 21:18:29 +00:00
|
|
|
signals:
|
|
|
|
|
void signalShowClientDialog();
|
|
|
|
|
|
|
|
|
|
void signalNetClientConnect(int actionID);
|
|
|
|
|
void signalNetClientGameInfo(int actionID);
|
|
|
|
|
void signalNetClientError(int errorID, int osErrorID);
|
|
|
|
|
void signalNetClientNotification(int notificationId);
|
|
|
|
|
void signalNetClientStatsUpdate(ServerStats stats);
|
|
|
|
|
void signalNetClientShowTimeoutDialog(int, unsigned);
|
|
|
|
|
void signalNetClientRemovedFromGame(int notificationId);
|
|
|
|
|
void signalNetServerError(int errorID, int osErrorID);
|
|
|
|
|
void signalNetClientSelfJoined(unsigned playerId, QString playerName, int rights);
|
|
|
|
|
void signalNetClientPlayerJoined(unsigned playerId, QString playerName, int rights);
|
|
|
|
|
void signalNetClientPlayerChanged(unsigned playerId, QString newPlayerName);
|
|
|
|
|
void signalNetClientPlayerLeft(unsigned playerId, QString playerName);
|
|
|
|
|
void signalNetClientNewGameAdmin(unsigned playerId, QString playerName);
|
|
|
|
|
void signalNetClientGameListNew(unsigned gameId);
|
|
|
|
|
void signalNetClientGameListRemove(unsigned gameId);
|
|
|
|
|
void signalNetClientGameListUpdateMode(unsigned gameId, int mode);
|
|
|
|
|
void signalNetClientGameListUpdateAdmin(unsigned gameId, unsigned adminPlayerId);
|
|
|
|
|
void signalNetClientGameListPlayerJoined(unsigned gameId, unsigned playerId);
|
|
|
|
|
void signalNetClientGameListPlayerLeft(unsigned gameId, unsigned playerId);
|
|
|
|
|
void signalNetClientGameStart(boost::shared_ptr<Game> game);
|
|
|
|
|
void signalNetClientChatMsg(QString nickName, QString msg);
|
|
|
|
|
|
|
|
|
|
void signalIrcConnect(QString server);
|
|
|
|
|
void signalIrcSelfJoined(QString nickName, QString channel);
|
|
|
|
|
void signalIrcPlayerJoined(QString nickName);
|
|
|
|
|
void signalIrcPlayerChanged(QString oldNick, QString newNick);
|
|
|
|
|
void signalIrcPlayerKicked(QString nickName, QString byWhom, QString reason);
|
|
|
|
|
void signalIrcPlayerLeft(QString nickName);
|
|
|
|
|
void signalIrcChatMessage(QString nickName, QString msg);
|
|
|
|
|
void signalIrcError(int errorCode);
|
|
|
|
|
void signalIrcServerError(int errorCode);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
void callNewGameDialog();
|
|
|
|
|
void callGameLobbyDialog();
|
2008-08-31 21:21:52 +00:00
|
|
|
void callCreateNetworkGameDialog();
|
|
|
|
|
void callJoinNetworkGameDialog();
|
2008-06-08 21:18:29 +00:00
|
|
|
void showLobbyDialog();
|
|
|
|
|
void joinGameLobby();
|
|
|
|
|
void showClientDialog();
|
|
|
|
|
void showNetworkStartDialog();
|
|
|
|
|
|
|
|
|
|
private:
|
2008-06-07 21:11:57 +00:00
|
|
|
gameTableImpl *myW;
|
2008-06-08 21:18:29 +00:00
|
|
|
ConfigFile *myConfig;
|
|
|
|
|
|
|
|
|
|
boost::shared_ptr<Session> mySession;
|
|
|
|
|
boost::shared_ptr<GuiInterface> myServerGuiInterface;
|
|
|
|
|
|
|
|
|
|
// Dialogs
|
|
|
|
|
boost::shared_ptr<aboutPokerthImpl> myAboutPokerthDialog;
|
|
|
|
|
boost::shared_ptr<newGameDialogImpl> myNewGameDialog;
|
|
|
|
|
boost::shared_ptr<settingsDialogImpl> mySettingsDialog;
|
|
|
|
|
boost::shared_ptr<selectAvatarDialogImpl> mySelectAvatarDialog;
|
|
|
|
|
boost::shared_ptr<changeHumanPlayerNameDialogImpl> myChangeHumanPlayerNameDialog;
|
|
|
|
|
boost::shared_ptr<joinNetworkGameDialogImpl> myJoinNetworkGameDialog;
|
|
|
|
|
boost::shared_ptr<connectToServerDialogImpl> myConnectToServerDialog;
|
|
|
|
|
boost::shared_ptr<startNetworkGameDialogImpl> myStartNetworkGameDialog;
|
|
|
|
|
boost::shared_ptr<createNetworkGameDialogImpl> myCreateNetworkGameDialog;
|
|
|
|
|
boost::shared_ptr<gameLobbyDialogImpl> myGameLobbyDialog;
|
|
|
|
|
boost::shared_ptr<timeoutMsgBoxImpl> myTimeoutDialog;
|
|
|
|
|
boost::shared_ptr<startWindowImpl> myStartWindow;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
friend class GuiWrapper;
|
2008-06-07 21:11:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|