Class Hierarchy
Fl_Widget
|
+----Fl_Valuator
|
+----Fl_Adjuster, Fl_Counter, Fl_Dial, Fl_Roller,
Fl_Slider, Fl_Value_Input, Fl_Value_Output,
Include Files
#include <FL/Fl_Valuator.H>
Description
The Fl_Valuator class controls a single floating-point value
and provides a consistent interface to set the value, range, and step,
and insures that callbacks are done the same for every object.
There are probably more of these classes in fltk than any others:
In the above diagram each box surrounds an actual subclass. These
are further differentiated by setting the
type() of the widget to the symbolic value labeling the
widget. The ones labelled "0" are the default versions with a
type(0). For consistency the symbol FL_VERTICAL is
defined as zero.
Methods
Creates a new Fl_Valuator widget using the given position,
size, and label string. The default boxtype is FL_NO_BOX.
Destroys the valuator.
Get or set the current value. The new value is not clamped or
otherwise changed before storing it. Use clamp() or round()
to modify the value before calling this if you want. If the new value
is different than the current one the object is redrawn. The initial
value is zero.
Gets or sets the minimum value for the valuator.
Gets or sets the maximum value for the valuator.
Sets the minimum and maximum values for the valuator. When the user
manipulates the widget, the value is limited to this range. This
clamping is done after rounding to the step value (this makes a
difference if the range is not a multiple of the step).
The minimum may be greater than the maximum. This has the effect of
"reversing" the object so the larger values are in the opposite
direction. This also switches which end of the filled sliders is
filled.
Some widgets consider this a "soft" range. This means they will
stop at the range, but if the user releases and grabs the control again
and tries to move it further, it is allowed.
The range may affect the display. You must redraw() the
widget after changing the range.
Get or set the step value. As the user moves the mouse the value is
rounded to the nearest multiple of the step value. This is done
before clamping it to the range. For most objects the default step
is zero.
For precision the step is stored as the ratio of two integers, A/B.
You can set these integers directly. Currently setting a floating
point value sets the nearest A/1 or 1/B value possible.
Format the passed value to show enough digits so that for the current
step value. If the step has been set to zero then it does a %g
format. The characters are written into the passed buffer.
Round the passed value to the nearest step increment. Does nothing if
step is zero.
Clamp the passed value to the valuator range.
Adds n times the step value to the passed value. If step was
set to zero it uses fabs(maximum() - minimum()) / 100.
This value is true if the user has moved the slider. It is turned off
by value(x) and just before doing a callback (the callback can
turn it back on if desired).
Sets the changed() flag.
Clears the changed() flag.