/* 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__