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

GUI/Client/vtkPVInteractorStyleControl.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkPVInteractorStyleControl.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00025 #ifndef __vtkPVInteractorStyleControl_h
00026 #define __vtkPVInteractorStyleControl_h
00027 
00028 #include "vtkPVTracedWidget.h"
00029 
00030 class vtkCollection;
00031 class vtkKWApplication;
00032 class vtkKWFrame;
00033 class vtkKWLabel;
00034 class vtkKWFrameWithLabel;
00035 class vtkKWMenuButton;
00036 class vtkPVCameraManipulator;
00037 class vtkPVInteractorStyleControlCmd;
00038 class vtkPVWidget;
00039 
00040 class vtkPVInteractorStyleControlInternal;
00041 
00042 class VTK_EXPORT vtkPVInteractorStyleControl : public vtkPVTracedWidget
00043 {  
00044 public:
00045   static vtkPVInteractorStyleControl* New();
00046   vtkTypeRevisionMacro(vtkPVInteractorStyleControl,vtkPVTracedWidget);
00047   void PrintSelf(ostream& os, vtkIndent indent);
00048 
00050   virtual void Create(vtkKWApplication *app);
00051 
00053 
00054   vtkGetObjectMacro(LabeledFrame, vtkKWFrameWithLabel);
00056 
00058   void AddManipulator(const char*, vtkPVCameraManipulator*);
00059 
00061   void UpdateMenus();
00062 
00064   void SetLabel(const char*);
00065 
00067 
00068   int SetManipulator(int pos, const char*);
00069   vtkPVCameraManipulator* GetManipulator(int pos);
00070   vtkPVCameraManipulator* GetManipulator(const char* name);
00072 
00074 
00076   void SetCurrentManipulator(int pos, const char*);
00077   void SetCurrentManipulator(int mouse, int key, const char*);
00079 
00080   //BTX
00082 
00084   void SetManipulatorCollection(vtkCollection*);
00085   vtkGetObjectMacro(ManipulatorCollection, vtkCollection);
00086   //ETX
00088 
00090 
00093   vtkSetStringMacro(DefaultManipulator);
00094   vtkGetStringMacro(DefaultManipulator);
00096 
00098 
00099   void ReadRegistry();
00100   void StoreRegistry();
00102 
00104 
00105   vtkSetStringMacro(RegistryName);
00106   vtkGetStringMacro(RegistryName);
00108 
00110 
00111   void AddArgument(const char* name, const char* manipulator,
00112                    vtkPVWidget* widget);
00114 
00116 
00117   void ChangeArgument(const char* name, const char* widget);
00118   void ResetWidget(vtkPVCameraManipulator*, const char* name);
00120 
00122   vtkPVWidget* GetWidget(const char* name);
00123   
00125 
00126   vtkGetObjectMacro(CurrentManipulator, vtkPVCameraManipulator);
00128 
00130   void ExecuteEvent(vtkObject* wdg, unsigned long event, void* calldata);
00131 
00133   virtual void SaveState(ofstream *file);
00134  
00141   virtual void UpdateEnableState();
00142  
00143 protected:
00144   vtkPVInteractorStyleControl();
00145   ~vtkPVInteractorStyleControl();
00146 
00147   vtkKWFrameWithLabel *LabeledFrame;
00148   vtkKWFrame        *OuterFrame;
00149   vtkKWLabel *Labels[6];
00150   vtkKWMenuButton *Menus[9];
00151   vtkKWFrame *ArgumentsFrame;
00152 
00153   vtkPVInteractorStyleControlCmd *Observer;
00154 
00155   int InEvent;
00156 
00157   vtkCollection *ManipulatorCollection;
00158   char* DefaultManipulator;
00159   char* RegistryName;
00160 
00161   // This is hack to get tcl name;
00162   vtkPVCameraManipulator *CurrentManipulator;
00163 
00164   vtkPVInteractorStyleControlInternal* Internals;
00165 
00166 private:
00167   vtkPVInteractorStyleControl(const vtkPVInteractorStyleControl&); // Not implemented
00168   void operator=(const vtkPVInteractorStyleControl&); // Not implemented
00169 };
00170 
00171 
00172 #endif
00173 
00174 

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