.. wxPython Phoenix documentation

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

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

.. include:: headings.inc

.. currentmodule:: wx.lib.agw.aui.auibook

.. highlight:: python



.. _wx.lib.agw.aui.auibook.AuiTabContainer:

==========================================================================================================================================
|phoenix_title|  **wx.lib.agw.aui.auibook.AuiTabContainer**
==========================================================================================================================================

AuiTabContainer is a class which contains information about each tab.
It also can render an entire tab control to a specified DC.
It's not a window class itself, because this code will be used by
the :class:`AuiNotebook`, where it is disadvantageous to have separate
windows for each tab control in the case of "docked tabs".

A derived class, :class:`AuiTabCtrl`, is an actual :class:`wx.Window` - derived window
which can be used as a tab control in the normal sense.



|

|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>AuiTabContainer</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.aui.auibook.AuiTabContainer_inheritance.png" alt="Inheritance diagram of AuiTabContainer" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.lib.agw.aui.auibook.AuiTabContainer.html" title="wx.lib.agw.aui.auibook.AuiTabContainer" alt="" coords="5,5,287,35"/> </map> 
   </p>
   </div>

|


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

:class:`wx.lib.agw.aui.auibook.AuiTabCtrl`

|


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

================================================================================ ================================================================================
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.__init__`                         Default class constructor.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.AddButton`                        Adds a button in the tab area.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.AddPage`                          Adds a page to the tab control.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.ButtonHitTest`                    Tests if a button was hit.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.CloneButtons`                     Clones the tab area buttons when the :class:`AuiNotebook` is being split.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.DoShowHide`                       This function shows the active window, then hides all of the other windows
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.EnableTab`                        Enables/disables a tab in the :class:`AuiTabContainer`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.FindNextActiveTab`                Finds the next active tab in the :class:`AuiTabContainer`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetActivePage`                    Returns the current selected tab or ``wx.NOT_FOUND`` if none is selected.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetAGWFlags`                      Returns the tab art flags.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetArtProvider`                   Returns the current art provider being used.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetEnabled`                       Returns whether a tab is enabled or not.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetHidden`                        Returns whether a tab is hidden or not.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetIdxFromWindow`                 Returns the tab index based on the window `wnd` associated with it.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetPage`                          Returns the page specified by the given index.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetPageCount`                     Returns the number of pages in the :class:`AuiTabContainer`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetPages`                         Returns a list of all the pages in this :class:`AuiTabContainer`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetShownPageCount`                Returns the number of pages shown in the :class:`AuiTabContainer`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetTabOffset`                     Returns the tab offset.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.GetWindowFromIdx`                 Returns the window associated with the tab with index `idx`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.HideTab`                          hides/shows a tab in the :class:`AuiTabContainer`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.InsertPage`                       Inserts a page in the tab control in the position specified by `idx`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.IsTabVisible`                     Returns whether a tab is visible or not.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.MakeTabVisible`                   Make the tab visible if it wasn't already.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.MovePage`                         Moves a page in a new position specified by `new_idx`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.RemoveButton`                     Removes a button from the tab area.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.RemovePage`                       Removes a page from the tab control.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.Render`                           Renders the tab catalog to the specified :class:`wx.DC`.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.SetActivePage`                    Sets the :class:`AuiNotebook` active page.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.SetAGWFlags`                      Sets the tab art flags.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.SetArtProvider`                   Instructs :class:`AuiTabContainer` to use art provider specified by parameter `art`
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.SetMeasuringFont`                 Sets the font for calculating text measurements.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.SetNoneActive`                    Sets all the tabs as inactive (non-selected).
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.SetNormalFont`                    Sets the normal font for drawing tab labels.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.SetSelectedFont`                  Sets the selected tab font for drawing tab labels.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.SetTabOffset`                     Sets the tab offset.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.SetTabRect`                       Sets the tab area rectangle.
:meth:`~wx.lib.agw.aui.auibook.AuiTabContainer.TabHitTest`                       TabHitTest() tests if a tab was hit, passing the window pointer
================================================================================ ================================================================================


|


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


.. class:: AuiTabContainer(object)

   AuiTabContainer is a class which contains information about each tab.
   It also can render an entire tab control to a specified DC.
   It's not a window class itself, because this code will be used by
   the :class:`AuiNotebook`, where it is disadvantageous to have separate
   windows for each tab control in the case of "docked tabs".
   
   A derived class, :class:`AuiTabCtrl`, is an actual :class:`wx.Window` - derived window
   which can be used as a tab control in the normal sense.

   .. method:: __init__(self, auiNotebook)

      Default class constructor.
      Used internally, do not call it in your code!
      
      :param `auiNotebook`: the parent :class:`AuiNotebook` window.


   .. method:: AddButton(self, id, location, normal_bitmap=wx.NullBitmap, disabled_bitmap=wx.NullBitmap, name="")

      Adds a button in the tab area.
      
      :param integer `id`: the button identifier. This can be one of the following:
      
       ==============================  =================================
       Button Identifier               Description
       ==============================  =================================
       ``AUI_BUTTON_CLOSE``            Shows a close button on the tab area
       ``AUI_BUTTON_WINDOWLIST``       Shows a window list button on the tab area
       ``AUI_BUTTON_LEFT``             Shows a left button on the tab area
       ``AUI_BUTTON_RIGHT``            Shows a right button on the tab area
       ==============================  =================================
      
      :param integer `location`: the button location. Can be ``wx.LEFT`` or ``wx.RIGHT``;
      :param wx.Bitmap `normal_bitmap`: the bitmap for an enabled tab;
      :param wx.Bitmap `disabled_bitmap`: the bitmap for a disabled tab;
      :param string `name`: the button name.


   .. method:: AddPage(self, page, info)

      Adds a page to the tab control.
      
      :param wx.Window `page`: the window associated with this tab;
      :param `info`: an instance of :class:`AuiNotebookPage`.


   .. method:: ButtonHitTest(self, x, y, state_flags=AUI_BUTTON_STATE_HIDDEN|AUI_BUTTON_STATE_DISABLED)

      Tests if a button was hit.
      
      :param integer `x`: the mouse `x` position;
      :param integer `y`: the mouse `y` position;
      :param integer `state_flags`: the current button state (hidden, disabled, etc...).
      
      :returns: and instance of :class:`AuiTabContainerButton` if a button was hit, ``None`` otherwise.


   .. method:: CloneButtons(self)

      Clones the tab area buttons when the :class:`AuiNotebook` is being split.
      
      :see: :meth:`AddButton`
      
      :note: Standard buttons for :class:`AuiNotebook` are not cloned, only custom ones.


   .. method:: DoShowHide(self)

      This function shows the active window, then hides all of the other windows
      (in that order).


   .. method:: EnableTab(self, idx, enable=True)

      Enables/disables a tab in the :class:`AuiTabContainer`.
      
      :param integer `idx`: the tab index;
      :param bool `enable`: ``True`` to enable a tab, ``False`` to disable it.


   .. method:: FindNextActiveTab(self, idx)

      Finds the next active tab in the :class:`AuiTabContainer`.
      
      :param integer `idx`: the index of the first (most obvious) tab to check for active status;


   .. method:: GetActivePage(self)

      Returns the current selected tab or ``wx.NOT_FOUND`` if none is selected. 


   .. method:: GetAGWFlags(self)

      Returns the tab art flags.
      
      .. seealso:: :meth:`SetAGWFlags` for a list of possible return values.


   .. method:: GetArtProvider(self)

      Returns the current art provider being used. 


   .. method:: GetEnabled(self, idx)

      Returns whether a tab is enabled or not.
      
      :param integer `idx`: the tab index.


   .. method:: GetHidden(self, idx)

      Returns whether a tab is hidden or not.
      
      :param integer `idx`: the tab index.


   .. method:: GetIdxFromWindow(self, wnd)

      Returns the tab index based on the window `wnd` associated with it.
      
      :param `wnd`: an instance of :class:`wx.Window`.


   .. method:: GetPage(self, idx)

      Returns the page specified by the given index.
      
      :param integer `idx`: the tab index.


   .. method:: GetPageCount(self)

      Returns the number of pages in the :class:`AuiTabContainer`. 


   .. method:: GetPages(self)

      Returns a list of all the pages in this :class:`AuiTabContainer`. 


   .. method:: GetShownPageCount(self)

      Returns the number of pages shown in the :class:`AuiTabContainer`. 


   .. method:: GetTabOffset(self)

      Returns the tab offset. 


   .. method:: GetWindowFromIdx(self, idx)

      Returns the window associated with the tab with index `idx`.
      
      :param integer `idx`: the tab index.


   .. method:: HideTab(self, idx, hidden=True)

      hides/shows a tab in the :class:`AuiTabContainer`.
      
      :param integer `idx`: the tab index;
      :param bool `hidden`: ``True`` to hide a tab, ``False`` to show it.


   .. method:: InsertPage(self, page, info, idx)

      Inserts a page in the tab control in the position specified by `idx`.
      
      :param wx.Window `page`: the window associated with this tab;
      :param `info`: an instance of :class:`AuiNotebookPage`;
      :param integer `idx`: the page insertion index.


   .. method:: IsTabVisible(self, tabPage, tabOffset, dc, wnd)

      Returns whether a tab is visible or not.
      
      :param integer `tabPage`: the tab index;
      :param integer `tabOffset`: the tab offset;
      :param `dc`: a :class:`wx.DC` device context;
      :param `wnd`: an instance of :class:`wx.Window` derived window.


   .. method:: MakeTabVisible(self, tabPage, win)

      Make the tab visible if it wasn't already.
      
      :param integer `tabPage`: the tab index;
      :param `win`: an instance of :class:`wx.Window` derived window.


   .. method:: MovePage(self, page, new_idx)

      Moves a page in a new position specified by `new_idx`.
      
      :param wx.Window `page`: the window associated with this tab;
      :param integer `new_idx`: the new page position.


   .. method:: RemoveButton(self, id)

      Removes a button from the tab area.
      
      :param integer `id`: the button identifier. See :meth:`AddButton` for a list of button identifiers.
      
      :see: :meth:`AddButton`


   .. method:: RemovePage(self, wnd)

      Removes a page from the tab control.
      
      :param `wnd`: an instance of :class:`wx.Window`, a window associated with this tab.


   .. method:: Render(self, raw_dc, wnd)

      Renders the tab catalog to the specified :class:`wx.DC`.
      
      It is a virtual function and can be overridden to provide custom drawing
      capabilities.
      
      :param `raw_dc`: a :class:`wx.DC` device context;
      :param `wnd`: an instance of :class:`wx.Window`.


   .. method:: SetActivePage(self, wndOrInt)

      Sets the :class:`AuiNotebook` active page.
      
      :param `wndOrInt`: an instance of :class:`wx.Window` or an integer specifying a tab index.


   .. method:: SetAGWFlags(self, agwFlags)

      Sets the tab art flags.
      
      :param integer `agwFlags`: a combination of the following values:
      
       ==================================== ==================================
       Flag name                            Description
       ==================================== ==================================
       ``AUI_NB_TOP``                       With this style, tabs are drawn along the top of the notebook
       ``AUI_NB_LEFT``                      With this style, tabs are drawn along the left of the notebook. Not implemented yet
       ``AUI_NB_RIGHT``                     With this style, tabs are drawn along the right of the notebook. Not implemented yet
       ``AUI_NB_BOTTOM``                    With this style, tabs are drawn along the bottom of the notebook
       ``AUI_NB_TAB_SPLIT``                 Allows the tab control to be split by dragging a tab
       ``AUI_NB_TAB_MOVE``                  Allows a tab to be moved horizontally by dragging
       ``AUI_NB_TAB_EXTERNAL_MOVE``         Allows a tab to be moved to another tab control
       ``AUI_NB_TAB_FIXED_WIDTH``           With this style, all tabs have the same width
       ``AUI_NB_SCROLL_BUTTONS``            With this style, left and right scroll buttons are displayed
       ``AUI_NB_WINDOWLIST_BUTTON``         With this style, a drop-down list of windows is available
       ``AUI_NB_CLOSE_BUTTON``              With this style, a close button is available on the tab bar
       ``AUI_NB_CLOSE_ON_ACTIVE_TAB``       With this style, a close button is available on the active tab
       ``AUI_NB_CLOSE_ON_ALL_TABS``         With this style, a close button is available on all tabs
       ``AUI_NB_MIDDLE_CLICK_CLOSE``        Allows to close :class:`AuiNotebook` tabs by mouse middle button click
       ``AUI_NB_SUB_NOTEBOOK``              This style is used by :class:`~wx.lib.agw.aui.framemanager.AuiManager` to create automatic AuiNotebooks
       ``AUI_NB_HIDE_ON_SINGLE_TAB``        Hides the tab window if only one tab is present
       ``AUI_NB_SMART_TABS``                Use Smart Tabbing, like ``Alt`` + ``Tab`` on Windows
       ``AUI_NB_USE_IMAGES_DROPDOWN``       Uses images on dropdown window list menu instead of check items
       ``AUI_NB_CLOSE_ON_TAB_LEFT``         Draws the tab close button on the left instead of on the right (a la Camino browser)
       ``AUI_NB_TAB_FLOAT``                 Allows the floating of single tabs. Known limitation: when the notebook is more or less full screen,
                                            tabs cannot be dragged far enough outside of the notebook to become floating pages
       ``AUI_NB_DRAW_DND_TAB``              Draws an image representation of a tab while dragging (on by default)
       ``AUI_NB_ORDER_BY_ACCESS``           Tab navigation order by last access time for the tabs
       ``AUI_NB_NO_TAB_FOCUS``              Don't draw tab focus rectangle
       ==================================== ==================================
      
      .. todo:: Implementation of flags ``AUI_NB_RIGHT`` and ``AUI_NB_LEFT``.


   .. method:: SetArtProvider(self, art)

      Instructs :class:`AuiTabContainer` to use art provider specified by parameter `art`
      for all drawing calls. This allows plugable look-and-feel features.
      
      :param `art`: an art provider.
      
      :note: The previous art provider object, if any, will be deleted by :class:`AuiTabContainer`.


   .. method:: SetMeasuringFont(self, font)

      Sets the font for calculating text measurements.
      
      :param wx.Font `font`: the new font to use to measure tab label text extents.


   .. method:: SetNoneActive(self)

      Sets all the tabs as inactive (non-selected). 


   .. method:: SetNormalFont(self, font)

      Sets the normal font for drawing tab labels.
      
      :param wx.Font `font`: the new font to use to draw tab labels in their normal, un-selected state.


   .. method:: SetSelectedFont(self, font)

      Sets the selected tab font for drawing tab labels.
      
      :param wx.Font `font`: the new font to use to draw tab labels in their selected state.


   .. method:: SetTabOffset(self, offset)

      Sets the tab offset.
      
      :param integer `offset`: the tab offset.


   .. method:: SetTabRect(self, rect)

      Sets the tab area rectangle.
      
      :param wx.Rect `rect`: the available area for :class:`AuiTabContainer`.


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

      TabHitTest() tests if a tab was hit, passing the window pointer
      back if that condition was fulfilled.
      
      :param integer `x`: the mouse `x` position;
      :param integer `y`: the mouse `y` position.


