:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.5/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.5/doc/classes/TextureButton.xml. .. _class_TextureButton: TextureButton ============= **Inherits:** :ref:`BaseButton` **<** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` Texture-based button. Supports Pressed, Hover, Disabled and Focused states. Description ----------- ``TextureButton`` has the same functionality as :ref:`Button`, except it uses sprites instead of Godot's :ref:`Theme` resource. It is faster to create, but it doesn't support localization like more complex :ref:`Control`\ s. The "normal" state must contain a texture (:ref:`texture_normal`); other textures are optional. See also :ref:`BaseButton` which contains common properties and methods associated with this node. Tutorials --------- - `3D Voxel Demo `__ Properties ---------- +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`expand` | ``false`` | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`flip_h` | ``false`` | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`flip_v` | ``false`` | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`StretchMode` | :ref:`stretch_mode` | ``0`` | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`BitMap` | :ref:`texture_click_mask` | | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`Texture` | :ref:`texture_disabled` | | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`Texture` | :ref:`texture_focused` | | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`Texture` | :ref:`texture_hover` | | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`Texture` | :ref:`texture_normal` | | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ | :ref:`Texture` | :ref:`texture_pressed` | | +----------------------------------------------------+----------------------------------------------------------------------------+-----------+ Enumerations ------------ .. _enum_TextureButton_StretchMode: .. _class_TextureButton_constant_STRETCH_SCALE: .. _class_TextureButton_constant_STRETCH_TILE: .. _class_TextureButton_constant_STRETCH_KEEP: .. _class_TextureButton_constant_STRETCH_KEEP_CENTERED: .. _class_TextureButton_constant_STRETCH_KEEP_ASPECT: .. _class_TextureButton_constant_STRETCH_KEEP_ASPECT_CENTERED: .. _class_TextureButton_constant_STRETCH_KEEP_ASPECT_COVERED: enum **StretchMode**: - **STRETCH_SCALE** = **0** --- Scale to fit the node's bounding rectangle. - **STRETCH_TILE** = **1** --- Tile inside the node's bounding rectangle. - **STRETCH_KEEP** = **2** --- The texture keeps its original size and stays in the bounding rectangle's top-left corner. - **STRETCH_KEEP_CENTERED** = **3** --- The texture keeps its original size and stays centered in the node's bounding rectangle. - **STRETCH_KEEP_ASPECT** = **4** --- Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio. - **STRETCH_KEEP_ASPECT_CENTERED** = **5** --- Scale the texture to fit the node's bounding rectangle, center it, and maintain its aspect ratio. - **STRETCH_KEEP_ASPECT_COVERED** = **6** --- Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits. Property Descriptions --------------------- .. _class_TextureButton_property_expand: - :ref:`bool` **expand** +-----------+-------------------+ | *Default* | ``false`` | +-----------+-------------------+ | *Setter* | set_expand(value) | +-----------+-------------------+ | *Getter* | get_expand() | +-----------+-------------------+ If ``true``, the texture stretches to the edges of the node's bounding rectangle using the :ref:`stretch_mode`. If ``false``, the texture will not scale with the node. ---- .. _class_TextureButton_property_flip_h: - :ref:`bool` **flip_h** +-----------+-------------------+ | *Default* | ``false`` | +-----------+-------------------+ | *Setter* | set_flip_h(value) | +-----------+-------------------+ | *Getter* | is_flipped_h() | +-----------+-------------------+ If ``true``, texture is flipped horizontally. ---- .. _class_TextureButton_property_flip_v: - :ref:`bool` **flip_v** +-----------+-------------------+ | *Default* | ``false`` | +-----------+-------------------+ | *Setter* | set_flip_v(value) | +-----------+-------------------+ | *Getter* | is_flipped_v() | +-----------+-------------------+ If ``true``, texture is flipped vertically. ---- .. _class_TextureButton_property_stretch_mode: - :ref:`StretchMode` **stretch_mode** +-----------+-------------------------+ | *Default* | ``0`` | +-----------+-------------------------+ | *Setter* | set_stretch_mode(value) | +-----------+-------------------------+ | *Getter* | get_stretch_mode() | +-----------+-------------------------+ Controls the texture's behavior when you resize the node's bounding rectangle, **only if** :ref:`expand` is ``true``. Set it to one of the :ref:`StretchMode` constants. See the constants to learn more. ---- .. _class_TextureButton_property_texture_click_mask: - :ref:`BitMap` **texture_click_mask** +----------+-----------------------+ | *Setter* | set_click_mask(value) | +----------+-----------------------+ | *Getter* | get_click_mask() | +----------+-----------------------+ Pure black and white :ref:`BitMap` image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes. ---- .. _class_TextureButton_property_texture_disabled: - :ref:`Texture` **texture_disabled** +----------+-----------------------------+ | *Setter* | set_disabled_texture(value) | +----------+-----------------------------+ | *Getter* | get_disabled_texture() | +----------+-----------------------------+ Texture to display when the node is disabled. See :ref:`BaseButton.disabled`. ---- .. _class_TextureButton_property_texture_focused: - :ref:`Texture` **texture_focused** +----------+----------------------------+ | *Setter* | set_focused_texture(value) | +----------+----------------------------+ | *Getter* | get_focused_texture() | +----------+----------------------------+ Texture to display when the node has mouse or keyboard focus. ---- .. _class_TextureButton_property_texture_hover: - :ref:`Texture` **texture_hover** +----------+--------------------------+ | *Setter* | set_hover_texture(value) | +----------+--------------------------+ | *Getter* | get_hover_texture() | +----------+--------------------------+ Texture to display when the mouse hovers the node. ---- .. _class_TextureButton_property_texture_normal: - :ref:`Texture` **texture_normal** +----------+---------------------------+ | *Setter* | set_normal_texture(value) | +----------+---------------------------+ | *Getter* | get_normal_texture() | +----------+---------------------------+ Texture to display by default, when the node is **not** in the disabled, focused, hover or pressed state. ---- .. _class_TextureButton_property_texture_pressed: - :ref:`Texture` **texture_pressed** +----------+----------------------------+ | *Setter* | set_pressed_texture(value) | +----------+----------------------------+ | *Getter* | get_pressed_texture() | +----------+----------------------------+ Texture to display on mouse down over the node, if the node has keyboard focus and the player presses the Enter key or if the player presses the :ref:`BaseButton.shortcut` key. .. |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.)`