00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __vtkKWColorSpectrumWidget_h
00030 #define __vtkKWColorSpectrumWidget_h
00031
00032 #include "vtkKWCompositeWidget.h"
00033
00034 class vtkKWLabel;
00035 class vtkKWRadioButtonSet;
00036 class vtkKWCanvas;
00037 class vtkKWColorSpectrumWidgetInternals;
00038
00039 class KWWidgets_EXPORT vtkKWColorSpectrumWidget : public vtkKWCompositeWidget
00040 {
00041 public:
00042 static vtkKWColorSpectrumWidget* New();
00043 vtkTypeRevisionMacro(vtkKWColorSpectrumWidget,vtkKWCompositeWidget);
00044 void PrintSelf(ostream& os, vtkIndent indent);
00045
00046
00047
00048 virtual double *GetColorAsRGB();
00049 virtual void GetColorAsRGB(double &_arg1, double &_arg2, double &_arg3);
00050 virtual void GetColorAsRGB(double _arg[3]);
00051 virtual void SetColorAsRGB(double r, double g, double b);
00052 virtual void SetColorAsRGB(double rgb[3]);
00053
00054
00055
00056 virtual double *GetColorAsHSV();
00057 virtual void GetColorAsHSV(double &_arg1, double &_arg2, double &_arg3);
00058 virtual void GetColorAsHSV(double _arg[3]);
00059 virtual void SetColorAsHSV(double r, double g, double b);
00060 virtual void SetColorAsHSV(double rgb[3]);
00061
00062
00063
00064
00065 enum
00066 {
00067 FixedAxisR = 0,
00068 FixedAxisG,
00069 FixedAxisB,
00070 FixedAxisH,
00071 FixedAxisS,
00072 FixedAxisV
00073 };
00074
00075 virtual void SetFixedAxis(int);
00076 vtkGetMacro(FixedAxis, int);
00077 virtual void SetFixedAxisToR();
00078 virtual void SetFixedAxisToG();
00079 virtual void SetFixedAxisToB();
00080 virtual void SetFixedAxisToH();
00081 virtual void SetFixedAxisToS();
00082 virtual void SetFixedAxisToV();
00083
00084
00085
00086 virtual void SetFixedAxisSelectorVisibility(int);
00087 vtkGetMacro(FixedAxisSelectorVisibility,int);
00088 vtkBooleanMacro(FixedAxisSelectorVisibility,int);
00089
00090
00091
00092 virtual void SetCanvasSize(int);
00093 vtkGetMacro(CanvasSize,int);
00094 vtkBooleanMacro(CanvasSize,int);
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116 virtual void SetColorChangedCommand(vtkObject *object, const char *method);
00117 virtual void SetColorChangingCommand(vtkObject *object, const char *method);
00118
00119
00120
00121
00122 enum
00123 {
00124 ColorChangedEvent = 10000,
00125 ColorChangingEvent
00126 };
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136 virtual void UpdateEnableState();
00137
00138
00139
00140 virtual void PickColorPressCallback(int x, int y);
00141 virtual void PickColorMoveCallback(int x, int y);
00142 virtual void PickColorReleaseCallback();
00143
00144 protected:
00145 vtkKWColorSpectrumWidget();
00146 ~vtkKWColorSpectrumWidget();
00147
00148
00149
00150 virtual void CreateWidget();
00151
00152
00153
00154 double InternalColorRGB[3];
00155 vtkGetVector3Macro(InternalColorRGB, double);
00156 virtual void SetInternalColorRGB(double r, double g, double b);
00157 virtual void SetInternalColorRGB(double rgb[3]);
00158 double InternalColorHSV[3];
00159 vtkGetVector3Macro(InternalColorHSV, double);
00160 virtual void SetInternalColorHSV(double h, double s, double v);
00161 virtual void SetInternalColorHSV(double hsv[3]);
00162
00163 vtkKWCanvas *ColorCanvas;
00164 vtkKWRadioButtonSet *FixedAxisRadioButtonSet;
00165
00166 virtual void UpdateColorCanvas();
00167 virtual void UpdateColorCursor();
00168 virtual void Pack();
00169
00170 int FixedAxis;
00171 int FixedAxisSelectorVisibility;
00172 int CanvasSize;
00173
00174
00175
00176 char *ColorChangedCommand;
00177 char *ColorChangingCommand;
00178 virtual void InvokeColorChangedCommand();
00179 virtual void InvokeColorChangingCommand();
00180
00181
00182
00183 virtual void AddBindings();
00184 virtual void RemoveBindings();
00185
00186
00187
00188 virtual void AdjustToCanvasSize();
00189
00190
00191
00192 vtkKWColorSpectrumWidgetInternals *Internals;
00193
00194
00195 private:
00196 vtkKWColorSpectrumWidget(const vtkKWColorSpectrumWidget&);
00197 void operator=(const vtkKWColorSpectrumWidget&);
00198 };
00199
00200
00201 #endif