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_HYBRID_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