19 #ifndef __vtkKWThumbWheel_h
20 #define __vtkKWThumbWheel_h
34 void PrintSelf(ostream& os, vtkIndent indent);
38 virtual void SetValue(
double v);
39 vtkGetMacro(Value,
double);
44 vtkSetMacro(MinimumValue,
double);
45 vtkGetMacro(MinimumValue,
double);
46 vtkSetMacro(ClampMinimumValue,
int);
47 vtkGetMacro(ClampMinimumValue,
int);
48 vtkBooleanMacro(ClampMinimumValue,
int);
53 vtkSetMacro(MaximumValue,
double);
54 vtkGetMacro(MaximumValue,
double);
55 vtkSetMacro(ClampMaximumValue,
int);
56 vtkGetMacro(ClampMaximumValue,
int);
57 vtkBooleanMacro(ClampMaximumValue,
int);
61 virtual void SetRange(
double min,
double max)
62 { this->SetMinimumValue(min); this->SetMaximumValue(max); };
63 virtual void SetRange(
const double *range)
64 { this->
SetRange(range[0], range[1]); };
73 virtual void SetResolution(
double r);
74 vtkGetMacro(Resolution,
double);
75 vtkSetMacro(ClampResolution,
int);
76 vtkGetMacro(ClampResolution,
int);
77 vtkBooleanMacro(ClampResolution,
int);
86 InteractionModeNone = 0,
87 InteractionModeLinearMotion,
88 InteractionModeNonLinearMotion,
89 InteractionModeToggleCenterIndicator
92 virtual void SetInteractionMode(
int mode,
int v);
93 virtual int GetInteractionMode(
int mode);
94 virtual void SetInteractionModeToNone(
int mode)
95 { this->SetInteractionMode(
97 virtual void SetInteractionModeToLinear(
int mode)
98 { this->SetInteractionMode(
100 virtual void SetInteractionModeToNonLinear(
int mode)
101 { this->SetInteractionMode(
103 virtual void SetInteractionModeToToggleCenterIndicator(
int mode)
104 { this->SetInteractionMode(
106 virtual char *GetInteractionModeAsString(
int mode);
117 vtkSetClampMacro(LinearThreshold,
double, 0.0, 1.0);
118 vtkGetMacro(LinearThreshold,
double);
124 vtkSetMacro(NonLinearMaximumMultiplier,
double);
125 vtkGetMacro(NonLinearMaximumMultiplier,
double);
129 virtual void SetThumbWheelWidth(
int v);
130 vtkGetMacro(ThumbWheelWidth,
int);
131 virtual void SetThumbWheelHeight(
int v);
132 vtkGetMacro(ThumbWheelHeight,
int);
133 virtual void SetThumbWheelSize(
int w,
int h)
134 { this->SetThumbWheelWidth(w); this->SetThumbWheelHeight(h); };
135 virtual void SetLength(
int v) { this->SetThumbWheelWidth(v); };
142 virtual void SetResizeThumbWheel(
int flag);
143 vtkGetMacro(ResizeThumbWheel,
int);
144 vtkBooleanMacro(ResizeThumbWheel,
int);
150 vtkSetMacro(DisplayThumbWheelPositionIndicator,
int);
151 vtkGetMacro(DisplayThumbWheelPositionIndicator,
int);
152 vtkBooleanMacro(DisplayThumbWheelPositionIndicator,
int);
153 vtkSetVector3Macro(ThumbWheelPositionIndicatorColor,
double);
154 vtkGetVectorMacro(ThumbWheelPositionIndicatorColor,
double, 3);
159 virtual void SetDisplayThumbWheelCenterIndicator(
int flag);
160 vtkGetMacro(DisplayThumbWheelCenterIndicator,
int);
161 vtkBooleanMacro(DisplayThumbWheelCenterIndicator,
int);
162 virtual void ToggleDisplayThumbWheelCenterIndicator();
168 virtual void SetSizeOfNotches(
double v);
169 vtkGetMacro(SizeOfNotches,
double);
173 virtual void SetDisplayEntry(
int flag);
174 vtkGetMacro(DisplayEntry,
int);
175 vtkBooleanMacro(DisplayEntry,
int);
180 virtual void SetDisplayLabel(
int flag);
181 vtkGetMacro(DisplayLabel,
int);
182 vtkBooleanMacro(DisplayLabel,
int);
187 virtual void SetDisplayEntryAndLabelOnTop(
int flag);
188 vtkGetMacro(DisplayEntryAndLabelOnTop,
int);
189 vtkBooleanMacro(DisplayEntryAndLabelOnTop,
int);
194 vtkSetMacro(PopupMode,
int);
195 vtkGetMacro(PopupMode,
int);
196 vtkBooleanMacro(PopupMode,
int);
204 virtual void SetExpandEntry(
int flag);
205 vtkGetMacro(ExpandEntry,
int);
206 vtkBooleanMacro(ExpandEntry,
int);
242 virtual void SetCommand(vtkObject *
object,
const char *method);
243 virtual void SetStartCommand(vtkObject *
object,
const char *method);
244 virtual void SetEndCommand(vtkObject *
object,
const char *method);
245 virtual void SetEntryCommand(vtkObject *
object,
const char *method);
261 ThumbWheelValueChangingEvent = 10000,
262 ThumbWheelValueChangedEvent,
263 ThumbWheelValueStartChangingEvent
289 virtual void ResizeThumbWheelCallback();
290 virtual void DisplayPopupCallback();
291 virtual void WithdrawPopupCallback();
292 virtual void EntryValueCallback(
const char*);
293 virtual void StartLinearMotionCallback();
294 virtual void PerformLinearMotionCallback();
295 virtual void StartNonLinearMotionCallback();
296 virtual void PerformNonLinearMotionCallback();
297 virtual void StopMotionCallback();
309 int ClampMinimumValue;
311 int ClampMaximumValue;
314 double NonLinearMaximumMultiplier;
315 double LinearThreshold;
318 int ThumbWheelHeight;
319 double SizeOfNotches;
320 double ThumbWheelPositionIndicatorColor[3];
322 int ResizeThumbWheel;
325 int DisplayEntryAndLabelOnTop;
326 int DisplayThumbWheelPositionIndicator;
327 int DisplayThumbWheelCenterIndicator;
336 virtual void InvokeThumbWheelCommand(
const char *command,
double value);
337 virtual void InvokeCommand(
double value);
338 virtual void InvokeStartCommand(
double value);
339 virtual void InvokeEndCommand(
double value);
340 virtual void InvokeEntryCommand(
double value);
342 double ThumbWheelShift;
344 int InteractionModes[3];
354 void UpdateThumbWheelImage(
double pos = -1.0);
356 double GetMousePositionInThumbWheel();
367 class LinearMotionState
371 double ThumbWheelShift;
372 double MousePosition;
376 class NonLinearMotionState
385 LinearMotionState StartLinearMotionState;
386 NonLinearMotionState StartNonLinearMotionState;