E:/Eigene Dateien/Eigene Projekte/c0re/Menu.h

Go to the documentation of this file.
00001 /*
00002         This file is part of c0re.
00003 
00004         c0re is a multiplayer RTS on a hexagonal map with an evolving unit concept.
00005     Copyright (C) 2007 Stephan Hofmann
00006 
00007     c0re is free software: you can redistribute it and/or modify
00008     it under the terms of the GNU General Public License as published by
00009     the Free Software Foundation, either version 3 of the License, or
00010     (at your option) any later version.
00011 
00012     This program is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015     GNU General Public License for more details.
00016 
00017     You should have received a copy of the GNU General Public License
00018     along with this program.  If not, see <http://www.gnu.org/licenses/>.
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

Generated on Tue Jul 17 22:02:22 2007 for C0re by  doxygen 1.5.2