123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790 |
- :github_url: hide
- .. DO NOT EDIT THIS FILE!!!
- .. Generated automatically from Godot engine sources.
- .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
- .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/Button.xml.
- .. _class_Button:
- Button
- ======
- **Inherits:** :ref:`BaseButton<class_BaseButton>` **<** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
- **Inherited By:** :ref:`CheckBox<class_CheckBox>`, :ref:`CheckButton<class_CheckButton>`, :ref:`ColorPickerButton<class_ColorPickerButton>`, :ref:`MenuButton<class_MenuButton>`, :ref:`OptionButton<class_OptionButton>`
- A themed button that can contain text and an icon.
- .. rst-class:: classref-introduction-group
- Description
- -----------
- **Button** is the standard themed button. It can contain text and an icon, and it will display them according to the current :ref:`Theme<class_Theme>`.
- \ **Example:** Create a button and connect a method that will be called when the button is pressed:
- .. tabs::
- .. code-tab:: gdscript
- func _ready():
- var button = Button.new()
- button.text = "Click me"
- button.pressed.connect(_button_pressed)
- add_child(button)
-
- func _button_pressed():
- print("Hello world!")
- .. code-tab:: csharp
- public override void _Ready()
- {
- var button = new Button();
- button.Text = "Click me";
- button.Pressed += ButtonPressed;
- AddChild(button);
- }
-
- private void ButtonPressed()
- {
- GD.Print("Hello world!");
- }
- See also :ref:`BaseButton<class_BaseButton>` which contains common properties and methods associated with this node.
- \ **Note:** Buttons do not detect touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use :ref:`TouchScreenButton<class_TouchScreenButton>` for buttons that trigger gameplay movement or actions.
- .. rst-class:: classref-introduction-group
- Tutorials
- ---------
- - `2D Dodge The Creeps Demo <https://godotengine.org/asset-library/asset/2712>`__
- - `Operating System Testing Demo <https://godotengine.org/asset-library/asset/2789>`__
- .. rst-class:: classref-reftable-group
- Properties
- ----------
- .. table::
- :widths: auto
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` | :ref:`alignment<class_Button_property_alignment>` | ``1`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`AutowrapMode<enum_TextServer_AutowrapMode>` | :ref:`autowrap_mode<class_Button_property_autowrap_mode>` | ``0`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`bool<class_bool>` | :ref:`clip_text<class_Button_property_clip_text>` | ``false`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`bool<class_bool>` | :ref:`expand_icon<class_Button_property_expand_icon>` | ``false`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`bool<class_bool>` | :ref:`flat<class_Button_property_flat>` | ``false`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`Texture2D<class_Texture2D>` | :ref:`icon<class_Button_property_icon>` | |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` | :ref:`icon_alignment<class_Button_property_icon_alignment>` | ``0`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`String<class_String>` | :ref:`language<class_Button_property_language>` | ``""`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`String<class_String>` | :ref:`text<class_Button_property_text>` | ``""`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`TextDirection<enum_Control_TextDirection>` | :ref:`text_direction<class_Button_property_text_direction>` | ``0`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`OverrunBehavior<enum_TextServer_OverrunBehavior>` | :ref:`text_overrun_behavior<class_Button_property_text_overrun_behavior>` | ``0`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- | :ref:`VerticalAlignment<enum_@GlobalScope_VerticalAlignment>` | :ref:`vertical_icon_alignment<class_Button_property_vertical_icon_alignment>` | ``1`` |
- +-------------------------------------------------------------------+-------------------------------------------------------------------------------+-----------+
- .. rst-class:: classref-reftable-group
- Theme Properties
- ----------------
- .. table::
- :widths: auto
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_color<class_Button_theme_color_font_color>` | ``Color(0.875, 0.875, 0.875, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_disabled_color<class_Button_theme_color_font_disabled_color>` | ``Color(0.875, 0.875, 0.875, 0.5)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_focus_color<class_Button_theme_color_font_focus_color>` | ``Color(0.95, 0.95, 0.95, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_hover_color<class_Button_theme_color_font_hover_color>` | ``Color(0.95, 0.95, 0.95, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_hover_pressed_color<class_Button_theme_color_font_hover_pressed_color>` | ``Color(1, 1, 1, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_outline_color<class_Button_theme_color_font_outline_color>` | ``Color(0, 0, 0, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`font_pressed_color<class_Button_theme_color_font_pressed_color>` | ``Color(1, 1, 1, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`icon_disabled_color<class_Button_theme_color_icon_disabled_color>` | ``Color(1, 1, 1, 0.4)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`icon_focus_color<class_Button_theme_color_icon_focus_color>` | ``Color(1, 1, 1, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`icon_hover_color<class_Button_theme_color_icon_hover_color>` | ``Color(1, 1, 1, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`icon_hover_pressed_color<class_Button_theme_color_icon_hover_pressed_color>` | ``Color(1, 1, 1, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`icon_normal_color<class_Button_theme_color_icon_normal_color>` | ``Color(1, 1, 1, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Color<class_Color>` | :ref:`icon_pressed_color<class_Button_theme_color_icon_pressed_color>` | ``Color(1, 1, 1, 1)`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`int<class_int>` | :ref:`align_to_largest_stylebox<class_Button_theme_constant_align_to_largest_stylebox>` | ``0`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`int<class_int>` | :ref:`h_separation<class_Button_theme_constant_h_separation>` | ``4`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`int<class_int>` | :ref:`icon_max_width<class_Button_theme_constant_icon_max_width>` | ``0`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`int<class_int>` | :ref:`line_spacing<class_Button_theme_constant_line_spacing>` | ``0`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`int<class_int>` | :ref:`outline_size<class_Button_theme_constant_outline_size>` | ``0`` |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Font<class_Font>` | :ref:`font<class_Button_theme_font_font>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`int<class_int>` | :ref:`font_size<class_Button_theme_font_size_font_size>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`Texture2D<class_Texture2D>` | :ref:`icon<class_Button_theme_icon_icon>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`disabled<class_Button_theme_style_disabled>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`disabled_mirrored<class_Button_theme_style_disabled_mirrored>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`focus<class_Button_theme_style_focus>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`hover<class_Button_theme_style_hover>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`hover_mirrored<class_Button_theme_style_hover_mirrored>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`hover_pressed<class_Button_theme_style_hover_pressed>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`hover_pressed_mirrored<class_Button_theme_style_hover_pressed_mirrored>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`normal<class_Button_theme_style_normal>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`normal_mirrored<class_Button_theme_style_normal_mirrored>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`pressed<class_Button_theme_style_pressed>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- | :ref:`StyleBox<class_StyleBox>` | :ref:`pressed_mirrored<class_Button_theme_style_pressed_mirrored>` | |
- +-----------------------------------+-----------------------------------------------------------------------------------------+-------------------------------------+
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Property Descriptions
- ---------------------
- .. _class_Button_property_alignment:
- .. rst-class:: classref-property
- :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` **alignment** = ``1`` :ref:`๐<class_Button_property_alignment>`
- .. rst-class:: classref-property-setget
- - |void| **set_text_alignment**\ (\ value\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>`\ )
- - :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` **get_text_alignment**\ (\ )
- Text alignment policy for the button's text, use one of the :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` constants.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_autowrap_mode:
- .. rst-class:: classref-property
- :ref:`AutowrapMode<enum_TextServer_AutowrapMode>` **autowrap_mode** = ``0`` :ref:`๐<class_Button_property_autowrap_mode>`
- .. rst-class:: classref-property-setget
- - |void| **set_autowrap_mode**\ (\ value\: :ref:`AutowrapMode<enum_TextServer_AutowrapMode>`\ )
- - :ref:`AutowrapMode<enum_TextServer_AutowrapMode>` **get_autowrap_mode**\ (\ )
- If set to something other than :ref:`TextServer.AUTOWRAP_OFF<class_TextServer_constant_AUTOWRAP_OFF>`, the text gets wrapped inside the node's bounding rectangle.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_clip_text:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **clip_text** = ``false`` :ref:`๐<class_Button_property_clip_text>`
- .. rst-class:: classref-property-setget
- - |void| **set_clip_text**\ (\ value\: :ref:`bool<class_bool>`\ )
- - :ref:`bool<class_bool>` **get_clip_text**\ (\ )
- 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.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_expand_icon:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **expand_icon** = ``false`` :ref:`๐<class_Button_property_expand_icon>`
- .. rst-class:: classref-property-setget
- - |void| **set_expand_icon**\ (\ value\: :ref:`bool<class_bool>`\ )
- - :ref:`bool<class_bool>` **is_expand_icon**\ (\ )
- When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect. See also :ref:`icon_max_width<class_Button_theme_constant_icon_max_width>`.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_flat:
- .. rst-class:: classref-property
- :ref:`bool<class_bool>` **flat** = ``false`` :ref:`๐<class_Button_property_flat>`
- .. rst-class:: classref-property-setget
- - |void| **set_flat**\ (\ value\: :ref:`bool<class_bool>`\ )
- - :ref:`bool<class_bool>` **is_flat**\ (\ )
- Flat buttons don't display decoration.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_icon:
- .. rst-class:: classref-property
- :ref:`Texture2D<class_Texture2D>` **icon** :ref:`๐<class_Button_property_icon>`
- .. rst-class:: classref-property-setget
- - |void| **set_button_icon**\ (\ value\: :ref:`Texture2D<class_Texture2D>`\ )
- - :ref:`Texture2D<class_Texture2D>` **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 :ref:`h_separation<class_Button_theme_constant_h_separation>` theme property and ``content_margin_*`` properties of the used :ref:`StyleBox<class_StyleBox>`\ es.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_icon_alignment:
- .. rst-class:: classref-property
- :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` **icon_alignment** = ``0`` :ref:`๐<class_Button_property_icon_alignment>`
- .. rst-class:: classref-property-setget
- - |void| **set_icon_alignment**\ (\ value\: :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>`\ )
- - :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` **get_icon_alignment**\ (\ )
- Specifies if the icon should be aligned horizontally to the left, right, or center of a button. Uses the same :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` constants as the text alignment. If centered horizontally and vertically, text will draw on top of the icon.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_language:
- .. rst-class:: classref-property
- :ref:`String<class_String>` **language** = ``""`` :ref:`๐<class_Button_property_language>`
- .. rst-class:: classref-property-setget
- - |void| **set_language**\ (\ value\: :ref:`String<class_String>`\ )
- - :ref:`String<class_String>` **get_language**\ (\ )
- Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_text:
- .. rst-class:: classref-property
- :ref:`String<class_String>` **text** = ``""`` :ref:`๐<class_Button_property_text>`
- .. rst-class:: classref-property-setget
- - |void| **set_text**\ (\ value\: :ref:`String<class_String>`\ )
- - :ref:`String<class_String>` **get_text**\ (\ )
- The button's text that will be displayed inside the button's area.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_text_direction:
- .. rst-class:: classref-property
- :ref:`TextDirection<enum_Control_TextDirection>` **text_direction** = ``0`` :ref:`๐<class_Button_property_text_direction>`
- .. rst-class:: classref-property-setget
- - |void| **set_text_direction**\ (\ value\: :ref:`TextDirection<enum_Control_TextDirection>`\ )
- - :ref:`TextDirection<enum_Control_TextDirection>` **get_text_direction**\ (\ )
- Base text writing direction.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_text_overrun_behavior:
- .. rst-class:: classref-property
- :ref:`OverrunBehavior<enum_TextServer_OverrunBehavior>` **text_overrun_behavior** = ``0`` :ref:`๐<class_Button_property_text_overrun_behavior>`
- .. rst-class:: classref-property-setget
- - |void| **set_text_overrun_behavior**\ (\ value\: :ref:`OverrunBehavior<enum_TextServer_OverrunBehavior>`\ )
- - :ref:`OverrunBehavior<enum_TextServer_OverrunBehavior>` **get_text_overrun_behavior**\ (\ )
- Sets the clipping behavior when the text exceeds the node's bounding rectangle. See :ref:`OverrunBehavior<enum_TextServer_OverrunBehavior>` for a description of all modes.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_property_vertical_icon_alignment:
- .. rst-class:: classref-property
- :ref:`VerticalAlignment<enum_@GlobalScope_VerticalAlignment>` **vertical_icon_alignment** = ``1`` :ref:`๐<class_Button_property_vertical_icon_alignment>`
- .. rst-class:: classref-property-setget
- - |void| **set_vertical_icon_alignment**\ (\ value\: :ref:`VerticalAlignment<enum_@GlobalScope_VerticalAlignment>`\ )
- - :ref:`VerticalAlignment<enum_@GlobalScope_VerticalAlignment>` **get_vertical_icon_alignment**\ (\ )
- Specifies if the icon should be aligned vertically to the top, bottom, or center of a button. Uses the same :ref:`VerticalAlignment<enum_@GlobalScope_VerticalAlignment>` constants as the text alignment. If centered horizontally and vertically, text will draw on top of the icon.
- .. rst-class:: classref-section-separator
- ----
- .. rst-class:: classref-descriptions-group
- Theme Property Descriptions
- ---------------------------
- .. _class_Button_theme_color_font_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **font_color** = ``Color(0.875, 0.875, 0.875, 1)`` :ref:`๐<class_Button_theme_color_font_color>`
- Default text :ref:`Color<class_Color>` of the **Button**.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_font_disabled_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **font_disabled_color** = ``Color(0.875, 0.875, 0.875, 0.5)`` :ref:`๐<class_Button_theme_color_font_disabled_color>`
- Text :ref:`Color<class_Color>` used when the **Button** is disabled.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_font_focus_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **font_focus_color** = ``Color(0.95, 0.95, 0.95, 1)`` :ref:`๐<class_Button_theme_color_font_focus_color>`
- Text :ref:`Color<class_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.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_font_hover_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **font_hover_color** = ``Color(0.95, 0.95, 0.95, 1)`` :ref:`๐<class_Button_theme_color_font_hover_color>`
- Text :ref:`Color<class_Color>` used when the **Button** is being hovered.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_font_hover_pressed_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **font_hover_pressed_color** = ``Color(1, 1, 1, 1)`` :ref:`๐<class_Button_theme_color_font_hover_pressed_color>`
- Text :ref:`Color<class_Color>` used when the **Button** is being hovered and pressed.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_font_outline_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **font_outline_color** = ``Color(0, 0, 0, 1)`` :ref:`๐<class_Button_theme_color_font_outline_color>`
- The tint of text outline of the **Button**.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_font_pressed_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **font_pressed_color** = ``Color(1, 1, 1, 1)`` :ref:`๐<class_Button_theme_color_font_pressed_color>`
- Text :ref:`Color<class_Color>` used when the **Button** is being pressed.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_icon_disabled_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **icon_disabled_color** = ``Color(1, 1, 1, 0.4)`` :ref:`๐<class_Button_theme_color_icon_disabled_color>`
- Icon modulate :ref:`Color<class_Color>` used when the **Button** is disabled.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_icon_focus_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **icon_focus_color** = ``Color(1, 1, 1, 1)`` :ref:`๐<class_Button_theme_color_icon_focus_color>`
- Icon modulate :ref:`Color<class_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.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_icon_hover_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **icon_hover_color** = ``Color(1, 1, 1, 1)`` :ref:`๐<class_Button_theme_color_icon_hover_color>`
- Icon modulate :ref:`Color<class_Color>` used when the **Button** is being hovered.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_icon_hover_pressed_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **icon_hover_pressed_color** = ``Color(1, 1, 1, 1)`` :ref:`๐<class_Button_theme_color_icon_hover_pressed_color>`
- Icon modulate :ref:`Color<class_Color>` used when the **Button** is being hovered and pressed.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_icon_normal_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **icon_normal_color** = ``Color(1, 1, 1, 1)`` :ref:`๐<class_Button_theme_color_icon_normal_color>`
- Default icon modulate :ref:`Color<class_Color>` of the **Button**.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_color_icon_pressed_color:
- .. rst-class:: classref-themeproperty
- :ref:`Color<class_Color>` **icon_pressed_color** = ``Color(1, 1, 1, 1)`` :ref:`๐<class_Button_theme_color_icon_pressed_color>`
- Icon modulate :ref:`Color<class_Color>` used when the **Button** is being pressed.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_constant_align_to_largest_stylebox:
- .. rst-class:: classref-themeproperty
- :ref:`int<class_int>` **align_to_largest_stylebox** = ``0`` :ref:`๐<class_Button_theme_constant_align_to_largest_stylebox>`
- This constant acts as a boolean. If ``true``, the minimum size of the button and text/icon alignment is always based on the largest stylebox margins, otherwise it's based on the current button state stylebox margins.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_constant_h_separation:
- .. rst-class:: classref-themeproperty
- :ref:`int<class_int>` **h_separation** = ``4`` :ref:`๐<class_Button_theme_constant_h_separation>`
- The horizontal space between **Button**'s icon and text. Negative values will be treated as ``0`` when used.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_constant_icon_max_width:
- .. rst-class:: classref-themeproperty
- :ref:`int<class_int>` **icon_max_width** = ``0`` :ref:`๐<class_Button_theme_constant_icon_max_width>`
- The maximum allowed width of the **Button**'s icon. This limit is applied on top of the default size of the icon, or its expanded size if :ref:`expand_icon<class_Button_property_expand_icon>` is ``true``. The height is adjusted according to the icon's ratio. If the button has additional icons (e.g. :ref:`CheckBox<class_CheckBox>`), they will also be limited.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_constant_line_spacing:
- .. rst-class:: classref-themeproperty
- :ref:`int<class_int>` **line_spacing** = ``0`` :ref:`๐<class_Button_theme_constant_line_spacing>`
- Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_constant_outline_size:
- .. rst-class:: classref-themeproperty
- :ref:`int<class_int>` **outline_size** = ``0`` :ref:`๐<class_Button_theme_constant_outline_size>`
- The size of the text outline.
- \ **Note:** If using a font with :ref:`FontFile.multichannel_signed_distance_field<class_FontFile_property_multichannel_signed_distance_field>` enabled, its :ref:`FontFile.msdf_pixel_range<class_FontFile_property_msdf_pixel_range>` must be set to at least *twice* the value of :ref:`outline_size<class_Button_theme_constant_outline_size>` for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_font_font:
- .. rst-class:: classref-themeproperty
- :ref:`Font<class_Font>` **font** :ref:`๐<class_Button_theme_font_font>`
- :ref:`Font<class_Font>` of the **Button**'s text.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_font_size_font_size:
- .. rst-class:: classref-themeproperty
- :ref:`int<class_int>` **font_size** :ref:`๐<class_Button_theme_font_size_font_size>`
- Font size of the **Button**'s text.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_icon_icon:
- .. rst-class:: classref-themeproperty
- :ref:`Texture2D<class_Texture2D>` **icon** :ref:`๐<class_Button_theme_icon_icon>`
- Default icon for the **Button**. Appears only if :ref:`icon<class_Button_property_icon>` is not assigned.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_disabled:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **disabled** :ref:`๐<class_Button_theme_style_disabled>`
- :ref:`StyleBox<class_StyleBox>` used when the **Button** is disabled.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_disabled_mirrored:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **disabled_mirrored** :ref:`๐<class_Button_theme_style_disabled_mirrored>`
- :ref:`StyleBox<class_StyleBox>` used when the **Button** is disabled (for right-to-left layouts).
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_focus:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **focus** :ref:`๐<class_Button_theme_style_focus>`
- :ref:`StyleBox<class_StyleBox>` used when the **Button** is focused. The :ref:`focus<class_Button_theme_style_focus>` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_hover:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **hover** :ref:`๐<class_Button_theme_style_hover>`
- :ref:`StyleBox<class_StyleBox>` used when the **Button** is being hovered.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_hover_mirrored:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **hover_mirrored** :ref:`๐<class_Button_theme_style_hover_mirrored>`
- :ref:`StyleBox<class_StyleBox>` used when the **Button** is being hovered (for right-to-left layouts).
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_hover_pressed:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **hover_pressed** :ref:`๐<class_Button_theme_style_hover_pressed>`
- :ref:`StyleBox<class_StyleBox>` used when the **Button** is being pressed and hovered at the same time.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_hover_pressed_mirrored:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **hover_pressed_mirrored** :ref:`๐<class_Button_theme_style_hover_pressed_mirrored>`
- :ref:`StyleBox<class_StyleBox>` used when the **Button** is being pressed and hovered at the same time (for right-to-left layouts).
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_normal:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **normal** :ref:`๐<class_Button_theme_style_normal>`
- Default :ref:`StyleBox<class_StyleBox>` for the **Button**.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_normal_mirrored:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **normal_mirrored** :ref:`๐<class_Button_theme_style_normal_mirrored>`
- Default :ref:`StyleBox<class_StyleBox>` for the **Button** (for right-to-left layouts).
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_pressed:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **pressed** :ref:`๐<class_Button_theme_style_pressed>`
- :ref:`StyleBox<class_StyleBox>` used when the **Button** is being pressed.
- .. rst-class:: classref-item-separator
- ----
- .. _class_Button_theme_style_pressed_mirrored:
- .. rst-class:: classref-themeproperty
- :ref:`StyleBox<class_StyleBox>` **pressed_mirrored** :ref:`๐<class_Button_theme_style_pressed_mirrored>`
- :ref:`StyleBox<class_StyleBox>` used when the **Button** is being pressed (for right-to-left layouts).
- .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
- .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
- .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
- .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
- .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
- .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
- .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
- .. |void| replace:: :abbr:`void (No return value.)`
|