.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.VarHVScrollHelper:

==========================================================================================================================================
|phoenix_title|  **wx.VarHVScrollHelper**
==========================================================================================================================================

This class provides functions wrapping the :ref:`wx.VarHScrollHelper`  and :ref:`wx.VarVScrollHelper`  classes, targeted for scrolling a window in both axis.          

Since this class is also the join class of the horizontal and vertical scrolling functionality, it also addresses some wrappers that help avoid the need to specify class scope in your :ref:`wx.HVScrolledWindow`  derived class when using :ref:`wx.VarScrollHelperBase`  functionality. 

Like all three of its scroll helper base classes, 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 :ref:`wx.HVScrolledWindow`  rather than from here directly. 





         



.. seealso:: :ref:`wx.HScrolledWindow`, :ref:`wx.HVScrolledWindow`, :ref:`wx.VScrolledWindow`    







|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>VarHVScrollHelper</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.VarHVScrollHelper_inheritance.png" alt="Inheritance diagram of VarHVScrollHelper" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.VarHVScrollHelper.html" title="wx.VarHVScrollHelper" alt="" coords="90,160,254,189"/> <area shape="rect" id="node2" href="wx.VarVScrollHelper.html" title="wx.VarVScrollHelper" alt="" coords="5,83,160,112"/> <area shape="rect" id="node3" href="wx.VarHScrollHelper.html" title="wx.VarHScrollHelper" alt="" coords="184,83,339,112"/> <area shape="rect" id="node4" href="wx.VarScrollHelperBase.html" title="wx.VarScrollHelperBase" alt="" coords="83,5,261,35"/> </map> 
   </p>
   </div>

|


|sub_classes| Known Subclasses
==============================

:ref:`wx.HVScrolledWindow`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.VarHVScrollHelper.__init__`                                           Constructor taking the target window to be scrolled by this helper class.
:meth:`~wx.VarHVScrollHelper.EnablePhysicalScrolling`                            With physical scrolling on (when this is ``True``), the device origin is changed properly when a :ref:`wx.PaintDC`  is prepared, children are actually moved and laid out properly, and the contents of the window (pixels) are actually moved.
:meth:`~wx.VarHVScrollHelper.GetRowColumnCount`                                  Returns the number of columns and rows the target window contains.
:meth:`~wx.VarHVScrollHelper.GetVisibleBegin`                                    Returns the index of the first visible column and row based on the current scroll position.
:meth:`~wx.VarHVScrollHelper.GetVisibleEnd`                                      Returns the index of the last visible column and row based on the scroll position.
:meth:`~wx.VarHVScrollHelper.IsVisible`                                          Returns ``True`` if both the given row and column are currently visible (even if only partially visible) or ``False`` otherwise.
:meth:`~wx.VarHVScrollHelper.RefreshRowColumn`                                   Triggers a refresh for just the area shared between the given row and column of the window if it is visible.
:meth:`~wx.VarHVScrollHelper.RefreshRowsColumns`                                 Triggers a refresh for the visible area shared between all given rows and columns (inclusive) of the window.
:meth:`~wx.VarHVScrollHelper.ScrollToRowColumn`                                  Scroll to the specified row and column.
:meth:`~wx.VarHVScrollHelper.SetRowColumnCount`                                  Set the number of rows and columns the target window will contain.
:meth:`~wx.VarHVScrollHelper.VirtualHitTest`                                     Returns the virtual scroll unit under the device unit given accounting for scroll position or  ``NOT_FOUND``   (for the row, column, or possibly both values) if none.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.VarHVScrollHelper.RowColumnCount`                                     See :meth:`~wx.VarHVScrollHelper.GetRowColumnCount` and :meth:`~wx.VarHVScrollHelper.SetRowColumnCount`
:attr:`~wx.VarHVScrollHelper.VisibleBegin`                                       See :meth:`~wx.VarHVScrollHelper.GetVisibleBegin`
:attr:`~wx.VarHVScrollHelper.VisibleEnd`                                         See :meth:`~wx.VarHVScrollHelper.GetVisibleEnd`
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.VarHVScrollHelper(VarVScrollHelper, VarHScrollHelper)

   **Possible constructors**::

       VarHVScrollHelper(winToScroll)
       
   
   This class provides functions wrapping the VarHScrollHelper and
   VarVScrollHelper classes, targeted for scrolling a window in both
   axis.



   .. method:: __init__(self, 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.                  


      :param `winToScroll`: 
      :type `winToScroll`: wx.Window







   .. method:: EnablePhysicalScrolling(self, vscrolling=True, hscrolling=True)

      With physical scrolling on (when this is ``True``), the device origin is changed properly when a :ref:`wx.PaintDC`  is prepared, children are actually moved and laid out properly, and the contents of the window (pixels) are actually moved.                  

      When this is ``False``, you are responsible for repainting any invalidated areas of the window yourself to account for the new scroll position. 




      :param `vscrolling`: Specifies if physical scrolling should be turned on when scrolling vertically.   
      :type `vscrolling`: bool
      :param `hscrolling`: Specifies if physical scrolling should be turned on when scrolling horizontally.   
      :type `hscrolling`: bool






                  





   .. method:: GetRowColumnCount(self)

      Returns the number of columns and rows the target window contains.                  

                

      :rtype: :ref:`wx.Size`







      .. seealso:: :meth:`SetRowColumnCount`     








   .. method:: GetVisibleBegin(self)

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

      :rtype: :ref:`wx.Position`








   .. method:: GetVisibleEnd(self)

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

      This includes any partially visible columns or rows.                  

      :rtype: :ref:`wx.Position`








   .. method:: IsVisible(self, *args, **kw)

      Returns ``True`` if both the given row and column are currently visible (even if only partially visible) or ``False`` otherwise.                   


      |overload| Overloaded Implementations:

      :html:`<hr class="overloadsep" /><br />`

      
      **IsVisible** `(self, row, column)`
      
      
      
      
      :param `row`: 
      :type `row`: int
      :param `column`: 
      :type `column`: int
      
      
      
      
      :rtype: `bool`
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **IsVisible** `(self, pos)`
      
      
      
      
      :param `pos`: 
      :type `pos`: wx.Position
      
      
      
      
      :rtype: `bool`
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: RefreshRowColumn(self, *args, **kw)

      Triggers a refresh for just the area shared between the given row and column of the window if it is visible.                   


      |overload| Overloaded Implementations:

      :html:`<hr class="overloadsep" /><br />`

      
      **RefreshRowColumn** `(self, row, column)`
      
      
      
      
      :param `row`: 
      :type `row`: int
      :param `column`: 
      :type `column`: int
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **RefreshRowColumn** `(self, pos)`
      
      
      
      
      :param `pos`: 
      :type `pos`: wx.Position
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: RefreshRowsColumns(self, *args, **kw)

      Triggers a refresh for the visible area shared between all given rows and columns (inclusive) of the window.                  

      If the target window for both orientations is the same, the rectangle of cells is refreshed; if the target windows differ, the entire client size opposite the orientation direction is refreshed between the specified limits.                   


      |overload| Overloaded Implementations:

      :html:`<hr class="overloadsep" /><br />`

      
      **RefreshRowsColumns** `(self, fromRow, toRow, fromColumn, toColumn)`
      
      
      
      
      :param `fromRow`: 
      :type `fromRow`: int
      :param `toRow`: 
      :type `toRow`: int
      :param `fromColumn`: 
      :type `fromColumn`: int
      :param `toColumn`: 
      :type `toColumn`: int
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **RefreshRowsColumns** `(self, from, to)`
      
      
      
      
      :param `from`: 
      :type `from`: wx.Position
      :param `to`: 
      :type `to`: wx.Position
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: ScrollToRowColumn(self, *args, **kw)

      Scroll to the specified row and column.                  

      It will become the first visible row and column in the window. Returns ``True`` if we scrolled the window, ``False`` if nothing was done.                   


      |overload| Overloaded Implementations:

      :html:`<hr class="overloadsep" /><br />`

      
      **ScrollToRowColumn** `(self, row, column)`
      
      
      
      
      :param `row`: 
      :type `row`: int
      :param `column`: 
      :type `column`: int
      
      
      
      
      :rtype: `bool`
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **ScrollToRowColumn** `(self, pos)`
      
      
      
      
      :param `pos`: 
      :type `pos`: wx.Position
      
      
      
      
      :rtype: `bool`
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. method:: SetRowColumnCount(self, rowCount, columnCount)

      Set the number of rows and columns the target window will contain.                  

      The derived class must provide the sizes for all rows and columns with indices up to the ones given here in it's :meth:`OnGetRowHeight`   and :meth:`OnGetColumnWidth`   implementations, respectively. 

                


      :param `rowCount`: 
      :type `rowCount`: int
      :param `columnCount`: 
      :type `columnCount`: int






      .. seealso:: :meth:`GetRowColumnCount`     








   .. method:: VirtualHitTest(self, *args, **kw)

      Returns the virtual scroll unit under the device unit given accounting for scroll position or  ``NOT_FOUND``   (for the row, column, or possibly both values) if none.                    


      |overload| Overloaded Implementations:

      :html:`<hr class="overloadsep" /><br />`

      
      **VirtualHitTest** `(self, x, y)`
      
      
      
      
      :param `x`: 
      :type `x`: int
      :param `y`: 
      :type `y`: int
      
      
      
      
      :rtype: :ref:`wx.Position`
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`

      
      **VirtualHitTest** `(self, pos)`
      
      
      
      
      :param `pos`: 
      :type `pos`: wx.Point
      
      
      
      
      :rtype: :ref:`wx.Position`
      
      
      
      
      
      
      
      :html:`<hr class="overloadsep" /><br />`






   .. attribute:: RowColumnCount

      See :meth:`~wx.VarHVScrollHelper.GetRowColumnCount` and :meth:`~wx.VarHVScrollHelper.SetRowColumnCount`


   .. attribute:: VisibleBegin

      See :meth:`~wx.VarHVScrollHelper.GetVisibleBegin`


   .. attribute:: VisibleEnd

      See :meth:`~wx.VarHVScrollHelper.GetVisibleEnd`

