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