]>
git.saurik.com Git - wxWidgets.git/blob - interface/wx/vscroll.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     interface of wxVarHScrollHelper 
   4 // Author:      wxWidgets team 
   6 // Licence:     wxWindows license 
   7 ///////////////////////////////////////////////////////////////////////////// 
  10     @class wxVarScrollHelperBase 
  12     This class provides all common base functionality for scroll calculations 
  13     shared among all variable scrolled window implementations as well as 
  14     automatic scrollbar functionality, saved scroll positions, controlling 
  15     target windows to be scrolled, as well as defining all required virtual 
  16     functions that need to be implemented for any orientation specific work. 
  18     Documentation of this class is provided specifically for referencing use 
  19     of the functions provided by this class for use with the variable scrolled 
  20     windows that derive from here. You will likely want to derive your window 
  21     from one of the already implemented variable scrolled windows rather than 
  22     from wxVarScrollHelperBase directly. 
  27     @see wxHScrolledWindow, wxHVScrolledWindow, wxVScrolledWindow 
  29 class wxVarScrollHelperBase
 
  33         Constructor taking the target window to be scrolled by this helper 
  34         class. This will attach scroll event handlers to the target window to 
  35         catch and handle scroll events appropriately. 
  37     wxVarScrollHelperBase(wxWindow
* winToScroll
); 
  40         Virtual destructor for detaching scroll event handlers attached with 
  43     virtual ~wxVarScrollHelperBase(); 
  46         Translates the logical coordinate given to the current device 
  47         coordinate. For example, if the window is scrolled 10 units and each 
  48         scroll unit represents 10 device units (which may not be the case since 
  49         this class allows for variable scroll unit sizes), a call to this 
  50         function with a coordinate of 15 will return -85. 
  52         @see CalcUnscrolledPosition() 
  54     int CalcScrolledPosition(int coord
) const; 
  57         Translates the device coordinate given to the corresponding logical 
  58         coordinate. For example, if the window is scrolled 10 units and each 
  59         scroll unit represents 10 device units (which may not be the case since 
  60         this class allows for variable scroll unit sizes), a call to this 
  61         function with a coordinate of 15 will return 115. 
  63         @see CalcScrolledPosition() 
  65     int CalcUnscrolledPosition(int coord
) const; 
  68         With physical scrolling on (when this is @true), the device origin is 
  69         changed properly when a wxPaintDC is prepared, children are actually 
  70         moved and laid out properly, and the contents of the window (pixels) 
  71         are actually moved. When this is @false, you are responsible for 
  72         repainting any invalidated areas of the window yourself to account for 
  73         the new scroll position. 
  75     void EnablePhysicalScrolling(bool scrolling 
= true); 
  78         This function needs to be overridden in the in the derived class to 
  79         return the window size with respect to the opposing orientation. If 
  80         this is a vertical scrolled window, it should return the height. 
  82         @see GetOrientationTargetSize() 
  84     virtual int GetNonOrientationTargetSize() const = 0; 
  87         This function need to be overridden to return the orientation that this 
  88         helper is working with, either @c wxHORIZONTAL or @c wxVERTICAL. 
  90     virtual wxOrientation 
GetOrientation() const = 0; 
  93         This function needs to be overridden in the in the derived class to 
  94         return the window size with respect to the orientation this helper is 
  95         working with. If this is a vertical scrolled window, it should return 
  98         @see GetNonOrientationTargetSize() 
 100     virtual int GetOrientationTargetSize() const = 0; 
 103         This function will return the target window this helper class is 
 106         @see SetTargetWindow() 
 108     virtual wxWindow
* GetTargetWindow() const; 
 111         Returns the index of the first visible unit based on the scroll 
 114     size_t GetVisibleBegin() const; 
 117         Returns the index of the last visible unit based on the scroll 
 118         position. This includes the last unit even if it is only partially 
 121     size_t GetVisibleEnd() const; 
 124         Returns @true if the given scroll unit is currently visible (even if 
 125         only partially visible) or @false otherwise. 
 127     bool IsVisible(size_t unit
) const; 
 130         Recalculate all parameters and repaint all units. 
 132     virtual void RefreshAll(); 
 135         Normally the window will scroll itself, but in some rare occasions you 
 136         might want it to scroll (part of) another window (e.g. a child of it in 
 137         order to scroll only a portion the area between the scrollbars like a 
 138         spreadsheet where only the cell area will move). 
 140         @see GetTargetWindow() 
 142     virtual void SetTargetWindow(wxWindow
* target
); 
 145         Update the thumb size shown by the scrollbar. 
 147     virtual void UpdateScrollbar(); 
 150         Returns the virtual scroll unit under the device unit given accounting 
 151         for scroll position or @c wxNOT_FOUND if none (i.e. if it is below the 
 154     int VirtualHitTest(wxCoord coord
) const; 
 160         This function doesn't have to be overridden but it may be useful to do 
 161         so if calculating the units' sizes is a relatively expensive operation 
 162         as it gives your code a chance to calculate several of them at once and 
 163         cache the result if necessary. 
 165         OnGetUnitsSizeHint() is normally called just before OnGetUnitSize() but 
 166         you shouldn't rely on the latter being called for all units in the 
 167         interval specified here. It is also possible that OnGetUnitSize() will 
 168         be called for units outside of this interval, so this is really just a 
 171         Finally, note that @a unitMin is inclusive, while @a unitMax is 
 174     virtual void OnGetUnitsSizeHint(size_t unitMin
, size_t unitMax
) const; 
 177         When the number of scroll units change, we try to estimate the total 
 178         size of all units when the full window size is needed (i.e. to 
 179         calculate the scrollbar thumb size). This is a rather expensive 
 180         operation in terms of unit access, so if the user code may estimate the 
 181         average size better or faster than we do, it should override this 
 182         function to implement its own logic. This function should return the 
 183         best guess for the total virtual window size. 
 185         @note Although returning a totally wrong value would still work, it 
 186               risks resulting in very strange scrollbar behaviour so this 
 187               function should really try to make the best guess possible. 
 189     virtual wxCoord 
EstimateTotalSize() const; 
 192         This function must be overridden in the derived class, and should 
 193         return the size of the given unit in pixels. 
 195     virtual wxCoord 
OnGetUnitSize(size_t unit
) const = 0; 
 201     @class wxVarVScrollHelper 
 203     This class provides functions wrapping the wxVarScrollHelperBase class, 
 204     targeted for vertical-specific scrolling. 
 206     Like wxVarScrollHelperBase, this class is mostly only useful to those 
 207     classes built into wxWidgets deriving from here, and this documentation is 
 208     mostly only provided for referencing the functions provided by this class. 
 209     You will likely want to derive your window from wxVScrolledWindow rather 
 210     than from here directly. 
 215     @see wxHScrolledWindow, wxHVScrolledWindow, wxVScrolledWindow 
 217 class wxVarVScrollHelper 
: public wxVarScrollHelperBase
 
 221         Constructor taking the target window to be scrolled by this helper 
 222         class. This will attach scroll event handlers to the target window to 
 223         catch and handle scroll events appropriately. 
 225     wxVarVScrollHelper(wxWindow
* winToScroll
); 
 228         Returns the number of rows the target window contains. 
 232     size_t GetRowCount() const; 
 235         Returns the index of the first visible row based on the scroll 
 238     size_t GetVisibleRowsBegin() const; 
 241         Returns the index of the last visible row based on the scroll position. 
 242         This includes the last row even if it is only partially visible. 
 244     size_t GetVisibleRowsEnd() const; 
 247         Returns @true if the given row is currently visible (even if only 
 248         partially visible) or @false otherwise. 
 250     bool IsRowVisible(size_t row
) const; 
 253         Triggers a refresh for just the given row's area of the window if it's 
 256     virtual void RefreshRow(size_t row
); 
 259         Triggers a refresh for the area between the specified range of rows 
 262     virtual void RefreshRows(size_t from
, size_t to
); 
 265         Scroll by the specified number of pages which may be positive (to 
 266         scroll down) or negative (to scroll up). 
 268     virtual bool ScrollRowPages(int pages
); 
 271         Scroll by the specified number of rows which may be positive (to scroll 
 272         down) or negative (to scroll up). 
 274         @return @true if the window was scrolled, @false otherwise (for 
 275                 example, if we're trying to scroll down but we are already 
 276                 showing the last row). 
 278     virtual bool ScrollRows(int rows
); 
 281         Scroll to the specified row. It will become the first visible row in 
 284         @return @true if we scrolled the window, @false if nothing was done. 
 286     bool ScrollToRow(size_t row
); 
 289         Set the number of rows the window contains. The derived class must 
 290         provide the heights for all rows with indices up to the one given here 
 291         in it's OnGetRowHeight() implementation. 
 295     void SetRowCount(size_t rowCount
); 
 300         This function doesn't have to be overridden but it may be useful to do 
 301         so if calculating the rows' sizes is a relatively expensive operation 
 302         as it gives your code a chance to calculate several of them at once and 
 303         cache the result if necessary. 
 305         OnGetRowsHeightHint() is normally called just before OnGetRowHeight() 
 306         but you shouldn't rely on the latter being called for all rows in the 
 307         interval specified here. It is also possible that OnGetRowHeight() will 
 308         be called for units outside of this interval, so this is really just a 
 311         Finally, note that @a rowMin is inclusive, while @a rowMax is 
 314     virtual void OnGetRowsHeightHint(size_t rowMin
, size_t rowMax
) const; 
 317         This class forwards calls from EstimateTotalSize() to this function so 
 318         derived classes can override either just the height or the width 
 319         estimation, or just estimate both differently if desired in any 
 320         wxHVScrolledWindow derived class. 
 322         @note This function will not be called if EstimateTotalSize() is 
 323               overridden in your derived class. 
 325     virtual wxCoord 
EstimateTotalHeight() const; 
 328         This function must be overridden in the derived class, and should 
 329         return the height of the given row in pixels. 
 331     virtual wxCoord 
OnGetRowHeight(size_t row
) const = 0; 
 337     @class wxVarHScrollHelper 
 339     This class provides functions wrapping the wxVarScrollHelperBase class, 
 340     targeted for horizontal-specific scrolling. 
 342     Like wxVarScrollHelperBase, this class is mostly only useful to those 
 343     classes built into wxWidgets deriving from here, and this documentation is 
 344     mostly only provided for referencing the functions provided by this class. 
 345     You will likely want to derive your window from wxHScrolledWindow rather 
 346     than from here directly. 
 351     @see wxHScrolledWindow, wxHVScrolledWindow, wxVScrolledWindow 
 353 class wxVarHScrollHelper 
: public wxVarScrollHelperBase
 
 357         Constructor taking the target window to be scrolled by this helper 
 358         class. This will attach scroll event handlers to the target window to 
 359         catch and handle scroll events appropriately. 
 361     wxVarHScrollHelper(wxWindow
* winToScroll
); 
 364         Returns the number of columns the target window contains. 
 366         @see SetColumnCount() 
 368     size_t GetColumnCount() const; 
 371         Returns the index of the first visible column based on the scroll 
 374     size_t GetVisibleColumnsBegin() const; 
 377         Returns the index of the last visible column based on the scroll 
 378         position. This includes the last column even if it is only partially 
 381     size_t GetVisibleColumnsEnd() const; 
 384         Returns @true if the given column is currently visible (even if only 
 385         partially visible) or @false otherwise. 
 387     bool IsColumnVisible(size_t column
) const; 
 390         Triggers a refresh for just the given column's area of the window if 
 393     virtual void RefreshColumn(size_t column
); 
 396         Triggers a refresh for the area between the specified range of columns 
 399     virtual void RefreshColumns(size_t from
, size_t to
); 
 402         Scroll by the specified number of pages which may be positive (to 
 403         scroll right) or negative (to scroll left). 
 405     virtual bool ScrollColumnPages(int pages
); 
 408         Scroll by the specified number of columns which may be positive (to 
 409         scroll right) or negative (to scroll left). 
 411         @return @true if the window was scrolled, @false otherwise (for 
 412                 example, if we're trying to scroll right but we are already 
 413                 showing the last column). 
 415     virtual bool ScrollColumns(int columns
); 
 418         Scroll to the specified column. It will become the first visible column 
 421         @return @true if we scrolled the window, @false if nothing was done. 
 423     bool ScrollToColumn(size_t column
); 
 426         Set the number of columns the window contains. The derived class must 
 427         provide the widths for all columns with indices up to the one given 
 428         here in it's OnGetColumnWidth() implementation. 
 430         @see GetColumnCount() 
 432     void SetColumnCount(size_t columnCount
); 
 437         This class forwards calls from EstimateTotalSize() to this function so 
 438         derived classes can override either just the height or the width 
 439         estimation, or just estimate both differently if desired in any 
 440         wxHVScrolledWindow derived class. 
 442         @note This function will not be called if EstimateTotalSize() is 
 443               overridden in your derived class. 
 445     virtual wxCoord 
EstimateTotalWidth() const; 
 448         This function doesn't have to be overridden but it may be useful to do 
 449         so if calculating the columns' sizes is a relatively expensive 
 450         operation as it gives your code a chance to calculate several of them 
 451         at once and cache the result if necessary. 
 453         OnGetColumnsWidthHint() is normally called just before 
 454         OnGetColumnWidth() but you shouldn't rely on the latter being called 
 455         for all columns in the interval specified here. It is also possible 
 456         that OnGetColumnWidth() will be called for units outside of this 
 457         interval, so this is really just a hint, not a promise. 
 459         Finally, note that @a columnMin is inclusive, while @a columnMax is 
 462     virtual void OnGetColumnsWidthHint(size_t columnMin
, 
 463                                        size_t columnMax
) const; 
 466         This function must be overridden in the derived class, and should 
 467         return the width of the given column in pixels. 
 469     virtual wxCoord 
OnGetColumnWidth(size_t column
) const = 0; 
 475     @class wxVarHVScrollHelper 
 477     This class provides functions wrapping the wxVarHScrollHelper and 
 478     wxVarVScrollHelper classes, targeted for scrolling a window in both axis. 
 479     Since this class is also the join class of the horizontal and vertical 
 480     scrolling functionality, it also addresses some wrappers that help avoid 
 481     the need to specify class scope in your wxHVScrolledWindow derived class 
 482     when using wxVarScrollHelperBase functionality. 
 484     Like all three of it's scroll helper base classes, this class is mostly 
 485     only useful to those classes built into wxWidgets deriving from here, and 
 486     this documentation is mostly only provided for referencing the functions 
 487     provided by this class. You will likely want to derive your window from 
 488     wxHVScrolledWindow rather than from here directly. 
 493     @see wxHScrolledWindow, wxHVScrolledWindow, wxVScrolledWindow 
 495 class wxVarHVScrollHelper 
: public wxVarVScrollHelper
, 
 496                              public wxVarHScrollHelper
 
 500         Constructor taking the target window to be scrolled by this helper 
 501         class. This will attach scroll event handlers to the target window to 
 502         catch and handle scroll events appropriately. 
 504     wxVarHVScrollHelper(wxWindow
* winToScroll
); 
 507         With physical scrolling on (when this is @true), the device origin is 
 508         changed properly when a wxPaintDC is prepared, children are actually 
 509         moved and laid out properly, and the contents of the window (pixels) 
 510         are actually moved. When this is @false, you are responsible for 
 511         repainting any invalidated areas of the window yourself to account for 
 512         the new scroll position. 
 515             Specifies if physical scrolling should be turned on when scrolling 
 518             Specifies if physical scrolling should be turned on when scrolling 
 521     void EnablePhysicalScrolling(bool vscrolling 
= true, 
 522                                  bool hscrolling 
= true); 
 525         Returns the number of columns and rows the target window contains. 
 527         @see SetRowColumnCount() 
 529     wxSize 
GetRowColumnCount() const; 
 532         Returns the index of the first visible column and row based on the 
 533         current scroll position. 
 535     wxPosition 
GetVisibleBegin() const; 
 538         Returns the index of the last visible column and row based on the 
 539         scroll position. This includes any partially visible columns or rows. 
 541     wxPosition 
GetVisibleEnd() const; 
 545         Returns @true if both the given row and column are currently visible 
 546         (even if only partially visible) or @false otherwise. 
 548     bool IsVisible(size_t row
, size_t column
) const; 
 549     bool IsVisible(const wxPosition
& pos
) const; 
 554         Triggers a refresh for just the area shared between the given row and 
 555         column of the window if it is visible. 
 557     virtual void RefreshRowColumn(size_t row
, size_t column
); 
 558     virtual void RefreshRowColumn(const wxPosition
& pos
); 
 563         Triggers a refresh for the visible area shared between all given rows 
 564         and columns (inclusive) of the window. If the target window for both 
 565         orientations is the same, the rectangle of cells is refreshed; if the 
 566         target windows differ, the entire client size opposite the orientation 
 567         direction is refreshed between the specified limits. 
 569     virtual void RefreshRowsColumns(size_t fromRow
, size_t toRow
, 
 570                                     size_t fromColumn
, size_t toColumn
); 
 571     virtual void RefreshRowsColumns(const wxPosition
& from
, 
 572                                     const wxPosition
& to
); 
 577         Scroll to the specified row and column. It will become the first 
 578         visible row and column in the window. Returns @true if we scrolled the 
 579         window, @false if nothing was done. 
 581     bool ScrollToRowColumn(size_t row
, size_t column
); 
 582     bool ScrollToRowColumn(const wxPosition
& pos
); 
 586         Set the number of rows and columns the target window will contain. The 
 587         derived class must provide the sizes for all rows and columns with 
 588         indices up to the ones given here in it's OnGetRowHeight() and 
 589         OnGetColumnWidth() implementations, respectively. 
 591         @see GetRowColumnCount() 
 593     void SetRowColumnCount(size_t rowCount
, size_t columnCount
); 
 597         Returns the virtual scroll unit under the device unit given accounting 
 598         for scroll position or @c wxNOT_FOUND (for the row, column, or possibly 
 599         both values) if none. 
 601     wxPosition 
VirtualHitTest(wxCoord x
, wxCoord y
) const; 
 602     wxPosition 
VirtualHitTest(const wxPoint
& pos
) const; 
 609     @class wxVScrolledWindow 
 611     In the name of this class, "V" may stand for "variable" because it can be 
 612     used for scrolling rows of variable heights; "virtual", because it is not 
 613     necessary to know the heights of all rows in advance -- only those which 
 614     are shown on the screen need to be measured; or even "vertical", because 
 615     this class only supports scrolling vertically. 
 617     In any case, this is a generalization of wxScrolled which can be only used 
 618     when all rows have the same heights. It lacks some other wxScrolled 
 619     features however, notably it can't scroll specific pixel sizes of the 
 620     window or its exact client area size. 
 622     To use this class, you need to derive from it and implement the 
 623     OnGetRowHeight() pure virtual method. You also must call SetRowCount() to 
 624     let the base class know how many rows it should display, but from that 
 625     moment on the scrolling is handled entirely by wxVScrolledWindow. You only 
 626     need to draw the visible part of contents in your @c OnPaint() method as 
 627     usual. You should use GetVisibleRowsBegin() and GetVisibleRowsEnd() to 
 628     select the lines to display. Note that the device context origin is not 
 629     shifted so the first visible row always appears at the point (0, 0) in 
 630     physical as well as logical coordinates. 
 632     @section vscrolledwindow_compat wxWidgets 2.8 Compatibility Functions 
 634     The following functions provide backwards compatibility for applications 
 635     originally built using wxVScrolledWindow in 2.6 or 2.8. Originally, 
 636     wxVScrolledWindow referred to scrolling "lines". We now use "units" in 
 637     wxVarScrollHelperBase to avoid implying any orientation (since the 
 638     functions are used for both horizontal and vertical scrolling in derived 
 639     classes). And in the new wxVScrolledWindow and wxHScrolledWindow classes, 
 640     we refer to them as "rows" and "columns", respectively. This is to help 
 641     clear some confusion in not only those classes, but also in 
 642     wxHVScrolledWindow where functions are inherited from both. 
 644     You are encouraged to update any existing code using these function to use 
 645     the new replacements mentioned below, and avoid using these functions for 
 646     any new code as they are deprecated. 
 649     @row2col{ <tt>size_t %GetFirstVisibleLine() const</tt>, 
 650         Deprecated for GetVisibleRowsBegin(). } 
 651     @row2col{ <tt>size_t %GetLastVisibleLine() const</tt>, 
 652         Deprecated for GetVisibleRowsEnd(). This function originally had a 
 653         slight design flaw in that it was possible to return 
 654         <tt>(size_t)-1</tt> (ie: a large positive number) if the scroll 
 655         position was 0 and the first line wasn't completely visible. } 
 656     @row2col{ <tt>size_t %GetLineCount() const</tt>, 
 657         Deprecated for GetRowCount(). } 
 658     @row2col{ <tt>int %HitTest(wxCoord x\, wxCoord y) const 
 659               @n  int %HitTest(const wxPoint& pt) const</tt>, 
 660         Deprecated for VirtualHitTest(). } 
 661     @row2col{ <tt>virtual wxCoord %OnGetLineHeight(size_t line) const</tt>, 
 662         Deprecated for OnGetRowHeight(). } 
 663     @row2col{ <tt>virtual void %OnGetLinesHint(size_t lineMin\, size_t lineMax) const</tt>, 
 664         Deprecated for OnGetRowsHeightHint(). } 
 665     @row2col{ <tt>virtual void %RefreshLine(size_t line)</tt>, 
 666         Deprecated for RefreshRow(). } 
 667     @row2col{ <tt>virtual void %RefreshLines(size_t from\, size_t to)</tt>, 
 668         Deprecated for RefreshRows(). } 
 669     @row2col{ <tt>virtual bool %ScrollLines(int lines)</tt>, 
 670         Deprecated for ScrollRows(). } 
 671     @row2col{ <tt>virtual bool %ScrollPages(int pages)</tt>, 
 672         Deprecated for ScrollRowPages(). } 
 673     @row2col{ <tt>bool %ScrollToLine(size_t line)</tt>, 
 674         Deprecated for ScrollToRow(). } 
 675     @row2col{ <tt>void %SetLineCount(size_t count)</tt>, 
 676         Deprecated for SetRowCount(). } 
 682     @see wxHScrolledWindow, wxHVScrolledWindow 
 684 class wxVScrolledWindow 
: public wxPanel
, public wxVarVScrollHelper
 
 688         Default constructor, you must call Create() later. 
 692         This is the normal constructor, no need to call Create() after using 
 695         @note @c wxVSCROLL is always automatically added to the style, there is 
 696               no need to specify it explicitly. 
 699             The parent window, must not be @NULL. 
 701             The identifier of this window, wxID_ANY by default. 
 703             The initial window position. 
 705             The initial window size. 
 707             The window style. There are no special style bits defined for this 
 710             The name for this window; usually not used. 
 712     wxVScrolledWindow(wxWindow
* parent
, wxWindowID id 
= wxID_ANY
, 
 713                       const wxPoint
& pos 
= wxDefaultPosition
, 
 714                       const wxSize
& size 
= wxDefaultSize
, long style 
= 0, 
 715                       const wxString
& name 
= wxPanelNameStr
); 
 718         Same as the non-default constuctor, but returns a status code: @true if 
 719         ok, @false if the window couldn't be created. 
 721         Just as with the constructor, the @c wxVSCROLL style is always used, 
 722         there is no need to specify it explicitly. 
 724     bool Create(wxWindow
* parent
, wxWindowID id 
= wxID_ANY
, 
 725                 const wxPoint
& pos 
= wxDefaultPosition
, 
 726                 const wxSize
& size 
= wxDefaultSize
, long style 
= 0, 
 727                 const wxString
& name 
= wxPanelNameStr
); 
 733     @class wxHScrolledWindow 
 735     In the name of this class, "H" stands for "horizontal" because it can be 
 736     used for scrolling columns of variable widths. It is not necessary to know 
 737     the widths of all columns in advance -- only those which are shown on the 
 738     screen need to be measured. 
 740     In any case, this is a generalization of wxScrolled which can be only used 
 741     when all columns have the same widths. It lacks some other wxScrolled 
 742     features however, notably it can't scroll specific pixel sizes of the 
 743     window or its exact client area size. 
 745     To use this class, you need to derive from it and implement the 
 746     OnGetColumnWidth() pure virtual method. You also must call SetColumnCount() 
 747     to let the base class know how many columns it should display, but from 
 748     that moment on the scrolling is handled entirely by wxHScrolledWindow. You 
 749     only need to draw the visible part of contents in your @c OnPaint() method 
 750     as usual. You should use GetVisibleColumnsBegin() and 
 751     GetVisibleColumnsEnd() to select the lines to display. Note that the device 
 752     context origin is not shifted so the first visible column always appears at 
 753     the point (0, 0) in physical as well as logical coordinates. 
 758     @see wxHVScrolledWindow, wxVScrolledWindow 
 760 class wxHScrolledWindow 
: public wxPanel
, public wxVarHScrollHelper
 
 764         Default constructor, you must call Create() later. 
 768         This is the normal constructor, no need to call Create() after using 
 771         @note @c wxHSCROLL is always automatically added to the style, there is 
 772               no need to specify it explicitly. 
 775             The parent window, must not be @NULL. 
 777             The identifier of this window, wxID_ANY by default. 
 779             The initial window position. 
 781             The initial window size. 
 783             The window style. There are no special style bits defined for this 
 786             The name for this window; usually not used. 
 788     wxHScrolledWindow(wxWindow
* parent
, wxWindowID id 
= wxID_ANY
, 
 789                       const wxPoint
& pos 
= wxDefaultPosition
, 
 790                       const wxSize
& size 
= wxDefaultSize
, long style 
= 0, 
 791                       const wxString
& name 
= wxPanelNameStr
); 
 794         Same as the non-default constuctor, but returns a status code: @true if 
 795         ok, @false if the window couldn't be created. 
 797         Just as with the constructor, the @c wxHSCROLL style is always used, 
 798         there is no need to specify it explicitly. 
 800     bool Create(wxWindow
* parent
, wxWindowID id 
= wxID_ANY
, 
 801                 const wxPoint
& pos 
= wxDefaultPosition
, 
 802                 const wxSize
& size 
= wxDefaultSize
, long style 
= 0, 
 803                 const wxString
& name 
= wxPanelNameStr
); 
 809     @class wxHVScrolledWindow 
 811     This window inherits all functionality of both vertical and horizontal, 
 812     variable scrolled windows. It automatically handles everything needed to 
 813     scroll both axis simultaneously with both variable row heights and variable 
 816     In any case, this is a generalization of wxScrolled which can be only used 
 817     when all rows and columns are the same size. It lacks some other wxScrolled 
 818     features however, notably it can't scroll specific pixel sizes of the 
 819     window or its exact client area size. 
 821     To use this class, you must derive from it and implement both the 
 822     OnGetRowHeight() and OnGetColumnWidth() pure virtual methods to let the 
 823     base class know how many rows and columns it should display. You also need 
 824     to set the total rows and columns the window contains, but from that moment 
 825     on the scrolling is handled entirely by wxHVScrolledWindow. You only need 
 826     to draw the visible part of contents in your @c OnPaint() method as usual. 
 827     You should use GetVisibleBegin() and GetVisibleEnd() to select the lines to 
 828     display. Note that the device context origin is not shifted so the first 
 829     visible row and column always appear at the point (0, 0) in physical as 
 830     well as logical coordinates. 
 835     @see wxHScrolledWindow, wxVScrolledWindow 
 837 class wxHVScrolledWindow 
: public wxPanel
, public wxVarHVScrollHelper
 
 841         Default constructor, you must call Create() later. 
 843     wxHVScrolledWindow(); 
 845         This is the normal constructor, no need to call Create() after using 
 848         @note @c wxHSCROLL and @c wxVSCROLL are always automatically added to 
 849               the style, there is no need to specify it explicitly. 
 852             The parent window, must not be @NULL. 
 854             The identifier of this window, wxID_ANY by default. 
 856             The initial window position. 
 858             The initial window size. 
 860             The window style. There are no special style bits defined for this 
 863             The name for this window; usually not used. 
 865     wxHVScrolledWindow(wxWindow
* parent
, wxWindowID id 
= wxID_ANY
, 
 866                        const wxPoint
& pos 
= wxDefaultPosition
, 
 867                        const wxSize
& size 
= wxDefaultSize
, long style 
= 0, 
 868                        const wxString
& name 
= wxPanelNameStr
); 
 871         Same as the non-default constuctor, but returns a status code: @true if 
 872         ok, @false if the window couldn't be created. 
 874         Just as with the constructor, the @c wxHSCROLL and @c wxVSCROLL styles 
 875         are always used, there is no need to specify them explicitly. 
 877     bool Create(wxWindow
* parent
, wxWindowID id 
= wxID_ANY
, 
 878                 const wxPoint
& pos 
= wxDefaultPosition
, 
 879                 const wxSize
& size 
= wxDefaultSize
, long style 
= 0, 
 880                 const wxString
& name 
= wxPanelNameStr
);