00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(AFX_GLMENU_H__ED2E8B2C_46B3_400F_A3E2_FC1B53732D15__INCLUDED_)
00022 #define AFX_GLMENU_H__ED2E8B2C_46B3_400F_A3E2_FC1B53732D15__INCLUDED_
00023
00024 #include <map>
00025 #include <GLW/GLWWindow.h>
00026 #include <GLEXT/GLMenuI.h>
00027
00028 class Image;
00029 class GLMenuEntry;
00030 class GLMenu : public GLWWindow
00031 {
00032 public:
00033 enum MenuFlags
00034 {
00035 eMenuAlignRight = 1
00036 };
00037
00038 GLMenu();
00039 virtual ~GLMenu();
00040
00041 bool addMenu(
00042 const LangString &menuName,
00043 char *menuNameInternal,
00044 const LangString &menuDescription,
00045 float width,
00046 unsigned int state,
00047 GLMenuI *callback,
00048 Image *icon = 0,
00049 unsigned int flags = 0);
00050 bool addMenuItem(char *menuName, const GLMenuItem item);
00051 GLMenuEntry *getMenu(char *menuItem);
00052
00053 virtual void draw();
00054 virtual void mouseDown(int button, float x, float y, bool &skipRest);
00055 virtual void mouseUp(int button, float x, float y, bool &skipRest);
00056 virtual void mouseDrag(int button, float mx, float my, float x, float y, bool &skipRest);
00057 virtual void keyDown(char *buffer, unsigned int keyState,
00058 KeyboardHistory::HistoryElement *history, int hisCount,
00059 bool &skipRest);
00060
00061 protected:
00062 std::map<std::string, GLMenuEntry *> menuList_;
00063
00064 };
00065
00066 #endif // !defined(AFX_GLMENU_H__ED2E8B2C_46B3_400F_A3E2_FC1B53732D15__INCLUDED_)