:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.5/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.5/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. 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. Properties ---------- +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :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`` | +-----------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ Methods ------- +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | 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 **)** | +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ Signals ------- .. _class_BaseButton_signal_button_down: - **button_down** **(** **)** Emitted when the button starts being held down. ---- .. _class_BaseButton_signal_button_up: - **button_up** **(** **)** Emitted when the button stops being held down. ---- .. _class_BaseButton_signal_pressed: - **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. ---- .. _class_BaseButton_signal_toggled: - **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. Enumerations ------------ .. _enum_BaseButton_DrawMode: .. _class_BaseButton_constant_DRAW_NORMAL: .. _class_BaseButton_constant_DRAW_PRESSED: .. _class_BaseButton_constant_DRAW_HOVER: .. _class_BaseButton_constant_DRAW_DISABLED: .. _class_BaseButton_constant_DRAW_HOVER_PRESSED: 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. - **DRAW_HOVER_PRESSED** = **4** --- The state of buttons are both hovered and pressed. ---- .. _enum_BaseButton_ActionMode: .. _class_BaseButton_constant_ACTION_MODE_BUTTON_PRESS: .. _class_BaseButton_constant_ACTION_MODE_BUTTON_RELEASE: 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. Property Descriptions --------------------- .. _class_BaseButton_property_action_mode: - :ref:`ActionMode` **action_mode** +-----------+------------------------+ | *Default* | ``1`` | +-----------+------------------------+ | *Setter* | set_action_mode(value) | +-----------+------------------------+ | *Getter* | get_action_mode() | +-----------+------------------------+ Determines when the button is considered clicked, one of the :ref:`ActionMode` constants. ---- .. _class_BaseButton_property_button_mask: - :ref:`int` **button_mask** +-----------+------------------------+ | *Default* | ``1`` | +-----------+------------------------+ | *Setter* | set_button_mask(value) | +-----------+------------------------+ | *Getter* | 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``. ---- .. _class_BaseButton_property_disabled: - :ref:`bool` **disabled** +-----------+---------------------+ | *Default* | ``false`` | +-----------+---------------------+ | *Setter* | set_disabled(value) | +-----------+---------------------+ | *Getter* | is_disabled() | +-----------+---------------------+ If ``true``, the button is in disabled state and can't be clicked or toggled. ---- .. _class_BaseButton_property_enabled_focus_mode: - :ref:`FocusMode` **enabled_focus_mode** +-----------+-------------------------------+ | *Default* | ``2`` | +-----------+-------------------------------+ | *Setter* | set_enabled_focus_mode(value) | +-----------+-------------------------------+ | *Getter* | 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. ---- .. _class_BaseButton_property_group: - :ref:`ButtonGroup` **group** +----------+-------------------------+ | *Setter* | set_button_group(value) | +----------+-------------------------+ | *Getter* | get_button_group() | +----------+-------------------------+ :ref:`ButtonGroup` associated to the button. ---- .. _class_BaseButton_property_keep_pressed_outside: - :ref:`bool` **keep_pressed_outside** +-----------+---------------------------------+ | *Default* | ``false`` | +-----------+---------------------------------+ | *Setter* | set_keep_pressed_outside(value) | +-----------+---------------------------------+ | *Getter* | 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. ---- .. _class_BaseButton_property_pressed: - :ref:`bool` **pressed** +-----------+--------------------+ | *Default* | ``false`` | +-----------+--------------------+ | *Setter* | set_pressed(value) | +-----------+--------------------+ | *Getter* | 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`. ---- .. _class_BaseButton_property_shortcut: - :ref:`ShortCut` **shortcut** +----------+---------------------+ | *Setter* | set_shortcut(value) | +----------+---------------------+ | *Getter* | get_shortcut() | +----------+---------------------+ :ref:`ShortCut` associated to the button. ---- .. _class_BaseButton_property_shortcut_in_tooltip: - :ref:`bool` **shortcut_in_tooltip** +-----------+----------------------------------+ | *Default* | ``true`` | +-----------+----------------------------------+ | *Setter* | set_shortcut_in_tooltip(value) | +-----------+----------------------------------+ | *Getter* | is_shortcut_in_tooltip_enabled() | +-----------+----------------------------------+ If ``true``, the button will add information about its shortcut in the tooltip. ---- .. _class_BaseButton_property_toggle_mode: - :ref:`bool` **toggle_mode** +-----------+------------------------+ | *Default* | ``false`` | +-----------+------------------------+ | *Setter* | set_toggle_mode(value) | +-----------+------------------------+ | *Getter* | 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. Method Descriptions ------------------- .. _class_BaseButton_method__pressed: - 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. ---- .. _class_BaseButton_method__toggled: - void **_toggled** **(** :ref:`bool` button_pressed **)** |virtual| Called when the button is toggled (only if :ref:`toggle_mode` is active). ---- .. _class_BaseButton_method_get_draw_mode: - :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. ---- .. _class_BaseButton_method_is_hovered: - :ref:`bool` **is_hovered** **(** **)** |const| Returns ``true`` if the mouse has entered the button and has not left it yet. ---- .. _class_BaseButton_method_set_pressed_no_signal: - 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.)`