.. 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

.. currentmodule:: wx.lib.agw.hypertreelist

.. highlight:: python



.. _wx.lib.agw.hypertreelist.HyperTreeList:

==========================================================================================================================================
|phoenix_title|  **wx.lib.agw.hypertreelist.HyperTreeList**
==========================================================================================================================================

:class:`HyperTreeList` is a generic widget that combines the multicolumn
features of a :class:`wx.ListCtrl` with the hierarchical features of a
:class:`wx.TreeCtrl` This class does not rely on native native controls,
as it is a full owner-drawn tree-list control.

It manages two widgets internally:
    :class:`TreeListHeaderWindow`
    :class:`TreeListMainWindow` based off :class:`CustomTreeCtrl`
These widgets can be obtained by the :meth:`~HyperTreeList.GetHeaderWindow`
and :meth:`~HyperTreeList.GetMainWindow` methods respectively althought this
shouldn't be needed in normal usage.

Please note that although the methods are not explicitly defined or
documented here, most of the API in :class:`TreeListMainWindow` and
:class:`CustomTreeCtrl` can be called directly from :class:`HyperTreeList`
via monkey-patched delegates.



|

|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>HyperTreeList</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.lib.agw.hypertreelist.HyperTreeList_inheritance.png" alt="Inheritance diagram of HyperTreeList" 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.lib.agw.hypertreelist.HyperTreeList.html" title="wx.lib.agw.hypertreelist.HyperTreeList" alt="" coords="5,392,276,421"/> <area shape="rect" id="node2" href="wx.Control.html" title="wx.Control" alt="" coords="95,315,187,344"/> <area shape="rect" id="node3" href="wx.Window.html" title="wx.Window" alt="" coords="92,237,189,267"/> <area shape="rect" id="node4" href="wx.WindowBase.html" title="wx.WindowBase" alt="" coords="76,160,205,189"/> <area shape="rect" id="node5" href="wx.EvtHandler.html" title="wx.EvtHandler" alt="" coords="82,83,199,112"/> <area shape="rect" id="node6" href="wx.Object.html" title="wx.Object" alt="" coords="37,5,124,35"/> <area shape="rect" id="node7" href="wx.Trackable.html" title="wx.Trackable" alt="" coords="149,5,255,35"/> </map> 
   </p>
   </div>

|


|appearance| Control Appearance
===============================

|

.. figure:: _static/images/widgets/fullsize/wxmsw/wx.lib.agw.hypertreelist.hypertreelist.png
   :alt: wxMSW
   :figclass: floatleft

   **wxMSW**


.. figure:: _static/images/widgets/fullsize/wxmac/../no_appearance.png
   :alt: wxMAC
   :figclass: floatright

   **wxMAC**


.. figure:: _static/images/widgets/fullsize/wxgtk/../no_appearance.png
   :alt: wxGTK
   :figclass: floatcenter

   **wxGTK**


|




|super_classes| Known Superclasses
==================================

:class:`wx.Control`

|


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

================================================================================ ================================================================================
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.__init__`                         Default class constructor.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.AddColumn`                        Appends a column to the :class:`HyperTreeList`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.AddColumnInfo`                    Appends a column to the :class:`HyperTreeList`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.CalculateAndSetHeaderHeight`      Calculates the best header height and stores it.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.CreateEditCtrl`                   Create an edit control for editing a label of an item. By default, this
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.delegate`                         
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.DoGetBestSize`                    Gets the size which best suits the window: for a control, it would be the
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.DoHeaderLayout`                   Layouts the header control.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetAGWWindowStyleFlag`            Returns the :class:`HyperTreeList` window style flag.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetColumn`                        Returns an instance of :class:`TreeListColumnInfo` containing column information.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetColumnAlignment`               Returns the column text alignment.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetColumnColour`                  Returns the column text colour.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetColumnFont`                    Returns the column text font.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetColumnImage`                   Returns the image assigned to the specified column.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetColumnText`                    Returns the column text label.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetColumnWidth`                   Returns the column width, in pixels.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetHeaderWindow`                  Returns the header window, an instance of :class:`TreeListHeaderWindow`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetMainWindow`                    Returns the main window, an instance of :class:`TreeListMainWindow`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetTextCtrlAlignmentStyle`        Return the alignment style to use for the text control that is used
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.GetTextCtrlStyle`                 Return the style to use for the text control that is used to edit
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.HasAGWFlag`                       Returns whether a flag is present in the :class:`HyperTreeList` style.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.InsertColumn`                     Inserts a column to the :class:`HyperTreeList` at the position specified
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.InsertColumnInfo`                 Inserts a column to the :class:`HyperTreeList` at the position specified
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.IsColumnEditable`                 Returns ``True`` if the column is editable, ``False`` otherwise.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.IsColumnShown`                    Returns ``True`` if the column is shown, ``False`` otherwise.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.OnCompareItems`                   Returns whether 2 items have the same text.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.OnGetItemText`                    This function **must** be overloaded in the derived class for a control
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.OnSize`                           Handles the ``wx.EVT_SIZE`` event for :class:`HyperTreeList`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.Refresh`                          Causes this window, and all of its children recursively (except under wxGTK1
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.RemoveColumn`                     Removes a column from the :class:`HyperTreeList`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetAGWWindowStyleFlag`            Sets the window style for :class:`HyperTreeList`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetBackgroundColour`              Changes the background colour of :class:`HyperTreeList`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetBuffered`                      Sets/unsets the double buffering for the header and the main window.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetColumn`                        Sets a column using an instance of :class:`TreeListColumnInfo`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetColumnAlignment`               Sets the column text alignment.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetColumnColour`                  Sets the column text colour.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetColumnEditable`                Sets the column as editable or non-editable.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetColumnFont`                    Sets the column text font.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetColumnImage`                   Sets an image on the specified column.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetColumnShown`                   Sets the column as shown or hidden.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetColumnText`                    Sets the column text label.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetColumnWidth`                   Sets the column width, in pixels.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetFocus`                         This sets the window to receive keyboard input.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetFont`                          Sets the default font for the header window and the main window.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetForegroundColour`              Changes the foreground colour of :class:`HyperTreeList`.
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetHeaderCustomRenderer`          Associate a custom renderer with the header - all columns will use it
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SetHeaderFont`                    Sets the default font for the header window..
:meth:`~wx.lib.agw.hypertreelist.HyperTreeList.SortChildren`                     Sorts the children of the given item using :meth:`~HyperTreeList.OnCompareItems` method of :class:`HyperTreeList`.
================================================================================ ================================================================================


|


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


.. class:: HyperTreeList(wx.Control)

   :class:`HyperTreeList` is a generic widget that combines the multicolumn
   features of a :class:`wx.ListCtrl` with the hierarchical features of a
   :class:`wx.TreeCtrl` This class does not rely on native native controls,
   as it is a full owner-drawn tree-list control.
   
   It manages two widgets internally:
       :class:`TreeListHeaderWindow`
       :class:`TreeListMainWindow` based off :class:`CustomTreeCtrl`
   These widgets can be obtained by the :meth:`~HyperTreeList.GetHeaderWindow`
   and :meth:`~HyperTreeList.GetMainWindow` methods respectively althought this
   shouldn't be needed in normal usage.
   
   Please note that although the methods are not explicitly defined or
   documented here, most of the API in :class:`TreeListMainWindow` and
   :class:`CustomTreeCtrl` can be called directly from :class:`HyperTreeList`
   via monkey-patched delegates.

   .. method:: __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, agwStyle=wx.TR_DEFAULT_STYLE, validator=wx.DefaultValidator, name="HyperTreeList")

      Default class constructor.
      
      :param `parent`: parent window. Must not be ``None``;
      :param `id`: window identifier. A value of -1 indicates a default value;
      :param `pos`: the control position. A value of (-1, -1) indicates a default position,
       chosen by either the windowing system or wxPython, depending on platform;
      :param `size`: the control size. A value of (-1, -1) indicates a default size,
       chosen by either the windowing system or wxPython, depending on platform;
      :param `style`: the underlying :class:`wx.Control` style;
      :param `agwStyle`: the AGW-specific :class:`HyperTreeList` window style. This can be a combination
       of the following bits:
      
       ============================== =========== ==================================================
       Window Styles                  Hex Value   Description
       ============================== =========== ==================================================
       ``TR_NO_BUTTONS``                      0x0 For convenience to document that no buttons are to be drawn.
       ``TR_SINGLE``                          0x0 For convenience to document that only one item may be selected at a time. Selecting another item causes the current selection, if any, to be deselected. This is the default.
       ``TR_HAS_BUTTONS``                     0x1 Use this style to show + and - buttons to the left of parent items.
       ``TR_NO_LINES``                        0x4 Use this style to hide vertical level connectors.
       ``TR_LINES_AT_ROOT``                   0x8 Use this style to show lines between root nodes. Only applicable if ``TR_HIDE_ROOT`` is set and ``TR_NO_LINES`` is not set.
       ``TR_DEFAULT_STYLE``                   0x9 The set of flags that are closest to the defaults for the native control for a particular toolkit.
       ``TR_TWIST_BUTTONS``                  0x10 Use old Mac-twist style buttons.
       ``TR_MULTIPLE``                       0x20 Use this style to allow a range of items to be selected. If a second range is selected, the current range, if any, is deselected.
       ``TR_EXTENDED``                       0x40 Use this style to allow disjoint items to be selected. (Only partially implemented; may not work in all cases).
       ``TR_HAS_VARIABLE_ROW_HEIGHT``        0x80 Use this style to cause row heights to be just big enough to fit the content. If not set, all rows use the largest row height. The default is that this flag is unset.
       ``TR_EDIT_LABELS``                   0x200 Use this style if you wish the user to be able to edit labels in the tree control.
       ``TR_ROW_LINES``                     0x400 Use this style to draw a contrasting border between displayed rows.
       ``TR_HIDE_ROOT``                     0x800 Use this style to suppress the display of the root node, effectively causing the first-level nodes to appear as a series of root nodes.
       ``TR_COLUMN_LINES``                 0x1000 Use this style to draw a contrasting border between displayed columns.
       ``TR_FULL_ROW_HIGHLIGHT``           0x2000 Use this style to have the background colour and the selection highlight extend  over the entire horizontal row of the tree control window.
       ``TR_AUTO_CHECK_CHILD``             0x4000 Only meaningful for checkbox-type items: when a parent item is checked/unchecked its children are checked/unchecked as well.
       ``TR_AUTO_TOGGLE_CHILD``            0x8000 Only meaningful for checkbox-type items: when a parent item is checked/unchecked its children are toggled accordingly.
       ``TR_AUTO_CHECK_PARENT``           0x10000 Only meaningful for checkbox-type items: when a child item is checked/unchecked its parent item is checked/unchecked as well.
       ``TR_ALIGN_WINDOWS``               0x20000 Flag used to align windows (in items with windows) at the same horizontal position.
       ``TR_NO_HEADER``                   0x40000 Use this style to hide the columns header.
       ``TR_ELLIPSIZE_LONG_ITEMS``        0x80000 Flag used to ellipsize long items when the horizontal space for :class:`~wx.lib.agw.customtreectrl.CustomTreeCtrl` is low.
       ``TR_VIRTUAL``                    0x100000 :class:`HyperTreeList` will have virtual behaviour.
       ============================== =========== ==================================================
      
      :param `validator`: window validator;
      :param `name`: window name.


   .. method:: AddColumn(self, text, width=_DEFAULT_COL_WIDTH, flag=wx.ALIGN_LEFT, image=-1, shown=True, colour=None, edit=False)

      Appends a column to the :class:`HyperTreeList`.
      
      :param `text`: the column text label;
      :param `width`: the column width in pixels;
      :param `flag`: the column alignment flag, one of ``wx.ALIGN_LEFT``,
       ``wx.ALIGN_RIGHT``, ``wx.ALIGN_CENTER``;
      :param `image`: an index within the normal image list assigned to
       :class:`HyperTreeList` specifying the image to use for the column;
      :param `shown`: ``True`` to show the column, ``False`` to hide it;
      :param `colour`: a valid :class:`wx.Colour`, representing the text foreground colour
       for the column;
      :param `edit`: ``True`` to set the column as editable, ``False`` otherwise.


   .. method:: AddColumnInfo(self, colInfo)

      Appends a column to the :class:`HyperTreeList`.
      
      :param `colInfo`: an instance of :class:`TreeListColumnInfo`.


   .. method:: CalculateAndSetHeaderHeight(self)

      Calculates the best header height and stores it. 


   .. method:: CreateEditCtrl(self, item, column)

      Create an edit control for editing a label of an item. By default, this
      returns a text control.
      
      Override this function in the derived class to return a different type
      of control.
      
      :param `item`: an instance of :class:`TreeListItem`;
      :param `column`: an integer specifying the column index.


   .. method:: delegate(self, \*args, \*\*kwargs)


   .. method:: DoGetBestSize(self)

      Gets the size which best suits the window: for a control, it would be the
      minimal size which doesn't truncate the control, for a panel - the same size
      as it would have after a call to `Fit()`.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: DoHeaderLayout(self)

      Layouts the header control. 


   .. method:: GetAGWWindowStyleFlag(self)

      Returns the :class:`HyperTreeList` window style flag.
      
      :see: :meth:`~HyperTreeList.SetAGWWindowStyleFlag` for a list of valid window styles.


   .. method:: GetColumn(self, column)

      Returns an instance of :class:`TreeListColumnInfo` containing column information.
      
      :param `column`: an integer specifying the column index.


   .. method:: GetColumnAlignment(self, column)

      Returns the column text alignment.
      
      :param `column`: an integer specifying the column index.


   .. method:: GetColumnColour(self, column)

      Returns the column text colour.
      
      :param `column`: an integer specifying the column index.


   .. method:: GetColumnFont(self, column)

      Returns the column text font.
      
      :param `column`: an integer specifying the column index.


   .. method:: GetColumnImage(self, column)

      Returns the image assigned to the specified column.
      
      :param `column`: an integer specifying the column index.


   .. method:: GetColumnText(self, column)

      Returns the column text label.
      
      :param `column`: an integer specifying the column index.


   .. method:: GetColumnWidth(self, column)

      Returns the column width, in pixels.
      
      :param `column`: an integer specifying the column index.


   .. method:: GetHeaderWindow(self)

      Returns the header window, an instance of :class:`TreeListHeaderWindow`. 


   .. method:: GetMainWindow(self)

      Returns the main window, an instance of :class:`TreeListMainWindow`. 


   .. method:: GetTextCtrlAlignmentStyle(self, column)

      Return the alignment style to use for the text control that is used
      to edit labels of items. The alignment style is derived from the
      column alignment.
      
      :param `column`: an integer specifying the column index.


   .. method:: GetTextCtrlStyle(self, column)

      Return the style to use for the text control that is used to edit
      labels of items.
      
      Override this function in the derived class to support a different
      style, e.g. ``wx.TE_MULTILINE``.
      
      :param `column`: an integer specifying the column index.


   .. method:: HasAGWFlag(self, flag)

      Returns whether a flag is present in the :class:`HyperTreeList` style.
      
      :param `flag`: one of the possible :class:`HyperTreeList` window styles.
      
      :see: :meth:`~HyperTreeList.SetAGWWindowStyleFlag` for a list of possible window style flags.


   .. method:: InsertColumn(self, before, text, width=_DEFAULT_COL_WIDTH, flag=wx.ALIGN_LEFT, image=-1, shown=True, colour=None, edit=False)

      Inserts a column to the :class:`HyperTreeList` at the position specified
      by `before`.
      
      :param `before`: the index at which we wish to insert the new column;
      :param `text`: the column text label;
      :param `width`: the column width in pixels;
      :param `flag`: the column alignment flag, one of ``wx.ALIGN_LEFT``,
       ``wx.ALIGN_RIGHT``, ``wx.ALIGN_CENTER``;
      :param `image`: an index within the normal image list assigned to
       :class:`HyperTreeList` specifying the image to use for the column;
      :param `shown`: ``True`` to show the column, ``False`` to hide it;
      :param `colour`: a valid :class:`wx.Colour`, representing the text foreground colour
       for the column;
      :param `edit`: ``True`` to set the column as editable, ``False`` otherwise.


   .. method:: InsertColumnInfo(self, before, colInfo)

      Inserts a column to the :class:`HyperTreeList` at the position specified
      by `before`.
      
      :param `before`: the index at which we wish to insert the new column;
      :param `colInfo`: an instance of :class:`TreeListColumnInfo`.


   .. method:: IsColumnEditable(self, column)

      Returns ``True`` if the column is editable, ``False`` otherwise.
      
      :param `column`: an integer specifying the column index.


   .. method:: IsColumnShown(self, column)

      Returns ``True`` if the column is shown, ``False`` otherwise.
      
      :param `column`: an integer specifying the column index.


   .. method:: OnCompareItems(self, item1, item2)

      Returns whether 2 items have the same text.
      
      Override this function in the derived class to change the sort order of the items
      in the :class:`HyperTreeList`. The function should return a negative, zero or positive
      value if the first item is less than, equal to or greater than the second one.
      
      :param `item1`: an instance of :class:`TreeListItem`;
      :param `item2`: another instance of :class:`TreeListItem`.
      
      :note: The base class version compares items alphabetically.


   .. method:: OnGetItemText(self, item, column)

      This function **must** be overloaded in the derived class for a control
      with ``TR_VIRTUAL`` style. It should return the string containing the
      text of the given column for the specified item.
      
      :param `item`: an instance of :class:`TreeListItem`;
      :param `column`: an integer specifying the column index.


   .. method:: OnSize(self, event)

      Handles the ``wx.EVT_SIZE`` event for :class:`HyperTreeList`.
      
      :param `event`: a :class:`wx.SizeEvent` event to be processed.


   .. method:: Refresh(self, erase=True, rect=None)

      Causes this window, and all of its children recursively (except under wxGTK1
      where this is not implemented), to be repainted.
      
      :param `erase`: If ``True``, the background will be erased;
      :param `rect`: If not ``None``, only the given rectangle will be treated as damaged.
      
      :note: Note that repainting doesn't happen immediately but only during the next
       event loop iteration, if you need to update the window immediately you should
       use `Update` instead.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: RemoveColumn(self, column)

      Removes a column from the :class:`HyperTreeList`.
      
      :param `column`: an integer specifying the column index.


   .. method:: SetAGWWindowStyleFlag(self, agwStyle)

      Sets the window style for :class:`HyperTreeList`.
      
      :param `agwStyle`: can be a combination of the following bits:
      
       ============================== =========== ==================================================
       Window Styles                  Hex Value   Description
       ============================== =========== ==================================================
       ``TR_NO_BUTTONS``                      0x0 For convenience to document that no buttons are to be drawn.
       ``TR_SINGLE``                          0x0 For convenience to document that only one item may be selected at a time. Selecting another item causes the current selection, if any, to be deselected. This is the default.
       ``TR_HAS_BUTTONS``                     0x1 Use this style to show + and - buttons to the left of parent items.
       ``TR_NO_LINES``                        0x4 Use this style to hide vertical level connectors.
       ``TR_LINES_AT_ROOT``                   0x8 Use this style to show lines between root nodes. Only applicable if ``TR_HIDE_ROOT`` is set and ``TR_NO_LINES`` is not set.
       ``TR_DEFAULT_STYLE``                   0x9 The set of flags that are closest to the defaults for the native control for a particular toolkit.
       ``TR_TWIST_BUTTONS``                  0x10 Use old Mac-twist style buttons.
       ``TR_MULTIPLE``                       0x20 Use this style to allow a range of items to be selected. If a second range is selected, the current range, if any, is deselected.
       ``TR_EXTENDED``                       0x40 Use this style to allow disjoint items to be selected. (Only partially implemented; may not work in all cases).
       ``TR_HAS_VARIABLE_ROW_HEIGHT``        0x80 Use this style to cause row heights to be just big enough to fit the content. If not set, all rows use the largest row height. The default is that this flag is unset.
       ``TR_EDIT_LABELS``                   0x200 Use this style if you wish the user to be able to edit labels in the tree control.
       ``TR_ROW_LINES``                     0x400 Use this style to draw a contrasting border between displayed rows.
       ``TR_HIDE_ROOT``                     0x800 Use this style to suppress the display of the root node, effectively causing the first-level nodes to appear as a series of root nodes.
       ``TR_COLUMN_LINES``                 0x1000 Use this style to draw a contrasting border between displayed columns.
       ``TR_FULL_ROW_HIGHLIGHT``           0x2000 Use this style to have the background colour and the selection highlight extend  over the entire horizontal row of the tree control window.
       ``TR_AUTO_CHECK_CHILD``             0x4000 Only meaningful for checkbox-type items: when a parent item is checked/unchecked its children are checked/unchecked as well.
       ``TR_AUTO_TOGGLE_CHILD``            0x8000 Only meaningful for checkbox-type items: when a parent item is checked/unchecked its children are toggled accordingly.
       ``TR_AUTO_CHECK_PARENT``           0x10000 Only meaningful for checkbox-type items: when a child item is checked/unchecked its parent item is checked/unchecked as well.
       ``TR_ALIGN_WINDOWS``               0x20000 Flag used to align windows (in items with windows) at the same horizontal position.
       ``TR_NO_HEADER``                   0x40000 Use this style to hide the columns header.
       ``TR_ELLIPSIZE_LONG_ITEMS``        0x80000 Flag used to ellipsize long items when the horizontal space for :class:`~wx.lib.agw.customtreectrl.CustomTreeCtrl` is low.
       ``TR_VIRTUAL``                    0x100000 :class:`HyperTreeList` will have virtual behaviour.
       ============================== =========== ==================================================
      
      :note: Please note that some styles cannot be changed after the window creation
       and that `Refresh()` might need to be be called after changing the others for
       the change to take place immediately.


   .. method:: SetBackgroundColour(self, colour)

      Changes the background colour of :class:`HyperTreeList`.
      
      :param `colour`: the colour to be used as the background colour, pass
       :class:`NullColour` to reset to the default colour.
      
      :note: The background colour is usually painted by the default :class:`EraseEvent`
       event handler function under Windows and automatically under GTK.
      
      :note: Setting the background colour does not cause an immediate refresh, so
       you may wish to call :meth:`wx.Window.ClearBackground` or :meth:`wx.Window.Refresh` after
       calling this function.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: SetBuffered(self, buffered)

      Sets/unsets the double buffering for the header and the main window.
      
      :param `buffered`: ``True`` to use double-buffering, ``False`` otherwise.
      
      :note: Currently we are using double-buffering only on Windows XP.


   .. method:: SetColumn(self, column, colInfo)

      Sets a column using an instance of :class:`TreeListColumnInfo`.
      
      :param `column`: an integer specifying the column index;
      :param `info`: an instance of :class:`TreeListColumnInfo`.


   .. method:: SetColumnAlignment(self, column, flag)

      Sets the column text alignment.
      
      :param `column`: an integer specifying the column index;
      :param `flag`: the alignment flag, one of ``wx.ALIGN_LEFT``, ``wx.ALIGN_RIGHT``,
       ``wx.ALIGN_CENTER``.


   .. method:: SetColumnColour(self, column, colour)

      Sets the column text colour.
      
      :param `column`: an integer specifying the column index;
      :param `colour`: a valid :class:`wx.Colour` object.


   .. method:: SetColumnEditable(self, column, edit)

      Sets the column as editable or non-editable.
      
      :param `column`: an integer specifying the column index;
      :param `edit`: ``True`` if the column should be editable, ``False`` otherwise.


   .. method:: SetColumnFont(self, column, font)

      Sets the column text font.
      
      :param `column`: an integer specifying the column index;
      :param `font`: a valid :class:`wx.Font` object.


   .. method:: SetColumnImage(self, column, image)

      Sets an image on the specified column.
      
      :param `column`: an integer specifying the column index.
      :param `image`: an index within the normal image list assigned to
       :class:`HyperTreeList` specifying the image to use for the column.


   .. method:: SetColumnShown(self, column, shown)

      Sets the column as shown or hidden.
      
      :param `column`: an integer specifying the column index;
      :param `shown`: ``True`` if the column should be shown, ``False`` if it
       should be hidden.


   .. method:: SetColumnText(self, column, text)

      Sets the column text label.
      
      :param `column`: an integer specifying the column index;
      :param `text`: the new column label.


   .. method:: SetColumnWidth(self, column, width)

      Sets the column width, in pixels.
      
      :param `column`: an integer specifying the column index;
      :param `width`: the new column width, in pixels.


   .. method:: SetFocus(self)

      This sets the window to receive keyboard input. 


   .. method:: SetFont(self, font)

      Sets the default font for the header window and the main window.
      
      :param `font`: a valid :class:`wx.Font` object.


   .. method:: SetForegroundColour(self, colour)

      Changes the foreground colour of :class:`HyperTreeList`.
      
      :param `colour`: the colour to be used as the foreground colour, pass
       :class:`NullColour` to reset to the default colour.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: SetHeaderCustomRenderer(self, renderer=None)

      Associate a custom renderer with the header - all columns will use it
      
      :param `renderer`: a class able to correctly render header buttons
      
      :note: the renderer class **must** implement the method `DrawHeaderButton`


   .. method:: SetHeaderFont(self, font)

      Sets the default font for the header window..
      
      :param `font`: a valid :class:`wx.Font` object.


   .. method:: SortChildren(self, item)

      Sorts the children of the given item using :meth:`~HyperTreeList.OnCompareItems` method of :class:`HyperTreeList`.
      You should override that method to change the sort order (the default is ascending
      case-sensitive alphabetical order).
      
      :param `item`: an instance of :class:`TreeListItem`;


