00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00037 #ifndef __vtkKWColorPickerWidget_h
00038 #define __vtkKWColorPickerWidget_h
00039
00040 #include "vtkKWCompositeWidget.h"
00041
00042 class vtkKWColorSpectrumWidget;
00043 class vtkKWColorPresetSelector;
00044 class vtkKWColorTransferFunctionEditor;
00045 class vtkKWEntryWithLabel;
00046 class vtkKWFrame;
00047 class vtkKWColorSwatchesWidget;
00048 class vtkKWLabel;
00049 class vtkKWLabelSet;
00050 class vtkKWNotebook;
00051 class vtkKWRadioButton;
00052 class vtkKWLabelWithLabel;
00053 class vtkKWColorPickerWidgetInternals;
00054 class vtkKWPushButton;
00055
00056 class KWWidgets_EXPORT vtkKWColorPickerWidget : public vtkKWCompositeWidget
00057 {
00058
00059 public:
00060 static vtkKWColorPickerWidget* New();
00061 vtkTypeRevisionMacro(vtkKWColorPickerWidget,vtkKWCompositeWidget);
00062 void PrintSelf(ostream& os, vtkIndent indent);
00063
00065
00066 virtual double *GetNewColorAsRGB();
00067 virtual void GetNewColorAsRGB(double &, double &, double &);
00068 virtual void GetNewColorAsRGB(double _arg[3]);
00069 virtual void SetNewColorAsRGB(double r, double g, double b);
00070 virtual void SetNewColorAsRGB(double rgb[3]);
00071 virtual double *GetNewColorAsHSV();
00072 virtual void GetNewColorAsHSV(double &, double &, double &);
00073 virtual void GetNewColorAsHSV(double _arg[3]);
00074 virtual void SetNewColorAsHSV(double r, double g, double b);
00075 virtual void SetNewColorAsHSV(double rgb[3]);
00077
00079
00084 virtual double *GetCurrentColorAsRGB();
00085 virtual void GetCurrentColorAsRGB(double &, double &, double &);
00086 virtual void GetCurrentColorAsRGB(double _arg[3]);
00087 virtual void SetCurrentColorAsRGB(double r, double g, double b);
00088 virtual void SetCurrentColorAsRGB(double rgb[3]);
00089 virtual double *GetCurrentColorAsHSV();
00090 virtual void GetCurrentColorAsHSV(double &, double &, double &);
00091 virtual void GetCurrentColorAsHSV(double _arg[3]);
00092 virtual void SetCurrentColorAsHSV(double r, double g, double b);
00093 virtual void SetCurrentColorAsHSV(double rgb[3]);
00095
00097
00102 virtual vtkKWColorPresetSelector* GetFavoritesColorPresetSelector();
00103 virtual vtkKWColorPresetSelector* GetHistoryColorPresetSelector();
00105
00107
00108 vtkBooleanMacro(ColorSpectrumVisibility, int);
00109 virtual void SetColorSpectrumVisibility(int);
00110 vtkGetMacro(ColorSpectrumVisibility, int);
00112
00114
00115 vtkBooleanMacro(ColorSwatchesVisibility, int);
00116 virtual void SetColorSwatchesVisibility(int);
00117 vtkGetMacro(ColorSwatchesVisibility, int);
00119
00121
00122 vtkGetObjectMacro(ColorSwatchesWidget, vtkKWColorSwatchesWidget);
00124
00126
00127 vtkBooleanMacro(FavoritesVisibility, int);
00128 virtual void SetFavoritesVisibility(int);
00129 vtkGetMacro(FavoritesVisibility, int);
00131
00133
00134 vtkBooleanMacro(HistoryVisibility, int);
00135 virtual void SetHistoryVisibility(int);
00136 vtkGetMacro(HistoryVisibility, int);
00138
00140
00143 vtkBooleanMacro(CompactMode, int);
00144 virtual void SetCompactMode(int);
00145 vtkGetMacro(CompactMode, int);
00146 virtual void ToggleCompactMode();
00148
00150
00152 enum
00153 {
00154 NewColorChangedEvent = 10000,
00155 NewColorChangingEvent,
00156 CompactModeChangedEvent
00157 };
00158 vtkGetMacro(EventCallData, void*);
00159 vtkSetMacro(EventCallData, void*);
00160
00162
00164
00165 virtual void FavoritesColorPresetApplyCallback(int id);
00166 virtual int FavoritesColorPresetAddCallback();
00167 virtual void FavoritesColorPresetUpdateCallback(int id);
00168 virtual void HistoryColorPresetApplyCallback(int id);
00169 virtual void CurrentColorCallback();
00170 virtual void HexadecimalColorEntryCallback(const char*);
00171 virtual void SwatchSelectedCallback(double r, double g, double b);
00172 virtual void UpdateInfoLabelCallback();
00174
00181 virtual void UpdateEnableState();
00182
00183
00184
00185 protected:
00186 vtkKWColorPickerWidget();
00187 ~vtkKWColorPickerWidget();
00188
00190 virtual void CreateWidget();
00191
00193 virtual void Pack();
00194
00196
00197 double InternalNewColorAsRGB[3];
00198 vtkGetVector3Macro(InternalNewColorAsRGB, double);
00199 virtual void SetInternalNewColorAsRGB(double r, double g, double b);
00200 virtual void SetInternalNewColorAsRGB(double rgb[3]);
00201 double InternalNewColorAsHSV[3];
00202 vtkGetVector3Macro(InternalNewColorAsHSV, double);
00203 virtual void SetInternalNewColorAsHSV(double h, double s, double v);
00204 virtual void SetInternalNewColorAsHSV(double hsv[3]);
00206
00208
00209 double InternalCurrentColorAsRGB[3];
00210 vtkGetVector3Macro(InternalCurrentColorAsRGB, double);
00211 virtual void SetInternalCurrentColorAsRGB(double r, double g, double b);
00212 virtual void SetInternalCurrentColorAsRGB(double rgb[3]);
00213 double InternalCurrentColorAsHSV[3];
00214 vtkGetVector3Macro(InternalCurrentColorAsHSV, double);
00215 virtual void SetInternalCurrentColorAsHSV(double h, double s, double v);
00216 virtual void SetInternalCurrentColorAsHSV(double hsv[3]);
00218
00219 vtkKWFrame *SlidersFrame;
00220
00221 vtkKWFrame *RGBSlidersFrame;
00222 vtkKWColorTransferFunctionEditor *RGBSliders[3];
00223
00224 vtkKWFrame *HSVSlidersFrame;
00225 vtkKWColorTransferFunctionEditor *HSVSliders[3];
00226
00227 vtkKWRadioButton *FixedAxisRadioButton[6];
00228 vtkKWLabel *SliderUnitLabel[6];
00229
00230 vtkKWNotebook *Notebook;
00231
00232 vtkKWEntryWithLabel *HexadecimalColorEntry;
00233 vtkKWColorSpectrumWidget *ColorSpectrumWidget;
00234 vtkKWColorPresetSelector *FavoritesColorPresetSelector;
00235 vtkKWColorPresetSelector *HistoryColorPresetSelector;
00236 vtkKWColorSwatchesWidget *ColorSwatchesWidget;
00237
00238 vtkKWFrame *ColorsFrame;
00239 vtkKWLabelSet *ColorsLabelSet;
00240 vtkKWLabelSet *ColorsNameLabelSet;
00241
00242 vtkKWLabelWithLabel *InfoLabel;
00243 vtkKWPushButton *CompactModeButton;
00244
00245 virtual void UpdateSlidersRGB(double rgb[3]);
00246 virtual void UpdateSlidersHSV(double hsv[3]);
00247 virtual void UpdateColorLabel(vtkKWLabel *label, double rgb[3]);
00248 virtual void UpdateHexadecimalColorEntry(double rgb[3]);
00249
00250 virtual void UpdateInfoLabel();
00251 virtual void ScheduleUpdateInfoLabel();
00252
00253 int ColorSpectrumVisibility;
00254 int ColorSwatchesVisibility;
00255 int FavoritesVisibility;
00256 int HistoryVisibility;
00257 int CompactMode;
00258
00259 void *EventCallData;
00260
00261 virtual void CreateFavoritesColorPresetSelector();
00262 virtual void CreateHistoryColorPresetSelector();
00263 virtual void CreateColorSwatchesWidget();
00264
00265 virtual void ColorSpectrumChangingCallback();
00266 virtual void RGBSlidersChangingCallback();
00267 virtual void HSVSlidersChangingCallback();
00268
00269 virtual void NewColorChanged();
00270 virtual void NewColorChanging();
00271
00272 virtual void AdjustToCompactMode();
00273
00275
00278 virtual void ProcessCallbackCommandEvents(
00279 vtkObject *caller, unsigned long event, void *calldata);
00281
00282
00283
00284 vtkKWColorPickerWidgetInternals *Internals;
00285
00286
00287
00288
00289 private:
00290 vtkKWColorPickerWidget(const vtkKWColorPickerWidget&);
00291 void operator=(const vtkKWColorPickerWidget&);
00292 };
00293
00294
00295 #endif
00296