00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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
00082
00084 void SetManipulatorCollection(vtkCollection*);
00085 vtkGetObjectMacro(ManipulatorCollection, vtkCollection);
00086
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
00162 vtkPVCameraManipulator *CurrentManipulator;
00163
00164 vtkPVInteractorStyleControlInternal* Internals;
00165
00166 private:
00167 vtkPVInteractorStyleControl(const vtkPVInteractorStyleControl&);
00168 void operator=(const vtkPVInteractorStyleControl&);
00169 };
00170
00171
00172 #endif
00173
00174