00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef FXCOLORSELECTOR_H
00025 #define FXCOLORSELECTOR_H
00026
00027 #ifndef FXPACKER_H
00028 #include "FXPacker.h"
00029 #endif
00030
00031 namespace FX {
00032
00033
00034 class FXTabBook;
00035 class FXColorBar;
00036 class FXColorWell;
00037 class FXColorWheel;
00038 class FXColorRing;
00039 class FXColorList;
00040 class FXList;
00041 class FXSlider;
00042 class FXTextField;
00043 class FXButton;
00044 class FXIcon;
00045 class FXLabel;
00046
00047
00049 class FXAPI FXColorSelector : public FXPacker {
00050 FXDECLARE(FXColorSelector)
00051 protected:
00052 FXTabBook *panels;
00053 FXColorWell *well;
00054 FXColorList *list;
00055 FXColorRing *wheel;
00056 FXSlider *rgbaslider[4];
00057 FXTextField *rgbatext[4];
00058 FXSlider *hsvaslider[4];
00059 FXTextField *hsvatext[4];
00060 FXSlider *cmyslider[4];
00061 FXTextField *cmytext[4];
00062 FXColorWell *colorwells[24];
00063 FXIcon *eyedropicon;
00064 FXIcon *dialmodeicon;
00065 FXIcon *rgbmodeicon;
00066 FXIcon *hsvmodeicon;
00067 FXIcon *cmymodeicon;
00068 FXIcon *txtmodeicon;
00069 FXButton *accept;
00070 FXButton *cancel;
00071 FXfloat rgba[4];
00072 FXfloat hsva[4];
00073 protected:
00074 static const FXchar* wellname[24];
00075 protected:
00076 FXColorSelector(){}
00077 void updateWell();
00078 private:
00079 FXColorSelector(const FXColorSelector&);
00080 FXColorSelector &operator=(const FXColorSelector&);
00081 public:
00082 long onCmdWell(FXObject*,FXSelector,void*);
00083 long onChgWell(FXObject*,FXSelector,void*);
00084 long onCmdRGBSlider(FXObject*,FXSelector,void*);
00085 long onUpdRGBSlider(FXObject*,FXSelector,void*);
00086 long onCmdRGBText(FXObject*,FXSelector,void*);
00087 long onUpdRGBText(FXObject*,FXSelector,void*);
00088 long onCmdHSVSlider(FXObject*,FXSelector,void*);
00089 long onUpdHSVSlider(FXObject*,FXSelector,void*);
00090 long onCmdHSVText(FXObject*,FXSelector,void*);
00091 long onUpdHSVText(FXObject*,FXSelector,void*);
00092 long onCmdCMYSlider(FXObject*,FXSelector,void*);
00093 long onUpdCMYSlider(FXObject*,FXSelector,void*);
00094 long onCmdCMYText(FXObject*,FXSelector,void*);
00095 long onUpdCMYText(FXObject*,FXSelector,void*);
00096 long onCmdList(FXObject*,FXSelector,void*);
00097 long onCmdCustomWell(FXObject*,FXSelector,void*);
00098 long onChgCustomWell(FXObject*,FXSelector,void*);
00099 long onCmdSetValue(FXObject*,FXSelector,void*);
00100 long onCmdActivePane(FXObject*,FXSelector,void*);
00101 long onCmdAlphaSlider(FXObject*,FXSelector,void*);
00102 long onUpdAlphaSlider(FXObject*,FXSelector,void*);
00103 long onCmdAlphaText(FXObject*,FXSelector,void*);
00104 long onUpdAlphaText(FXObject*,FXSelector,void*);
00105 long onUpdAlphaLabel(FXObject*,FXSelector,void*);
00106 long onCmdWheel(FXObject*,FXSelector,void*);
00107 long onUpdWheel(FXObject*,FXSelector,void*);
00108 long onCmdColorPick(FXObject*,FXSelector,void*);
00109 public:
00110 enum {
00111 ID_CUSTOM_FIRST=FXPacker::ID_LAST,
00112 ID_CUSTOM_LAST=ID_CUSTOM_FIRST+24,
00113 ID_RGB_RED_SLIDER,
00114 ID_RGB_GREEN_SLIDER,
00115 ID_RGB_BLUE_SLIDER,
00116 ID_RGB_RED_TEXT,
00117 ID_RGB_GREEN_TEXT,
00118 ID_RGB_BLUE_TEXT,
00119 ID_HSV_HUE_SLIDER,
00120 ID_HSV_SATURATION_SLIDER,
00121 ID_HSV_VALUE_SLIDER,
00122 ID_HSV_HUE_TEXT,
00123 ID_HSV_SATURATION_TEXT,
00124 ID_HSV_VALUE_TEXT,
00125 ID_CMY_CYAN_SLIDER,
00126 ID_CMY_MAGENTA_SLIDER,
00127 ID_CMY_YELLOW_SLIDER,
00128 ID_CMY_CYAN_TEXT,
00129 ID_CMY_MAGENTA_TEXT,
00130 ID_CMY_YELLOW_TEXT,
00131 ID_DIAL_WHEEL,
00132 ID_COLOR_LIST,
00133 ID_WELL_CHANGED,
00134 ID_ACTIVEPANE,
00135 ID_ALPHA_SLIDER,
00136 ID_ALPHA_TEXT,
00137 ID_ALPHA_LABEL,
00138 ID_COLORPICK,
00139 ID_LAST
00140 };
00141 public:
00142
00144 FXColorSelector(FXComposite *p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
00145
00147 virtual void create();
00148
00150 FXButton *acceptButton() const { return accept; }
00151
00153 FXButton *cancelButton() const { return cancel; }
00154
00156 void setRGBA(FXColor clr);
00157
00159 FXColor getRGBA() const;
00160
00162 FXbool isOpaqueOnly() const;
00163
00165 void setOpaqueOnly(FXbool opaque);
00166
00168 virtual void save(FXStream& store) const;
00169
00171 virtual void load(FXStream& store);
00172
00174 virtual ~FXColorSelector();
00175 };
00176
00177 }
00178
00179 #endif