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 FXCOLORWHEEL_H
00025 
#define FXCOLORWHEEL_H
00026 
00027 
#ifndef FXFRAME_H
00028 
#include "FXFrame.h"
00029 
#endif
00030 
00031 
namespace FX {
00032 
00033 
00034 
class FXImage;
00035 
00036 
00037 
00038 
00039 
00040 
00041 class FXAPI FXColorWheel : 
public FXFrame {
00042   FXDECLARE(FXColorWheel)
00043 
protected:
00044   
FXImage  *dial;         
00045   FXfloat   hsv[3];       
00046   FXint     spotx;        
00047   FXint     spoty;        
00048   FXint     dialx;        
00049   FXint     dialy;        
00050   
FXString  tip;          
00051   
FXString  help;         
00052 
protected:
00053   FXColorWheel();
00054   
void updatedial();
00055   
void movespot(FXint x,FXint y);
00056   FXbool hstoxy(FXint& x,FXint& y,FXfloat h,FXfloat s) 
const;
00057   FXbool xytohs(FXfloat& h,FXfloat& s,FXint x,FXint y) 
const;
00058 
private:
00059   FXColorWheel(
const FXColorWheel&);
00060   FXColorWheel &operator=(
const FXColorWheel&);
00061 
public:
00062   
long onPaint(
FXObject*,FXSelector,
void*);
00063   
long onLeftBtnPress(
FXObject*,FXSelector,
void*);
00064   
long onLeftBtnRelease(
FXObject*,FXSelector,
void*);
00065   
long onMotion(
FXObject*,FXSelector,
void*);
00066   
long onMouseWheel(
FXObject*,FXSelector,
void*);
00067   
long onCmdSetHelp(
FXObject*,FXSelector,
void*);
00068   
long onCmdGetHelp(
FXObject*,FXSelector,
void*);
00069   
long onCmdSetTip(
FXObject*,FXSelector,
void*);
00070   
long onCmdGetTip(
FXObject*,FXSelector,
void*);
00071   
long onQueryHelp(
FXObject*,FXSelector,
void*);
00072   
long onQueryTip(
FXObject*,FXSelector,
void*);
00073 
public:
00074 
00075 
00076   FXColorWheel(
FXComposite* p,
FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=
FRAME_NORMAL,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00077 
00078 
00079   virtual void create();
00080 
00081 
00082   
virtual void detach();
00083 
00084 
00085   virtual void layout();
00086 
00087 
00088   
virtual FXint getDefaultWidth();
00089 
00090 
00091   virtual FXint getDefaultHeight();
00092 
00093 
00094   
void setHue(FXfloat h);
00095 
00096 
00097   FXfloat getHue()
 const { 
return hsv[0]; }
00098 
00099 
00100   
void setSat(FXfloat s);
00101 
00102 
00103   FXfloat getSat()
 const { 
return hsv[1]; }
00104 
00105 
00106   
void setVal(FXfloat v);
00107 
00108 
00109   FXfloat getVal()
 const { 
return hsv[2]; }
00110 
00111 
00112   
void setHelpText(
const FXString& text);
00113 
00114 
00115   FXString getHelpText()
 const { 
return help; }
00116 
00117 
00118   
void setTipText(
const FXString& text);
00119 
00120 
00121   FXString getTipText()
 const { 
return tip; }
00122 
00123 
00124   
virtual void save(FXStream& store) 
const;
00125 
00126 
00127   
virtual void load(FXStream& store);
00128 
00129 
00130   
virtual ~FXColorWheel();
00131   };
00132 
00133 }
00134 
00135 
#endif