00001 #ifndef GLUTM_MENU_H
00002 #define GLUTM_MENU_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00033 #include <glutm/config.h>
00034 #include <glutm/glut.h>
00035
00036 #ifdef WIN32
00037 #pragma warning(disable : 4786) // Lengthy STL symbols
00038 #endif
00039
00040 #include <string>
00041 #include <list>
00042
00044
00051 class GlutMenu
00052 {
00053 public:
00058 GlutMenu(int button = GLUT_LEFT_BUTTON);
00060 ~GlutMenu();
00061
00063 void addEntry(const std::string &name,int value = -1);
00064
00065
00066
00067
00068
00073 GlutMenu &subMenu();
00074
00076 void addEntry(const std::string &name,GlutMenu &menu);
00077
00079 void reset();
00080
00082 void attach();
00083
00085 void detach();
00086
00087 protected:
00088
00090 int _button;
00092 int _menuID;
00093
00095 void resetList();
00097 std::list<GlutMenu *> _subMenu;
00098 };
00099
00100 #endif