diff options
Diffstat (limited to 'src/client/serverlistmenu.h')
-rw-r--r-- | src/client/serverlistmenu.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/client/serverlistmenu.h b/src/client/serverlistmenu.h new file mode 100644 index 0000000..6638bd4 --- /dev/null +++ b/src/client/serverlistmenu.h @@ -0,0 +1,70 @@ +/* + client/serverlistmenu.h + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#ifndef __INCLUDED_CLIENT_SERVERLISTMENU_H__ +#define __INCLUDED_CLIENT_SERVERLISTMENU_H__ + +#include "ui/button.h" +#include "ui/iconbutton.h" +#include "ui/inputbox.h" +#include "ui/label.h" +#include "ui/listview.h" +#include "ui/window.h" + +namespace client +{ + +class ServerListMenu : public ui::Window +{ +public: + enum Mode { Save = 0, Load = 1 }; + + ServerListMenu(ui::Widget *parent = 0, const char *label = 0); + virtual ~ServerListMenu(); + +protected: + + /// called when the widget receives a key press + virtual bool on_keypress(const int key, const unsigned int modifier); + + /// called if the widget receives an emit evet + virtual bool on_emit(ui::Widget *sender, const ui::Widget::Event event, void *data); + + virtual void resize(); + + virtual void show(); + + virtual void hide(); + + void refresh(); + + /** + * @brief connect to the currently selected server + * */ + void connect(); + + /** + * @brief show information for the currently selected server + * */ + void show_connect_info(); + +private: + + ui::Label *serverlistmenu_titlelabel; + ui::IconButton *serverlistmenu_closebutton; + ui::ListView *serverlistmenu_serverlistview; + ui::Button *serverlistmenu_connectbutton; + + +}; // class ServerListMenu + + +} // namespace client + + +#endif // __INCLUDED_CLIENT_SERVERLISTMENU_H__ + + |