:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/BaseButton.xml. .. _class_BaseButton: BaseButton ========== **Inherits:** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` **Inherited By:** :ref:`Button`, :ref:`LinkButton`, :ref:`TextureButton` Base class for different kinds of buttons. .. rst-class:: classref-introduction-group 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. .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`ActionMode` | :ref:`action_mode` | ``1`` | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`int` | :ref:`button_mask` | ``1`` | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`disabled` | ``false`` | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`FocusMode` | :ref:`enabled_focus_mode` | ``2`` | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`FocusMode` | focus_mode | ``2`` (overrides :ref:`Control`) | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`ButtonGroup` | :ref:`group` | | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`keep_pressed_outside` | ``false`` | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`pressed` | ``false`` | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`ShortCut` | :ref:`shortcut` | | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`shortcut_in_tooltip` | ``true`` | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`toggle_mode` | ``false`` | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_pressed` **(** **)** |virtual| | +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_toggled` **(** :ref:`bool` button_pressed **)** |virtual| | +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | :ref:`DrawMode` | :ref:`get_draw_mode` **(** **)** |const| | +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_hovered` **(** **)** |const| | +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_pressed_no_signal` **(** :ref:`bool` pressed **)** | +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Signals ------- .. _class_BaseButton_signal_button_down: .. rst-class:: classref-signal **button_down** **(** **)** Emitted when the button starts being held down. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_signal_button_up: .. rst-class:: classref-signal **button_up** **(** **)** Emitted when the button stops being held down. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_signal_pressed: .. rst-class:: classref-signal **pressed** **(** **)** Emitted when the button is toggled or pressed. This is on :ref:`button_down` if :ref:`action_mode` is :ref:`ACTION_MODE_BUTTON_PRESS` and on :ref:`button_up` otherwise. If you need to know the button's pressed state (and :ref:`toggle_mode` is active), use :ref:`toggled` instead. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_signal_toggled: .. rst-class:: classref-signal **toggled** **(** :ref:`bool` button_pressed **)** Emitted when the button was just toggled between pressed and normal states (only if :ref:`toggle_mode` is active). The new state is contained in the ``button_pressed`` argument. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_BaseButton_DrawMode: .. rst-class:: classref-enumeration enum **DrawMode**: .. _class_BaseButton_constant_DRAW_NORMAL: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_NORMAL** = ``0`` The normal state (i.e. not pressed, not hovered, not toggled and enabled) of buttons. .. _class_BaseButton_constant_DRAW_PRESSED: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_PRESSED** = ``1`` The state of buttons are pressed. .. _class_BaseButton_constant_DRAW_HOVER: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_HOVER** = ``2`` The state of buttons are hovered. .. _class_BaseButton_constant_DRAW_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_DISABLED** = ``3`` The state of buttons are disabled. .. _class_BaseButton_constant_DRAW_HOVER_PRESSED: .. rst-class:: classref-enumeration-constant :ref:`DrawMode` **DRAW_HOVER_PRESSED** = ``4`` The state of buttons are both hovered and pressed. .. rst-class:: classref-item-separator ---- .. _enum_BaseButton_ActionMode: .. rst-class:: classref-enumeration enum **ActionMode**: .. _class_BaseButton_constant_ACTION_MODE_BUTTON_PRESS: .. rst-class:: classref-enumeration-constant :ref:`ActionMode` **ACTION_MODE_BUTTON_PRESS** = ``0`` Require just a press to consider the button clicked. .. _class_BaseButton_constant_ACTION_MODE_BUTTON_RELEASE: .. rst-class:: classref-enumeration-constant :ref:`ActionMode` **ACTION_MODE_BUTTON_RELEASE** = ``1`` Require a press and a subsequent release before considering the button clicked. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_BaseButton_property_action_mode: .. rst-class:: classref-property :ref:`ActionMode` **action_mode** = ``1`` .. rst-class:: classref-property-setget - void **set_action_mode** **(** :ref:`ActionMode` value **)** - :ref:`ActionMode` **get_action_mode** **(** **)** Determines when the button is considered clicked, one of the :ref:`ActionMode` constants. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_button_mask: .. rst-class:: classref-property :ref:`int` **button_mask** = ``1`` .. rst-class:: classref-property-setget - void **set_button_mask** **(** :ref:`int` value **)** - :ref:`int` **get_button_mask** **(** **)** Binary mask to choose which mouse buttons this button will respond to. To allow both left-click and right-click, use ``BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT``. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_disabled: .. rst-class:: classref-property :ref:`bool` **disabled** = ``false`` .. rst-class:: classref-property-setget - void **set_disabled** **(** :ref:`bool` value **)** - :ref:`bool` **is_disabled** **(** **)** If ``true``, the button is in disabled state and can't be clicked or toggled. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_enabled_focus_mode: .. rst-class:: classref-property :ref:`FocusMode` **enabled_focus_mode** = ``2`` .. rst-class:: classref-property-setget - void **set_enabled_focus_mode** **(** :ref:`FocusMode` value **)** - :ref:`FocusMode` **get_enabled_focus_mode** **(** **)** *Deprecated.* This property has been deprecated due to redundancy and will be removed in Godot 4.0. This property no longer has any effect when set. Please use :ref:`Control.focus_mode` instead. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_group: .. rst-class:: classref-property :ref:`ButtonGroup` **group** .. rst-class:: classref-property-setget - void **set_button_group** **(** :ref:`ButtonGroup` value **)** - :ref:`ButtonGroup` **get_button_group** **(** **)** :ref:`ButtonGroup` associated to the button. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_keep_pressed_outside: .. rst-class:: classref-property :ref:`bool` **keep_pressed_outside** = ``false`` .. rst-class:: classref-property-setget - void **set_keep_pressed_outside** **(** :ref:`bool` value **)** - :ref:`bool` **is_keep_pressed_outside** **(** **)** If ``true``, the button stays pressed when moving the cursor outside the button while pressing it. \ **Note:** This property only affects the button's visual appearance. Signals will be emitted at the same moment regardless of this property's value. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_pressed: .. rst-class:: classref-property :ref:`bool` **pressed** = ``false`` .. rst-class:: classref-property-setget - void **set_pressed** **(** :ref:`bool` value **)** - :ref:`bool` **is_pressed** **(** **)** If ``true``, the button's state is pressed. Means the button is pressed down or toggled (if :ref:`toggle_mode` is active). Only works if :ref:`toggle_mode` is ``true``. \ **Note:** Setting :ref:`pressed` will result in :ref:`toggled` to be emitted. If you want to change the pressed state without emitting that signal, use :ref:`set_pressed_no_signal`. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_shortcut: .. rst-class:: classref-property :ref:`ShortCut` **shortcut** .. rst-class:: classref-property-setget - void **set_shortcut** **(** :ref:`ShortCut` value **)** - :ref:`ShortCut` **get_shortcut** **(** **)** :ref:`ShortCut` associated to the button. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_shortcut_in_tooltip: .. rst-class:: classref-property :ref:`bool` **shortcut_in_tooltip** = ``true`` .. rst-class:: classref-property-setget - void **set_shortcut_in_tooltip** **(** :ref:`bool` value **)** - :ref:`bool` **is_shortcut_in_tooltip_enabled** **(** **)** If ``true``, the button will add information about its shortcut in the tooltip. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_toggle_mode: .. rst-class:: classref-property :ref:`bool` **toggle_mode** = ``false`` .. rst-class:: classref-property-setget - void **set_toggle_mode** **(** :ref:`bool` value **)** - :ref:`bool` **is_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. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_BaseButton_method__pressed: .. rst-class:: classref-method void **_pressed** **(** **)** |virtual| Called when the button is pressed. If you need to know the button's pressed state (and :ref:`toggle_mode` is active), use :ref:`_toggled` instead. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_method__toggled: .. rst-class:: classref-method void **_toggled** **(** :ref:`bool` button_pressed **)** |virtual| Called when the button is toggled (only if :ref:`toggle_mode` is active). .. rst-class:: classref-item-separator ---- .. _class_BaseButton_method_get_draw_mode: .. rst-class:: classref-method :ref:`DrawMode` **get_draw_mode** **(** **)** |const| Returns 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 :ref:`DrawMode` enum. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_method_is_hovered: .. rst-class:: classref-method :ref:`bool` **is_hovered** **(** **)** |const| Returns ``true`` if the mouse has entered the button and has not left it yet. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_method_set_pressed_no_signal: .. rst-class:: classref-method void **set_pressed_no_signal** **(** :ref:`bool` pressed **)** Changes the :ref:`pressed` state of the button, without emitting :ref:`toggled`. Use when you just want to change the state of the button without sending the pressed event (e.g. when initializing scene). Only works if :ref:`toggle_mode` is ``true``. \ **Note:** This method doesn't unpress other buttons in its button :ref:`group`. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`