:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/BaseButton.xml. .. _class_BaseButton: BaseButton ========== **Inherits:** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` **Inherited By:** :ref:`Button`, :ref:`LinkButton`, :ref:`TextureButton` Abstract base class for GUI buttons. .. rst-class:: classref-introduction-group Description ----------- **BaseButton** is an abstract base class for GUI buttons. It doesn't display anything by itself. .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`ActionMode` | :ref:`action_mode` | ``1`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`ButtonGroup` | :ref:`button_group` | | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | |bitfield|\[:ref:`MouseButtonMask`\] | :ref:`button_mask` | ``1`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`button_pressed` | ``false`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`disabled` | ``false`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`FocusMode` | focus_mode | ``2`` (overrides :ref:`Control`) | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`keep_pressed_outside` | ``false`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`Shortcut` | :ref:`shortcut` | | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :ref:`bool` | :ref:`shortcut_feedback` | ``true`` | +-------------------------------------------------------------------------+-----------------------------------------------------------------------------+---------------------------------------------------------------------+ | :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`\ (\ toggled_on\: :ref:`bool`\ ) |virtual| | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | :ref:`DrawMode` | :ref:`get_draw_mode`\ (\ ) |const| | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_hovered`\ (\ ) |const| | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_pressed_no_signal`\ (\ pressed\: :ref:`bool`\ ) | +-------------------------------------------+----------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Signals ------- .. _class_BaseButton_signal_button_down: .. rst-class:: classref-signal **button_down**\ (\ ) :ref:`🔗` Emitted when the button starts being held down. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_signal_button_up: .. rst-class:: classref-signal **button_up**\ (\ ) :ref:`🔗` Emitted when the button stops being held down. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_signal_pressed: .. rst-class:: classref-signal **pressed**\ (\ ) :ref:`🔗` 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**\ (\ toggled_on\: :ref:`bool`\ ) :ref:`🔗` 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 ``toggled_on`` argument. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_BaseButton_DrawMode: .. rst-class:: classref-enumeration enum **DrawMode**: :ref:`🔗` .. _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**: :ref:`🔗` .. _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`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_action_mode**\ (\ value\: :ref:`ActionMode`\ ) - :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_group: .. rst-class:: classref-property :ref:`ButtonGroup` **button_group** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_button_group**\ (\ value\: :ref:`ButtonGroup`\ ) - :ref:`ButtonGroup` **get_button_group**\ (\ ) The :ref:`ButtonGroup` associated with the button. Not to be confused with node groups. \ **Note:** The button will be configured as a radio button if a :ref:`ButtonGroup` is assigned to it. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_button_mask: .. rst-class:: classref-property |bitfield|\[:ref:`MouseButtonMask`\] **button_mask** = ``1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_button_mask**\ (\ value\: |bitfield|\[:ref:`MouseButtonMask`\]\ ) - |bitfield|\[:ref:`MouseButtonMask`\] **get_button_mask**\ (\ ) Binary mask to choose which mouse buttons this button will respond to. To allow both left-click and right-click, use ``MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT``. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_button_pressed: .. rst-class:: classref-property :ref:`bool` **button_pressed** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_pressed**\ (\ value\: :ref:`bool`\ ) - :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:** Changing the value of :ref:`button_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_disabled: .. rst-class:: classref-property :ref:`bool` **disabled** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_disabled**\ (\ value\: :ref:`bool`\ ) - :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_keep_pressed_outside: .. rst-class:: classref-property :ref:`bool` **keep_pressed_outside** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_keep_pressed_outside**\ (\ value\: :ref:`bool`\ ) - :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_shortcut: .. rst-class:: classref-property :ref:`Shortcut` **shortcut** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_shortcut**\ (\ value\: :ref:`Shortcut`\ ) - :ref:`Shortcut` **get_shortcut**\ (\ ) :ref:`Shortcut` associated to the button. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_shortcut_feedback: .. rst-class:: classref-property :ref:`bool` **shortcut_feedback** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_shortcut_feedback**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_shortcut_feedback**\ (\ ) If ``true``, the button will highlight for a short amount of time when its shortcut is activated. If ``false`` and :ref:`toggle_mode` is ``false``, the shortcut will activate without any visual feedback. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_shortcut_in_tooltip: .. rst-class:: classref-property :ref:`bool` **shortcut_in_tooltip** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_shortcut_in_tooltip**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_shortcut_in_tooltip_enabled**\ (\ ) If ``true``, the button will add information about its shortcut in the tooltip. \ **Note:** This property does nothing when the tooltip control is customized using :ref:`Control._make_custom_tooltip`. .. rst-class:: classref-item-separator ---- .. _class_BaseButton_property_toggle_mode: .. rst-class:: classref-property :ref:`bool` **toggle_mode** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_toggle_mode**\ (\ value\: :ref:`bool`\ ) - :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_private_method__pressed: .. rst-class:: classref-method |void| **_pressed**\ (\ ) |virtual| :ref:`🔗` 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_private_method__toggled: .. rst-class:: classref-method |void| **_toggled**\ (\ toggled_on\: :ref:`bool`\ ) |virtual| :ref:`🔗` 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| :ref:`🔗` 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| :ref:`🔗` 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**\ (\ pressed\: :ref:`bool`\ ) :ref:`🔗` Changes the :ref:`button_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 :ref:`button_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.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` .. |void| replace:: :abbr:`void (No return value.)`