Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/serverlistmenu.h')
-rw-r--r--src/client/serverlistmenu.h70
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__
+
+