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 vtkKWApplication;
00026 class vtkKWFrame;
00027 class vtkKWMenu;
00028 class vtkKWSeparator;
00029 class vtkKWToolbar;
00030 class vtkKWToolbarSetInternals;
00031
00032 class KWWIDGETS_EXPORT vtkKWToolbarSet : public vtkKWCompositeWidget
00033 {
00034 public:
00035 static vtkKWToolbarSet* New();
00036 vtkTypeRevisionMacro(vtkKWToolbarSet,vtkKWCompositeWidget);
00037 void PrintSelf(ostream& os, vtkIndent indent);
00038
00040 virtual void Create(vtkKWApplication *app);
00041
00043
00044 vtkGetObjectMacro(ToolbarsFrame, vtkKWFrame);
00046
00048
00052 virtual int AddToolbar(vtkKWToolbar *toolbar)
00053 { return this->AddToolbar(toolbar, 1); };
00054 virtual int AddToolbar(vtkKWToolbar *toolbar, int default_visibility);
00055 virtual int HasToolbar(vtkKWToolbar *toolbar);
00057
00059
00060 virtual vtkKWToolbar* GetNthToolbar(int rank);
00061 virtual int GetNumberOfToolbars();
00063
00065
00067 virtual int RemoveToolbar(vtkKWToolbar *toolbar);
00068 virtual void RemoveAllToolbars();
00070
00072 virtual void SetToolbarsFlatAspect(int);
00073
00075 virtual void SetToolbarsWidgetsFlatAspect(int);
00076
00078
00079 virtual void HideToolbar(vtkKWToolbar *toolbar);
00080 virtual void ShowToolbar(vtkKWToolbar *toolbar);
00081 virtual void SetToolbarVisibility(vtkKWToolbar *toolbar, int flag);
00082 virtual int GetToolbarVisibility(vtkKWToolbar *toolbar);
00083 virtual void ToggleToolbarVisibility(vtkKWToolbar *toolbar);
00085
00087 virtual int GetNumberOfVisibleToolbars();
00088
00090
00101 enum
00102 {
00103 ToolbarAnchorWest = 0,
00104 ToolbarAnchorEast
00105 };
00106
00107 virtual void SetToolbarAnchor(vtkKWToolbar *toolbar, int anchor);
00108 virtual int GetToolbarAnchor(vtkKWToolbar *toolbar);
00109 virtual void SetToolbarAnchorToWest(vtkKWToolbar *toolbar)
00110 { this->SetToolbarAnchor(toolbar, vtkKWToolbarSet::ToolbarAnchorWest); };
00111 virtual void SetToolbarAnchorToEast(vtkKWToolbar *toolbar)
00112 { this->SetToolbarAnchor(toolbar, vtkKWToolbarSet::ToolbarAnchorEast); };
00114
00116
00119 virtual void SaveToolbarVisibilityToRegistry(vtkKWToolbar *toolbar);
00120 virtual void RestoreToolbarVisibilityFromRegistry(vtkKWToolbar *toolbar);
00121 virtual void SaveToolbarsVisibilityToRegistry();
00122 virtual void RestoreToolbarsVisibilityFromRegistry();
00124
00126
00129 vtkBooleanMacro(SynchronizeToolbarsVisibilityWithRegistry, int);
00130 vtkGetMacro(SynchronizeToolbarsVisibilityWithRegistry, int);
00131 vtkSetMacro(SynchronizeToolbarsVisibilityWithRegistry, int);
00133
00135
00142 virtual void PopulateToolbarsVisibilityMenu(vtkKWMenu *menu);
00143 virtual void UpdateToolbarsVisibilityMenu(vtkKWMenu *menu);
00145
00147
00149 virtual void SetToolbarVisibilityChangedCommand(
00150 vtkObject* object,const char *method);
00151 virtual void InvokeToolbarVisibilityChangedCommand();
00153
00155
00157 virtual void SetNumberOfToolbarsChangedCommand(
00158 vtkObject* object,const char *method);
00159 virtual void InvokeNumberOfToolbarsChangedCommand();
00161
00163
00164 virtual void SetBottomSeparatorVisibility(int);
00165 vtkBooleanMacro(BottomSeparatorVisibility, int);
00166 vtkGetMacro(BottomSeparatorVisibility, int);
00168
00170
00171 virtual void SetTopSeparatorVisibility(int);
00172 vtkBooleanMacro(TopSeparatorVisibility, int);
00173 vtkGetMacro(TopSeparatorVisibility, int);
00175
00178 virtual void Update();
00179
00182 virtual void Pack();
00183
00190 virtual void UpdateEnableState();
00191
00192 protected:
00193 vtkKWToolbarSet();
00194 ~vtkKWToolbarSet();
00195
00196 vtkKWSeparator *TopSeparator;
00197 vtkKWFrame *ToolbarsFrame;
00198 vtkKWSeparator *BottomSeparator;
00199
00200 int BottomSeparatorVisibility;
00201 int TopSeparatorVisibility;
00202 int SynchronizeToolbarsVisibilityWithRegistry;
00203
00204 char *ToolbarVisibilityChangedCommand;
00205 char *NumberOfToolbarsChangedCommand;
00206
00207
00208
00209
00210
00211 class ToolbarSlot
00212 {
00213 public:
00214 int Visibility;
00215 int Anchor;
00216 vtkKWSeparator *Separator;
00217 vtkKWToolbar *Toolbar;
00218 };
00219
00220
00221
00222 vtkKWToolbarSetInternals *Internals;
00223 friend class vtkKWToolbarSetInternals;
00224
00225
00226
00227 ToolbarSlot* GetToolbarSlot(vtkKWToolbar *toolbar);
00228
00229
00230
00231 virtual void PackToolbars();
00232 virtual void PackBottomSeparator();
00233 virtual void PackTopSeparator();
00234
00235 private:
00236 vtkKWToolbarSet(const vtkKWToolbarSet&);
00237 void operator=(const vtkKWToolbarSet&);
00238 };
00239
00240 #endif
00241