00001
00057 #ifndef INC_MGUI_TOOLBAR_H
00058 #define INC_MGUI_TOOLBAR_H
00059
00060 #ifndef INC_MGUI_CTRL_H
00061 #include <mgui/ctrl.h>
00062 #endif
00063
00064 #ifndef INC_MGUI_MENU_H
00065 #include <mgui/menu.h>
00066 #endif
00067
00068 namespace MGUI {
00069
00070 class DLG_CUSTOMIZE;
00071
00072
00073
00074 class CTRL_TOOLBAR : public CTRL {
00075 public:
00076
00078 enum CREATEITEM {
00079 CREATEITEM_Default = MENU::CREATEITEM_Default,
00080 CREATEITEM_Check = MENU::CREATEITEM_Check,
00081 CREATEITEM_CheckOn = MENU::CREATEITEM_CheckOn,
00082 CREATEITEM_Radio = MENU::CREATEITEM_Radio,
00083 CREATEITEM_RadioOn = MENU::CREATEITEM_RadioOn,
00084 CREATEITEM_RadioFirst = MENU::CREATEITEM_RadioFirst,
00085 CREATEITEM_RadioFirstOn = MENU::CREATEITEM_RadioFirstOn,
00086 CREATEITEM_ToggleOn = MENU::CREATEITEM_ToggleOn,
00087 CREATEITEM_Disabled = MENU::CREATEITEM_Disabled,
00088 CREATEITEM_NoDelegate = MENU::CREATEITEM_NoDelegate,
00089 CREATEITEM_MI_Internal = MENU::CREATEITEM_MI_Internal,
00090 CREATEITEM_MI_Programmer = MENU::CREATEITEM_MI_Programmer,
00091 CREATEITEM_Hidden = MENU::CREATEITEM_Hidden
00092 };
00093
00095 enum ITEMHND {
00096 ITEMHND_None = MENU::ITEMHND_None,
00097 ITEMHND_Last = MENU::ITEMHND_Last
00098 };
00099
00103 typedef fastdelegate::FastDelegate<void(MGUI::ID,bool)> DELEGATE;
00104
00106 static CREATEITEM CREATEITEM_CheckSet (
00107 bool ToggleOn
00108 ) { return (ToggleOn ? CREATEITEM_CheckOn : CREATEITEM_Check); }
00109
00111 static CREATEITEM CREATEITEM_RadioSet (
00112 bool ToggleOn,
00113 bool RadioFirst = false
00114 ) { return (RadioFirst ? (ToggleOn ? CREATEITEM_RadioFirstOn : CREATEITEM_RadioFirst) : (ToggleOn ? CREATEITEM_RadioOn : CREATEITEM_Radio)); }
00115
00117 CTRL_TOOLBAR ();
00118
00120 virtual ~CTRL_TOOLBAR ();
00121
00125 ITEMHND Add (
00126 ICONID iconid,
00127 const MISTRING& label,
00128 ID id,
00129 CREATEITEM createflags = CREATEITEM_Default,
00130 UINT32 icid = 0
00131 );
00132
00136 ITEMHND Add (
00137 ICONID iconid,
00138 const MISTRING& label,
00139 MGUI::MENU::DELEGATE delegate,
00140 ID id = 0,
00141 CREATEITEM createflags = CREATEITEM_Default,
00142 UINT32 icid = 0
00143 );
00144
00148 ITEMHND Add (
00149 ICONID iconid,
00150 const MISTRING& label,
00151 MENU& menu,
00152 CREATEITEM createflags = CREATEITEM_Default,
00153 UINT32 icid = 0
00154 );
00155
00158 void AddSeparator (
00159 );
00160
00163 void AddSpaceFixed (
00164 int space
00165 );
00166
00168 void Create (
00169 LAYOUT_PANE_BASE& ParentPane,
00170 LAYOUT_ORIENTATION orientation = LAYOUT_ORIENTATION_Horizontal,
00171 LAYOUT_SIZEALIGN sizealign = LAYOUT_SIZEALIGN_FixedSize
00172 );
00173
00175 void Delete (
00176 ITEMHND hndItem
00177 );
00178
00180 void DeleteAll (
00181 );
00182
00184 bool GetToggleStateItem (
00185 ITEMHND hndItem
00186 ) const;
00187
00189 bool GetToggleStateID (
00190 ID id
00191 ) const;
00192
00194 void SetDelegate (
00195 ID id,
00196 DELEGATE delegate
00197 ) { m_menu.SetDelegate(id,delegate); }
00198
00201 void SetDftDelegate (
00202 DELEGATE delegate
00203 );
00204
00206 void SetEnabledItem (
00207 ITEMHND hndItem,
00208 bool enabled
00209 );
00210
00212 void SetEnabledID (
00213 ID id,
00214 bool enabled
00215 );
00216
00218 void SetToggleStateItem (
00219 ITEMHND hndItem,
00220 bool ToggleOn,
00221 bool notify
00222 );
00223
00225 void SetToggleStateID (
00226 ID id,
00227 bool ToggleOn,
00228 bool notify
00229 );
00230
00232 void SetVisibleItem (
00233 ITEMHND hndItem,
00234 bool visible
00235 );
00236
00238 void SetVisibleID (
00239 ID id,
00240 bool visible
00241 );
00242
00243 #if defined(X_NATIVE) && !defined(GENERATING_DOXYGEN_OUTPUT)
00244
00245
00246 Widget GetWidgetFromID (
00247 ID id
00248 ) const { return (m_menu.GetWidgetFromID(id)); }
00249 #endif
00250
00251 private:
00252 #ifndef GENERATING_DOXYGEN_OUTPUT
00253 friend class MGUI::DLG_CUSTOMIZE;
00254
00255 CTRL_TOOLBAR (const CTRL_TOOLBAR&);
00256 CTRL_TOOLBAR& operator= (const CTRL_TOOLBAR&);
00257
00258 MGUI::MENU m_menu;
00259 bool m_MenuCreated;
00260
00261 void CreateMenu ();
00262 #endif // GENERATING_DOXYGEN_OUTPUT
00263 };
00264
00265 #ifndef GENERATING_DOXYGEN_OUTPUT
00266 DEFINE_ENUM_OP_BITWISE(CTRL_TOOLBAR::CREATEITEM)
00267 #endif
00268
00269
00270
00271 }
00272
00273 #endif // INC_MGUI_TOOLBAR_H