2017-09-13 04:42:36 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2020-02-01 09:03:48 +08:00
<class name= "Button" inherits= "BaseButton" version= "4.0" >
2017-09-13 04:42:36 +08:00
<brief_description >
Standard themed Button.
</brief_description>
<description >
Button is the standard themed button. It can contain text and an icon, and will display them according to the current [Theme].
2020-07-15 22:31:10 +08:00
[b]Example of creating a button and assigning an action when pressed by code:[/b]
2020-07-31 22:07:26 +08:00
[codeblocks]
[gdscript]
2020-07-15 22:31:10 +08:00
func _ready():
var button = Button.new()
button.text = "Click me"
button.connect("pressed", self, "_button_pressed")
add_child(button)
func _button_pressed():
print("Hello world!")
2020-07-31 22:07:26 +08:00
[/gdscript]
[csharp]
public override void _Ready()
{
var button = new Button();
button.Text = "Click me";
button.Connect("pressed", this, nameof(ButtonPressed));
AddChild(button);
}
private void ButtonPressed()
{
GD.Print("Hello world!");
}
[/csharp]
[/codeblocks]
2020-07-15 22:31:10 +08:00
Buttons (like all Control nodes) can also be created in the editor, but some situations may require creating them from code.
2020-09-24 05:34:28 +08:00
See also [BaseButton] which contains common properties and methods associated with this node.
2021-02-21 07:23:08 +08:00
[b]Note:[/b] Buttons do not interpret touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use [TouchScreenButton] for buttons that trigger gameplay movement or actions, as [TouchScreenButton] supports multitouch.
2017-09-13 04:42:36 +08:00
</description>
<tutorials >
2020-10-01 16:34:47 +08:00
<link title= "2D Dodge The Creeps Demo" > https://godotengine.org/asset-library/asset/515</link>
<link title= "OS Test Demo" > https://godotengine.org/asset-library/asset/677</link>
2017-09-13 04:42:36 +08:00
</tutorials>
<methods >
2020-08-12 19:49:10 +08:00
<method name= "clear_opentype_features" >
<return type= "void" >
</return>
<description >
Removes all OpenType features.
</description>
</method>
<method name= "get_opentype_feature" qualifiers= "const" >
<return type= "int" >
</return>
<argument index= "0" name= "tag" type= "String" >
</argument>
<description >
Returns OpenType feature [code]tag[/code].
</description>
</method>
<method name= "set_opentype_feature" >
<return type= "void" >
</return>
<argument index= "0" name= "tag" type= "String" >
</argument>
<argument index= "1" name= "value" type= "int" >
</argument>
<description >
Sets OpenType feature [code]tag[/code]. More info: [url=https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags]OpenType feature tags[/url].
</description>
</method>
2017-09-13 04:42:36 +08:00
</methods>
<members >
2019-06-29 18:38:01 +08:00
<member name= "align" type= "int" setter= "set_text_align" getter= "get_text_align" enum= "Button.TextAlign" default= "1" >
2019-12-07 06:09:20 +08:00
Text alignment policy for the button's text, use one of the [enum TextAlign] constants.
2017-09-13 04:42:36 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "clip_text" type= "bool" setter= "set_clip_text" getter= "get_clip_text" default= "false" >
2019-08-29 10:12:22 +08:00
When this property is enabled, text that is too large to fit the button is clipped, when disabled the Button will always be wide enough to hold the text.
2017-09-13 04:42:36 +08:00
</member>
2019-08-21 00:41:14 +08:00
<member name= "expand_icon" type= "bool" setter= "set_expand_icon" getter= "is_expand_icon" default= "false" >
When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect.
</member>
2019-06-29 18:38:01 +08:00
<member name= "flat" type= "bool" setter= "set_flat" getter= "is_flat" default= "false" >
2017-09-13 04:42:36 +08:00
Flat buttons don't display decoration.
</member>
2020-02-12 16:59:06 +08:00
<member name= "icon" type= "Texture2D" setter= "set_button_icon" getter= "get_button_icon" >
2017-09-13 04:42:36 +08:00
Button's icon, if text is present the icon will be placed before the text.
</member>
2020-08-12 19:49:10 +08:00
<member name= "language" type= "String" setter= "set_language" getter= "get_language" default= """" >
Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead.
</member>
2019-06-29 18:38:01 +08:00
<member name= "text" type= "String" setter= "set_text" getter= "get_text" default= """" >
2017-09-13 04:42:36 +08:00
The button's text that will be displayed inside the button's area.
</member>
2020-08-12 19:49:10 +08:00
<member name= "text_direction" type= "int" setter= "set_text_direction" getter= "get_text_direction" enum= "Control.TextDirection" default= "0" >
Base text writing direction.
</member>
2017-09-13 04:42:36 +08:00
</members>
<constants >
2017-11-25 06:16:30 +08:00
<constant name= "ALIGN_LEFT" value= "0" enum= "TextAlign" >
2017-09-13 04:42:36 +08:00
Align the text to the left.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "ALIGN_CENTER" value= "1" enum= "TextAlign" >
2017-09-13 04:42:36 +08:00
Align the text to the center.
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "ALIGN_RIGHT" value= "2" enum= "TextAlign" >
2017-09-13 04:42:36 +08:00
Align the text to the right.
</constant>
</constants>
<theme_items >
<theme_item name= "disabled" type= "StyleBox" >
2020-01-27 09:15:37 +08:00
[StyleBox] used when the [Button] is disabled.
2017-09-13 04:42:36 +08:00
</theme_item>
<theme_item name= "focus" type= "StyleBox" >
2020-01-27 09:15:37 +08:00
[StyleBox] used when the [Button] is focused. It is displayed over the current [StyleBox], so using [StyleBoxEmpty] will just disable the focus visual effect.
2017-09-13 04:42:36 +08:00
</theme_item>
<theme_item name= "font" type= "Font" >
2020-01-27 09:15:37 +08:00
[Font] of the [Button]'s text.
2017-09-13 04:42:36 +08:00
</theme_item>
2019-07-09 15:13:00 +08:00
<theme_item name= "font_color" type= "Color" default= "Color( 0.88, 0.88, 0.88, 1 )" >
2020-01-27 09:15:37 +08:00
Default text [Color] of the [Button].
2017-09-13 04:42:36 +08:00
</theme_item>
2020-12-08 21:11:45 +08:00
<theme_item name= "font_disabled_color" type= "Color" default= "Color( 0.9, 0.9, 0.9, 0.2 )" >
2020-01-27 09:15:37 +08:00
Text [Color] used when the [Button] is disabled.
2017-09-13 04:42:36 +08:00
</theme_item>
2020-12-08 21:11:45 +08:00
<theme_item name= "font_hover_color" type= "Color" default= "Color( 0.94, 0.94, 0.94, 1 )" >
2020-01-27 09:15:37 +08:00
Text [Color] used when the [Button] is being hovered.
2017-09-13 04:42:36 +08:00
</theme_item>
2021-01-27 15:22:23 +08:00
<theme_item name= "font_hover_pressed_color" type= "Color" default= "Color( 1, 1, 1, 1 )" >
Text [Color] used when the [Button] is being hovered and pressed.
</theme_item>
2020-12-08 21:11:45 +08:00
<theme_item name= "font_outline_color" type= "Color" default= "Color( 1, 1, 1, 1 )" >
2020-12-26 05:45:28 +08:00
The tint of text outline of the [Button].
2017-09-13 04:42:36 +08:00
</theme_item>
2020-12-08 21:11:45 +08:00
<theme_item name= "font_pressed_color" type= "Color" default= "Color( 1, 1, 1, 1 )" >
Text [Color] used when the [Button] is being pressed.
2020-08-12 19:49:10 +08:00
</theme_item>
<theme_item name= "font_size" type= "int" >
Font size of the [Button]'s text.
</theme_item>
2017-09-13 04:42:36 +08:00
<theme_item name= "hover" type= "StyleBox" >
2020-01-27 09:15:37 +08:00
[StyleBox] used when the [Button] is being hovered.
2017-09-13 04:42:36 +08:00
</theme_item>
2019-06-29 18:38:01 +08:00
<theme_item name= "hseparation" type= "int" default= "2" >
2020-01-27 09:15:37 +08:00
The horizontal space between [Button]'s icon and text.
2017-09-13 04:42:36 +08:00
</theme_item>
2020-05-08 14:03:52 +08:00
<theme_item name= "icon_disabled_color" type= "Color" default= "Color( 1, 1, 1, 1 )" >
Icon modulate [Color] used when the [Button] is disabled.
</theme_item>
<theme_item name= "icon_hover_color" type= "Color" default= "Color( 1, 1, 1, 1 )" >
Icon modulate [Color] used when the [Button] is being hovered.
</theme_item>
<theme_item name= "icon_hover_pressed_color" type= "Color" default= "Color( 1, 1, 1, 1 )" >
Icon modulate [Color] used when the [Button] is being hovered and pressed.
</theme_item>
<theme_item name= "icon_normal_color" type= "Color" default= "Color( 1, 1, 1, 1 )" >
2021-01-27 15:22:23 +08:00
Default icon modulate [Color] of the [Button].
2020-05-08 14:03:52 +08:00
</theme_item>
<theme_item name= "icon_pressed_color" type= "Color" default= "Color( 1, 1, 1, 1 )" >
Icon modulate [Color] used when the [Button] is being pressed.
</theme_item>
2017-09-13 04:42:36 +08:00
<theme_item name= "normal" type= "StyleBox" >
2020-01-27 09:15:37 +08:00
Default [StyleBox] for the [Button].
2017-09-13 04:42:36 +08:00
</theme_item>
2020-08-12 19:49:10 +08:00
<theme_item name= "outline_size" type= "int" default= "0" >
2020-12-26 05:45:28 +08:00
The size of the text outline.
2020-08-12 19:49:10 +08:00
</theme_item>
2017-09-13 04:42:36 +08:00
<theme_item name= "pressed" type= "StyleBox" >
2020-01-27 09:15:37 +08:00
[StyleBox] used when the [Button] is being pressed.
2017-09-13 04:42:36 +08:00
</theme_item>
</theme_items>
</class>