Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

BaseButton

Inherits: Control < CanvasItem < Node < Object

Inherited By: Button, LinkButton, TextureButton

Abstract base class for GUI buttons.

Description

BaseButton is an abstract base class for GUI buttons. It doesn't display anything by itself.

Properties

ActionMode

action_mode

1

ButtonGroup

button_group

BitField<MouseButtonMask>

button_mask

1

bool

button_pressed

false

bool

disabled

false

FocusMode

focus_mode

2 (overrides Control)

bool

keep_pressed_outside

false

Shortcut

shortcut

bool

shortcut_feedback

true

bool

shortcut_in_tooltip

true

bool

toggle_mode

false

Methods

void

_pressed ( ) virtual

void

_toggled ( bool toggled_on ) virtual

DrawMode

get_draw_mode ( ) const

bool

is_hovered ( ) const

void

set_pressed_no_signal ( bool pressed )


Signals

button_down ( )

Emitted when the button starts being held down.


button_up ( )

Emitted when the button stops being held down.


pressed ( )

Emitted when the button is toggled or pressed. This is on button_down if action_mode is ACTION_MODE_BUTTON_PRESS and on button_up otherwise.

If you need to know the button's pressed state (and toggle_mode is active), use toggled instead.


toggled ( bool toggled_on )

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


Enumerations

enum DrawMode:

DrawMode DRAW_NORMAL = 0

The normal state (i.e. not pressed, not hovered, not toggled and enabled) of buttons.

DrawMode DRAW_PRESSED = 1

The state of buttons are pressed.

DrawMode DRAW_HOVER = 2

The state of buttons are hovered.

DrawMode DRAW_DISABLED = 3

The state of buttons are disabled.

DrawMode DRAW_HOVER_PRESSED = 4

The state of buttons are both hovered and pressed.


enum ActionMode:

ActionMode ACTION_MODE_BUTTON_PRESS = 0

Require just a press to consider the button clicked.

ActionMode ACTION_MODE_BUTTON_RELEASE = 1

Require a press and a subsequent release before considering the button clicked.


Property Descriptions

ActionMode action_mode = 1

Determines when the button is considered clicked, one of the ActionMode constants.


ButtonGroup button_group

The ButtonGroup associated with the button. Not to be confused with node groups.

Note: The button will be configured as a radio button if a ButtonGroup is assigned to it.


BitField<MouseButtonMask> button_mask = 1