00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _MENU_H_
00022 #define _MENU_H_
00023
00024 #include <iostream>
00025 #include <vector>
00026
00027 #include "GLInterface.h"
00028
00032 enum eGameMode {
00033 GM_None,
00034 GM_Local,
00035 GM_Server,
00036 GM_Client
00037 };
00038
00039 class Window;
00040
00044 class Menu : public GLInterface
00045 {
00046 public:
00052 Menu (Window* p_window);
00053
00057 virtual ~Menu();
00058
00064 std::string getLevelName(std::string p_directory, std::string p_mask);
00065
00071 eGameMode getGameMode();
00072
00080 std::string getString(std::string p_display, std::string p_default = std::string(""));
00081
00082 protected:
00089 std::vector<std::string> getLevelFiles(std::string p_filemask);
00090
00098 std::string getSelectedItem(std::vector<std::string> &p_options, int p_maxOption = -1);
00099
00107 int renderSelectionList(std::vector<std::string> &p_options, unsigned int p_currentElement);
00108
00114 int renderInputText(std::string p_display, std::string p_input);
00115
00116 private:
00117
00125 int writeText(std::vector<std::string> p_text, int p_highlightedLine);
00126
00130 int initGL();
00131 };
00132
00133
00134 #endif