===================
TabWidget (hwx.gui)
===================

NoteBook with tabs.

A NoteBook presents multiple mutually exclusive panes of content in the same
area. It includes a tabbed control area with 'text' and a content area.

Inherits:
  - :ref:`Widget (hwx.gui)`

----------
Properties
----------

  +----------+----------+
  | current_ | flat_    |
  +----------+----------+

--------------
Public Methods
--------------

  +--------------------------------------------------------+
  | addChildren_ (self, children)                          |
  +--------------------------------------------------------+
  | addTab_ (self, child, text='', icon=None)              |
  +--------------------------------------------------------+
  | destroy_ (self)                                        |
  +--------------------------------------------------------+
  | enableGlobalActions_ (self, enable)                    |
  +--------------------------------------------------------+
  | getMousePosition_ (self)                               |
  +--------------------------------------------------------+
  | getRelativeMousePosition_ (self)                       |
  +--------------------------------------------------------+
  | hide_ (self)                                           |
  +--------------------------------------------------------+
  | insertTab_ (self, child, text='', icon=None, index=-1) |
  +--------------------------------------------------------+
  | saveAsPng_ (self, fname)                               |
  +--------------------------------------------------------+
  | setF1HelpTopic_ (self, helptopic)                      |
  +--------------------------------------------------------+
  | setProperties_ (self, kwds)                            |
  +--------------------------------------------------------+
  | show_ (self)                                           |
  +--------------------------------------------------------+

----------------
Property Details
----------------

.. _current:
.. property:: current

The current tab.

.. _flat:
.. property:: flat

Gives the TabWidget a borderless appearance.

--------------
Method Details
--------------

.. _addChildren:
.. method:: addChildren(self, children)

Add child widgets/layouts into this widget.

Widget children get layed out using a VBoxLayout.

Typically, you'll pass the parent/children into the constructor instead of
calling this function directly.

:param children:
:type children: list[Widget] | Layout


.. _addTab:
.. method:: addTab(self, child, text='', icon=None)

Inserts a new tab with the specified child.

:param child: The widget to be added to the tab.
:type child: Widget
:param text: The text to be displayed on the tab.
:type text: str
:param icon: The icon to be shown in the tab.
:type icon: str


.. _destroy:
.. method:: destroy(self)

Deletes this and all its children.

.. _enableGlobalActions:
.. method:: enableGlobalActions(self, enable)

Sets the state of Global Actions.

Disable the global actions to get key events.

:param enable: Determines whether to enable or disable global actions.
:type enable: bool


.. _getMousePosition:
.. method:: getMousePosition(self)

Returns the mouse position.

.. _getRelativeMousePosition:
.. method:: getRelativeMousePosition(self)

Returns the mouse position relative to this widget.

.. _hide:
.. method:: hide(self)

Hides the widget.

.. _insertTab:
.. method:: insertTab(self, child, text='', icon=None, index=-1)

Inserts a new tab with the specified child.

:param child: The widget to be added to the tab.
:type child: Widget
:param text: The text to be displayed on the tab.
:type text: str
:param icon: The icon to be shown in the tab.
:type icon: str
:param index: The index where to insert the tab.
:type index: int


.. _saveAsPng:
.. method:: saveAsPng(self, fname)

Saves the widget as a .png file.

:param fname: The file name for the .png
:type fname: str

:returns: True if it was saved succesfully, False otherwise.
:rtype: bool


.. _setF1HelpTopic:
.. method:: setF1HelpTopic(self, helptopic)

Popup web-browser helps when the user hits F1 when over this.

:param helptopic: Topic name user needs help in.
:type helptopic: str


.. _setProperties:
.. method:: setProperties(self, kwds)

Internal method called from constructors.

.. _show:
.. method:: show(self)

Shows the widget.