00001 00005 class BtGuiLabelInfo : public virtual HandleId 00006 00007 { 00008 public: 00009 00010 BtGuiLabelInfo () {} 00011 ~BtGuiLabelInfo () {} 00012 00013 String tcl_path_; 00014 Handle(MenuItemBase) menu_item_; 00015 }; 00016 00017 00036 class BtGuiMenuHelpCB : public virtual BtGuiCallback 00037 00038 { 00039 DpList(BtGuiLabelInfo),DpListItemHandle label_info_; 00040 Handle(BtGuiWidget) description_widget_; 00041 Handle(BtGuiVariable) description_variable_; 00042 00043 BtGuiLabelInfo* findInfo(String tcl_path); 00044 00045 bool first_time; 00046 String foreground_color; 00047 00048 public: 00049 00050 BtGuiMenuHelpCB(const BtGuiTkInterpreter& interf, const String& name=""); 00051 00052 void addInfo(String tcl_path, MenuItemBase& item); 00053 00054 void setDescriptionWidget(BtGuiWidget* widget); 00055 void setDescriptionVariable(BtGuiVariable* variable); 00056 00057 virtual bool performeAction(int argc, char** argv); 00058 }; 00059 00060 00113 class BtGuiMenuSystem : public virtual BtGuiWidget 00114 00115 { 00116 Handle(MenuSystem) menu_system_; 00117 DpList(BtGuiWidget),DpListItemHandle subwidgets_; 00118 00119 bool create_top_level_; 00120 Handle(BtGuiWidget) top_level_; 00121 00122 bool dismiss_menusys_; 00123 Handle(BtGuiCallback) dismiss_callback_; 00124 00125 Handle(BtGuiWidget) description_widget_; 00126 Handle(BtGuiVariable) description_variable_; 00127 Handle(BtGuiMenuHelpCB) help_callback_; 00128 00129 DpList(BtGuiVariable, DpListItemHandle) menu_variables_; 00130 00131 int max_label_length; 00132 00133 public: 00134 00135 BtGuiMenuSystem(const BtGuiTkInterpreter& interf, 00136 const String& name=""); 00137 BtGuiMenuSystem(const BtGuiTkInterpreter& interf, 00138 const BtGuiWidget& parent, 00139 const String& name=""); 00140 ~BtGuiMenuSystem(); 00141 00142 void setMenuSystem(MenuSystem& menu); 00143 void setMenuSystem(MenuSystem* menu); 00144 00145 void setParent(const BtGuiWidget& parent); 00146 00147 void setCreateTopLevel (bool b); 00148 void setCreateDismissButton (bool b); 00149 00150 void setDescriptionWidget(BtGuiWidget* widget); 00151 void setDescriptionVariable(BtGuiVariable* variable); 00152 00153 void buildPage(BtGuiMenuPage& page); 00154 00155 virtual bool create(); 00156 }; 00157 00158