Version: 3.1.0
wxVarVScrollHelper Class Referenceabstract

#include <wx/vscroll.h>

+ Inheritance diagram for wxVarVScrollHelper:

Detailed Description

This class provides functions wrapping the wxVarScrollHelperBase class, targeted for vertical-specific scrolling.

Like wxVarScrollHelperBase, this class is mostly only useful to those classes built into wxWidgets deriving from here, and this documentation is mostly only provided for referencing the functions provided by this class. You will likely want to derive your window from wxVScrolledWindow rather than from here directly.

Library:  wxCore
Category:  Miscellaneous Windows
See Also
wxHScrolledWindow, wxHVScrolledWindow, wxVScrolledWindow

Public Member Functions

 wxVarVScrollHelper (wxWindow *winToScroll)
 Constructor taking the target window to be scrolled by this helper class.
 
size_t GetRowCount () const
 Returns the number of rows the target window contains.
 
size_t GetVisibleRowsBegin () const
 Returns the index of the first visible row based on the scroll position.
 
size_t GetVisibleRowsEnd () const
 Returns the index of the last visible row based on the scroll position.
 
bool IsRowVisible (size_t row) const
 Returns true if the given row is currently visible (even if only partially visible) or false otherwise.
 
virtual void RefreshRow (size_t row)
 Triggers a refresh for just the given row's area of the window if it's visible.
 
virtual void RefreshRows (size_t from, size_t to)
 Triggers a refresh for the area between the specified range of rows given (inclusively).
 
virtual bool ScrollRowPages (int pages)
 Scroll by the specified number of pages which may be positive (to scroll down) or negative (to scroll up).
 
virtual bool ScrollRows (int rows)
 Scroll by the specified number of rows which may be positive (to scroll down) or negative (to scroll up).
 
bool ScrollToRow (size_t row)
 Scroll to the specified row.
 
void SetRowCount (size_t rowCount)
 Set the number of rows the window contains.
 
- Public Member Functions inherited from wxVarScrollHelperBase
 wxVarScrollHelperBase (wxWindow *winToScroll)
 Constructor taking the target window to be scrolled by this helper class.
 
virtual ~wxVarScrollHelperBase ()
 Virtual destructor for detaching scroll event handlers attached with this helper class.
 
int CalcScrolledPosition (int coord) const
 Translates the logical coordinate given to the current device coordinate.
 
int CalcUnscrolledPosition (int coord) const
 Translates the device coordinate given to the corresponding logical coordinate.
 
void EnablePhysicalScrolling (bool scrolling=true)
 With physical scrolling on (when this is true), the device origin is changed properly when a wxPaintDC is prepared, children are actually moved and laid out properly, and the contents of the window (pixels) are actually moved.
 
virtual int GetNonOrientationTargetSize () const =0
 This function needs to be overridden in the in the derived class to return the window size with respect to the opposing orientation.
 
virtual wxOrientation GetOrientation () const =0
 This function need to be overridden to return the orientation that this helper is working with, either wxHORIZONTAL or wxVERTICAL.
 
virtual int GetOrientationTargetSize () const =0
 This function needs to be overridden in the in the derived class to return the window size with respect to the orientation this helper is working with.
 
virtual wxWindowGetTargetWindow () const
 This function will return the target window this helper class is currently scrolling.
 
size_t GetVisibleBegin () const
 Returns the index of the first visible unit based on the scroll position.
 
size_t GetVisibleEnd () const
 Returns the index of the last visible unit based on the scroll position.
 
bool IsVisible (size_t unit) const
 Returns true if the given scroll unit is currently visible (even if only partially visible) or false otherwise.
 
virtual void RefreshAll ()
 Recalculate all parameters and repaint all units.
 
virtual void SetTargetWindow (wxWindow *target)
 Normally the window will scroll itself, but in some rare occasions you might want it to scroll (part of) another window (e.g.
 
virtual void UpdateScrollbar ()
 Update the thumb size shown by the scrollbar.
 
int VirtualHitTest (wxCoord coord) const
 Returns the virtual scroll unit under the device unit given accounting for scroll position or wxNOT_FOUND if none (i.e.
 

Protected Member Functions

virtual void OnGetRowsHeightHint (size_t rowMin, size_t rowMax) const
 This function doesn't have to be overridden but it may be useful to do so if calculating the rows' sizes is a relatively expensive operation as it gives your code a chance to calculate several of them at once and cache the result if necessary.
 
virtual wxCoord EstimateTotalHeight () const
 This class forwards calls from EstimateTotalSize() to this function so derived classes can override either just the height or the width estimation, or just estimate both differently if desired in any wxHVScrolledWindow derived class.
 
virtual wxCoord OnGetRowHeight (size_t row) const =0
 This function must be overridden in the derived class, and should return the height of the given row in pixels.
 
- Protected Member Functions inherited from wxVarScrollHelperBase
virtual void OnGetUnitsSizeHint (size_t unitMin, size_t unitMax) const
 This function doesn't have to be overridden but it may be useful to do so if calculating the units' sizes is a relatively expensive operation as it gives your code a chance to calculate several of them at once and cache the result if necessary.
 
virtual wxCoord EstimateTotalSize () const
 When the number of scroll units change, we try to estimate the total size of all units when the full window size is needed (i.e.
 
virtual wxCoord OnGetUnitSize (size_t unit) const =0
 This function must be overridden in the derived class, and should return the size of the given unit in pixels.
 

Constructor & Destructor Documentation

wxVarVScrollHelper::wxVarVScrollHelper ( wxWindow winToScroll)

Constructor taking the target window to be scrolled by this helper class.

This will attach scroll event handlers to the target window to catch and handle scroll events appropriately.

Member Function Documentation

virtual wxCoord wxVarVScrollHelper::EstimateTotalHeight ( ) const
protectedvirtual

This class forwards calls from EstimateTotalSize() to this function so derived classes can override either just the height or the width estimation, or just estimate both differently if desired in any wxHVScrolledWindow derived class.

Note
This function will not be called if EstimateTotalSize() is overridden in your derived class.
size_t wxVarVScrollHelper::GetRowCount ( ) const

Returns the number of rows the target window contains.

See Also
SetRowCount()
size_t wxVarVScrollHelper::GetVisibleRowsBegin ( ) const

Returns the index of the first visible row based on the scroll position.

size_t wxVarVScrollHelper::GetVisibleRowsEnd ( ) const

Returns the index of the last visible row based on the scroll position.

This includes the last row even if it is only partially visible.

bool wxVarVScrollHelper::IsRowVisible ( size_t  row) const

Returns true if the given row is currently visible (even if only partially visible) or false otherwise.

virtual wxCoord wxVarVScrollHelper::OnGetRowHeight ( size_t  row) const
protectedpure virtual

This function must be overridden in the derived class, and should return the height of the given row in pixels.

virtual void wxVarVScrollHelper::OnGetRowsHeightHint ( size_t  rowMin,
size_t  rowMax 
) const
protectedvirtual

This function doesn't have to be overridden but it may be useful to do so if calculating the rows' sizes is a relatively expensive operation as it gives your code a chance to calculate several of them at once and cache the result if necessary.

OnGetRowsHeightHint() is normally called just before OnGetRowHeight() but you shouldn't rely on the latter being called for all rows in the interval specified here. It is also possible that OnGetRowHeight() will be called for units outside of this interval, so this is really just a hint, not a promise.

Finally, note that rowMin is inclusive, while rowMax is exclusive.

virtual void wxVarVScrollHelper::RefreshRow ( size_t  row)
virtual

Triggers a refresh for just the given row's area of the window if it's visible.

virtual void wxVarVScrollHelper::RefreshRows ( size_t  from,
size_t  to 
)
virtual

Triggers a refresh for the area between the specified range of rows given (inclusively).

virtual bool wxVarVScrollHelper::ScrollRowPages ( int  pages)
virtual

Scroll by the specified number of pages which may be positive (to scroll down) or negative (to scroll up).

virtual bool wxVarVScrollHelper::ScrollRows ( int  rows)
virtual

Scroll by the specified number of rows which may be positive (to scroll down) or negative (to scroll up).

Returns
true if the window was scrolled, false otherwise (for example, if we're trying to scroll down but we are already showing the last row).
bool wxVarVScrollHelper::ScrollToRow ( size_t  row)

Scroll to the specified row.

It will become the first visible row in the window.

Returns
true if we scrolled the window, false if nothing was done.
void wxVarVScrollHelper::SetRowCount ( size_t  rowCount)

Set the number of rows the window contains.

The derived class must provide the heights for all rows with indices up to the one given here in it's OnGetRowHeight() implementation.

See Also
GetRowCount()