.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
.. DO NOT EDIT THIS FILE, but the BaseButton.xml source instead.
.. The source is found in doc/classes or modules/<name>/doc_classes.

.. _class_BaseButton:

BaseButton
==========

**Inherits:** :ref:`Control<class_control>` **<** :ref:`CanvasItem<class_canvasitem>` **<** :ref:`Node<class_node>` **<** :ref:`Object<class_object>`

**Inherited By:** :ref:`LinkButton<class_linkbutton>`, :ref:`TextureButton<class_texturebutton>`, :ref:`Button<class_button>`

**Category:** Core

Brief Description
-----------------

Base class for different kinds of buttons.

Member Functions
----------------

+--------------------------+-------------------------------------------------------------------------------------------------------+
| void                     | :ref:`_pressed<class_BaseButton__pressed>` **(** **)** virtual                                        |
+--------------------------+-------------------------------------------------------------------------------------------------------+
| void                     | :ref:`_toggled<class_BaseButton__toggled>` **(** :ref:`bool<class_bool>` button_pressed **)** virtual |
+--------------------------+-------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>`    | :ref:`get_draw_mode<class_BaseButton_get_draw_mode>` **(** **)** const                                |
+--------------------------+-------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>`  | :ref:`is_hovered<class_BaseButton_is_hovered>` **(** **)** const                                      |
+--------------------------+-------------------------------------------------------------------------------------------------------+

Signals
-------

.. _class_BaseButton_button_down:

- **button_down** **(** **)**

Emitted when the button starts being held down.

.. _class_BaseButton_button_up:

- **button_up** **(** **)**

Emitted when the button stops being held down.

.. _class_BaseButton_pressed:

- **pressed** **(** **)**

This signal is emitted every time the button is toggled or pressed (i.e. activated, so on ``button_down`` if "Click on press" is active and on ``button_up`` otherwise).

.. _class_BaseButton_toggled:

- **toggled** **(** :ref:`bool<class_bool>` button_pressed **)**

This signal is emitted when the button was just toggled between pressed and normal states (only if toggle_mode is active). The new state is contained in the *pressed* argument.


Member Variables
----------------

  .. _class_BaseButton_action_mode:

- :ref:`ActionMode<enum_basebutton_actionmode>` **action_mode** - Determines when the button is considered clicked, one of the ACTION_MODE\_\* constants.

  .. _class_BaseButton_disabled:

- :ref:`bool<class_bool>` **disabled** - If ``true`` the button is in disabled state and can't be clicked or toggled.

  .. _class_BaseButton_enabled_focus_mode:

- :ref:`FocusMode<enum_control_focusmode>` **enabled_focus_mode** - Focus access mode to use when switching between enabled/disabled (see :ref:`Control.set_focus_mode<class_Control_set_focus_mode>` and :ref:`disabled<class_BaseButton_disabled>`).

  .. _class_BaseButton_group:

- :ref:`ButtonGroup<class_buttongroup>` **group** - :ref:`ButtonGroup<class_buttongroup>` associated to the button.

  .. _class_BaseButton_pressed:

- :ref:`bool<class_bool>` **pressed** - If ``true`` the button's state is pressed. Means the button is pressed down or toggled (if toggle_mode is active).

  .. _class_BaseButton_shortcut:

- :ref:`ShortCut<class_shortcut>` **shortcut** - Shortcut associated to the button.

  .. _class_BaseButton_toggle_mode:

- :ref:`bool<class_bool>` **toggle_mode** - If ``true`` the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.


Enums
-----

  .. _enum_BaseButton_ActionMode:

enum **ActionMode**

- **ACTION_MODE_BUTTON_PRESS** = **0** --- Require just a press to consider the button clicked.
- **ACTION_MODE_BUTTON_RELEASE** = **1** --- Require a press and a subsequent release before considering the button clicked.

  .. _enum_BaseButton_DrawMode:

enum **DrawMode**

- **DRAW_NORMAL** = **0** --- The normal state (i.e. not pressed, not hovered, not toggled and enabled) of buttons.
- **DRAW_PRESSED** = **1** --- The state of buttons are pressed.
- **DRAW_HOVER** = **2** --- The state of buttons are hovered.
- **DRAW_DISABLED** = **3** --- The state of buttons are disabled.


Description
-----------

BaseButton is the abstract base class for buttons, so it shouldn't be used directly (it doesn't display anything). Other types of buttons inherit from it.

Member Function Description
---------------------------

.. _class_BaseButton__pressed:

- void **_pressed** **(** **)** virtual

Called when button is pressed.

.. _class_BaseButton__toggled:

- void **_toggled** **(** :ref:`bool<class_bool>` button_pressed **)** virtual

Called when button is toggled (only if toggle_mode is active).

.. _class_BaseButton_get_draw_mode:

- :ref:`int<class_int>` **get_draw_mode** **(** **)** const

Return the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to "draw" signal. The visual state of the button is defined by the DRAW\_\* enum.

.. _class_BaseButton_is_hovered:

- :ref:`bool<class_bool>` **is_hovered** **(** **)** const

Return true if mouse entered the button before it exit.


