Built-in Widget Types
=====================

A number of widget types are defined in the :py:mod:`UI4.Widgets` Python
package, and are are used in various places in Katana's user interface.

.. note::

    The functions, classes, and modules within the :py:mod:`UI4` Python package
    are continuously being improved. As such, they may be less stable to use in
    custom code, compared to other APIs.

.. rubric:: Widget Type Categories

.. toctree::
    :maxdepth: 1

    BaseWidgets.rst
    CatalogWidgets.rst
    FilterablePopupButtons.rst
    IconLabelFrames.rst
    Labels.rst
    PopdownLabels.rst
    SortableTreeWidgets.rst
    ToolbarButtons.rst


.. rubric:: Widget Type Gallery

.. list-table::
  :header-rows: 1
  :widths: 40 60
  :class: example-screenshots

  - * Class
    * Example Screenshot

  - * :py:class:`~UI4.Widgets.AssetIDLabel`
    * :kat:screenshot:`AssetIDLabel`

  - * :py:class:`~UI4.Widgets.AttributeDropLabel`
    * :kat:screenshot:`AttributeDropLabel`

  - * :py:class:`~UI4.Widgets.AttributeEditorIndicatorLabel`
    * :kat:screenshot:`AttributeEditorIndicatorLabel`

  - * :py:class:`~UI4.Widgets.AttributeHistoryTreeWidget`
    * :kat:screenshot:`AttributeHistoryTreeWidget`

  - * :py:class:`~UI4.Widgets.AutoKeyAllToggle`
    * :kat:screenshot:`AutoKeyAllToggle`

  - * :py:class:`~UI4.Widgets.CameraPickerButton`
    * :kat:screenshot:`CameraPickerButton`

  - * :py:class:`~UI4.Widgets.CatalogChannelsWidget`
    * :kat:screenshot:`CatalogChannelsWidget`

  - * :py:class:`~UI4.Widgets.CatalogFrameRangeWidget`
    * :kat:screenshot:`CatalogFrameRangeWidget`

  - * :py:class:`~UI4.Widgets.CatalogHistogramWidget`
    * :kat:screenshot:`CatalogHistogramWidget`

  - * :py:class:`~UI4.Widgets.CatalogItemWidget`
    * :kat:screenshot:`CatalogItemWidget`

  - * :py:class:`~UI4.Widgets.CatalogLockWidget`
    * :kat:screenshot:`CatalogLockWidget`

  - * :py:class:`~UI4.Widgets.CatalogNameWidget`
    * :kat:screenshot:`CatalogNameWidget`

  - * :py:class:`~UI4.Widgets.CatalogProgressWidget`
    * :kat:screenshot:`CatalogProgressWidget`

  - * :py:class:`~UI4.Widgets.CatalogRenderLogWidget`
    * :kat:screenshot:`CatalogRenderLogWidget`

  - * :py:class:`~UI4.Widgets.CatalogRenderGlobalsStatsWidget`
    * :kat:screenshot:`CatalogRenderGlobalsStatsWidget`

  - * :py:class:`~UI4.Widgets.CatalogRenderTaskByNameStatsWidget`
    * :kat:screenshot:`CatalogRenderTaskByNameStatsWidget`

  - * :py:class:`~UI4.Widgets.CatalogRenderTaskByTypeStatsWidget`
    * :kat:screenshot:`CatalogRenderTaskByTypeStatsWidget`

  - * :py:class:`~UI4.Widgets.CatalogResolutionWidget`
    * :kat:screenshot:`CatalogResolutionWidget`

  - * :py:class:`~UI4.Widgets.CatalogStopWidget`
    * :kat:screenshot:`CatalogStopWidget`

  - * :py:class:`~UI4.Widgets.CatalogThumbnailWidget`
    * :kat:screenshot:`CatalogThumbnailWidget`

  - * :py:class:`~UI4.Widgets.IconLabelFrame`
    * :kat:screenshot:`IconLabelFrame`

  - * :py:class:`~UI4.Widgets.IndicatorLabelFrame`
    * :kat:screenshot:`IndicatorLabelFrame`

  - * :py:class:`~UI4.Widgets.LabeledToolbarButton`
    * :kat:screenshot:`LabeledToolbarButton`

  - * :py:class:`~UI4.Widgets.ProgressWidget`
    * :kat:screenshot:`ProgressWidget`

  - * :py:class:`~UI4.Widgets.ProxyResCombo`
    * :kat:screenshot:`ProxyResCombo`

  - * :py:class:`~UI4.Widgets.RoiCombo`
    * :kat:screenshot:`RoiCombo`

  - * :py:class:`~UI4.Widgets.ToolbarButton`
    * :kat:screenshot:`ToolbarButton`

  - * :py:class:`~UI4.Widgets.ViewIndicatorLabel`
    * :kat:screenshot:`ViewIndicatorLabel`