📄 ceguiscrollablepane.h
字号:
\brief
Returns the vertical scrollbar overlap size as a fraction of one
complete view page.
\return
float value specifying the overlap size where 1.0f would be the height of
the viewing area.
*/
float getVerticalOverlapSize(void) const;
/*!
\brief
Sets the vertical scrollbar overlap size as a fraction of one
complete view page.
\param overlap
float value specifying the overlap size, where 1.0f would be the height of
the viewing area.
\return
Nothing.
*/
void setVerticalOverlapSize(float overlap);
/*!
\brief
Returns the vertical scroll position as a fraction of the
complete scrollable height.
\return
float value specifying the scroll position.
*/
float getVerticalScrollPosition(void) const;
/*!
\brief
Sets the vertical scroll position as a fraction of the
complete scrollable height.
\param position
float value specifying the new scroll position.
\return
Nothing.
*/
void setVerticalScrollPosition(float position);
/*!
\brief
Return a Rect that described the pane's viewable area, relative
to this Window, in pixels.
\return
Rect object describing the ScrollablePane's viewable area.
*/
Rect getViewableArea(void) const;
/*!
\brief
Return a pointer to the vertical scrollbar component widget for this
ScrollablePane.
\return
Pointer to a Scrollbar object.
\exception UnknownObjectException
Thrown if the vertical Scrollbar component does not exist.
*/
Scrollbar* getVertScrollbar() const;
/*!
\brief
Return a pointer to the horizontal scrollbar component widget for
this ScrollablePane.
\return
Pointer to a Scrollbar object.
\exception UnknownObjectException
Thrown if the horizontal Scrollbar component does not exist.
*/
Scrollbar* getHorzScrollbar() const;
/*************************************************************************
Overridden from Window
*************************************************************************/
void initialiseComponents(void);
void destroy(void);
protected:
/*************************************************************************
Abstract interface
*************************************************************************/
/*!
\brief
Return a Rect that described the pane's viewable area, relative
to this Window, in pixels.
\return
Rect object describing the ScrollablePane's viewable area.
*/
//virtual Rect getViewableArea_impl(void) const = 0;
/*************************************************************************
Implementation Methods
*************************************************************************/
/*!
\brief
display required integrated scroll bars according to current size of
the ScrollablePane view area and the size of the attached ScrolledContainer.
*/
void configureScrollbars(void);
/*!
\brief
Return whether the vertical scrollbar is needed.
\return
- true if the scrollbar is either needed or forced via setting.
- false if the scrollbar should not be shown.
*/
bool isVertScrollbarNeeded(void) const;
/*!
\brief
Return whether the horizontal scrollbar is needed.
\return
- true if the scrollbar is either needed or forced via setting.
- false if the scrollbar should not be shown.
*/
bool isHorzScrollbarNeeded(void) const;
/*!
\brief
Update the content container position according to the current
state of the widget (like scrollbar positions, etc).
*/
void updateContainerPosition(void);
/*!
\brief
Return whether this window was inherited from the given class name at some point in the inheritance hierarchy.
\param class_name
The class name that is to be checked.
\return
true if this window was inherited from \a class_name. false if not.
*/
virtual bool testClassName_impl(const String& class_name) const
{
if (class_name=="ScrollablePane") return true;
return Window::testClassName_impl(class_name);
}
/*!
\brief
Return a pointer to the ScrolledContainer component widget for this
ScrollablePane.
\return
Pointer to a ScrolledContainer object.
\exception UnknownObjectException
Thrown if the scrolled container component does not exist.
*/
ScrolledContainer* getScrolledContainer() const;
// validate window renderer
virtual bool validateWindowRenderer(const String& name) const
{
return (name == "ScrollablePane");
}
/*************************************************************************
Event triggers
*************************************************************************/
/*!
\brief
Event trigger method called when some pane content has changed size
or location.
\param e
WindowEventArgs object.
\return
Nothing.
*/
virtual void onContentPaneChanged(WindowEventArgs& e);
/*!
\brief
Event trigger method called when the setting that controls whether the
vertical scrollbar is always shown or not, is changed.
\param e
WindowEventArgs object.
\return
Nothing.
*/
virtual void onVertScrollbarModeChanged(WindowEventArgs& e);
/*!
\brief
Event trigger method called when the setting that controls whether the
horizontal scrollbar is always shown or not, is changed.
\param e
WindowEventArgs object.
\return
Nothing.
*/
virtual void onHorzScrollbarModeChanged(WindowEventArgs& e);
/*!
\brief
Notification method called whenever the setting that controls whether
the content pane is automatically sized is changed.
\param e
WindowEventArgs object.
\return
Nothing.
*/
virtual void onAutoSizeSettingChanged(WindowEventArgs& e);
/*!
\brief
Notification method called whenever the content pane is scrolled via
changes in the scrollbar positions.
\param e
WindowEventArgs object.
\return
Nothing.
*/
virtual void onContentPaneScrolled(WindowEventArgs& e);
/*************************************************************************
Event handler methods
*************************************************************************/
/*!
\brief
Handler method which gets subscribed to the scrollbar position change
events.
*/
bool handleScrollChange(const EventArgs& e);
/*!
\brief
Handler method which gets subscribed to the ScrolledContainer content
change events.
*/
bool handleContentAreaChange(const EventArgs& e);
/*!
\brief
Handler method which gets subscribed to the ScrolledContainer auto-size
setting changes.
*/
bool handleAutoSizePaneChanged(const EventArgs& e);
/*************************************************************************
Overridden from Window
*************************************************************************/
void addChild_impl(Window* wnd);
void removeChild_impl(Window* wnd);
void onSized(WindowEventArgs& e);
void onMouseWheel(MouseEventArgs& e);
/*************************************************************************
Data fields
*************************************************************************/
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.
Event::Connection d_contentChangedConn; //!< Event connection to content pane
Event::Connection d_autoSizeChangedConn; //!< Event connection to content pane
private:
/*************************************************************************
Static Properties for this class
*************************************************************************/
static ScrollablePaneProperties::ForceHorzScrollbar d_horzScrollbarProperty;
static ScrollablePaneProperties::ForceVertScrollbar d_vertScrollbarProperty;
static ScrollablePaneProperties::ContentPaneAutoSized d_autoSizedProperty;
static ScrollablePaneProperties::ContentArea d_contentAreaProperty;
static ScrollablePaneProperties::HorzStepSize d_horzStepProperty;
static ScrollablePaneProperties::HorzOverlapSize d_horzOverlapProperty;
static ScrollablePaneProperties::HorzScrollPosition d_horzScrollPositionProperty;
static ScrollablePaneProperties::VertStepSize d_vertStepProperty;
static ScrollablePaneProperties::VertOverlapSize d_vertOverlapProperty;
static ScrollablePaneProperties::VertScrollPosition d_vertScrollPositionProperty;
/*************************************************************************
Private methods
*************************************************************************/
void addScrollablePaneProperties(void);
};
} // End of CEGUI namespace section
#if defined(_MSC_VER)
# pragma warning(pop)
#endif
#endif // end of guard _CEGUIScrollablePane_h_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -