Scroll bars

Scroll bars are now functional. They're not fully functional, though: error handling and event triggering are still being developed. small_step and large_step properties default values are not implemented yet.

A few generalities about scroll bars:

  • There are two scroll bar classes, HScrollBar and VScrollBar, that both inherit from ScrollBar abstract class. The only difference between those two classes is that VScrollBar handles vertical bars while HScrollBar handles horizontal ones...
  • The three interesting properties in those classes are minimum, maximum and value. They respectively represent the bounds of the bar and the current value of the cursor.
  • Two more properties are also used: small_step et large_step, which define how the value has to be increased (or decreased).
  • Any change of one of those properties triggers an event.

Here is the public part of ScrollBar class interface.

class ScrollBar : virtual public Unselectable
{
  public:
    ScrollBar ();
    virtual ~ScrollBar ();
 
    inline int  value () const;
    inline void value (int value);
    Event<ScrollBar*, int> on_value_changed;
 
    inline int  minimum () const;
    inline void minimum (int minimum);
    Event<ScrollBar*, int> on_minimum_changed;
 
    inline int  maximum () const;
    inline void maximum (int maximum);
    Event<ScrollBar*, int> on_maximum_changed;
 
    inline int  small_step () const;
    inline void small_step (int small_step);
    Event<ScrollBar*, int> on_small_step_changed;
 
    inline int  large_step () const;
    inline void large_step (int large_step);
    Event<ScrollBar*, int> on_large_step_changed;
};