165 lines
8.7 KiB
XML
165 lines
8.7 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="Button" inherits="BaseButton" version="4.0">
|
|
<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].
|
|
[b]Example of creating a button and assigning an action when pressed by code:[/b]
|
|
[codeblocks]
|
|
[gdscript]
|
|
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!")
|
|
[/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]
|
|
Buttons (like all Control nodes) can also be created in the editor, but some situations may require creating them from code.
|
|
See also [BaseButton] which contains common properties and methods associated with this node.
|
|
[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.
|
|
</description>
|
|
<tutorials>
|
|
<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>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="clear_opentype_features">
|
|
<return type="void" />
|
|
<description>
|
|
Removes all OpenType features.
|
|
</description>
|
|
</method>
|
|
<method name="get_opentype_feature" qualifiers="const">
|
|
<return type="int" />
|
|
<argument index="0" name="tag" type="String" />
|
|
<description>
|
|
Returns OpenType feature [code]tag[/code].
|
|
</description>
|
|
</method>
|
|
<method name="set_opentype_feature">
|
|
<return type="void" />
|
|
<argument index="0" name="tag" type="String" />
|
|
<argument index="1" name="value" type="int" />
|
|
<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>
|
|
</methods>
|
|
<members>
|
|
<member name="alignment" type="int" setter="set_text_alignment" getter="get_text_alignment" enum="HorizontalAlignment" default="1">
|
|
Text alignment policy for the button's text, use one of the [enum @GlobalScope.HorizontalAlignment] constants.
|
|
</member>
|
|
<member name="clip_text" type="bool" setter="set_clip_text" getter="get_clip_text" default="false">
|
|
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.
|
|
</member>
|
|
<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>
|
|
<member name="flat" type="bool" setter="set_flat" getter="is_flat" default="false">
|
|
Flat buttons don't display decoration.
|
|
</member>
|
|
<member name="icon" type="Texture2D" setter="set_button_icon" getter="get_button_icon">
|
|
Button's icon, if text is present the icon will be placed before the text.
|
|
To edit margin and spacing of the icon, use [theme_item hseparation] theme property and [code]content_margin_*[/code] properties of the used [StyleBox]es.
|
|
</member>
|
|
<member name="icon_alignment" type="int" setter="set_icon_alignment" getter="get_icon_alignment" enum="HorizontalAlignment" default="0">
|
|
Specifies if the icon should be aligned to the left, right, or center of a button. Uses the same [enum @GlobalScope.HorizontalAlignment] constants as the text alignment. If centered, text will draw on top of the icon.
|
|
</member>
|
|
<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>
|
|
<member name="text" type="String" setter="set_text" getter="get_text" default="""">
|
|
The button's text that will be displayed inside the button's area.
|
|
</member>
|
|
<member name="text_direction" type="int" setter="set_text_direction" getter="get_text_direction" enum="Control.TextDirection" default="0">
|
|
Base text writing direction.
|
|
</member>
|
|
</members>
|
|
<theme_items>
|
|
<theme_item name="font_color" data_type="color" type="Color" default="Color(0.875, 0.875, 0.875, 1)">
|
|
Default text [Color] of the [Button].
|
|
</theme_item>
|
|
<theme_item name="font_disabled_color" data_type="color" type="Color" default="Color(0.875, 0.875, 0.875, 0.5)">
|
|
Text [Color] used when the [Button] is disabled.
|
|
</theme_item>
|
|
<theme_item name="font_focus_color" data_type="color" type="Color" default="Color(0.95, 0.95, 0.95, 1)">
|
|
Text [Color] used when the [Button] is focused. Only replaces the normal text color of the button. Disabled, hovered, and pressed states take precedence over this color.
|
|
</theme_item>
|
|
<theme_item name="font_hover_color" data_type="color" type="Color" default="Color(0.95, 0.95, 0.95, 1)">
|
|
Text [Color] used when the [Button] is being hovered.
|
|
</theme_item>
|
|
<theme_item name="font_hover_pressed_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
|
|
Text [Color] used when the [Button] is being hovered and pressed.
|
|
</theme_item>
|
|
<theme_item name="font_outline_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
|
|
The tint of text outline of the [Button].
|
|
</theme_item>
|
|
<theme_item name="font_pressed_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
|
|
Text [Color] used when the [Button] is being pressed.
|
|
</theme_item>
|
|
<theme_item name="icon_disabled_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
|
|
Icon modulate [Color] used when the [Button] is disabled.
|
|
</theme_item>
|
|
<theme_item name="icon_focus_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
|
|
Icon modulate [Color] used when the [Button] is focused. Only replaces the normal modulate color of the button. Disabled, hovered, and pressed states take precedence over this color.
|
|
</theme_item>
|
|
<theme_item name="icon_hover_color" data_type="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" data_type="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" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
|
|
Default icon modulate [Color] of the [Button].
|
|
</theme_item>
|
|
<theme_item name="icon_pressed_color" data_type="color" type="Color" default="Color(1, 1, 1, 1)">
|
|
Icon modulate [Color] used when the [Button] is being pressed.
|
|
</theme_item>
|
|
<theme_item name="hseparation" data_type="constant" type="int" default="2">
|
|
The horizontal space between [Button]'s icon and text.
|
|
</theme_item>
|
|
<theme_item name="outline_size" data_type="constant" type="int" default="0">
|
|
The size of the text outline.
|
|
</theme_item>
|
|
<theme_item name="font" data_type="font" type="Font">
|
|
[Font] of the [Button]'s text.
|
|
</theme_item>
|
|
<theme_item name="font_size" data_type="font_size" type="int">
|
|
Font size of the [Button]'s text.
|
|
</theme_item>
|
|
<theme_item name="disabled" data_type="style" type="StyleBox">
|
|
[StyleBox] used when the [Button] is disabled.
|
|
</theme_item>
|
|
<theme_item name="focus" data_type="style" type="StyleBox">
|
|
[StyleBox] used when the [Button] is focused. The [code]focus[/code] [StyleBox] is displayed [i]over[/i] the base [StyleBox], so a partially transparent [StyleBox] should be used to ensure the base [StyleBox] remains visible. A [StyleBox] that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a [StyleBoxEmpty] resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
|
|
</theme_item>
|
|
<theme_item name="hover" data_type="style" type="StyleBox">
|
|
[StyleBox] used when the [Button] is being hovered.
|
|
</theme_item>
|
|
<theme_item name="normal" data_type="style" type="StyleBox">
|
|
Default [StyleBox] for the [Button].
|
|
</theme_item>
|
|
<theme_item name="pressed" data_type="style" type="StyleBox">
|
|
[StyleBox] used when the [Button] is being pressed.
|
|
</theme_item>
|
|
</theme_items>
|
|
</class>
|