00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00030 #ifndef __vtkKWColorSpectrumWidget_h
00031 #define __vtkKWColorSpectrumWidget_h
00032
00033 #include "vtkKWCompositeWidget.h"
00034
00035 class vtkKWLabel;
00036 class vtkKWRadioButtonSet;
00037 class vtkKWCanvas;
00038 class vtkKWColorSpectrumWidgetInternals;
00039
00040 class KWWidgets_EXPORT vtkKWColorSpectrumWidget : public vtkKWCompositeWidget
00041 {
00042
00043 public:
00044 static vtkKWColorSpectrumWidget* New();
00045 vtkTypeRevisionMacro(vtkKWColorSpectrumWidget,vtkKWCompositeWidget);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00049
00050 virtual double *GetColorAsRGB();
00051 virtual void GetColorAsRGB(double &_arg1, double &_arg2, double &_arg3);
00052 virtual void GetColorAsRGB(double _arg[3]);
00053 virtual void SetColorAsRGB(double r, double g, double b);
00054 virtual void SetColorAsRGB(double rgb[3]);
00056
00058
00059 virtual double *GetColorAsHSV();
00060 virtual void GetColorAsHSV(double &_arg1, double &_arg2, double &_arg3);
00061 virtual void GetColorAsHSV(double _arg[3]);
00062 virtual void SetColorAsHSV(double r, double g, double b);
00063 virtual void SetColorAsHSV(double rgb[3]);
00065
00067
00068 enum
00069 {
00070 FixedAxisR = 0,
00071 FixedAxisG,
00072 FixedAxisB,
00073 FixedAxisH,
00074 FixedAxisS,
00075 FixedAxisV
00076 };
00077
00078 virtual void SetFixedAxis(int);
00079 vtkGetMacro(FixedAxis, int);
00080 virtual void SetFixedAxisToR();
00081 virtual void SetFixedAxisToG();
00082 virtual void SetFixedAxisToB();
00083 virtual void SetFixedAxisToH();
00084 virtual void SetFixedAxisToS();
00085 virtual void SetFixedAxisToV();
00087
00089
00090 virtual void SetFixedAxisSelectorVisibility(int);
00091 vtkGetMacro(FixedAxisSelectorVisibility,int);
00092 vtkBooleanMacro(FixedAxisSelectorVisibility,int);
00094
00096
00097 virtual void SetCanvasSize(int);
00098 vtkGetMacro(CanvasSize,int);
00099 vtkBooleanMacro(CanvasSize,int);
00101
00103
00121 virtual void SetColorChangedCommand(vtkObject *object, const char *method);
00122 virtual void SetColorChangingCommand(vtkObject *object, const char *method);
00124
00126
00127 enum
00128 {
00129 ColorChangedEvent = 10000,
00130 ColorChangingEvent
00131 };
00132
00134
00141 virtual void UpdateEnableState();
00142
00144
00145 virtual void PickColorPressCallback(int x, int y);
00146 virtual void PickColorMoveCallback(int x, int y);
00147 virtual void PickColorReleaseCallback();
00149
00150
00151
00152 protected:
00153 vtkKWColorSpectrumWidget();
00154 ~vtkKWColorSpectrumWidget();
00155
00157 virtual void CreateWidget();
00158
00160
00161 double InternalColorRGB[3];
00162 vtkGetVector3Macro(InternalColorRGB, double);
00163 virtual void SetInternalColorRGB(double r, double g, double b);
00164 virtual void SetInternalColorRGB(double rgb[3]);
00165 double InternalColorHSV[3];
00166 vtkGetVector3Macro(InternalColorHSV, double);
00167 virtual void SetInternalColorHSV(double h, double s, double v);
00168 virtual void SetInternalColorHSV(double hsv[3]);
00170
00171 vtkKWCanvas *ColorCanvas;
00172 vtkKWRadioButtonSet *FixedAxisRadioButtonSet;
00173
00174 virtual void UpdateColorCanvas();
00175 virtual void UpdateColorCursor();
00176 virtual void Pack();
00177
00178 int FixedAxis;
00179 int FixedAxisSelectorVisibility;
00180 int CanvasSize;
00181
00183
00184 char *ColorChangedCommand;
00185 char *ColorChangingCommand;
00186 virtual void InvokeColorChangedCommand();
00187 virtual void InvokeColorChangingCommand();
00189
00191
00192 virtual void AddBindings();
00193 virtual void RemoveBindings();
00195
00197 virtual void AdjustToCanvasSize();
00198
00199
00200
00201 vtkKWColorSpectrumWidgetInternals *Internals;
00202
00203
00204
00205
00206 private:
00207 vtkKWColorSpectrumWidget(const vtkKWColorSpectrumWidget&);
00208 void operator=(const vtkKWColorSpectrumWidget&);
00209 };
00210
00211
00212 #endif
00213