class Fl_Adjuster : public Fl_Object

This type of control was stolen from Prisms, and has proven to be very useful for values that need a large dynamic range. When you press a button and drag to the right the value increases, when you drag to the left it decreases. The second button adjusts by steps 1/10 the size of the first, the third by steps 1/100 the size of the first.

If h() is greater than w() then you get one like this:

The callback is done every time the value changes (there is no when() property). You almost certainly want to add a text field that shows the current value.

Fl_Adjuster(int x,int y,int w,int h,const char *l=0);

The constructor takes a bounding box and label. It looks best if one of the dimensions is 3 times the other.

float value() const ;
void value(float v);

The current value of the adjuster.

void bounds(float a,float b) ;
void bounds(float *a,float *b) const ;

Set the "soft" range of the adjuster. If the user moves the value, it will stop at these bounds. However, if they then release the button, press it again, and continue dragging, they may move the value outside the bounds. The default values are 0 and 1.

float step() const ;
void step(float v);

How much to change the value for each pixel movement for the largest-scale button. If this is not set or is zero, then 1/100 the difference between the minimum and maximum is used.