# CEGUI::ScrollablePane Class Reference

Base class for the ScrollablePane widget. More...

Inheritance diagram for CEGUI::ScrollablePane:

[legend]
Collaboration diagram for CEGUI::ScrollablePane:

[legend]
List of all members.

## Public Member Functions

| ScrollablePane (const String &type, const String &name)
| Constructor for the ScrollablePane base class.
| ~ScrollablePane (void)
| Destructor for the ScrollablePane base class.
const ScrolledContainer * | getContentPane (void) const
| Returns a pointer to the window holding the pane contents.
bool | isVertScrollbarAlwaysShown (void) const
| Return whether the vertical scroll bar is always shown.
void | setShowVertScrollbar (bool setting)
| Set whether the vertical scroll bar should always be shown.
bool | isHorzScrollbarAlwaysShown (void) const
| Return whether the horizontal scroll bar is always shown.
void | setShowHorzScrollbar (bool setting)
| Set whether the horizontal scroll bar should always be shown.
bool | isContentPaneAutoSized (void) const
| Return whether the content pane is auto sized.
void | setContentPaneAutoSized (bool setting)
| Set whether the content pane should be auto-sized.
const Rect & | getContentPaneArea (void) const
| Return the current content pane area for the ScrollablePane.
void | setContentPaneArea (const Rect &area)
| Set the current content pane area for the ScrollablePane.
float | getHorizontalStepSize (void) const
| Returns the horizontal scrollbar step size as a fraction of one complete view page.
void | setHorizontalStepSize (float step)
| Sets the horizontal scrollbar step size as a fraction of one complete view page.
float | getHorizontalOverlapSize (void) const
| Returns the horizontal scrollbar overlap size as a fraction of one complete view page.
void | setHorizontalOverlapSize (float overlap)
| Sets the horizontal scrollbar overlap size as a fraction of one complete view page.
float | getHorizontalScrollPosition (void) const
| Returns the horizontal scroll position as a fraction of the complete scrollable width.
void | setHorizontalScrollPosition (float position)
| Sets the horizontal scroll position as a fraction of the complete scrollable width.
float | getVerticalStepSize (void) const
| Returns the vertical scrollbar step size as a fraction of one complete view page.
void | setVerticalStepSize (float step)
| Sets the vertical scrollbar step size as a fraction of one complete view page.
float | getVerticalOverlapSize (void) const
| Returns the vertical scrollbar overlap size as a fraction of one complete view page.
void | setVerticalOverlapSize (float overlap)
| Sets the vertical scrollbar overlap size as a fraction of one complete view page.
float | getVerticalScrollPosition (void) const
| Returns the vertical scroll position as a fraction of the complete scrollable height.
void | setVerticalScrollPosition (float position)
| Sets the vertical scroll position as a fraction of the complete scrollable height.
void | initialise (void)
| Initialises the Window based object ready for use.

## Static Public Attributes

static const String | EventNamespace
| Namespace for global events.
static const String | EventContentPaneChanged
| Event fired when an area on the content pane has been updated.
static const String | EventVertScrollbarModeChanged
| Event triggered when the vertical scroll bar 'force' setting changes.
static const String | EventHorzScrollbarModeChanged
| Event triggered when the horizontal scroll bar 'force' setting changes.
static const String | EventAutoSizeSettingChanged
| Event fired when the auto size setting changes.
static const String | EventContentPaneScrolled
| Event fired when the pane gets scrolled.

## Protected Member Functions

virtual Scrollbar * | createHorizontalScrollbar (const String &name) const =0
| Create a Scrollbar based widget to be used as the horizontal scrollbar.
virtual Scrollbar * | createVerticalScrollbar (const String &name) const =0
| Create a Scrollbar based widget to be used as the vertical scrollbar.
virtual Rect | getViewableArea (void) const =0
| Return a Rect that described the pane's viewable area, relative to this Window, in pixels.
void | addScrollablePaneEvents (void)
| Add ScrollablePane specific events.
void | configureScrollbars (void)
| display required integrated scroll bars according to current size of the ScrollablePane view area and the size of the attached ScrolledContainer.
bool | isVertScrollbarNeeded (void) const
| Return whether the vertical scrollbar is needed.
bool | isHorzScrollbarNeeded (void) const
| Return whether the horizontal scrollbar is needed.
void | updateContainerPosition (void)
| Update the content container position according to the current state of the widget (like scrollbar positions, etc).
virtual bool | testClassName_impl (const String &class_name) const
| Return whether this window was inherited from the given class name at some point in the inheritance heirarchy.
virtual void | onContentPaneChanged (WindowEventArgs &e)
| Event trigger method called when some pane content has changed size or location.
virtual void | onVertScrollbarModeChanged (WindowEventArgs &e)
| Event trigger method called when the setting that controls whether the vertical scrollbar is always shown or not, is changed.
virtual void | onHorzScrollbarModeChanged (WindowEventArgs &e)
| Event trigger method called when the setting that controls whether the horizontal scrollbar is always shown or not, is changed.
virtual void | onAutoSizeSettingChanged (WindowEventArgs &e)
| Notification method called whenever the setting that controls whether the content pane is automatically sized is changed.
virtual void | onContentPaneScrolled (WindowEventArgs &e)
| Notification method called whenever the content pane is scrolled via changes in the scrollbar positions.
bool | handleScrollChange (const EventArgs &e)
| Handler method which gets subscribed to the scrollbar position change events.
bool | handleContentAreaChange (const EventArgs &e)
| Handler method which gets subscribed to the ScrolledContainer content change events.
bool | handleAutoSizePaneChanged (const EventArgs &e)
| Handler method which gets subscribed to the ScrolledContainer auto-size setting changes.
void | addChild_impl (Window *wnd)
| Add given window to child list at an appropriate position.
void | removeChild_impl (Window *wnd)
| Remove given window from child list.
void | onSized (WindowEventArgs &e)
| Handler called when the window's size changes.
void | onMouseWheel (MouseEventArgs &e)
| Handler called when the mouse wheel (z-axis) position changes within this window's area.

## Protected Attributes

bool | d_forceVertScroll
| true if vertical scrollbar should always be displayed
bool | d_forceHorzScroll
| true if horizontal scrollbar should always be displayed
Rect | d_contentRect
| holds content area so we can track changes.
float | d_vertStep
| vertical scroll step fraction.
float | d_vertOverlap
| vertical scroll overlap fraction.
float | d_horzStep
| horizontal scroll step fraction.
float | d_horzOverlap
| horizontal scroll overlap fraction.
Scrollbar * | d_vertScrollbar
| Scrollbar widget used for vertical scrolling.
Scrollbar * | d_horzScrollbar
| Scrollbar widget used for horizontal scrolling.
ScrolledContainer * | d_container
| ScrolledContainer widget holding the attached widgets.

## Detailed Description

Base class for the ScrollablePane widget.

The ScrollablePane widget allows child windows to be attached which cover an area larger than the ScrollablePane itself and these child windows can be scrolled into view using the scrollbars of the scrollable pane.

## Member Function Documentation

virtual Scrollbar* CEGUI::ScrollablePane::createHorizontalScrollbar | ( | const String & | name | ) | const`[protected, pure virtual]`

Create a Scrollbar based widget to be used as the horizontal scrollbar.

Parameters:

  | name | String object holding the name that must be used when creating the widget.

Returns:
  Scrollbar based object.

virtual Scrollbar* CEGUI::ScrollablePane::createVerticalScrollbar | ( | const String & | name | ) | const`[protected, pure virtual]`

Create a Scrollbar based widget to be used as the vertical scrollbar.

Parameters:

  | name | String object holding the name that must be used when creating the widget.

Returns:
  Scrollbar based object.

const ScrolledContainer * CEGUI::ScrollablePane::getContentPane | ( | void |  | ) | const

Returns a pointer to the window holding the pane contents.

The purpose of this is so that attached windows may be inspected, client code may not modify the returned window in any way.

Returns:
  Pointer to the ScrolledContainer that is acting as the container for the scrollable pane content. The returned window is const, client code should not modify the ScrolledContainer settings directly.

const Rect & CEGUI::ScrollablePane::getContentPaneArea | ( | void |  | ) | const

Return the current content pane area for the ScrollablePane.

Returns:
  Rect object that details the current pixel extents of the content pane attached to this ScrollablePane.

float CEGUI::ScrollablePane::getHorizontalOverlapSize | ( | void |  | ) | const

Returns the horizontal scrollbar overlap size as a fraction of one complete view page.

Returns:
  float value specifying the overlap size where 1.0f would be the width of the viewing area.

float CEGUI::ScrollablePane::getHorizontalScrollPosition | ( | void |  | ) | const

Returns the horizontal scroll position as a fraction of the complete scrollable width.

Returns:
  float value specifying the scroll position.

float CEGUI::ScrollablePane::getHorizontalStepSize | ( | void |  | ) | const

Returns the horizontal scrollbar step size as a fraction of one complete view page.

Returns:
  float value specifying the step size where 1.0f would be the width of the viewing area.

float CEGUI::ScrollablePane::getVerticalOverlapSize | ( | void |  | ) | const

Returns the vertical scrollbar overlap size as a fraction of one complete view page.

Returns:
  float value specifying the overlap size where 1.0f would be the height of the viewing area.

float CEGUI::ScrollablePane::getVerticalScrollPosition | ( | void |  | ) | const

Returns the vertical scroll position as a fraction of the complete scrollable height.

Returns:
  float value specifying the scroll position.

float CEGUI::ScrollablePane::getVerticalStepSize | ( | void |  | ) | const

Returns the vertical scrollbar step size as a fraction of one complete view page.

Returns:
  float value specifying the step size where 1.0f would be the height of the viewing area.

virtual Rect CEGUI::ScrollablePane::getViewableArea | ( | void |  | ) | const`[protected, pure virtual]`

Return a Rect that described the pane's viewable area, relative to this Window, in pixels.

Returns:
  Rect object describing the ScrollablePane's viewable area.

void CEGUI::ScrollablePane::initialise | ( | void |  | ) | `[virtual]`

Initialises the Window based object ready for use.

Note:
  This must be called for every window created. Normally this is handled automatically by the WindowFactory for each Window type.

Returns:
  Nothing

Reimplemented from CEGUI::Window.

bool CEGUI::ScrollablePane::isContentPaneAutoSized | ( | void |  | ) | const

Return whether the content pane is auto sized.

Returns:
  - true to indicate the content pane will automatically resize itself.
  - false to indicate the content pane will not automatically resize itself.

bool CEGUI::ScrollablePane::isHorzScrollbarAlwaysShown | ( | void |  | ) | const

Return whether the horizontal scroll bar is always shown.

Returns:
  - true if the scroll bar will always be shown even if it is not required.
  - false if the scroll bar will only be shown when it is required.

bool CEGUI::ScrollablePane::isHorzScrollbarNeeded | ( | void |  | ) | const`[protected]`

Return whether the horizontal scrollbar is needed.

Returns:
  - true if the scrollbar is either needed or forced via setting.
  - false if the scrollbar should not be shown.

bool CEGUI::ScrollablePane::isVertScrollbarAlwaysShown | ( | void |  | ) | const

Return whether the vertical scroll bar is always shown.

Returns:
  - true if the scroll bar will always be shown even if it is not required.
  - false if the scroll bar will only be shown when it is required.

bool CEGUI::ScrollablePane::isVertScrollbarNeeded | ( | void |  | ) | const`[protected]`

Return whether the vertical scrollbar is needed.

Returns:
  - true if the scrollbar is either needed or forced via setting.
  - false if the scrollbar should not be shown.

void CEGUI::ScrollablePane::onAutoSizeSettingChanged | ( | WindowEventArgs & | e | ) | `[protected, virtual]`

Notification method called whenever the setting that controls whether the content pane is automatically sized is changed.

Parameters:

  | e | WindowEventArgs object.

Returns:
  Nothing.

void CEGUI::ScrollablePane::onContentPaneChanged | ( | WindowEventArgs & | e | ) | `[protected, virtual]`

Event trigger method called when some pane content has changed size or location.

Parameters:

  | e | WindowEventArgs object.

Returns:
  Nothing.

void CEGUI::ScrollablePane::onContentPaneScrolled | ( | WindowEventArgs & | e | ) | `[protected, virtual]`

Notification method called whenever the content pane is scrolled via changes in the scrollbar positions.

Parameters:

  | e | WindowEventArgs object.

Returns:
  Nothing.

void CEGUI::ScrollablePane::onHorzScrollbarModeChanged | ( | WindowEventArgs & | e | ) | `[protected, virtual]`

Event trigger method called when the setting that controls whether the horizontal scrollbar is always shown or not, is changed.

Parameters:

  | e | WindowEventArgs object.

Returns:
  Nothing.

void CEGUI::ScrollablePane::onMouseWheel | ( | MouseEventArgs & | e | ) | `[protected, virtual]`

Handler called when the mouse wheel (z-axis) position changes within this window's area.

Parameters:

  | e | MouseEventArgs object. All fields are valid.

Reimplemented from CEGUI::Window.

void CEGUI::ScrollablePane::onSized | ( | WindowEventArgs & | e | ) | `[protected, virtual]`

Handler called when the window's size changes.

Parameters:

  | e | WindowEventArgs object whose 'window' pointer field is set to the window that triggered the event. For this event the trigger window is always 'this'.

Reimplemented from CEGUI::Window.

void CEGUI::ScrollablePane::onVertScrollbarModeChanged | ( | WindowEventArgs & | e | ) | `[protected, virtual]`

Event trigger method called when the setting that controls whether the vertical scrollbar is always shown or not, is changed.

Parameters:

  | e | WindowEventArgs object.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setContentPaneArea | ( | const Rect & | area | ) |

Set the current content pane area for the ScrollablePane.

Note:
  If the ScrollablePane is configured to auto-size the content pane this call will have no effect.

Parameters:

  | area | Rect object that details the pixel extents to use for the content pane attached to this ScrollablePane.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setContentPaneAutoSized | ( | bool | setting | ) |

Set whether the content pane should be auto-sized.

Parameters:

  setting

  - true to indicate the content pane should automatically resize itself.
  - false to indicate the content pane should not automatically resize itself.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setHorizontalOverlapSize | ( | float | overlap | ) |

Sets the horizontal scrollbar overlap size as a fraction of one complete view page.

Parameters:

  | overlap | float value specifying the overlap size, where 1.0f would be the width of the viewing area.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setHorizontalScrollPosition | ( | float | position | ) |

Sets the horizontal scroll position as a fraction of the complete scrollable width.

Parameters:

  | position | float value specifying the new scroll position.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setHorizontalStepSize | ( | float | step | ) |

Sets the horizontal scrollbar step size as a fraction of one complete view page.

Parameters:

  | step | float value specifying the step size, where 1.0f would be the width of the viewing area.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setShowHorzScrollbar | ( | bool | setting | ) |

Set whether the horizontal scroll bar should always be shown.

Parameters:

  setting

  - true if the horizontal scroll bar should be shown even when it is not required.
  - false if the horizontal scroll bar should only be shown when it is required.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setShowVertScrollbar | ( | bool | setting | ) |

Set whether the vertical scroll bar should always be shown.

Parameters:

  setting

  - true if the vertical scroll bar should be shown even when it is not required.
  - false if the vertical scroll bar should only be shown when it is required.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setVerticalOverlapSize | ( | float | overlap | ) |

Sets the vertical scrollbar overlap size as a fraction of one complete view page.

Parameters:

  | overlap | float value specifying the overlap size, where 1.0f would be the height of the viewing area.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setVerticalScrollPosition | ( | float | position | ) |

Sets the vertical scroll position as a fraction of the complete scrollable height.

Parameters:

  | position | float value specifying the new scroll position.

Returns:
  Nothing.

void CEGUI::ScrollablePane::setVerticalStepSize | ( | float | step | ) |

Sets the vertical scrollbar step size as a fraction of one complete view page.

Parameters:

  | step | float value specifying the step size, where 1.0f would be the height of the viewing area.

Returns:
  Nothing.

virtual bool CEGUI::ScrollablePane::testClassName_impl | ( | const String & | class_name | ) | const`[inline, protected, virtual]`

Return whether this window was inherited from the given class name at some point in the inheritance heirarchy.

Parameters:

  | class_name | The class name that is to be checked.

Returns:
  true if this window was inherited from class_name. false if not.

Reimplemented from CEGUI::Window.