Inherits: Control < CanvasItem < Node < Object

Inherited By: LinkButton, TextureButton, Button

Category: Core

Brief Description

Base class for different kinds of buttons.

Member Functions

void _pressed ( ) virtual
void _toggled ( bool button_pressed ) virtual
int get_draw_mode ( ) const
bool is_hovered ( ) const


  • button_down ( )

Emitted when the button starts being held down.

  • button_up ( )

Emitted when the button stops being held down.

  • 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).

  • toggled ( 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

  • ActionMode action_mode - Determines when the button is considered clicked, one of the ACTION_MODE_* constants.
  • bool disabled - If true the button is in disabled state and can’t be clicked or toggled.
  • FocusMode enabled_focus_mode - Focus access mode to use when switching between enabled/disabled (see Control.set_focus_mode and disabled).
  • ButtonGroup group - ButtonGroup associated to the button.
  • bool pressed - If true the button’s state is pressed. Means the button is pressed down or toggled (if toggle_mode is active).
  • ShortCut shortcut - Shortcut associated to the button.
  • 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.


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 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.


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

  • void _pressed ( ) virtual

Called when button is pressed.

  • void _toggled ( bool button_pressed ) virtual

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

  • 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.

  • bool is_hovered ( ) const

Return true if mouse entered the button before it exit.