00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00040 #ifndef __vtkScalarBarWidget_h
00041 #define __vtkScalarBarWidget_h
00042
00043 #include "vtkInteractorObserver.h"
00044 class vtkScalarBarActor;
00045
00046 class VTK_WIDGETS_EXPORT vtkScalarBarWidget : public vtkInteractorObserver
00047 {
00048 public:
00049 static vtkScalarBarWidget *New();
00050 vtkTypeRevisionMacro(vtkScalarBarWidget,vtkInteractorObserver);
00051 void PrintSelf(ostream& os, vtkIndent indent);
00052
00054
00055 void SetScalarBarActor(vtkScalarBarActor *scalarbar);
00056 vtkGetObjectMacro(ScalarBarActor,vtkScalarBarActor);
00058
00060 virtual void SetEnabled(int);
00061
00062 protected:
00063 vtkScalarBarWidget();
00064 ~vtkScalarBarWidget();
00065
00066
00067 vtkScalarBarActor *ScalarBarActor;
00068
00069
00070 static void ProcessEvents(vtkObject* object,
00071 unsigned long event,
00072 void* clientdata,
00073 void* calldata);
00074
00075
00076 void OnLeftButtonDown();
00077 void OnLeftButtonUp();
00078 void OnRightButtonDown();
00079 void OnRightButtonUp();
00080 void OnMouseMove();
00081
00082
00083 double StartPosition[2];
00084
00085
00086 int State;
00087
00088
00089 int LeftButtonDown;
00090 int RightButtonDown;
00091 enum WidgetState
00092 {
00093 Moving=0,
00094 AdjustingP1,
00095 AdjustingP2,
00096 AdjustingP3,
00097 AdjustingP4,
00098 AdjustingE1,
00099 AdjustingE2,
00100 AdjustingE3,
00101 AdjustingE4,
00102 Inside,
00103 Outside
00104 };
00105
00106
00107
00108
00109 int ComputeStateBasedOnPosition(int X, int Y, int *pos1, int *pos2);
00110
00111
00112 void SetCursor(int State);
00113
00114 private:
00115 vtkScalarBarWidget(const vtkScalarBarWidget&);
00116 void operator=(const vtkScalarBarWidget&);
00117 };
00118
00119 #endif