.. include:: headings.inc .. _BookCtrlBase: ========================================================================================================================================== |phoenix_title| **BookCtrlBase** ========================================================================================================================================== A book control is a convenient way of displaying multiple pages of information, displayed one page at a time. wxWidgets has five variants of this control: - `Choicebook`: controlled by a :ref:`Choice` - `Listbook`: controlled by a :ref:`ListCtrl` - :ref:`Notebook`: uses a row of tabs - `Treebook`: controlled by a :ref:`TreeCtrl` - `Toolbook`: controlled by a :ref:`ToolBar` This abstract class is the parent of all these book controls, and provides their basic interface. This is a pure virtual class so you cannot allocate it directly. .. seealso:: :ref:`BookCtrl Overview ` | |class_hierarchy| Inheritance Diagram ===================================== Inheritance diagram for class **BookCtrlBase** .. raw:: html

Inheritance diagram of BookCtrlBase

| |sub_classes| Known Subclasses ============================== `AuiNotebook`, `Choicebook`, `Listbook`, :ref:`Notebook`, `Toolbook`, `Treebook` | |method_summary| Methods Summary ================================ ================================================================================ ================================================================================ :meth:`~BookCtrlBase.__init__` Default constructor. :meth:`~BookCtrlBase.AddPage` Adds a new page. :meth:`~BookCtrlBase.AdvanceSelection` Cycles through the tabs. :meth:`~BookCtrlBase.ChangeSelection` Changes the selection for the given page, returning the previous selection. :meth:`~BookCtrlBase.Create` Constructs the book control with the given parameters. :meth:`~BookCtrlBase.DeleteAllPages` Deletes all pages. :meth:`~BookCtrlBase.DeletePage` Deletes the specified page, and the associated window. :meth:`~BookCtrlBase.GetCurrentPage` Returns the currently selected page or ``None``. :meth:`~BookCtrlBase.GetPage` Returns the window at the given page position. :meth:`~BookCtrlBase.GetPageCount` Returns the number of pages in the control. :meth:`~BookCtrlBase.GetPageImage` Returns the image index for the given page. :meth:`~BookCtrlBase.GetPageText` Returns the string for the given page. :meth:`~BookCtrlBase.GetSelection` Returns the currently selected page, or ``NOT_FOUND`` if none was selected. :meth:`~BookCtrlBase.HitTest` Returns the index of the tab at the specified position or ``NOT_FOUND`` if none. :meth:`~BookCtrlBase.InsertPage` Inserts a new page at the specified position. :meth:`~BookCtrlBase.RemovePage` Deletes the specified page, without deleting the associated window. :meth:`~BookCtrlBase.SetPageImage` Sets the image index for the given page. :meth:`~BookCtrlBase.SetPageSize` Sets the width and height of the pages. :meth:`~BookCtrlBase.SetPageText` Sets the text for the given page. :meth:`~BookCtrlBase.SetSelection` Sets the selection for the given page, returning the previous selection. ================================================================================ ================================================================================ | |property_summary| Properties Summary ===================================== ================================================================================ ================================================================================ :attr:`~BookCtrlBase.CurrentPage` See :meth:`~BookCtrlBase.GetCurrentPage` :attr:`~BookCtrlBase.PageCount` See :meth:`~BookCtrlBase.GetPageCount` :attr:`~BookCtrlBase.Selection` See :meth:`~BookCtrlBase.GetSelection` and :meth:`~BookCtrlBase.SetSelection` ================================================================================ ================================================================================ | |api| Class API =============== .. class:: BookCtrlBase(Control, WithImages) A book control is a convenient way of displaying multiple pages of information, displayed one page at a time. **Possible constructors**:: BookCtrlBase() BookCtrlBase(parent, winid, pos=DefaultPosition, size=DefaultSize, style=0, name='') .. method:: __init__(self, *args, **kw) |overload| **Overloaded Implementations**: **~~~** **__init__** `(self)` Default constructor. **~~~** **__init__** `(self, parent, winid, pos=DefaultPosition, size=DefaultSize, style=0, name='')` Constructs the book control with the given parameters. See :meth:`Create` for two-step construction. :param `parent`: :type `parent`: Window :param `winid`: :type `winid`: int :param `pos`: :type `pos`: Point :param `size`: :type `size`: Size :param `style`: :type `style`: long :param `name`: :type `name`: string **~~~** .. method:: AddPage(self, page, text, select=False, imageId=NO_IMAGE) Adds a new page. The page must have the book control itself as the parent and must not have been added to this control previously. The call to this function may generate the page changing events. :param `page`: Specifies the new page. :type `page`: Window :param `text`: Specifies the text for the new page. :type `text`: string :param `select`: Specifies whether the page should be selected. :type `select`: bool :param `imageId`: Specifies the optional image index for the new page. :type `imageId`: int :rtype: `bool` :returns: ``True`` if successful, ``False`` otherwise. .. note:: Do not delete the page, it will be deleted by the book control. .. seealso:: :meth:`InsertPage` .. method:: AdvanceSelection(self, forward=True) Cycles through the tabs. The call to this function generates the page changing events. :param `forward`: :type `forward`: bool .. method:: ChangeSelection(self, page) Changes the selection for the given page, returning the previous selection. This function behaves as :meth:`SetSelection` but does `not` generate the page changing events. See :ref:`User Generated Events vs Programmatically Generated Events ` for more information. :param `page`: :type `page`: int :rtype: `int` .. method:: Create(self, parent, winid, pos=DefaultPosition, size=DefaultSize, style=0, name='') Constructs the book control with the given parameters. :param `parent`: :type `parent`: Window :param `winid`: :type `winid`: int :param `pos`: :type `pos`: Point :param `size`: :type `size`: Size :param `style`: :type `style`: long :param `name`: :type `name`: string :rtype: `bool` .. method:: DeleteAllPages(self) Deletes all pages. :rtype: `bool` .. method:: DeletePage(self, page) Deletes the specified page, and the associated window. The call to this function generates the page changing events. :param `page`: :type `page`: int :rtype: `bool` .. method:: GetCurrentPage(self) Returns the currently selected page or ``None``. :rtype: :ref:`Window` .. method:: GetPage(self, page) Returns the window at the given page position. :param `page`: :type `page`: int :rtype: :ref:`Window` .. method:: GetPageCount(self) Returns the number of pages in the control. :rtype: `int` .. method:: GetPageImage(self, nPage) Returns the image index for the given page. :param `nPage`: :type `nPage`: int :rtype: `int` .. method:: GetPageText(self, nPage) Returns the string for the given page. :param `nPage`: :type `nPage`: int :rtype: `string` .. method:: GetSelection(self) Returns the currently selected page, or ``NOT_FOUND`` if none was selected. Note that this method may return either the previously or newly selected page when called from the ``EVT_BOOKCTRL_PAGE_CHANGED`` handler depending on the platform and so :meth:`BookCtrlEvent.GetSelection` should be used instead in this case. :rtype: `int` .. method:: HitTest(self, pt) Returns the index of the tab at the specified position or ``NOT_FOUND`` if none. If `flags` parameter is not ``None``, the position of the point inside the tab is returned as well. :param `pt`: Specifies the point for the hit test. :type `pt`: Point Return more details about the point, see returned value is a combination of ``BK_HITTEST_NOWHERE``, ``BK_HITTEST_ONICON``, ``BK_HITTEST_ONLABEL``, ``BK_HITTEST_ONITEM``, ``BK_HITTEST_ONPAGE``. :rtype: `tuple` :returns: ( `int`, `flags` ) .. method:: InsertPage(self, index, page, text, select=False, imageId=NO_IMAGE) Inserts a new page at the specified position. :param `index`: Specifies the position for the new page. :type `index`: int :param `page`: Specifies the new page. :type `page`: Window :param `text`: Specifies the text for the new page. :type `text`: string :param `select`: Specifies whether the page should be selected. :type `select`: bool :param `imageId`: Specifies the optional image index for the new page. :type `imageId`: int :rtype: `bool` :returns: ``True`` if successful, ``False`` otherwise. .. note:: Do not delete the page, it will be deleted by the book control. .. seealso:: :meth:`AddPage` .. method:: RemovePage(self, page) Deletes the specified page, without deleting the associated window. :param `page`: :type `page`: int :rtype: `bool` .. method:: SetPageImage(self, page, image) Sets the image index for the given page. `image` is an index into the image list which was set with :meth:`SetImageList` . :param `page`: :type `page`: int :param `image`: :type `image`: int :rtype: `bool` .. method:: SetPageSize(self, size) Sets the width and height of the pages. :param `size`: :type `size`: Size .. note:: This method is currently not implemented for wxGTK. .. method:: SetPageText(self, page, text) Sets the text for the given page. :param `page`: :type `page`: int :param `text`: :type `text`: string :rtype: `bool` .. method:: SetSelection(self, page) Sets the selection for the given page, returning the previous selection. Notice that the call to this function generates the page changing events, use the :meth:`ChangeSelection` function if you don't want these events to be generated. :param `page`: :type `page`: int :rtype: `int` .. seealso:: :meth:`GetSelection` .. attribute:: CurrentPage See :meth:`~BookCtrlBase.GetCurrentPage` .. attribute:: PageCount See :meth:`~BookCtrlBase.GetPageCount` .. attribute:: Selection See :meth:`~BookCtrlBase.GetSelection` and :meth:`~BookCtrlBase.SetSelection`