#ifndef TAB_SUPERVISOR_H #define TAB_SUPERVISOR_H #include #include class QMenu; class AbstractClient; class Tab; class TabServer; class TabChatChannel; class TabGame; class TabDeckStorage; class TabMessage; class ChatEvent; class GameEventContainer; class Event_GameJoined; class Event_Message; class TabSupervisor : public QTabWidget { Q_OBJECT private: QIcon *tabChangedIcon; AbstractClient *client; QList localClients; TabServer *tabServer; TabDeckStorage *tabDeckStorage; QMap chatChannelTabs; QMap gameTabs; QMap messageTabs; void myAddTab(Tab *tab); public: TabSupervisor(QWidget *parent = 0); ~TabSupervisor(); void retranslateUi(); void start(AbstractClient *_client); 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 addChatChannelTab(const QString &channelName); void chatChannelLeft(TabChatChannel *tab); TabMessage *addMessageTab(const QString &userName, bool focus); void processUserLeft(const QString &userName); void talkLeft(TabMessage *tab); void tabUserEvent(); void processChatEvent(ChatEvent *event); void processGameEventContainer(GameEventContainer *cont); void processMessageEvent(Event_Message *event); }; #endif