00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkPV3DWidget_h
00027 #define __vtkPV3DWidget_h
00028
00029 #include "vtkPVObjectWidget.h"
00030
00031 class vtkKWCheckButton;
00032 class vtkKWFrameWithLabel;
00033
00034 class vtkPV3DWidgetObserver;
00035 class vtkKWFrame;
00036 class vtkSMProxy;
00037 class vtkSM3DWidgetProxy;
00038
00039 class VTK_EXPORT vtkPV3DWidget : public vtkPVObjectWidget
00040 {
00041 public:
00042 vtkTypeRevisionMacro(vtkPV3DWidget, vtkPVObjectWidget);
00043
00044 void PrintSelf(ostream& os, vtkIndent indent);
00045
00049 virtual void Create(vtkKWApplication *app);
00050
00052
00053 void SetVisibility();
00054 virtual void SetVisibility(int val);
00055 void SetVisibilityNoTrace(int val);
00056 vtkBooleanMacro(Visibility, int);
00058
00060 void SetValueChanged();
00061
00064 virtual void Select();
00065
00068 virtual void Deselect();
00069
00074 virtual void EnableAnimation() { };
00075
00080 virtual void DisableAnimation() { };
00081
00083 virtual void PlaceWidget();
00084
00087 virtual void ActualPlaceWidget();
00088
00090
00091 vtkSetMacro(UseLabel, int);
00092 vtkGetMacro(UseLabel, int);
00094
00095
00097
00098 virtual void Accept();
00099 virtual void ResetInternal();
00101
00103
00104 virtual void Initialize();
00105
00107
00114 virtual void UpdateEnableState();
00115
00117 virtual vtkSMProxy* GetProxyByName(const char*) { return NULL; }
00118
00119 vtkGetObjectMacro(WidgetProxy,vtkSM3DWidgetProxy);
00120 vtkGetStringMacro(WidgetProxyName);
00121 vtkGetStringMacro(WidgetProxyXMLName);
00122
00123
00125 virtual void Trace(ofstream *file);
00126
00127 protected:
00128 vtkPV3DWidget();
00129 ~vtkPV3DWidget();
00130
00131 virtual void PlaceWidget(double bds[6]);
00132
00134 void InitializeObservers(vtkSM3DWidgetProxy* widgetproxy);
00135
00136 void Render();
00137
00138 vtkPV3DWidgetObserver* Observer;
00139 vtkSM3DWidgetProxy *WidgetProxy;
00140 char *WidgetProxyName;
00141 char *WidgetProxyXMLName;
00142 vtkSetStringMacro(WidgetProxyName);
00143 vtkSetStringMacro(WidgetProxyXMLName);
00144
00146 void SetFrameLabel(const char* label);
00147
00149 virtual void ChildCreate(vtkPVApplication*) = 0;
00150
00151
00152 virtual void CopyProperties(vtkPVWidget* clone, vtkPVSource* pvSource,
00153 vtkArrayMap<vtkPVWidget*, vtkPVWidget*>* map);
00154
00155 friend class vtkPV3DWidgetObserver;
00156
00157
00158 virtual void ExecuteEvent(vtkObject*, unsigned long, void*);
00159
00160 virtual int ReadXMLAttributes(vtkPVXMLElement* element,
00161 vtkPVXMLPackageParser* parser);
00162
00163 vtkKWFrame* Frame;
00164 vtkKWFrameWithLabel* LabeledFrame;
00165 vtkKWCheckButton* Visibility;
00166 int ValueChanged;
00167 int Placed;
00168 int Visible;
00169 int UseLabel;
00170
00171 private:
00172 vtkPV3DWidget(const vtkPV3DWidget&);
00173 void operator=(const vtkPV3DWidget&);
00174 };
00175
00176 #endif