git-svn-id: https://scorched3d.svn.sourceforge.net/svnroot/scorched3d/trunk/scorched...
[scorched3d/parasti.git] / src / client / GLEXT / GLMenu.h
blob4b313960b3aa6ddd9626d0e87dadd0efb927bfda
1 ////////////////////////////////////////////////////////////////////////////////
2 // Scorched3D (c) 2000-2009
3 //
4 // This file is part of Scorched3D.
5 //
6 // Scorched3D is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
11 // Scorched3D is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with Scorched3D; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 ////////////////////////////////////////////////////////////////////////////////
21 #if !defined(AFX_GLMENU_H__ED2E8B2C_46B3_400F_A3E2_FC1B53732D15__INCLUDED_)
22 #define AFX_GLMENU_H__ED2E8B2C_46B3_400F_A3E2_FC1B53732D15__INCLUDED_
24 #include <map>
25 #include <GLW/GLWWindow.h>
26 #include <GLEXT/GLMenuI.h>
28 class Image;
29 class GLMenuEntry;
30 class GLMenu : public GLWWindow
32 public:
33 enum MenuFlags
35 eMenuAlignRight = 1
38 GLMenu();
39 virtual ~GLMenu();
41 bool addMenu(
42 const LangString &menuName,
43 char *menuNameInternal,
44 const LangString &menuDescription,
45 float width,
46 unsigned int state,
47 GLMenuI *callback,
48 Image *icon = 0,
49 unsigned int flags = 0);
50 bool addMenuItem(char *menuName, const GLMenuItem item);
51 GLMenuEntry *getMenu(char *menuItem);
53 virtual void draw();
54 virtual void mouseDown(int button, float x, float y, bool &skipRest);
55 virtual void mouseUp(int button, float x, float y, bool &skipRest);
56 virtual void mouseDrag(int button, float mx, float my, float x, float y, bool &skipRest);
57 virtual void keyDown(char *buffer, unsigned int keyState,
58 KeyboardHistory::HistoryElement *history, int hisCount,
59 bool &skipRest);
61 protected:
62 std::map<std::string, GLMenuEntry *> menuList_;
66 #endif // !defined(AFX_GLMENU_H__ED2E8B2C_46B3_400F_A3E2_FC1B53732D15__INCLUDED_)