#ifndef TAB_SUPERVISOR_H #define TAB_SUPERVISOR_H #include #include class QMenu; class AbstractClient; class Tab; class TabServer; class TabRoom; class TabGame; class TabDeckStorage; class TabMessage; class RoomEvent; class GameEventContainer; class Event_GameJoined; class Event_Message; class ServerInfo_Room; class ServerInfo_User; class TabSupervisor : public QTabWidget { Q_OBJECT private: QString userName; QIcon *tabChangedIcon; AbstractClient *client; QList localClients; TabServer *tabServer; TabDeckStorage *tabDeckStorage; QMap roomTabs; QMap gameTabs; QMap messageTabs; void myAddTab(Tab *tab); public: TabSupervisor(QWidget *parent = 0); ~TabSupervisor(); void retranslateUi(); void start(AbstractClient *_client, ServerInfo_User *userInfo); void startLocal(const QList &_clients); void stop(); int getGameCount() const { return gameTabs.size(); } signals: void setMenu(QMenu *menu); void localGameEnded(); private slots: void updateCurrent(int index); void updatePingTime(int value, int max); void gameJoined(Event_GameJoined *event); void localGameJoined(Event_GameJoined *event); void gameLeft(TabGame *tab); void addRoomTab(ServerInfo_Room *info); void roomLeft(TabRoom *tab); TabMessage *addMessageTab(const QString &userName, bool focus); void processUserLeft(const QString &userName); void talkLeft(TabMessage *tab); void tabUserEvent(); void processRoomEvent(RoomEvent *event); void processGameEventContainer(GameEventContainer *cont); void processMessageEvent(Event_Message *event); }; #endif