The Fl_Scrollbar widget displays a slider with arrow buttons at the ends of the scrollbar. Clicking on the arrows move up/left and down/right by linesize(). Scrollbars also accept FL_SHORTCUT events: the arrows move by linesize(), and vertical scrollbars take Page Up/Down (they move by the page size minus linesize()) and Home/End (they jump to the top or bottom).
Scrollbars have step(1) preset (they always return integers). If desired you can set the step() to non-integer values. You will then have to use casts to get at the floating-point versions of value() from Fl_Slider.
Fl_Scrollbar::Fl_Scrollbar(int x, int y, int w, int h, const char *label = 0)
Creates a new Fl_Scrollbar widget using the given position, size, and label string. You need to do type(FL_HORIZONTAL) if you want a horizontal scrollbar.
virtual Fl_Scrollbar::~Fl_Scrollbar()
Destroys the valuator.
int Fl_Scrollbar::linesize() const void Fl_Scrollbar::linesize(int i)
This number controls how big the steps are that the arrow keys do. In addition page up/down move by the size last sent to value() minus one linesize(). The default is 16.
int Fl_Scrollbar::value() int Fl_Scrollbar::value(int position, int size, int top, int total)
The first form returns the integer value of the scrollbar. You can get the floating point value with Fl_Slider::value(). The second form sets value(), range(), and slider_size() to make a variable-sized scrollbar. You should call this every time your window changes size, your data changes size, or your scroll position changes (even if in response to a callback from this scrollbar). All necessary calls to redraw() are done.