======
Mixins
======

A couple of mixin classes were created to help us make it easy to create new
symbol widgets and ensure that the code has an uniform behavior.


Interlock
---------

.. autoclass:: pcdswidgets.vacuum.mixins.InterlockMixin
   :members:

Error
-----

.. autoclass:: pcdswidgets.vacuum.mixins.ErrorMixin
   :members:


State
-----

.. autoclass:: pcdswidgets.vacuum.mixins.StateMixin
   :members:



State - Open/Close
-------------------

.. autoclass:: pcdswidgets.vacuum.mixins.OpenCloseStateMixin
   :members:

Button Control
--------------
.. autoclass:: pcdswidgets.vacuum.mixins.ButtonControl
   :members:

Label Control
-------------
.. autoclass:: pcdswidgets.vacuum.mixins.LabelControl
   :members:


Button & Label Control
----------------------
.. autoclass:: pcdswidgets.vacuum.mixins.ButtonLabelControl
   :members:


Multiple Button Control
-----------------------
.. autoclass:: pcdswidgets.vacuum.mixins.MultipleButtonControl
   :members:
