/*
 ENTRY.DOX

 License CC0 PUBLIC DOMAIN

 To the extent possible under law, Mark J. Olesen has waived all copyright
 and related or neighboring rights to FDOSTUI Library. This work is published
 from: United States.
*/

/*! \file scrllbar.hpp
\brief contains scrollbar class
*/

/*! \class scrollbar scrllbar.hpp
\brief A slider widget with navigational arrow buttons at each end
*/

/*!
\fn scrollbar::scrollbar(
        int const                       i_pos_x,
        int const                       i_pos_y,
        unsigned int const              i_len_x,
        unsigned int const              i_len_y)
\brief constructor 
\param[in] i_pos_x x position to place widget
\param[in] i_pos_y y position to place widget
\param[in] i_len_x x length of widget
\param[in] i_len_y y length of widget
\returns none
*/

/*!
\fn virtual scrollbar::~scrollbar()
\brief destructor
\returns none
*/

/*!
\fn virtual void scrollbar::draw() const
\brief draws the widget

This method should not be called directly. 
\see widget::draw for details.
*/

/*!
\fn virtual enum event_response scrollbar::event_key(
        struct event_key const&         i_event)
\brief handle key event
\param[in] i_event key event to handle    
\returns response how event was handled
*/

/*!
\fn virtual enum event_response scrollbar::event_mouse(
        struct event_mouse const&       i_event)
\brief handle mouse event
\param[in] i_event mouse event to handle
\returns response how event was handled
*/

/*!
\fn int scrollbar::get_pagesize() const
\brief gets the page size
\returns none
*/

/*!
\fn void scrollbar::set_pagesize(
        int const                       i_pagesize)
\brief sets the page size. This is the number of display lines.
\returns none
*/

/*!
\var scrollbar::m_pagesize
	the number of display lines per page
*/

/*!
\var scrollbar::m_dragging
	indicator if thumb is dragging
*/

/*!
\enum scrollbar::where 
\brief indicator of where the user clicked

\var scrollbar::where scrollbar::WHERE_OUTOFBOUNDS
	clicked out of bounds

\var scrollbar::where scrollbar::WHERE_THUMB
	clicked on thumb

\var scrollbar::where scrollbar::WHERE_UPARROW
	clicked on up arrow

\var scrollbar::where scrollbar::WHERE_DOWNARROW
	clicked on down arrow

\var scrollbar::where scrollbar::WHERE_LEFTOFTHUMB
	clicked left of thumb

\var scrollbar::where scrollbar::WHERE_RIGHTOFTHUMB
	clicked right of thumb
*/

/*!
\fn enum where scrollbar::event_where_horizontal(
        struct event_mouse const&       i_event) const
\brief determine event type for horizontal scrollbar
\param[in] i_event event to test
\returns where event occurred
*/

/*!
\fn enum where scrollbar::event_where_vertical(
        struct event_mouse const&       i_event) const
\brief determine event type for vertical scrollbar
\param[in] i_event event to test
\returns where event occurred
*/

/*!
\fn enum where scrollbar::event_where(
        struct event_mouse const&       i_event) const
\brief determine event type
param[in] i_event event to test
\returns where event occurred
*/

