Class reference

BaseButton

Inherits Control

Abstract base class for GUI buttons.

Description

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

Properties

int action_mode = 1

Determines when the button is considered clicked.

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.

int button_mask = 1

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.

bool button_pressed = false

If true, the button's state is pressed. Means the button is pressed down or toggled (if toggle_mode is active). Only works if toggle_mode is true. Note: Changing the value of button_pressed will result in toggled to be emitted. If you want to change the pressed state without emitting that signal, use set_pressed_no_signal().

bool disabled = false

If true, the button is in disabled state and can't be clicked or toggled. Note: If the button is disabled while held down, button_up will be emitted.

int focus_mode = 2

bool keep_pressed_outside = false

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.

bool shortcut_feedback = true

If true, the button will highlight for a short amount of time when its shortcut is activated. If false and toggle_mode is false, the shortcut will activate without any visual feedback.

bool shortcut_in_tooltip = true

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 Control._make_custom_tooltip().

bool toggle_mode = false

If true, the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.

Methods

void _pressed() virtual

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

void _toggled(bool toggled_on) virtual

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

int 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 DrawMode enum.

bool is_hovered() const

Returns true if the mouse has entered the button and has not left it yet.

void set_pressed_no_signal(bool pressed)

Changes the button_pressed state of the button, without emitting 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 toggle_mode is true. Note: This method doesn't unpress other buttons in button_group.

Signals

button_down()

Emitted when the button starts being held down.

button_up()

Emitted when the button stops being held down.

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.

Constants

DRAW_NORMAL = 0

Enum: DrawMode

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

DRAW_PRESSED = 1

Enum: DrawMode

The state of buttons are pressed.

DRAW_HOVER = 2

Enum: DrawMode

The state of buttons are hovered.

DRAW_DISABLED = 3

Enum: DrawMode

The state of buttons are disabled.

DRAW_HOVER_PRESSED = 4

Enum: DrawMode

The state of buttons are both hovered and pressed.

ACTION_MODE_BUTTON_PRESS = 0

Enum: ActionMode

Require just a press to consider the button clicked.

ACTION_MODE_BUTTON_RELEASE = 1

Enum: ActionMode

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

Source revision 5592dc3a7a61
Connection interrupted. Reload×

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.