#include <wx/vscroll.h>
Inheritance diagram for wxVScrolled< T >:In the name of this class, "V" may stand for "variable" because it can be used for scrolling rows of variable heights; "virtual", because it is not necessary to know the heights of all rows in advance – only those which are shown on the screen need to be measured; or even "vertical", because this class only supports scrolling vertically.
In any case, this is a generalization of wxScrolled which can be only used when all rows have the same heights. It lacks some other wxScrolled features however, notably it can't scroll specific pixel sizes of the window or its exact client area size.
To use this class, you need to derive from it and implement the OnGetRowHeight() pure virtual method. You also must call SetRowCount() to let the base class know how many rows it should display, but from that moment on the scrolling is handled entirely by wxVScrolled. You only need to draw the visible part of contents in your OnPaint() method as usual. You should use GetVisibleRowsBegin() and GetVisibleRowsEnd() to select the lines to display. Note that the device context origin is not shifted so the first visible row always appears at the point (0, 0) in physical as well as logical coordinates.
Note that this template class is available since wxWidgets 3.3.1, only wxVScrolledWindow was available in the earlier versions.
Public Member Functions | |
| wxVScrolled () | |
| Default constructor, you must call Create() later. More... | |
| wxVScrolled (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr) | |
| This is the normal constructor, no need to call Create() after using this constructor. More... | |
| bool | Create (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxPanelNameStr) |
| Same as the non-default constructor, but returns a status code: true if ok, false if the window couldn't be created. More... | |
Public Member Functions inherited from wxVarVScrollHelper | |
| wxVarVScrollHelper (wxWindow *winToScroll) | |
| Constructor taking the target window to be scrolled by this helper class. More... | |
| size_t | GetRowCount () const |
| Returns the number of rows the target window contains. More... | |
| size_t | GetVisibleRowsBegin () const |
| Returns the index of the first visible row based on the scroll position. More... | |
| size_t | GetVisibleRowsEnd () const |
| Returns the index of the last visible row based on the scroll position. More... | |
| bool | IsRowVisible (size_t row) const |
| Returns true if the given row is currently visible (even if only partially visible) or false otherwise. More... | |
| virtual void | RefreshRow (size_t row) |
| Triggers a refresh for just the given row's area of the window if it's visible. More... | |
| virtual void | RefreshRows (size_t from, size_t to) |
| Triggers a refresh for the area between the specified range of rows given (inclusively). More... | |
| virtual bool | ScrollRowPages (int pages) |
| Scroll by the specified number of pages which may be positive (to scroll down) or negative (to scroll up). More... | |
| virtual bool | ScrollRows (int rows) |
| Scroll by the specified number of rows which may be positive (to scroll down) or negative (to scroll up). More... | |
| bool | ScrollToRow (size_t row) |
| Scroll to the specified row. More... | |
| void | SetRowCount (size_t rowCount) |
| Set the number of rows the window contains. More... | |
Public Member Functions inherited from wxVarScrollHelperBase | |
| wxVarScrollHelperBase (wxWindow *winToScroll) | |
| Constructor taking the target window to be scrolled by this helper class. More... | |
| virtual | ~wxVarScrollHelperBase () |
| Virtual destructor for detaching scroll event handlers attached with this helper class. More... | |
| int | CalcScrolledPosition (int coord) const |
| Translates the logical coordinate given to the current device coordinate. More... | |
| int | CalcUnscrolledPosition (int coord) const |
| Translates the device coordinate given to the corresponding logical coordinate. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| virtual wxWindow * | GetTargetWindow () const |
| This function will return the target window this helper class is currently scrolling. More... | |
| size_t | GetVisibleBegin () const |
| Returns the index of the first visible unit based on the scroll position. More... | |
| size_t | GetVisibleEnd () const |
| Returns the index of the last visible unit based on the scroll position. More... | |
| bool | IsVisible (size_t unit) const |
| Returns true if the given scroll unit is currently visible (even if only partially visible) or false otherwise. More... | |
| virtual void | RefreshAll () |
| Recalculate all parameters and repaint all units. More... | |
| 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. More... | |
| virtual void | UpdateScrollbar () |
| Update the thumb size shown by the scrollbar. More... | |
| 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. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from wxVarVScrollHelper | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
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. More... | |
| 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. More... | |
| 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. More... | |
| wxVScrolled< T >::wxVScrolled | ( | ) |
Default constructor, you must call Create() later.
| wxVScrolled< T >::wxVScrolled | ( | wxWindow * | parent, |
| wxWindowID | id = wxID_ANY, |
||
| const wxPoint & | pos = wxDefaultPosition, |
||
| const wxSize & | size = wxDefaultSize, |
||
| long | style = 0, |
||
| const wxString & | name = wxPanelNameStr |
||
| ) |
This is the normal constructor, no need to call Create() after using this constructor.
wxVSCROLL is always automatically added to the style, there is no need to specify it explicitly.| parent | The parent window, must not be nullptr. |
| id | The identifier of this window, wxID_ANY by default. |
| pos | The initial window position. |
| size | The initial window size. |
| style | The window style. There are no special style bits defined for this class. |
| name | The name for this window; usually not used. |
| bool wxVScrolled< T >::Create | ( | wxWindow * | parent, |
| wxWindowID | id = wxID_ANY, |
||
| const wxPoint & | pos = wxDefaultPosition, |
||
| const wxSize & | size = wxDefaultSize, |
||
| long | style = 0, |
||
| const wxString & | name = wxPanelNameStr |
||
| ) |
Same as the non-default constructor, but returns a status code: true if ok, false if the window couldn't be created.
Just as with the constructor, the wxVSCROLL style is always used, there is no need to specify it explicitly.