00001 #ifndef GLUI_MOVE_MENU_DEF 00002 #define GLUI_MOVE_MENU_DEF 00003 00004 #include "widgets/menu.H" 00005 #include "std/support.H" 00006 00007 class GLUI; 00008 class GLUIMoveMenu : public MoveMenu { 00009 public: 00010 GLUIMoveMenu(Cstr_ptr &name, int main_window_id); 00011 00012 // XXX -- move local should reposition the glui window. 00013 virtual void move_local(const mlib::XYpt &loc) {_loc = loc;} 00014 virtual void hide(); 00015 virtual void menu(int recreate = false); 00016 virtual void show(); 00017 00018 static void btn_callback (int id); 00019 00020 void create_menu(); 00021 00022 protected: 00023 00024 // Global list of menu items contained by any currently instantiated 00025 // menu. Used for making callbacks to menu items. 00026 static ARRAY<MenuItem *> _menu_items; 00027 00028 int map_menu_item(MenuItem *item); 00029 void unmap_menu_item(int item_index); 00030 00031 GLUI * _glui; 00032 bool _menu_created; 00033 int _main_window_id; // id of parent window 00034 int _id; // id of menu window 00035 ARRAY<int> _item_ids; // XXX -- Hack: keep track of this menu's mapped 00036 // item id's (used for unmapping items when the 00037 // menu is recreated). 00038 }; 00039 #endif 00040 00041 /* end of file glui_menu.H */