00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00020 #ifndef __vtkKWToolbarSet_h
00021 #define __vtkKWToolbarSet_h
00022
00023 #include "vtkKWCompositeWidget.h"
00024
00025 class vtkKWFrame;
00026 class vtkKWMenu;
00027 class vtkKWSeparator;
00028 class vtkKWToolbar;
00029 class vtkKWToolbarSetInternals;
00030
00031 class KWWidgets_EXPORT vtkKWToolbarSet : public vtkKWCompositeWidget
00032 {
00033
00034 public:
00035 static vtkKWToolbarSet* New();
00036 vtkTypeRevisionMacro(vtkKWToolbarSet,vtkKWCompositeWidget);
00037 void PrintSelf(ostream& os, vtkIndent indent);
00038
00040
00041 vtkGetObjectMacro(ToolbarsFrame, vtkKWFrame);
00043
00045
00049 virtual int AddToolbar(vtkKWToolbar *toolbar)
00050 { return this->AddToolbar(toolbar, 1); };
00051 virtual int AddToolbar(vtkKWToolbar *toolbar, int default_visibility);
00052 virtual int HasToolbar(vtkKWToolbar *toolbar);
00054
00056
00057 virtual vtkKWToolbar* GetNthToolbar(int rank);
00058 virtual int GetNumberOfToolbars();
00060
00062
00064 virtual int RemoveToolbar(vtkKWToolbar *toolbar);
00065 virtual void RemoveAllToolbars();
00067
00071 virtual void SetToolbarsAspect(int);
00072
00076 virtual void SetToolbarsWidgetsAspect(int);
00077
00079
00080 virtual void HideToolbar(vtkKWToolbar *toolbar);
00081 virtual void ShowToolbar(vtkKWToolbar *toolbar);
00082 virtual void SetToolbarVisibility(vtkKWToolbar *toolbar, int flag);
00083 virtual int GetToolbarVisibility(vtkKWToolbar *toolbar);
00084 virtual void ToggleToolbarVisibility(vtkKWToolbar *toolbar);
00086
00088 virtual int GetNumberOfVisibleToolbars();
00089
00091
00102 enum
00103 {
00104 ToolbarAnchorWest = 0,
00105 ToolbarAnchorEast
00106 };
00107
00108 virtual void SetToolbarAnchor(vtkKWToolbar *toolbar, int anchor);
00109 virtual int GetToolbarAnchor(vtkKWToolbar *toolbar);
00110 virtual void SetToolbarAnchorToWest(vtkKWToolbar *toolbar)
00111 { this->SetToolbarAnchor(toolbar, vtkKWToolbarSet::ToolbarAnchorWest); };
00112 virtual void SetToolbarAnchorToEast(vtkKWToolbar *toolbar)
00113 { this->SetToolbarAnchor(toolbar, vtkKWToolbarSet::ToolbarAnchorEast); };
00115
00117
00120 virtual void SaveToolbarVisibilityToRegistry(vtkKWToolbar *toolbar);
00121 virtual void RestoreToolbarVisibilityFromRegistry(vtkKWToolbar *toolbar);
00122 virtual void SaveToolbarsVisibilityToRegistry();
00123 virtual void RestoreToolbarsVisibilityFromRegistry();
00125
00127
00130 vtkBooleanMacro(SynchronizeToolbarsVisibilityWithRegistry, int);
00131 vtkGetMacro(SynchronizeToolbarsVisibilityWithRegistry, int);
00132 vtkSetMacro(SynchronizeToolbarsVisibilityWithRegistry, int);
00134
00136
00142 virtual void PopulateToolbarsVisibilityMenu(vtkKWMenu *menu);
00143 virtual void UpdateToolbarsVisibilityMenu(vtkKWMenu *menu);
00145
00147
00155 virtual void SetToolbarVisibilityChangedCommand(
00156 vtkObject *object, const char *method);
00158
00160
00167 virtual void SetNumberOfToolbarsChangedCommand(
00168 vtkObject *object, const char *method);
00170
00172
00173 virtual void SetBottomSeparatorVisibility(int);
00174 vtkBooleanMacro(BottomSeparatorVisibility, int);
00175 vtkGetMacro(BottomSeparatorVisibility, int);
00177
00179
00180 virtual void SetTopSeparatorVisibility(int);
00181 vtkBooleanMacro(TopSeparatorVisibility, int);
00182 vtkGetMacro(TopSeparatorVisibility, int);
00184
00187 virtual void Update();
00188
00191 virtual void Pack();
00192
00199 virtual void UpdateEnableState();
00200
00201
00202
00203 protected:
00204 vtkKWToolbarSet();
00205 ~vtkKWToolbarSet();
00206
00208 virtual void CreateWidget();
00209
00210 vtkKWSeparator *TopSeparator;
00211 vtkKWFrame *ToolbarsFrame;
00212 vtkKWSeparator *BottomSeparator;
00213
00214 int BottomSeparatorVisibility;
00215 int TopSeparatorVisibility;
00216 int SynchronizeToolbarsVisibilityWithRegistry;
00217
00218 char *ToolbarVisibilityChangedCommand;
00219 char *NumberOfToolbarsChangedCommand;
00220
00221 virtual void InvokeToolbarVisibilityChangedCommand(
00222 vtkKWToolbar *toolbar);
00223 virtual void InvokeNumberOfToolbarsChangedCommand();
00224
00225
00226
00227
00228
00229 class ToolbarSlot
00230 {
00231 public:
00232 int Visibility;
00233 int Anchor;
00234 vtkKWSeparator *Separator;
00235 vtkKWToolbar *Toolbar;
00236 };
00237
00238
00239
00240 vtkKWToolbarSetInternals *Internals;
00241 friend class vtkKWToolbarSetInternals;
00242
00243
00244
00245 ToolbarSlot* GetToolbarSlot(vtkKWToolbar *toolbar);
00246
00247
00248
00249 virtual void PackToolbars();
00250 virtual void PackBottomSeparator();
00251 virtual void PackTopSeparator();
00252
00253
00254
00255 private:
00256 vtkKWToolbarSet(const vtkKWToolbarSet&);
00257 void operator=(const vtkKWToolbarSet&);
00258 };
00259
00260 #endif
00261
00262