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 FXSLIDER_H
00025 #define FXSLIDER_H
00026
00027 #ifndef FXFRAME_H
00028 #include "FXFrame.h"
00029 #endif
00030
00031 namespace FX {
00032
00033
00034
00035
00036 enum {
00037 SLIDER_HORIZONTAL = 0,
00038 SLIDER_VERTICAL = 0x00008000,
00039 SLIDER_ARROW_UP = 0x00010000,
00040 SLIDER_ARROW_DOWN = 0x00020000,
00041 SLIDER_ARROW_LEFT = SLIDER_ARROW_UP,
00042 SLIDER_ARROW_RIGHT = SLIDER_ARROW_DOWN,
00043 SLIDER_INSIDE_BAR = 0x00040000,
00044 SLIDER_TICKS_TOP = 0x00080000,
00045 SLIDER_TICKS_BOTTOM = 0x00100000,
00046 SLIDER_TICKS_LEFT = SLIDER_TICKS_TOP,
00047 SLIDER_TICKS_RIGHT = SLIDER_TICKS_BOTTOM,
00048 SLIDER_NORMAL = SLIDER_HORIZONTAL
00049 };
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 class FXAPI FXSlider : public FXFrame {
00063 FXDECLARE(FXSlider)
00064 protected:
00065 FXint range[2];
00066 FXint pos;
00067 FXint incr;
00068 FXint delta;
00069 FXint headpos;
00070 FXint headsize;
00071 FXint slotsize;
00072 FXColor slotColor;
00073 FXint dragpoint;
00074 FXString help;
00075 FXString tip;
00076 protected:
00077 FXSlider();
00078 FXint headPos(FXint v) const;
00079 FXint headVal(FXint p) const;
00080 void drawSliderHead(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
00081 void drawHorzTicks(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
00082 void drawVertTicks(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
00083 private:
00084 FXSlider(const FXSlider&);
00085 FXSlider &operator=(const FXSlider&);
00086 public:
00087 long onPaint(FXObject*,FXSelector,void*);
00088 long onLeftBtnPress(FXObject*,FXSelector,void*);
00089 long onLeftBtnRelease(FXObject*,FXSelector,void*);
00090 long onMiddleBtnPress(FXObject*,FXSelector,void*);
00091 long onMiddleBtnRelease(FXObject*,FXSelector,void*);
00092 long onUngrabbed(FXObject*,FXSelector,void*);
00093 long onMotion(FXObject*,FXSelector,void*);
00094 long onAutoSlide(FXObject*,FXSelector,void*);
00095 long onCmdSetValue(FXObject*,FXSelector,void*);
00096 long onCmdSetIntValue(FXObject*,FXSelector,void*);
00097 long onCmdGetIntValue(FXObject*,FXSelector,void*);
00098 long onCmdSetRealValue(FXObject*,FXSelector,void*);
00099 long onCmdGetRealValue(FXObject*,FXSelector,void*);
00100 long onCmdSetIntRange(FXObject*,FXSelector,void*);
00101 long onCmdGetIntRange(FXObject*,FXSelector,void*);
00102 long onCmdSetRealRange(FXObject*,FXSelector,void*);
00103 long onCmdGetRealRange(FXObject*,FXSelector,void*);
00104 long onCmdSetHelp(FXObject*,FXSelector,void*);
00105 long onCmdGetHelp(FXObject*,FXSelector,void*);
00106 long onCmdSetTip(FXObject*,FXSelector,void*);
00107 long onCmdGetTip(FXObject*,FXSelector,void*);
00108 long onQueryHelp(FXObject*,FXSelector,void*);
00109 long onQueryTip(FXObject*,FXSelector,void*);
00110 public:
00111 enum{
00112 ID_AUTOSLIDE=FXFrame::ID_LAST,
00113 ID_LAST
00114 };
00115 public:
00116
00117
00118 FXSlider(FXComposite* p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=SLIDER_NORMAL,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=0,FXint pr=0,FXint pt=0,FXint pb=0);
00119
00120
00121 virtual FXint getDefaultWidth();
00122
00123
00124 virtual FXint getDefaultHeight();
00125
00126
00127 virtual void layout();
00128
00129
00130 virtual void enable();
00131
00132
00133 virtual void disable();
00134
00135
00136 void setValue(FXint value);
00137
00138
00139 FXint getValue() const { return pos; }
00140
00141
00142 void setRange(FXint lo,FXint hi);
00143
00144
00145 void getRange(FXint& lo,FXint& hi) const { lo=range[0]; hi=range[1]; }
00146
00147
00148 FXuint getSliderStyle() const;
00149
00150
00151 void setSliderStyle(FXuint style);
00152
00153
00154 FXint getHeadSize() const { return headsize; }
00155
00156
00157 void setHeadSize(FXint hs);
00158
00159
00160 FXint getSlotSize() const { return slotsize; }
00161
00162
00163 void setSlotSize(FXint bs);
00164
00165
00166 FXint getIncrement() const { return incr; }
00167
00168
00169 void setIncrement(FXint inc);
00170
00171
00172 void setTickDelta(FXint dist);
00173
00174
00175 FXint getTickDelta() const { return delta; }
00176
00177
00178 void setSlotColor(FXColor clr);
00179
00180
00181 FXColor getSlotColor() const { return slotColor; }
00182
00183
00184 void setHelpText(const FXString& text);
00185
00186
00187 FXString getHelpText() const { return help; }
00188
00189
00190 void setTipText(const FXString& text);
00191
00192
00193 FXString getTipText() const { return tip; }
00194
00195
00196 virtual void save(FXStream& store) const;
00197
00198
00199 virtual void load(FXStream& store);
00200
00201
00202 virtual ~FXSlider();
00203 };
00204
00205 }
00206
00207 #endif