.. wxPython Phoenix documentation

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

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

.. include:: headings.inc

.. currentmodule:: wx.lib.agw.ultimatelistctrl

.. highlight:: python



.. _wx.lib.agw.ultimatelistctrl.UltimateListCtrl:

==========================================================================================================================================
|phoenix_title|  **wx.lib.agw.ultimatelistctrl.UltimateListCtrl**
==========================================================================================================================================

UltimateListCtrl is a class that mimics the behaviour of :class:`ListCtrl`, with almost
the same base functionalities plus some more enhancements. This class does
not rely on the native control, as it is a full owner-drawn list control.



|

|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>UltimateListCtrl</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.ultimatelistctrl.UltimateListCtrl_inheritance.png" alt="Inheritance diagram of UltimateListCtrl" usemap="#dummy" class="inheritance"/></center>
   </div>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.Trackable.html" title="wx.Trackable" alt="" coords="37,5,139,35"/> <area shape="rect" id="node2" href="wx.EvtHandler.html" title="wx.EvtHandler" alt="" coords="89,83,200,112"/> <area shape="rect" id="node6" href="wx.WindowBase.html" title="wx.WindowBase" alt="" coords="85,160,205,189"/> <area shape="rect" id="node3" href="wx.Object.html" title="wx.Object" alt="" coords="163,5,244,35"/> <area shape="rect" id="node4" href="wx.Control.html" title="wx.Control" alt="" coords="101,315,189,344"/> <area shape="rect" id="node7" href="wx.lib.agw.ultimatelistctrl.UltimateListCtrl.html" title="wx.lib.agw.ultimatelistctrl.UltimateListCtrl" alt="" coords="4,392,285,421"/> <area shape="rect" id="node5" href="wx.Window.html" title="wx.Window" alt="" coords="101,237,189,267"/> </map> 
   </p>

|


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

|

.. figure:: _static/images/widgets/fullsize/wxmsw/wx.lib.agw.ultimatelistctrl.ultimatelistctrl.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.ultimatelistctrl.UltimateListCtrl.__init__`                            Default class constructor.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.Append`                              Append an item to the :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.Arrange`                             Arranges the items in icon or small icon view.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.AssignImageList`                     Assigns the image list associated with the control.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.ClearAll`                            Deletes everything in :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.ClearColumnImage`                    Clears all the images in the specified column.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.ClientToScreen`                      Converts to screen coordinates from coordinates relative to this window.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.ClientToScreenXY`                    Converts to screen coordinates from coordinates relative to this window.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.CreateOrDestroyFooterWindowAsNeeded` Creates or destroys the footer window depending on the window style flags.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.CreateOrDestroyHeaderWindowAsNeeded` Creates or destroys the header window depending on the window style flags.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.DeleteAllColumns`                    Deletes all the column in :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.DeleteAllItems`                      Deletes all items in the :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.DeleteColumn`                        Deletes the specified column.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.DeleteItem`                          Deletes the specified item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.DeleteItemWindow`                    Deletes the window associated to an item (if any).
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.DoGetBestSize`                       Gets the size which best suits the window: for a control, it would be the
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.DoLayout`                            Layouts the header, main and footer windows. This is an auxiliary method to avoid code
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.EditLabel`                           Starts editing an item label.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.EnableItem`                          Enables/disables an item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.EnableSelectionGradient`             Globally enables/disables drawing of gradient selections.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.EnableSelectionVista`                Globally enables/disables drawing of Windows Vista selections.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.EnsureVisible`                       Ensures this item is visible.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.FindItem`                            Find an item whose label matches this string.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.FindItemAtPos`                       Find an item nearest this position.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.FindItemData`                        Find an item whose data matches this data.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.Focus`                               Focus and show the given item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetAGWWindowStyleFlag`               Returns the :class:`UltimateListCtrl` AGW-specific style flag.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetBackgroundColour`                 Returns the background colour of the window.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetBackgroundImage`                  Returns the :class:`UltimateListCtrl` background image (if any).
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetClassDefaultAttributes`           Returns the default font and colours which are used by the control. This is
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetColumn`                           Returns information about this column.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetColumnCount`                      Returns the total number of columns in the :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetColumnWidth`                      Returns the column width for the input column.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetCountPerPage`                     Returns the number of items that can fit vertically in the visible area
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetDefaultBorder`                    Returns the default window border.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetDisabledTextColour`               Returns the items disabled colour.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetDropTarget`                       Returns the associated drop target, which may be ``None``.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetEditControl`                      Returns a pointer to the edit :class:`UltimateListTextCtrl` if the item is being edited or
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetFirstGradientColour`              Returns the first gradient colour for gradient-style selections.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetFirstSelected`                    Return first selected item, or -1 when none is selected.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetFocusedItem`                      Returns the currently focused item or -1 if none is focused.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetFooterHeight`                     Returns the :class:`UltimateListHeaderWindow` height, in pixels.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetForegroundColour`                 Returns the foreground colour of the window.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetGradientStyle`                    Returns the gradient style for gradient-style selections.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetHeaderHeight`                     Returns the :class:`UltimateListHeaderWindow` height, in pixels.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetHyperTextFont`                    Returns the font used to render an hypertext item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetHyperTextNewColour`               Returns the colour used to render a non-visited hypertext item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetHyperTextVisitedColour`           Returns the colour used to render a visited hypertext item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetImageList`                        Returns the image list associated with the control.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItem`                             Returns the information about the input item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemBackgroundColour`             Returns the item background colour.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemCount`                        Returns the number of items in the :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemCustomRenderer`               Returns the custom renderer used to draw the input item (if any).
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemData`                         Gets the application-defined data associated with this item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemFont`                         Returns the item font.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemKind`                         Returns the item kind.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemOverFlow`                     Returns if the item is in the overflow state.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemPosition`                     Returns the position of the item, in icon or small icon view.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemPyData`                       Returns the data for the item, which can be any Python object.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemRect`                         Returns the rectangle representing the item's size and position, in physical
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemSpacing`                      Returns the spacing between item texts and icons, in pixels.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemState`                        Returns the item state flags for the input item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemText`                         Returns the item text.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemTextColour`                   Returns the item text colour.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemVisited`                      Returns whether an hypertext item was visited.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemWindow`                       Returns the window associated to the item (if any).
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetItemWindowEnabled`                Returns whether the window associated to the item is enabled.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetNextItem`                         Searches for an item with the given `geometry` or `state`, starting from `item`
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetNextSelected`                     Returns subsequent selected items, or -1 when no more are selected.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetScrolledWin`                      Returns the header window owner.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetScrollPos`                        Returns the scrollbar position.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetScrollRange`                      Returns the scrollbar range in pixels.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetScrollThumb`                      Returns the scrollbar size in pixels.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetSecondGradientColour`             Returns the second gradient colour for gradient-style selections.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetSelectedItemCount`                Returns the number of selected items in :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetSubItemRect`                      Returns the rectangle representing the size and position, in physical coordinates,
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetTextColour`                       Returns the :class:`UltimateListCtrl` foreground colour.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetTopItem`                          Gets the index of the topmost visible item when in list or report view.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetUserLineHeight`                   Returns the custom value for the :class:`UltimateListCtrl` item height, if previously set with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetViewRect`                         Returns the rectangle taken by all items in the control. In other words,
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.GetWaterMark`                        Returns the :class:`UltimateListCtrl` watermark image (if any), displayed in the
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.HasAGWFlag`                          Returns ``True`` if the window has the given flag bit set.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.HasFooter`                           Returns ``True`` if :class:`UltimateListCtrl` has a footer window.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.HasHeader`                           Returns ``True`` if :class:`UltimateListCtrl` has a header window.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.HitTest`                             HitTest method for a :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.InsertColumn`                        Inserts a column into :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.InsertColumnInfo`                    Inserts a column into :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.InsertImageItem`                     Inserts an image item at the given location.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.InsertImageStringItem`               Inserts an image+string item at the given location.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.InsertItem`                          Inserts an item into :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.InsertStringItem`                    Inserts a string item at the given location.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.IsColumnShown`                       Returns ``True`` if the input column is shown, ``False`` if it is hidden.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.IsItemChecked`                       Returns whether an item is checked or not.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.IsItemEnabled`                       Returns whether an item is enabled or not.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.IsItemHyperText`                     Returns whether an item is hypertext or not.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.IsSelected`                          Returns ``True`` if the item is selected.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.IsVirtual`                           Returns ``True`` if the :class:`UltimateListCtrl` has the ``ULC_VIRTUAL`` style set.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemAttr`                       This function may be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemCheck`                      This function may be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemColumnCheck`                This function **must** be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemColumnImage`                This function **must** be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemColumnKind`                 This function **must** be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemImage`                      This function **must** be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemKind`                       This function **must** be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemText`                       This function **must** be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemTextColour`                 This function **must** be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnGetItemToolTip`                    This function **must** be overloaded in the derived class for a control with
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnInternalIdle`                      This method is normally only used internally, but sometimes an application
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnSetFocus`                          Handles the ``wx.EVT_SET_FOCUS`` event for :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.OnSize`                              Handles the ``wx.EVT_SIZE`` event for :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.PopupMenu`                           Pops up the given `menu` at the specified coordinates, relative to this window,
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.Refresh`                             Causes this window, and all of its children recursively (except under wxGTK1
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.RefreshItem`                         Redraws the given item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.RefreshItems`                        Redraws the items between `itemFrom` and `itemTo`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.ScreenToClient`                      Converts from screen to client window coordinates.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.ScreenToClientXY`                    Converts from screen to client window coordinates.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.ScrollList`                          Scrolls the :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.Select`                              Selects/deselects an item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetAGWWindowStyleFlag`               Sets the :class:`UltimateListCtrl` AGW-specific style flag.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetBackgroundColour`                 Changes the background colour of :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetBackgroundImage`                  Sets the :class:`UltimateListCtrl` background image.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetColumn`                           Sets information about this column.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetColumnCustomRenderer`             Associate a custom renderer to this column's header.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetColumnImage`                      Sets one or more images to the specified column.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetColumnShown`                      Sets the specified column as shown or hidden.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetColumnToolTip`                    Sets the tooltip for the column header
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetColumnWidth`                      Sets the column width.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetCursor`                           Sets the window's cursor.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetDisabledTextColour`               Sets the items disabled colour.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetDropTarget`                       Associates a drop target with this window.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetFirstGradientColour`              Sets the first gradient colour for gradient-style selections.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetFocus`                            This sets the window to receive keyboard input.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetFont`                             Sets the :class:`UltimateListCtrl` font.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetFooterCustomRenderer`             Associate a custom renderer with the footer - all columns will use it.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetFooterHeight`                     Sets the :class:`UltimateListHeaderWindow` height, in pixels. This overrides the default
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetForegroundColour`                 Changes the foreground colour of :class:`UltimateListCtrl`.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetGradientStyle`                    Sets the gradient style for gradient-style selections.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetHeaderCustomRenderer`             Associate a custom renderer with the header - all columns will use it.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetHeaderHeight`                     Sets the :class:`UltimateListHeaderWindow` height, in pixels. This overrides the default
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetHyperTextFont`                    Sets the font used to render hypertext items.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetHyperTextNewColour`               Sets the colour used to render a non-visited hypertext item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetHyperTextVisitedColour`           Sets the colour used to render a visited hypertext item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetImageList`                        Sets the image list associated with the control.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItem`                             Sets the information about the input item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemBackgroundColour`             Sets the item background colour.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemColumnImage`                  Sets a Python list of image indexes associated with the item in the input
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemCount`                        Sets the total number of items we handle.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemCustomRenderer`               Associate a custom renderer to this item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemData`                         Sets the application-defined data associated with this item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemFont`                         Sets the item font.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemHyperText`                    Sets whether the item is hypertext or not.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemImage`                        Sets a Python list of image indexes associated with the item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemKind`                         Sets the item kind.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemOverFlow`                     Sets the item in the overflow/non overflow state.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemPosition`                     Sets the position of the item, in icon or small icon view.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemPyData`                       Sets the data for the item, which can be any Python object.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemSpacing`                      Sets the spacing between item texts and icons.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemState`                        Sets the item state flags for the input item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemText`                         Sets the item text.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemTextColour`                   Sets the item text colour.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemVisited`                      Sets whether an hypertext item was visited or not.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemWindow`                       Sets the window for the given item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetItemWindowEnabled`                Enables/disables the window associated to the item.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetScrollPos`                        Sets the scrollbar position.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetSecondGradientColour`             Sets the second gradient colour for gradient-style selections.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetSingleStyle`                      Adds or removes a single window style.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetStringItem`                       Sets a string or image at the given location.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetTextColour`                       Sets the :class:`UltimateListCtrl` foreground colour.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetUserLineHeight`                   Sets a custom value for the :class:`UltimateListCtrl` item height.
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SetWaterMark`                        Sets the :class:`UltimateListCtrl` watermark image to be displayed in the bottom
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.SortItems`                           Call this function to sort the items in the :class:`UltimateListCtrl`. Sorting is done
:meth:`~wx.lib.agw.ultimatelistctrl.UltimateListCtrl.Update`                              Calling this method immediately repaints the invalidated area of the window
========================================================================================= ================================================================================


|


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


.. class:: UltimateListCtrl(wx.Control)

   UltimateListCtrl is a class that mimics the behaviour of :class:`ListCtrl`, with almost
   the same base functionalities plus some more enhancements. This class does
   not rely on the native control, as it is a full owner-drawn list control.

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

      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` window style;
      :param `agwStyle`: the AGW-specific window style; can be almost any combination of the following
       bits:
      
       ===============================  =========== ====================================================================================================
       Window Styles                    Hex Value   Description
       ===============================  =========== ====================================================================================================
       ``ULC_VRULES``                           0x1 Draws light vertical rules between rows in report mode.
       ``ULC_HRULES``                           0x2 Draws light horizontal rules between rows in report mode.
       ``ULC_ICON``                             0x4 Large icon view, with optional labels.
       ``ULC_SMALL_ICON``                       0x8 Small icon view, with optional labels.
       ``ULC_LIST``                            0x10 Multicolumn list view, with optional small icons. Columns are computed automatically, i.e. you don't set columns as in ``ULC_REPORT``. In other words, the list wraps, unlike a :class:`ListBox`.
       ``ULC_REPORT``                          0x20 Single or multicolumn report view, with optional header.
       ``ULC_ALIGN_TOP``                       0x40 Icons align to the top. Win32 default, Win32 only.
       ``ULC_ALIGN_LEFT``                      0x80 Icons align to the left.
       ``ULC_AUTOARRANGE``                    0x100 Icons arrange themselves. Win32 only.
       ``ULC_VIRTUAL``                        0x200 The application provides items text on demand. May only be used with ``ULC_REPORT``.
       ``ULC_EDIT_LABELS``                    0x400 Labels are editable: the application will be notified when editing starts.
       ``ULC_NO_HEADER``                      0x800 No header in report mode.
       ``ULC_NO_SORT_HEADER``                0x1000 No Docs.
       ``ULC_SINGLE_SEL``                    0x2000 Single selection (default is multiple).
       ``ULC_SORT_ASCENDING``                0x4000 Sort in ascending order. (You must still supply a comparison callback in :meth:`ListCtrl.SortItems`.)
       ``ULC_SORT_DESCENDING``               0x8000 Sort in descending order. (You must still supply a comparison callback in :meth:`ListCtrl.SortItems`.)
       ``ULC_TILE``                         0x10000 Each item appears as a full-sized icon with a label of one or more lines beside it (partially implemented).
       ``ULC_NO_HIGHLIGHT``                 0x20000 No highlight when an item is selected.
       ``ULC_STICKY_HIGHLIGHT``             0x40000 Items are selected by simply hovering on them, with no need to click on them.
       ``ULC_STICKY_NOSELEVENT``            0x80000 Don't send a selection event when using ``ULC_STICKY_HIGHLIGHT`` style.
       ``ULC_SEND_LEFTCLICK``              0x100000 Send a left click event when an item is selected.
       ``ULC_HAS_VARIABLE_ROW_HEIGHT``     0x200000 The list has variable row heights.
       ``ULC_AUTO_CHECK_CHILD``            0x400000 When a column header has a checkbox associated, auto-check all the subitems in that column.
       ``ULC_AUTO_TOGGLE_CHILD``           0x800000 When a column header has a checkbox associated, toggle all the subitems in that column.
       ``ULC_AUTO_CHECK_PARENT``          0x1000000 Only meaningful foe checkbox-type items: when an item is checked/unchecked its column header item is checked/unchecked as well.
       ``ULC_SHOW_TOOLTIPS``              0x2000000 Show tooltips for ellipsized items/subitems (text too long to be shown in the available space) containing the full item/subitem text.
       ``ULC_HOT_TRACKING``               0x4000000 Enable hot tracking of items on mouse motion.
       ``ULC_BORDER_SELECT``              0x8000000 Changes border colour whan an item is selected, instead of highlighting the item.
       ``ULC_TRACK_SELECT``              0x10000000 Enables hot-track selection in a list control. Hot track selection means that an item is automatically selected when the cursor remains over the item for a certain period of time. The delay is retrieved on Windows using the `win32api` call `win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERTIME)`, and is defaulted to 400ms on other platforms. This style applies to all views of `UltimateListCtrl`.
       ``ULC_HEADER_IN_ALL_VIEWS``       0x20000000 Show column headers in all view modes.
       ``ULC_NO_FULL_ROW_SELECT``        0x40000000 When an item is selected, the only the item in the first column is highlighted.
       ``ULC_FOOTER``                    0x80000000 Show a footer too (only when header is present).
       ``ULC_USER_ROW_HEIGHT``          0x100000000 Allows to set a custom row height (one value for all the items, only in report mode).
       ===============================  =========== ====================================================================================================
      
      :param `validator`: the window validator;
      :param `name`: the window name.


   .. method:: Append(self, entry)

      Append an item to the :class:`UltimateListCtrl`.
      
      :param `entry`: should be a sequence with an item for each column.


   .. method:: Arrange(self, flag)

      Arranges the items in icon or small icon view.
      
      :param `flag`: one of the following bits:
      
       ========================== ========= ===============================
       Alignment Flag             Hex Value Description
       ========================== ========= ===============================
       ``ULC_ALIGN_DEFAULT``            0x0 Default alignment
       ``ULC_ALIGN_SNAP_TO_GRID``       0x3 Snap to grid
       ========================== ========= ===============================
      
      :note: This method is currently unimplemented and does nothing.


   .. method:: AssignImageList(self, imageList, which)

      Assigns the image list associated with the control.
      
      :param `imageList`: an instance of :class:`wx.ImageList` or an instance of :class:`PyImageList`;
      :param `which`: one of ``wx.IMAGE_LIST_NORMAL``, ``wx.IMAGE_LIST_SMALL``,
       ``wx.IMAGE_LIST_STATE`` (the last is unimplemented).
      
      :note: Using :class:`PyImageList` enables you to have images of different size inside the
       image list. In your derived class, instead of doing this::
      
           imageList = wx.ImageList(16, 16)
           imageList.Add(someBitmap)
           self.SetImageList(imageList, wx.IMAGE_LIST_SMALL)
      
       You should do this::
      
           imageList = PyImageList(16, 16)
           imageList.Add(someBitmap)
           self.SetImageList(imageList, wx.IMAGE_LIST_SMALL)


   .. method:: ClearAll(self)

      Deletes everything in :class:`UltimateListCtrl`. 


   .. method:: ClearColumnImage(self, col)

      Clears all the images in the specified column.
      
      :param `col`: the column index;


   .. method:: ClientToScreen(self, pointOrTuple)

      Converts to screen coordinates from coordinates relative to this window.
      
      :param `pointOrTuple`: an instance of :class:`wx.Point` or a tuple representing the
       `x`, `y` coordinates for this point.
      
      :return: the coordinates relative to the screen.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: ClientToScreenXY(self, x, y)

      Converts to screen coordinates from coordinates relative to this window.
      
      :param `x`: an integer specifying the `x` client coordinate;
      :param `y`: an integer specifying the `y` client coordinate.
      
      :return: the coordinates relative to the screen.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: CreateOrDestroyFooterWindowAsNeeded(self)

      Creates or destroys the footer window depending on the window style flags. 


   .. method:: CreateOrDestroyHeaderWindowAsNeeded(self)

      Creates or destroys the header window depending on the window style flags. 


   .. method:: DeleteAllColumns(self)

      Deletes all the column in :class:`UltimateListCtrl`. 


   .. method:: DeleteAllItems(self)

      Deletes all items in the :class:`UltimateListCtrl`.
      
      :note: This function does not send the ``EVT_LIST_DELETE_ITEM`` event because
       deleting many items from the control would be too slow then (unlike :meth:`~UltimateListCtrl.DeleteItem`).


   .. method:: DeleteColumn(self, col)

      Deletes the specified column.
      
      :param `col`: the index of the column to delete.


   .. method:: DeleteItem(self, item)

      Deletes the specified item.
      
      :param `item`: the index of the item to delete.
      
      :note: This function sends the ``EVT_LIST_DELETE_ITEM`` event for the item
       being deleted.


   .. method:: DeleteItemWindow(self, itemOrId, col=0)

      Deletes the window associated to an item (if any).
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to.


   .. 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()`.


   .. method:: DoLayout(self)

      Layouts the header, main and footer windows. This is an auxiliary method to avoid code
      duplication.


   .. method:: EditLabel(self, item)

      Starts editing an item label.
      
      :param `item`: the index of the item to edit.


   .. method:: EnableItem(self, itemOrId, col=0, enable=True)

      Enables/disables an item.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to;
      :param `enable`: ``True`` to enable the item, ``False`` otherwise.


   .. method:: EnableSelectionGradient(self, enable=True)

      Globally enables/disables drawing of gradient selections.
      
      :param `enable`: ``True`` to enable gradient-style selections, ``False``
       to disable it.
      
      :note: Calling this method disables any Vista-style selection previously
       enabled.


   .. method:: EnableSelectionVista(self, enable=True)

      Globally enables/disables drawing of Windows Vista selections.
      
      :param `enable`: ``True`` to enable Vista-style selections, ``False`` to
       disable it.
      
      :note: Calling this method disables any gradient-style selection previously
       enabled.


   .. method:: EnsureVisible(self, item)

      Ensures this item is visible.
      
      :param `index`: the index of the item to scroll into view.


   .. method:: FindItem(self, start, str, partial=False)

      Find an item whose label matches this string.
      
      :param `start`: the starting point of the input `string` or the beginning
       if `start` is -1;
      :param `string`: the string to look for matches;
      :param `partial`: if ``True`` then this method will look for items which
       begin with `string`.
      
      :note: The string comparison is case insensitive.


   .. method:: FindItemAtPos(self, start, pt)

      Find an item nearest this position.
      
      :param `pt`: an instance of :class:`wx.Point`.


   .. method:: FindItemData(self, start, data)

      Find an item whose data matches this data.
      
      :param `start`: the starting point of the input `data` or the beginning
       if `start` is -1;
      :param `data`: the data to look for matches.


   .. method:: Focus(self, idx)

      Focus and show the given item.
      
      :param `idx`: the index of the item to be focused.


   .. method:: GetAGWWindowStyleFlag(self)

      Returns the :class:`UltimateListCtrl` AGW-specific style flag.
      
      :see: :meth:`~UltimateListCtrl.SetAGWWindowStyleFlag` for a list of possible style flags.


   .. method:: GetBackgroundColour(self)

      Returns the background colour of the window.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: GetBackgroundImage(self)

      Returns the :class:`UltimateListCtrl` background image (if any).
      
      :note: At present, the background image can only be used in "tile" mode.
      
      .. todo:: Support background images also in stretch and centered modes.


   .. method:: GetClassDefaultAttributes(self, variant)

      Returns the default font and colours which are used by the control. This is
      useful if you want to use the same font or colour in your own control as in
      a standard control -- which is a much better idea than hard coding specific
      colours or fonts which might look completely out of place on the users system,
      especially if it uses themes.
      
      This static method is "overridden'' in many derived classes and so calling,
      for example, :meth:`Button.GetClassDefaultAttributes` () will typically return the
      values appropriate for a button which will be normally different from those
      returned by, say, :meth:`ListCtrl.GetClassDefaultAttributes` ().
      
      :note: The :class:`VisualAttributes` structure has at least the fields `font`,
       `colFg` and `colBg`. All of them may be invalid if it was not possible to
       determine the default control appearance or, especially for the background
       colour, if the field doesn't make sense as is the case for `colBg` for the
       controls with themed background.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: GetColumn(self, col)

      Returns information about this column.
      
      :param `col`: an integer specifying the column index.


   .. method:: GetColumnCount(self)

      Returns the total number of columns in the :class:`UltimateListCtrl`. 


   .. method:: GetColumnWidth(self, col)

      Returns the column width for the input column.
      
      :param `col`: an integer specifying the column index.


   .. method:: GetCountPerPage(self)

      Returns the number of items that can fit vertically in the visible area
      of the :class:`UltimateListCtrl` (list or report view) or the total number of
      items in the list control (icon or small icon view).


   .. method:: GetDefaultBorder(self)

      Returns the default window border. 


   .. method:: GetDisabledTextColour(self)

      Returns the items disabled colour. 


   .. method:: GetDropTarget(self)

      Returns the associated drop target, which may be ``None``.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: GetEditControl(self)

      Returns a pointer to the edit :class:`UltimateListTextCtrl` if the item is being edited or
      ``None`` otherwise (it is assumed that no more than one item may be edited
      simultaneously).


   .. method:: GetFirstGradientColour(self)

      Returns the first gradient colour for gradient-style selections. 


   .. method:: GetFirstSelected(self)

      Return first selected item, or -1 when none is selected. 


   .. method:: GetFocusedItem(self)

      Returns the currently focused item or -1 if none is focused. 


   .. method:: GetFooterHeight(self)

      Returns the :class:`UltimateListHeaderWindow` height, in pixels. 


   .. method:: GetForegroundColour(self)

      Returns the foreground colour of the window.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: GetGradientStyle(self)

      Returns the gradient style for gradient-style selections.
      
      :return: 0 for horizontal gradient-style selections, 1 for vertical
       gradient-style selections.


   .. method:: GetHeaderHeight(self)

      Returns the :class:`UltimateListHeaderWindow` height, in pixels. 


   .. method:: GetHyperTextFont(self)

      Returns the font used to render an hypertext item. 


   .. method:: GetHyperTextNewColour(self)

      Returns the colour used to render a non-visited hypertext item. 


   .. method:: GetHyperTextVisitedColour(self)

      Returns the colour used to render a visited hypertext item. 


   .. method:: GetImageList(self, which)

      Returns the image list associated with the control.
      
      :param `which`: one of ``wx.IMAGE_LIST_NORMAL``, ``wx.IMAGE_LIST_SMALL``,
       ``wx.IMAGE_LIST_STATE`` (the last is unimplemented).
      
      :note:
      
       As :class:`UltimateListCtrl` allows you to use a standard :class:`wx.ImageList` or
       :class:`PyImageList`, the returned object depends on which kind of image list you
       chose.


   .. method:: GetItem(self, itemOrId, col=0)

      Returns the information about the input item.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or an integer specifying
       the item index;
      :param `col`: the column to which the item belongs to.


   .. method:: GetItemBackgroundColour(self, item)

      Returns the item background colour.
      
      :param `item`: the index of the item.


   .. method:: GetItemCount(self)

      Returns the number of items in the :class:`UltimateListCtrl`. 


   .. method:: GetItemCustomRenderer(self, itemOrId, col=0)

      Returns the custom renderer used to draw the input item (if any).
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to.


   .. method:: GetItemData(self, item)

      Gets the application-defined data associated with this item.
      
      :param `item`: an integer specifying the item index.


   .. method:: GetItemFont(self, item)

      Returns the item font.
      
      :param `item`: the index of the item.


   .. method:: GetItemKind(self, itemOrId, col=0)

      Returns the item kind.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to.
      
      :see: :meth:`~UltimateListCtrl.SetItemKind` for a list of valid item kinds.


   .. method:: GetItemOverFlow(self, itemOrId, col=0)

      Returns if the item is in the overflow state.
      
      An item/subitem may overwrite neighboring items/subitems if its text would
      not normally fit in the space allotted to it.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to.


   .. method:: GetItemPosition(self, item)

      Returns the position of the item, in icon or small icon view.
      
      :param `item`: the row in which the item lives.


   .. method:: GetItemPyData(self, item)

      Returns the data for the item, which can be any Python object.
      
      :param `item`: an integer specifying the item index.
      
      :note: Please note that Python data is associated with the item and not
       with subitems.


   .. method:: GetItemRect(self, item, code=ULC_RECT_BOUNDS)

      Returns the rectangle representing the item's size and position, in physical
      coordinates.
      
      :param `item`: the row in which the item lives;
      :param `code`: one of ``ULC_RECT_BOUNDS``, ``ULC_RECT_ICON``, ``ULC_RECT_LABEL``.


   .. method:: GetItemSpacing(self, isSmall=False)

      Returns the spacing between item texts and icons, in pixels.
      
      :param `isSmall`: ``True`` if using a ``wx.IMAGE_LIST_SMALL`` image list,
       ``False`` if using a ``wx.IMAGE_LIST_NORMAL`` image list.


   .. method:: GetItemState(self, item, stateMask)

      Returns the item state flags for the input item.
      
      :param `item`: the index of the item;
      :param `stateMask`: the bitmask for the state flag.
      
      :see: :meth:`~UltimateListCtrl.SetItemState` for a list of valid state flags.


   .. method:: GetItemText(self, item)

      Returns the item text.
      
      :param `item`: an instance of :class:`UltimateListItem` or an integer specifying
       the item index.


   .. method:: GetItemTextColour(self, item)

      Returns the item text colour.
      
      :param `item`: the index of the item.


   .. method:: GetItemVisited(self, itemOrId, col=0)

      Returns whether an hypertext item was visited.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to.


   .. method:: GetItemWindow(self, itemOrId, col=0)

      Returns the window associated to the item (if any).
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to.


   .. method:: GetItemWindowEnabled(self, itemOrId, col=0)

      Returns whether the window associated to the item is enabled.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to;


   .. method:: GetNextItem(self, item, geometry=ULC_NEXT_ALL, state=ULC_STATE_DONTCARE)

      Searches for an item with the given `geometry` or `state`, starting from `item`
      but excluding the `item` itself.
      
      :param `item`: the item at which starting the search. If set to -1, the first
       item that matches the specified flags will be returned.
      :param `geometry`: can be one of:
      
       =================== ========= =================================
       Geometry Flag       Hex Value Description
       =================== ========= =================================
       ``ULC_NEXT_ABOVE``        0x0 Searches for an item above the specified item
       ``ULC_NEXT_ALL``          0x1 Searches for subsequent item by index
       ``ULC_NEXT_BELOW``        0x2 Searches for an item below the specified item
       ``ULC_NEXT_LEFT``         0x3 Searches for an item to the left of the specified item
       ``ULC_NEXT_RIGHT``        0x4 Searches for an item to the right of the specified item
       =================== ========= =================================
      
      :param `state`: any combination of the following bits:
      
       ============================ ========= ==============================
       State Bits                   Hex Value Description
       ============================ ========= ==============================
       ``ULC_STATE_DONTCARE``             0x0 Don't care what the state is
       ``ULC_STATE_DROPHILITED``          0x1 The item is highlighted to receive a drop event
       ``ULC_STATE_FOCUSED``              0x2 The item has the focus
       ``ULC_STATE_SELECTED``             0x4 The item is selected
       ``ULC_STATE_CUT``                  0x8 The item is in the cut state
       ``ULC_STATE_DISABLED``            0x10 The item is disabled
       ``ULC_STATE_FILTERED``            0x20 The item has been filtered
       ``ULC_STATE_INUSE``               0x40 The item is in use
       ``ULC_STATE_PICKED``              0x80 The item has been picked
       ``ULC_STATE_SOURCE``             0x100 The item is a drag and drop source
       ============================ ========= ==============================
      
      
      :return: The first item with given `state` following `item` or -1 if no such item found.
      
      :note: This function may be used to find all selected items in the
       control like this::
      
           item = -1
      
           while 1:
               item = listctrl.GetNextItem(item, ULC_NEXT_ALL, ULC_STATE_SELECTED)
      
               if item == -1:
                   break
      
               # This item is selected - do whatever is needed with it
      
               wx.LogMessage("Item %ld is selected."%item)


   .. method:: GetNextSelected(self, item)

      Returns subsequent selected items, or -1 when no more are selected.
      
      :param `item`: the index of the item.


   .. method:: GetScrolledWin(self)

      Returns the header window owner. 


   .. method:: GetScrollPos(self)

      Returns the scrollbar position.
      
      :note: This method is forwarded to :class:`UltimateListMainWindow`.


   .. method:: GetScrollRange(self)

      Returns the scrollbar range in pixels.
      
      :note: This method is forwarded to :class:`UltimateListMainWindow`.


   .. method:: GetScrollThumb(self)

      Returns the scrollbar size in pixels.
      
      :note: This method is forwarded to :class:`UltimateListMainWindow`.


   .. method:: GetSecondGradientColour(self)

      Returns the second gradient colour for gradient-style selections. 


   .. method:: GetSelectedItemCount(self)

      Returns the number of selected items in :class:`UltimateListCtrl`. 


   .. method:: GetSubItemRect(self, item, subItem, code)

      Returns the rectangle representing the size and position, in physical coordinates,
      of the given subitem, i.e. the part of the row `item` in the column `subItem`.
      
      :param `item`: the row in which the item lives;
      :param `subItem`: the column in which the item lives. If set equal to the special
       value ``ULC_GETSUBITEMRECT_WHOLEITEM`` the return value is the same as for
       :meth:`~UltimateListCtrl.GetItemRect`;
      :param `code`: one of ``ULC_RECT_BOUNDS``, ``ULC_RECT_ICON``, ``ULC_RECT_LABEL``.
      
      :note: This method is only meaningful when the :class:`UltimateListCtrl` is in the
       report mode.


   .. method:: GetTextColour(self)

      Returns the :class:`UltimateListCtrl` foreground colour. 


   .. method:: GetTopItem(self)

      Gets the index of the topmost visible item when in list or report view. 


   .. method:: GetUserLineHeight(self)

      Returns the custom value for the :class:`UltimateListCtrl` item height, if previously set with
      :meth:`~UltimateListCtrl.SetUserLineHeight`.
      
      :note: This method can be used only with ``ULC_REPORT`` and ``ULC_USER_ROW_HEIGHT`` styles set.


   .. method:: GetViewRect(self)

      Returns the rectangle taken by all items in the control. In other words,
      if the controls client size were equal to the size of this rectangle, no
      scrollbars would be needed and no free space would be left.
      
      :note: This function only works in the icon and small icon views, not in
       list or report views.


   .. method:: GetWaterMark(self)

      Returns the :class:`UltimateListCtrl` watermark image (if any), displayed in the
      bottom right part of the window.
      
      .. todo:: Better support for this is needed.


   .. method:: HasAGWFlag(self, flag)

      Returns ``True`` if the window has the given flag bit set.
      
      :param `flag`: the window style to check.
      
      :see: :meth:`~UltimateListCtrl.SetAGWWindowStyleFlag` for a list of valid window styles.


   .. method:: HasFooter(self)

      Returns ``True`` if :class:`UltimateListCtrl` has a footer window. 


   .. method:: HasHeader(self)

      Returns ``True`` if :class:`UltimateListCtrl` has a header window. 


   .. method:: HitTest(self, pointOrTuple)

      HitTest method for a :class:`UltimateListCtrl`.
      
      :param `pointOrTuple`: an instance of :class:`wx.Point` or a tuple representing
       the mouse `x`, `y` position.
      
      :see: :meth:`UltimateListMainWindow.HitTestLine() <UltimateListMainWindow.HitTestLine>` for a list of return flags.


   .. method:: InsertColumn(self, col, heading, format=ULC_FORMAT_LEFT, width=-1)

      Inserts a column into :class:`UltimateListCtrl`.
      
      :param `col`: the column index at which we wish to insert a column;
      :param `heading`: the header text;
      :param `format`: the column alignment flag. This can be one of the following
       bits:
      
       ============================ ========= ==============================
       Alignment Bits               Hex Value Description
       ============================ ========= ==============================
       ``ULC_FORMAT_LEFT``                0x0 The item is left-aligned
       ``ULC_FORMAT_RIGHT``               0x1 The item is right-aligned
       ``ULC_FORMAT_CENTRE``              0x2 The item is centre-aligned
       ``ULC_FORMAT_CENTER``              0x2 The item is center-aligned
       ============================ ========= ==============================
      
      :param `width`: can be a width in pixels or ``wx.LIST_AUTOSIZE`` (-1) or
       ``wx.LIST_AUTOSIZE_USEHEADER`` (-2) or ``LIST_AUTOSIZE_FILL`` (-3).
       ``wx.LIST_AUTOSIZE`` will resize the column to the length of its longest
       item. ``wx.LIST_AUTOSIZE_USEHEADER`` will resize the column to the
       length of the header (Win32) or 80 pixels (other platforms).
       ``LIST_AUTOSIZE_FILL`` will resize the column fill the remaining width
       of the window.
      
      :return: the index at which the column has been inserted.


   .. method:: InsertColumnInfo(self, col, item)

      Inserts a column into :class:`UltimateListCtrl`.
      
      :param `col`: the column index at which we wish to insert a column;
      :param `item`: an instance of :class:`UltimateListItem`.
      
      :return: the index at which the column has been inserted.


   .. method:: InsertImageItem(self, index, imageIds, it_kind=0)

      Inserts an image item at the given location.
      
      :param `index`: the index at which we wish to insert the item;
      :param `imageIds`: a Python list containing the image indexes for the
       images associated to this item;
      :param `it_kind`: the item kind.
      
      :see: :meth:`~UltimateListCtrl.SetStringItem` for a list of valid item kinds.


   .. method:: InsertImageStringItem(self, index, label, imageIds, it_kind=0)

      Inserts an image+string item at the given location.
      
      :param `index`: the index at which we wish to insert the item;
      :param `label`: the item text;
      :param `imageIds`: a Python list containing the image indexes for the
       images associated to this item;
      :param `it_kind`: the item kind.
      
      :see: :meth:`~UltimateListCtrl.SetStringItem` for a list of valid item kinds.


   .. method:: InsertItem(self, info)

      Inserts an item into :class:`UltimateListCtrl`.
      
      :param `info`: an instance of :class:`UltimateListItem`.


   .. method:: InsertStringItem(self, index, label, it_kind=0)

      Inserts a string item at the given location.
      
      :param `index`: the index at which we wish to insert the item;
      :param `label`: the item text;
      :param `it_kind`: the item kind.
      
      :see: :meth:`~UltimateListCtrl.SetStringItem` for a list of valid item kinds.


   .. method:: IsColumnShown(self, column)

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


   .. method:: IsItemChecked(self, itemOrId, col=0)

      Returns whether an item is checked or not.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to.


   .. method:: IsItemEnabled(self, itemOrId, col=0)

      Returns whether an item is enabled or not.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to.


   .. method:: IsItemHyperText(self, itemOrId, col=0)

      Returns whether an item is hypertext or not.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to.


   .. method:: IsSelected(self, idx)

      Returns ``True`` if the item is selected.
      
      :param `idx`: the index of the item to check for selection.


   .. method:: IsVirtual(self)

      Returns ``True`` if the :class:`UltimateListCtrl` has the ``ULC_VIRTUAL`` style set. 


   .. method:: OnGetItemAttr(self, item)

      This function may be overloaded in the derived class for a control with
      ``ULC_VIRTUAL`` style. It should return the attribute for the specified
      item or ``None`` to use the default appearance parameters.
      
      :param `item`: an integer specifying the item index.
      
      :note:
      
       :class:`UltimateListCtrl` will not delete the pointer or keep a reference of it.
       You can return the same :class:`UltimateListItemAttr` pointer for every
       :meth:`~UltimateListCtrl.OnGetItemAttr` call.
      
      :note: The base class version always returns ``None``.


   .. method:: OnGetItemCheck(self, item)

      This function may be overloaded in the derived class for a control with
      ``ULC_VIRTUAL`` style. It should return whether a checkbox-like item or
      a radiobutton-like item is checked or unchecked.
      
      :param `item`: an integer specifying the item index.
      
      :note: The base class version always returns an empty list.


   .. method:: OnGetItemColumnCheck(self, item, column=0)

      This function **must** be overloaded in the derived class for a control with
      ``ULC_VIRTUAL`` and ``ULC_REPORT`` style. It should return whether a
      checkbox-like item or a radiobutton-like item in the column header is checked
      or unchecked.
      
      :param `item`: an integer specifying the item index.
      
      :note: The base class version always returns an empty Python list.


   .. method:: OnGetItemColumnImage(self, item, column=0)

      This function **must** be overloaded in the derived class for a control with
      ``ULC_VIRTUAL`` and ``ULC_REPORT`` style. It should return a Python list of
      indexes representing the images associated to the input item or an empty list
      for no images.
      
      :param `item`: an integer specifying the item index.
      
      :note: The base class version always returns an empty Python list.


   .. method:: OnGetItemColumnKind(self, item, column=0)

      This function **must** be overloaded in the derived class for a control with
      ``ULC_VIRTUAL`` style. It should return the item kind for the input item in
      the header window.
      
      :param `item`: an integer specifying the item index;
      :param `column`: the column index.
      
      :note: The base class version always returns 0 (a standard item).
      
      :see: :meth:`~UltimateListCtrl.SetItemKind` for a list of valid item kinds.


   .. method:: OnGetItemImage(self, item)

      This function **must** be overloaded in the derived class for a control with
      ``ULC_VIRTUAL`` style having an image list (if the control doesn't have an
      image list, it is not necessary to overload it). It should return a Python
      list of indexes representing the images associated to the input item or an
      empty list for no images.
      
      :param `item`: an integer specifying the item index;
      
      :note: In a control with ``ULC_REPORT`` style, :meth:`~UltimateListCtrl.OnGetItemImage` only gets called
       for the first column of each line.
      
      :note: The base class version always returns an empty Python list.


   .. method:: OnGetItemKind(self, item)

      This function **must** be overloaded in the derived class for a control with
      ``ULC_VIRTUAL`` style. It should return the item kind for the input item.
      
      :param `item`: an integer specifying the item index.
      
      :note: The base class version always returns 0 (a standard item).
      
      :see: :meth:`~UltimateListCtrl.SetItemKind` for a list of valid item kinds.


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

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


   .. method:: OnGetItemTextColour(self, item, col)

      This function **must** be overloaded in the derived class for a control with
      ``ULC_VIRTUAL`` style. It should return a :class:`wx.Colour` object or ``None`` for
      the default color.
      
      :param `item`: an integer specifying the item index;
      :param `col`: the column index to which the item belongs to.


   .. method:: OnGetItemToolTip(self, item, col)

      This function **must** be overloaded in the derived class for a control with
      ``ULC_VIRTUAL`` style. It should return the string containing the text of
      the tooltip for the specified item.
      
      :param `item`: an integer specifying the item index;
      :param `col`: the column index to which the item belongs to.


   .. method:: OnInternalIdle(self)

      This method is normally only used internally, but sometimes an application
      may need it to implement functionality that should not be disabled by an
      application defining an `OnIdle` handler in a derived class.
      
      This method may be used to do delayed painting, for example, and most
      implementations call :meth:`wx.Window.UpdateWindowUI` in order to send update events
      to the window in idle time.


   .. method:: OnSetFocus(self, event)

      Handles the ``wx.EVT_SET_FOCUS`` event for :class:`UltimateListCtrl`.
      
      :param `event`: a :class:`FocusEvent` event to be processed.


   .. method:: OnSize(self, event)

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


   .. method:: PopupMenu(self, menu, pos=wx.DefaultPosition)

      Pops up the given `menu` at the specified coordinates, relative to this window,
      and returns control when the user has dismissed the menu. If a menu item is
      selected, the corresponding menu event is generated and will be processed as
      usual. If the coordinates are not specified, the current mouse cursor position
      is used.
      
      :param `menu`: an instance of :class:`wx.Menu` to pop up;
      :param `pos`: the position where the menu will appear.
      
      :note: Overridden from :class:`wx.Control`.


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

      Causes this window, and all of its children recursively (except under wxGTK1
      where this is not implemented), to be repainted.
      
      :param `eraseBackground`: 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 :meth:`~UltimateListCtrl.Update` instead.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: RefreshItem(self, item)

      Redraws the given item.
      
      :param `item`: an integer specifying the item index;
      
      :note: This is only useful for the virtual list controls as without calling
       this function the displayed value of the item doesn't change even when the
       underlying data does change.


   .. method:: RefreshItems(self, itemFrom, itemTo)

      Redraws the items between `itemFrom` and `itemTo`.
      The starting item must be less than or equal to the ending one.
      
      Just as :meth:`~UltimateListCtrl.RefreshItem` this is only useful for virtual list controls
      
      :param `itemFrom`: the first index of the refresh range;
      :param `itemTo`: the last index of the refresh range.


   .. method:: ScreenToClient(self, pointOrTuple)

      Converts from screen to client window coordinates.
      
      :param `pointOrTuple`: an instance of :class:`wx.Point` or a tuple representing the
       `x`, `y` coordinates for this point.
      
      :return: the coordinates relative to this window.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: ScreenToClientXY(self, x, y)

      Converts from screen to client window coordinates.
      
      :param `x`: an integer specifying the `x` screen coordinate;
      :param `y`: an integer specifying the `y` screen coordinate.
      
      :return: the coordinates relative to this window.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: ScrollList(self, dx, dy)

      Scrolls the :class:`UltimateListCtrl`.
      
      :param `dx`: if in icon, small icon or report view mode, specifies the number
       of pixels to scroll. If in list view mode, `dx` specifies the number of
       columns to scroll.
      :param `dy`: always specifies the number of pixels to scroll vertically.


   .. method:: Select(self, idx, on=True)

      Selects/deselects an item.
      
      :param `idx`: the index of the item to select;
      :param `on`: ``True`` to select the item, ``False`` to deselect it.


   .. method:: SetAGWWindowStyleFlag(self, style)

      Sets the :class:`UltimateListCtrl` AGW-specific style flag.
      
      :param `style`: the AGW-specific window style; can be almost any combination of the following
       bits:
      
       ===============================  =========== ====================================================================================================
       Window Styles                    Hex Value   Description
       ===============================  =========== ====================================================================================================
       ``ULC_VRULES``                           0x1 Draws light vertical rules between rows in report mode.
       ``ULC_HRULES``                           0x2 Draws light horizontal rules between rows in report mode.
       ``ULC_ICON``                             0x4 Large icon view, with optional labels.
       ``ULC_SMALL_ICON``                       0x8 Small icon view, with optional labels.
       ``ULC_LIST``                            0x10 Multicolumn list view, with optional small icons. Columns are computed automatically, i.e. you don't set columns as in ``ULC_REPORT``. In other words, the list wraps, unlike a :class:`ListBox`.
       ``ULC_REPORT``                          0x20 Single or multicolumn report view, with optional header.
       ``ULC_ALIGN_TOP``                       0x40 Icons align to the top. Win32 default, Win32 only.
       ``ULC_ALIGN_LEFT``                      0x80 Icons align to the left.
       ``ULC_AUTOARRANGE``                    0x100 Icons arrange themselves. Win32 only.
       ``ULC_VIRTUAL``                        0x200 The application provides items text on demand. May only be used with ``ULC_REPORT``.
       ``ULC_EDIT_LABELS``                    0x400 Labels are editable: the application will be notified when editing starts.
       ``ULC_NO_HEADER``                      0x800 No header in report mode.
       ``ULC_NO_SORT_HEADER``                0x1000 No Docs.
       ``ULC_SINGLE_SEL``                    0x2000 Single selection (default is multiple).
       ``ULC_SORT_ASCENDING``                0x4000 Sort in ascending order. (You must still supply a comparison callback in :meth:`ListCtrl.SortItems`.)
       ``ULC_SORT_DESCENDING``               0x8000 Sort in descending order. (You must still supply a comparison callback in :meth:`ListCtrl.SortItems`.)
       ``ULC_TILE``                         0x10000 Each item appears as a full-sized icon with a label of one or more lines beside it (partially implemented).
       ``ULC_NO_HIGHLIGHT``                 0x20000 No highlight when an item is selected.
       ``ULC_STICKY_HIGHLIGHT``             0x40000 Items are selected by simply hovering on them, with no need to click on them.
       ``ULC_STICKY_NOSELEVENT``            0x80000 Don't send a selection event when using ``ULC_STICKY_HIGHLIGHT`` style.
       ``ULC_SEND_LEFTCLICK``              0x100000 Send a left click event when an item is selected.
       ``ULC_HAS_VARIABLE_ROW_HEIGHT``     0x200000 The list has variable row heights.
       ``ULC_AUTO_CHECK_CHILD``            0x400000 When a column header has a checkbox associated, auto-check all the subitems in that column.
       ``ULC_AUTO_TOGGLE_CHILD``           0x800000 When a column header has a checkbox associated, toggle all the subitems in that column.
       ``ULC_AUTO_CHECK_PARENT``          0x1000000 Only meaningful foe checkbox-type items: when an item is checked/unchecked its column header item is checked/unchecked as well.
       ``ULC_SHOW_TOOLTIPS``              0x2000000 Show tooltips for ellipsized items/subitems (text too long to be shown in the available space) containing the full item/subitem text.
       ``ULC_HOT_TRACKING``               0x4000000 Enable hot tracking of items on mouse motion.
       ``ULC_BORDER_SELECT``              0x8000000 Changes border colour whan an item is selected, instead of highlighting the item.
       ``ULC_TRACK_SELECT``              0x10000000 Enables hot-track selection in a list control. Hot track selection means that an item is automatically selected when the cursor remains over the item for a certain period of time. The delay is retrieved on Windows using the `win32api` call `win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERTIME)`, and is defaulted to 400ms on other platforms. This style applies to all views of `UltimateListCtrl`.
       ``ULC_HEADER_IN_ALL_VIEWS``       0x20000000 Show column headers in all view modes.
       ``ULC_NO_FULL_ROW_SELECT``        0x40000000 When an item is selected, the only the item in the first column is highlighted.
       ``ULC_FOOTER``                    0x80000000 Show a footer too (only when header is present).
       ``ULC_USER_ROW_HEIGHT``          0x100000000 Allows to set a custom row height (one value for all the items, only in report mode).
       ===============================  =========== ====================================================================================================
       


   .. method:: SetBackgroundColour(self, colour)

      Changes the background colour of :class:`UltimateListCtrl`.
      
      :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:: SetBackgroundImage(self, image=None)

      Sets the :class:`UltimateListCtrl` background image.
      
      :param `image`: if not ``None``, an instance of :class:`wx.Bitmap`.
      
      :note: At present, the background image can only be used in "tile" mode.
      
      .. todo:: Support background images also in stretch and centered modes.


   .. method:: SetColumn(self, col, item)

      Sets information about this column.
      
      :param `col`: an integer specifying the column index;
      :param `item`: an instance of :class:`UltimateListItem`.


   .. method:: SetColumnCustomRenderer(self, col=0, renderer=None)

      Associate a custom renderer to this column's header.
      
      :param `col`: the column index.
      :param `renderer`: a class able to correctly render the input item.
      
      :note: the renderer class **must** implement the methods `DrawHeaderButton`
       and `GetForegroundColor`.


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

      Sets one or more images to the specified column.
      
      :param `col`: the column index;
      :param `image`: a Python list containing the image indexes for the
       images associated to this column item.


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

      Sets the specified column as shown or hidden.
      
      :param `column`: an integer specifying the column index;
      :param `shown`: ``True`` to show the column, ``False`` to hide it.


   .. method:: SetColumnToolTip(self, col, tip)

      Sets the tooltip for the column header
      
      :param `col`: the column index;
      :param `tip`: the tooltip text


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

      Sets the column width.
      
      :param `width`: can be a width in pixels or ``wx.LIST_AUTOSIZE`` (-1) or
       ``wx.LIST_AUTOSIZE_USEHEADER`` (-2) or ``LIST_AUTOSIZE_FILL`` (-3).
       ``wx.LIST_AUTOSIZE`` will resize the column to the length of its longest
       item. ``wx.LIST_AUTOSIZE_USEHEADER`` will resize the column to the
       length of the header (Win32) or 80 pixels (other platforms).
       ``LIST_AUTOSIZE_FILL`` will resize the column fill the remaining width
       of the window.
      
      :note: In small or normal icon view, col must be -1, and the column width
       is set for all columns.


   .. method:: SetCursor(self, cursor)

      Sets the window's cursor.
      
      :param `cursor`: specifies the cursor that the window should normally display.
       The `cursor` may be :class:`NullCursor` in which case the window cursor will be
       reset back to default.
      
      :note: The window cursor also sets it for the children of the window implicitly.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: SetDisabledTextColour(self, colour)

      Sets the items disabled colour.
      
      :param `colour`: an instance of :class:`wx.Colour`.


   .. method:: SetDropTarget(self, dropTarget)

      Associates a drop target with this window.
      If the window already has a drop target, it is deleted.
      
      :param `dropTarget`: an instance of :class:`DropTarget`.
      
      :note: Overridden from :class:`wx.Control`.


   .. method:: SetFirstGradientColour(self, colour=None)

      Sets the first gradient colour for gradient-style selections.
      
      :param `colour`: if not ``None``, a valid :class:`wx.Colour` instance. Otherwise,
       the colour is taken from the system value ``wx.SYS_COLOUR_HIGHLIGHT``.


   .. method:: SetFocus(self)

      This sets the window to receive keyboard input. 


   .. method:: SetFont(self, font)

      Sets the :class:`UltimateListCtrl` font.
      
      :param `font`: a valid :class:`wx.Font` instance.
      
      :note: Overridden from :class:`wx.Control`.


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

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


   .. method:: SetFooterHeight(self, height)

      Sets the :class:`UltimateListHeaderWindow` height, in pixels. This overrides the default
      footer window size derived from :class:`RendererNative`. If `height` is ``None``, the
      default behaviour is restored.
      
      :param `height`: the footer window height, in pixels (if it is ``None``, the default
       height obtained using :class:`RendererNative` is used).


   .. method:: SetForegroundColour(self, colour)

      Changes the foreground colour of :class:`UltimateListCtrl`.
      
      :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:: SetGradientStyle(self, vertical=0)

      Sets the gradient style for gradient-style selections.
      
      :param `vertical`: 0 for horizontal gradient-style selections, 1 for vertical
       gradient-style selections.


   .. 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 methods `DrawHeaderButton`
       and `GetForegroundColor`.


   .. method:: SetHeaderHeight(self, height)

      Sets the :class:`UltimateListHeaderWindow` height, in pixels. This overrides the default
      header window size derived from :class:`RendererNative`. If `height` is ``None``, the
      default behaviour is restored.
      
      :param `height`: the header window height, in pixels (if it is ``None``, the default
       height obtained using :class:`RendererNative` is used).


   .. method:: SetHyperTextFont(self, font)

      Sets the font used to render hypertext items.
      
      :param `font`: a valid :class:`wx.Font` instance.


   .. method:: SetHyperTextNewColour(self, colour)

      Sets the colour used to render a non-visited hypertext item.
      
      :param `colour`: a valid :class:`wx.Colour` instance.


   .. method:: SetHyperTextVisitedColour(self, colour)

      Sets the colour used to render a visited hypertext item.
      
      :param `colour`: a valid :class:`wx.Colour` instance.


   .. method:: SetImageList(self, imageList, which)

      Sets the image list associated with the control.
      
      :param `imageList`: an instance of :class:`wx.ImageList` or an instance of :class:`PyImageList`;
      :param `which`: one of ``wx.IMAGE_LIST_NORMAL``, ``wx.IMAGE_LIST_SMALL``,
       ``wx.IMAGE_LIST_STATE`` (the last is unimplemented).
      
      :note: Using :class:`PyImageList` enables you to have images of different size inside the
       image list. In your derived class, instead of doing this::
      
           imageList = wx.ImageList(16, 16)
           imageList.Add(someBitmap)
           self.SetImageList(imageList, wx.IMAGE_LIST_SMALL)
      
       You should do this::
      
           imageList = PyImageList(16, 16)
           imageList.Add(someBitmap)
           self.SetImageList(imageList, wx.IMAGE_LIST_SMALL)


   .. method:: SetItem(self, info)

      Sets the information about the input item.
      
      :param `info`: an instance of :class:`UltimateListItem`.


   .. method:: SetItemBackgroundColour(self, item, col)

      Sets the item background colour.
      
      :param `item`: the index of the item;
      :param `col`: a valid :class:`wx.Colour` object.


   .. method:: SetItemColumnImage(self, item, column, image)

      Sets a Python list of image indexes associated with the item in the input
      column.
      
      :param `item`: an integer specifying the item index;
      :param `column`: the column to which the item belongs to;
      :param `image`: a Python list of indexes into the image list associated
       with the :class:`UltimateListCtrl`.


   .. method:: SetItemCount(self, count)

      Sets the total number of items we handle.
      
      :param `count`: the total number of items we handle.


   .. method:: SetItemCustomRenderer(self, itemOrId, col=0, renderer=None)

      Associate a custom renderer to this item.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to;
      :param `renderer`: a class able to correctly render the input item.
      
      :note: the renderer class **must** implement the methods `DrawSubItem`,
       `GetLineHeight` and `GetSubItemWidth`.


   .. method:: SetItemData(self, item, data)

      Sets the application-defined data associated with this item.
      
      :param `item`: an integer specifying the item index;
      :param `data`: the data to be associated with the input item.
      
      :note: This function cannot be used to associate pointers with
       the control items, use :meth:`~UltimateListCtrl.SetItemPyData` instead.


   .. method:: SetItemFont(self, item, f)

      Sets the item font.
      
      :param `item`: the index of the item;
      :param `f`: a valid :class:`wx.Font` object.


   .. method:: SetItemHyperText(self, itemOrId, col=0, hyper=True)

      Sets whether the item is hypertext or not.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to;
      :param `hyper`: ``True`` to have an item with hypertext behaviour, ``False`` otherwise.


   .. method:: SetItemImage(self, item, image, selImage=-1)

      Sets a Python list of image indexes associated with the item.
      
      :param `item`: an integer specifying the item index;
      :param `image`: a Python list of indexes into the image list associated
       with the :class:`UltimateListCtrl`. In report view, this only sets the images
       for the first column;
      :param `selImage`: not used at present.


   .. method:: SetItemKind(self, itemOrId, col=0, kind=0)

      Sets the item kind.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to;
      :param `kind`: may be one of the following integers:
      
       =============== ==========================
       Item Kind       Description
       =============== ==========================
              0        A normal item
              1        A checkbox-like item
              2        A radiobutton-type item
       =============== ==========================


   .. method:: SetItemOverFlow(self, itemOrId, col=0, over=True)

      Sets the item in the overflow/non overflow state.
      
      An item/subitem may overwrite neighboring items/subitems if its text would
      not normally fit in the space allotted to it.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to;
      :param `over`: ``True`` to set the item in a overflow state, ``False`` otherwise.


   .. method:: SetItemPosition(self, item, pos)

      Sets the position of the item, in icon or small icon view.
      
      :param `item`: the row in which the item lives;
      :param `pos`: the item position.
      
      :note: This method is currently unimplemented and does nothing.


   .. method:: SetItemPyData(self, item, pyData)

      Sets the data for the item, which can be any Python object.
      
      :param `item`: an integer specifying the item index;
      :param `pyData`: any Python object.
      
      :note: Please note that Python data is associated with the item and not
       with subitems.


   .. method:: SetItemSpacing(self, spacing, isSmall=False)

      Sets the spacing between item texts and icons.
      
      :param `spacing`: the spacing between item texts and icons, in pixels;
      :param `isSmall`: ``True`` if using a ``wx.IMAGE_LIST_SMALL`` image list,
       ``False`` if using a ``wx.IMAGE_LIST_NORMAL`` image list.


   .. method:: SetItemState(self, item, state, stateMask)

      Sets the item state flags for the input item.
      
      :param `item`: the index of the item; if defaulted to -1, the state flag
       will be set for all the items;
      :param `state`: any combination of the following bits:
      
       ============================ ========= ==============================
       State Bits                   Hex Value Description
       ============================ ========= ==============================
       ``ULC_STATE_DONTCARE``             0x0 Don't care what the state is
       ``ULC_STATE_DROPHILITED``          0x1 The item is highlighted to receive a drop event
       ``ULC_STATE_FOCUSED``              0x2 The item has the focus
       ``ULC_STATE_SELECTED``             0x4 The item is selected
       ``ULC_STATE_CUT``                  0x8 The item is in the cut state
       ``ULC_STATE_DISABLED``            0x10 The item is disabled
       ``ULC_STATE_FILTERED``            0x20 The item has been filtered
       ``ULC_STATE_INUSE``               0x40 The item is in use
       ``ULC_STATE_PICKED``              0x80 The item has been picked
       ``ULC_STATE_SOURCE``             0x100 The item is a drag and drop source
       ============================ ========= ==============================
      
      :param `stateMask`: the bitmask for the state flag.


   .. method:: SetItemText(self, item, text)

      Sets the item text.
      
      :param `item`: an instance of :class:`UltimateListItem` or an integer specifying
       the item index;
      :param `text`: the new item text.


   .. method:: SetItemTextColour(self, item, col)

      Sets the item text colour.
      
      :param `item`: the index of the item;
      :param `col`: a valid :class:`wx.Colour` object.


   .. method:: SetItemVisited(self, itemOrId, col=0, visited=True)

      Sets whether an hypertext item was visited or not.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to;
      :param `visited`: ``True`` to mark an hypertext item as visited, ``False`` otherwise.


   .. method:: SetItemWindow(self, itemOrId, col=0, wnd=None, expand=False)

      Sets the window for the given item.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to;
      :param `wnd`: a non-toplevel window to be displayed next to the item;
      :param `expand`: ``True`` to expand the column where the item/subitem lives,
       so that the window will be fully visible.


   .. method:: SetItemWindowEnabled(self, itemOrId, col=0, enable=True)

      Enables/disables the window associated to the item.
      
      :param `itemOrId`: an instance of :class:`UltimateListItem` or the item index;
      :param `col`: the column index to which the input item belongs to;
      :param `enable`: ``True`` to enable the associated window, ``False`` to disable it.


   .. method:: SetScrollPos(self, orientation, pos, refresh=True)

      Sets the scrollbar position.
      
      :param `orientation`: determines the scrollbar whose position is to be set.
       May be ``wx.HORIZONTAL`` or ``wx.VERTICAL``;
      :param `pos`: the scrollbar position in scroll units;
      :param `refresh`: ``True`` to redraw the scrollbar, ``False`` otherwise.
      
      :note: This method is forwarded to :class:`UltimateListMainWindow`.


   .. method:: SetSecondGradientColour(self, colour=None)

      Sets the second gradient colour for gradient-style selections.
      
      :param `colour`: if not ``None``, a valid :class:`wx.Colour` instance. Otherwise,
       the colour generated is a slightly darker version of the :class:`UltimateListCtrl`
       background colour.


   .. method:: SetSingleStyle(self, style, add=True)

      Adds or removes a single window style.
      
      :param `style`: can be one of the following bits:
      
       ===============================  =========== ====================================================================================================
       Window Styles                    Hex Value   Description
       ===============================  =========== ====================================================================================================
       ``ULC_VRULES``                           0x1 Draws light vertical rules between rows in report mode.
       ``ULC_HRULES``                           0x2 Draws light horizontal rules between rows in report mode.
       ``ULC_ICON``                             0x4 Large icon view, with optional labels.
       ``ULC_SMALL_ICON``                       0x8 Small icon view, with optional labels.
       ``ULC_LIST``                            0x10 Multicolumn list view, with optional small icons. Columns are computed automatically, i.e. you don't set columns as in ``ULC_REPORT``. In other words, the list wraps, unlike a :class:`ListBox`.
       ``ULC_REPORT``                          0x20 Single or multicolumn report view, with optional header.
       ``ULC_ALIGN_TOP``                       0x40 Icons align to the top. Win32 default, Win32 only.
       ``ULC_ALIGN_LEFT``                      0x80 Icons align to the left.
       ``ULC_AUTOARRANGE``                    0x100 Icons arrange themselves. Win32 only.
       ``ULC_VIRTUAL``                        0x200 The application provides items text on demand. May only be used with ``ULC_REPORT``.
       ``ULC_EDIT_LABELS``                    0x400 Labels are editable: the application will be notified when editing starts.
       ``ULC_NO_HEADER``                      0x800 No header in report mode.
       ``ULC_NO_SORT_HEADER``                0x1000 No Docs.
       ``ULC_SINGLE_SEL``                    0x2000 Single selection (default is multiple).
       ``ULC_SORT_ASCENDING``                0x4000 Sort in ascending order. (You must still supply a comparison callback in :meth:`ListCtrl.SortItems`.)
       ``ULC_SORT_DESCENDING``               0x8000 Sort in descending order. (You must still supply a comparison callback in :meth:`ListCtrl.SortItems`.)
       ``ULC_TILE``                         0x10000 Each item appears as a full-sized icon with a label of one or more lines beside it (partially implemented).
       ``ULC_NO_HIGHLIGHT``                 0x20000 No highlight when an item is selected.
       ``ULC_STICKY_HIGHLIGHT``             0x40000 Items are selected by simply hovering on them, with no need to click on them.
       ``ULC_STICKY_NOSELEVENT``            0x80000 Don't send a selection event when using ``ULC_STICKY_HIGHLIGHT`` style.
       ``ULC_SEND_LEFTCLICK``              0x100000 Send a left click event when an item is selected.
       ``ULC_HAS_VARIABLE_ROW_HEIGHT``     0x200000 The list has variable row heights.
       ``ULC_AUTO_CHECK_CHILD``            0x400000 When a column header has a checkbox associated, auto-check all the subitems in that column.
       ``ULC_AUTO_TOGGLE_CHILD``           0x800000 When a column header has a checkbox associated, toggle all the subitems in that column.
       ``ULC_AUTO_CHECK_PARENT``          0x1000000 Only meaningful foe checkbox-type items: when an item is checked/unchecked its column header item is checked/unchecked as well.
       ``ULC_SHOW_TOOLTIPS``              0x2000000 Show tooltips for ellipsized items/subitems (text too long to be shown in the available space) containing the full item/subitem text.
       ``ULC_HOT_TRACKING``               0x4000000 Enable hot tracking of items on mouse motion.
       ``ULC_BORDER_SELECT``              0x8000000 Changes border colour whan an item is selected, instead of highlighting the item.
       ``ULC_TRACK_SELECT``              0x10000000 Enables hot-track selection in a list control. Hot track selection means that an item is automatically selected when the cursor remains over the item for a certain period of time. The delay is retrieved on Windows using the `win32api` call `win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERTIME)`, and is defaulted to 400ms on other platforms. This style applies to all views of `UltimateListCtrl`.
       ``ULC_HEADER_IN_ALL_VIEWS``       0x20000000 Show column headers in all view modes.
       ``ULC_NO_FULL_ROW_SELECT``        0x40000000 When an item is selected, the only the item in the first column is highlighted.
       ``ULC_FOOTER``                    0x80000000 Show a footer too (only when header is present).
       ===============================  =========== ====================================================================================================
      
      :param `add`: ``True`` to add the window style, ``False`` to remove it.
      
      :note: The style ``ULC_VIRTUAL`` can not be set/unset after construction.


   .. method:: SetStringItem(self, index, col, label, imageIds=[], it_kind=0)

      Sets a string or image at the given location.
      
      :param `index`: the item index;
      :param `col`: the column to which the item belongs to;
      :param `label`: the item text;
      :param `imageIds`: a Python list containing the image indexes for the
       images associated to this item;
      :param `it_kind`: the item kind. May be one of the following integers:
      
       =============== ==========================
       Item Kind       Description
       =============== ==========================
              0        A normal item
              1        A checkbox-like item
              2        A radiobutton-type item
       =============== ==========================


   .. method:: SetTextColour(self, col)

      Sets the :class:`UltimateListCtrl` foreground colour.
      
      :param `col`: a valid :class:`wx.Colour` object.


   .. method:: SetUserLineHeight(self, height)

      Sets a custom value for the :class:`UltimateListCtrl` item height.
      
      :param `height`: the custom height for all the items, in pixels.
      
      :note: This method can be used only with ``ULC_REPORT`` and ``ULC_USER_ROW_HEIGHT`` styles set.


   .. method:: SetWaterMark(self, watermark=None)

      Sets the :class:`UltimateListCtrl` watermark image to be displayed in the bottom
      right part of the window.
      
      :param `watermark`: if not ``None``, an instance of :class:`wx.Bitmap`.
      
      .. todo:: Better support for this is needed.


   .. method:: SortItems(self, func=None)

      Call this function to sort the items in the :class:`UltimateListCtrl`. Sorting is done
      using the specified function `func`. This function must have the
      following prototype::
      
          def OnCompareItems(self, line1, line2):
      
              DoSomething(line1, line2)
              # function code
      
      
      It is called each time when the two items must be compared and should return 0
      if the items are equal, negative value if the first item is less than the second
      one and positive value if the first one is greater than the second one.
      
      :param `func`: the method to use to sort the items. The default is to use the
       :meth:`UltimateListMainWindow.OnCompareItems() <UltimateListMainWindow.OnCompareItems>` method.


   .. method:: Update(self)

      Calling this method immediately repaints the invalidated area of the window
      and all of its children recursively while this would usually only happen when
      the flow of control returns to the event loop.
      
      :note: This function doesn't invalidate any area of the window so nothing
       happens if nothing has been invalidated (i.e. marked as requiring a redraw).
       Use :meth:`~UltimateListCtrl.Refresh` first if you want to immediately redraw the window unconditionally.
      
      :note: Overridden from :class:`wx.Control`.


