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
00030
00031
00032 #ifndef __vtkKWColorPickerWidget_h
00033 #define __vtkKWColorPickerWidget_h
00034
00035 #include "vtkKWCompositeWidget.h"
00036
00037 class vtkKWColorSpectrumWidget;
00038 class vtkKWColorPresetSelector;
00039 class vtkKWColorTransferFunctionEditor;
00040 class vtkKWEntryWithLabel;
00041 class vtkKWFrame;
00042 class vtkKWColorSwatchesWidget;
00043 class vtkKWLabel;
00044 class vtkKWLabelSet;
00045 class vtkKWNotebook;
00046 class vtkKWRadioButton;
00047 class vtkKWLabelWithLabel;
00048 class vtkKWColorPickerWidgetInternals;
00049 class vtkKWPushButton;
00050
00051 class KWWidgets_EXPORT vtkKWColorPickerWidget : public vtkKWCompositeWidget
00052 {
00053 public:
00054 static vtkKWColorPickerWidget* New();
00055 vtkTypeRevisionMacro(vtkKWColorPickerWidget,vtkKWCompositeWidget);
00056 void PrintSelf(ostream& os, vtkIndent indent);
00057
00058
00059
00060 virtual double *GetNewColorAsRGB();
00061 virtual void GetNewColorAsRGB(double &, double &, double &);
00062 virtual void GetNewColorAsRGB(double _arg[3]);
00063 virtual void SetNewColorAsRGB(double r, double g, double b);
00064 virtual void SetNewColorAsRGB(double rgb[3]);
00065 virtual double *GetNewColorAsHSV();
00066 virtual void GetNewColorAsHSV(double &, double &, double &);
00067 virtual void GetNewColorAsHSV(double _arg[3]);
00068 virtual void SetNewColorAsHSV(double r, double g, double b);
00069 virtual void SetNewColorAsHSV(double rgb[3]);
00070
00071
00072
00073
00074
00075
00076
00077 virtual double *GetCurrentColorAsRGB();
00078 virtual void GetCurrentColorAsRGB(double &, double &, double &);
00079 virtual void GetCurrentColorAsRGB(double _arg[3]);
00080 virtual void SetCurrentColorAsRGB(double r, double g, double b);
00081 virtual void SetCurrentColorAsRGB(double rgb[3]);
00082 virtual double *GetCurrentColorAsHSV();
00083 virtual void GetCurrentColorAsHSV(double &, double &, double &);
00084 virtual void GetCurrentColorAsHSV(double _arg[3]);
00085 virtual void SetCurrentColorAsHSV(double r, double g, double b);
00086 virtual void SetCurrentColorAsHSV(double rgb[3]);
00087
00088
00089
00090
00091
00092
00093
00094 virtual vtkKWColorPresetSelector* GetFavoritesColorPresetSelector();
00095 virtual vtkKWColorPresetSelector* GetHistoryColorPresetSelector();
00096
00097
00098
00099 vtkBooleanMacro(ColorSpectrumVisibility, int);
00100 virtual void SetColorSpectrumVisibility(int);
00101 vtkGetMacro(ColorSpectrumVisibility, int);
00102
00103
00104
00105 vtkBooleanMacro(ColorSwatchesVisibility, int);
00106 virtual void SetColorSwatchesVisibility(int);
00107 vtkGetMacro(ColorSwatchesVisibility, int);
00108
00109
00110
00111 vtkGetObjectMacro(ColorSwatchesWidget, vtkKWColorSwatchesWidget);
00112
00113
00114
00115 vtkBooleanMacro(FavoritesVisibility, int);
00116 virtual void SetFavoritesVisibility(int);
00117 vtkGetMacro(FavoritesVisibility, int);
00118
00119
00120
00121 vtkBooleanMacro(HistoryVisibility, int);
00122 virtual void SetHistoryVisibility(int);
00123 vtkGetMacro(HistoryVisibility, int);
00124
00125
00126
00127
00128
00129 vtkBooleanMacro(CompactMode, int);
00130 virtual void SetCompactMode(int);
00131 vtkGetMacro(CompactMode, int);
00132 virtual void ToggleCompactMode();
00133
00134
00135
00136
00137
00138
00139 enum
00140 {
00141 NewColorChangedEvent = 10000,
00142 NewColorChangingEvent,
00143 CompactModeChangedEvent
00144 };
00145 vtkGetMacro(EventCallData, void*);
00146 vtkSetMacro(EventCallData, void*);
00147
00148
00149
00150
00151 virtual void FavoritesColorPresetApplyCallback(int id);
00152 virtual int FavoritesColorPresetAddCallback();
00153 virtual void FavoritesColorPresetUpdateCallback(int id);
00154 virtual void HistoryColorPresetApplyCallback(int id);
00155 virtual void CurrentColorCallback();
00156 virtual void HexadecimalColorEntryCallback(const char*);
00157 virtual void SwatchSelectedCallback(double r, double g, double b);
00158 virtual void UpdateInfoLabelCallback();
00159
00160
00161
00162
00163
00164
00165
00166
00167 virtual void UpdateEnableState();
00168
00169 protected:
00170 vtkKWColorPickerWidget();
00171 ~vtkKWColorPickerWidget();
00172
00173
00174
00175 virtual void CreateWidget();
00176
00177
00178
00179 virtual void Pack();
00180
00181
00182
00183 double InternalNewColorAsRGB[3];
00184 vtkGetVector3Macro(InternalNewColorAsRGB, double);
00185 virtual void SetInternalNewColorAsRGB(double r, double g, double b);
00186 virtual void SetInternalNewColorAsRGB(double rgb[3]);
00187 double InternalNewColorAsHSV[3];
00188 vtkGetVector3Macro(InternalNewColorAsHSV, double);
00189 virtual void SetInternalNewColorAsHSV(double h, double s, double v);
00190 virtual void SetInternalNewColorAsHSV(double hsv[3]);
00191
00192
00193
00194 double InternalCurrentColorAsRGB[3];
00195 vtkGetVector3Macro(InternalCurrentColorAsRGB, double);
00196 virtual void SetInternalCurrentColorAsRGB(double r, double g, double b);
00197 virtual void SetInternalCurrentColorAsRGB(double rgb[3]);
00198 double InternalCurrentColorAsHSV[3];
00199 vtkGetVector3Macro(InternalCurrentColorAsHSV, double);
00200 virtual void SetInternalCurrentColorAsHSV(double h, double s, double v);
00201 virtual void SetInternalCurrentColorAsHSV(double hsv[3]);
00202
00203 vtkKWFrame *SlidersFrame;
00204
00205 vtkKWFrame *RGBSlidersFrame;
00206 vtkKWColorTransferFunctionEditor *RGBSliders[3];
00207
00208 vtkKWFrame *HSVSlidersFrame;
00209 vtkKWColorTransferFunctionEditor *HSVSliders[3];
00210
00211 vtkKWRadioButton *FixedAxisRadioButton[6];
00212 vtkKWLabel *SliderUnitLabel[6];
00213
00214 vtkKWNotebook *Notebook;
00215
00216 vtkKWEntryWithLabel *HexadecimalColorEntry;
00217 vtkKWColorSpectrumWidget *ColorSpectrumWidget;
00218 vtkKWColorPresetSelector *FavoritesColorPresetSelector;
00219 vtkKWColorPresetSelector *HistoryColorPresetSelector;
00220 vtkKWColorSwatchesWidget *ColorSwatchesWidget;
00221
00222 vtkKWFrame *ColorsFrame;
00223 vtkKWLabelSet *ColorsLabelSet;
00224 vtkKWLabelSet *ColorsNameLabelSet;
00225
00226 vtkKWLabelWithLabel *InfoLabel;
00227 vtkKWPushButton *CompactModeButton;
00228
00229 virtual void UpdateSlidersRGB(double rgb[3]);
00230 virtual void UpdateSlidersHSV(double hsv[3]);
00231 virtual void UpdateColorLabel(vtkKWLabel *label, double rgb[3]);
00232 virtual void UpdateHexadecimalColorEntry(double rgb[3]);
00233
00234 virtual void UpdateInfoLabel();
00235 virtual void ScheduleUpdateInfoLabel();
00236
00237 int ColorSpectrumVisibility;
00238 int ColorSwatchesVisibility;
00239 int FavoritesVisibility;
00240 int HistoryVisibility;
00241 int CompactMode;
00242
00243 void *EventCallData;
00244
00245 virtual void CreateFavoritesColorPresetSelector();
00246 virtual void CreateHistoryColorPresetSelector();
00247 virtual void CreateColorSwatchesWidget();
00248
00249 virtual void ColorSpectrumChangingCallback();
00250 virtual void RGBSlidersChangingCallback();
00251 virtual void HSVSlidersChangingCallback();
00252
00253 virtual void NewColorChanged();
00254 virtual void NewColorChanging();
00255
00256 virtual void AdjustToCompactMode();
00257
00258
00259
00260
00261
00262 virtual void ProcessCallbackCommandEvents(
00263 vtkObject *caller, unsigned long event, void *calldata);
00264
00265
00266
00267 vtkKWColorPickerWidgetInternals *Internals;
00268
00269
00270 private:
00271 vtkKWColorPickerWidget(const vtkKWColorPickerWidget&);
00272 void operator=(const vtkKWColorPickerWidget&);
00273 };
00274
00275
00276 #endif