Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

GUI/Widgets/vtkKWToolbarSet.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Module:    $RCSfile: vtkKWToolbarSet.h,v $
00004 
00005   Copyright (c) Kitware, Inc.
00006   All rights reserved.
00007   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE.  See the above copyright notice for more information.
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   //ETX
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   //BTX
00208 
00209   // A toolbar slot stores a toolbar + some infos
00210  
00211   class ToolbarSlot
00212   {
00213   public:
00214     int Visibility;
00215     int Anchor;
00216     vtkKWSeparator *Separator;
00217     vtkKWToolbar   *Toolbar;
00218   };
00219 
00220   // PIMPL Encapsulation for STL containers
00221 
00222   vtkKWToolbarSetInternals *Internals;
00223   friend class vtkKWToolbarSetInternals;
00224 
00225   // Helper methods
00226 
00227   ToolbarSlot* GetToolbarSlot(vtkKWToolbar *toolbar);
00228 
00229   //ETX
00230 
00231   virtual void PackToolbars();
00232   virtual void PackBottomSeparator();
00233   virtual void PackTopSeparator();
00234 
00235 private:
00236   vtkKWToolbarSet(const vtkKWToolbarSet&); // Not implemented
00237   void operator=(const vtkKWToolbarSet&); // Not implemented
00238 };
00239 
00240 #endif
00241 

Generated on Tue May 30 12:31:44 2006 for ParaView by doxygen 1.3.5