Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   Related Pages  

/home/rdbrown/doxygen/cse125g1/src/game/client/connectmenu.h

00001 #include <vector>
00002 #include <string>
00003 
00004 #include "gamestate.h"
00005 #include "net/Game.h"
00006 #include "net/NetClient.h"
00007 #include "net/NetCallback.h"
00008 
00009 #include "menu/widgets.h"
00010 
00011 class ConnectMenu : public GameState {
00012     public:
00013         ConnectMenu(MMNet::NetClient *client);
00014         virtual ~ConnectMenu() {}
00015         
00016         void init();
00017         void update();
00018         void exit();
00019         void display();
00020 
00021         void createServerList(const char * serverName);
00022         void joinGame(TNL::Address addr);
00023 
00024         //client information
00025         MMGUI::Textbox * IP_Textbox;
00026         MMGUI::Textbox * PlayerName_Textbox;
00027         
00028         
00029         MMGUI::Textbox *nameField;
00030 
00031         MMGUI::Textbox *manualField;
00032 
00033         //std::vector<TransparentButton *> serverListButtons;
00034 
00035         void serverListClear();
00036         void serverListAdd(TNL::Address addr);
00037 
00038         void setMessage(const char *text); 
00039         void clearMessage();
00040         
00041         bool findingServers();
00042         unsigned int canFindAgain;
00043         MMGUI::Button* findButton;
00044         
00045     private:
00046         MMGUI::Textfield *messages;
00047 
00048         
00049         MMGUI::Frame* serverFrame;
00050                 
00051         MMGUI::Frame* initMessageFrame(enum MMGUI::WidgetAlign align);
00052         MMGUI::Frame* initServerListFrame(enum MMGUI::WidgetAlign align);
00053         MMGUI::Frame* initFindServersFrame(enum MMGUI::WidgetAlign align);
00054         MMGUI::Frame* initManualConnectFrame(enum MMGUI::WidgetAlign align);
00055         
00056 };
00057 
00058 class ConnectMenuCallback : public MMNet::NetCallback {
00059 public:
00060         ConnectMenu * cm;
00061         ConnectMenuCallback(ConnectMenu * cm);
00062     //ConnectMenuCallback();
00063 
00064     void ServerDiscovered(TNL::Address serverAddress, TNL::BitStream *stream);
00065 
00066     void JoinApproved(TNL::Address serverAddress, TNL::BitStream *stream);
00067 
00068     void JoinDenied(TNL::Address serverAddress, TNL::BitStream *stream);
00069 
00070     void GameConnectionFailed(const char *errmsg);
00071 
00072     void GameConnectionEstablished(TNL::Address serverAddress);
00073 
00074         void GameDisconnected(TNL::NetConnection::TerminationReason reason, const char *edString);
00075 
00076 };
00077 

Generated on Thu Aug 18 16:03:08 2005 for Robin Hood: Thieves & Knights by doxygen1.2.18