Files
godot-docs/classes/class_ninepatchrect.rst
2021-03-16 12:29:34 +01:00

246 lines
11 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
.. DO NOT EDIT THIS FILE, but the NinePatchRect.xml source instead.
.. The source is found in doc/classes or modules/<name>/doc_classes.
.. _class_NinePatchRect:
NinePatchRect
=============
**Inherits:** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
Scalable texture-based frame that tiles the texture's centers and sides, but keeps the corners' original size. Perfect for panels and dialog boxes.
Description
-----------
Also known as 9-slice panels, NinePatchRect produces clean panels of any size, based on a small texture. To do so, it splits the texture in a 3×3 grid. When you scale the node, it tiles the texture's sides horizontally or vertically, the center on both axes but it doesn't scale or tile the corners.
Properties
----------
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`AxisStretchMode<enum_NinePatchRect_AxisStretchMode>` | :ref:`axis_stretch_horizontal<class_NinePatchRect_property_axis_stretch_horizontal>` | ``0`` |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`AxisStretchMode<enum_NinePatchRect_AxisStretchMode>` | :ref:`axis_stretch_vertical<class_NinePatchRect_property_axis_stretch_vertical>` | ``0`` |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`bool<class_bool>` | :ref:`draw_center<class_NinePatchRect_property_draw_center>` | ``true`` |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`MouseFilter<enum_Control_MouseFilter>` | mouse_filter | ``2`` *(parent override)* |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`int<class_int>` | :ref:`patch_margin_bottom<class_NinePatchRect_property_patch_margin_bottom>` | ``0`` |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`int<class_int>` | :ref:`patch_margin_left<class_NinePatchRect_property_patch_margin_left>` | ``0`` |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`int<class_int>` | :ref:`patch_margin_right<class_NinePatchRect_property_patch_margin_right>` | ``0`` |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`int<class_int>` | :ref:`patch_margin_top<class_NinePatchRect_property_patch_margin_top>` | ``0`` |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`Rect2<class_Rect2>` | :ref:`region_rect<class_NinePatchRect_property_region_rect>` | ``Rect2( 0, 0, 0, 0 )`` |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
| :ref:`Texture<class_Texture>` | :ref:`texture<class_NinePatchRect_property_texture>` | |
+------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
Methods
-------
+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_patch_margin<class_NinePatchRect_method_get_patch_margin>` **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin **)** |const| |
+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_patch_margin<class_NinePatchRect_method_set_patch_margin>` **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin, :ref:`int<class_int>` value **)** |
+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
Signals
-------
.. _class_NinePatchRect_signal_texture_changed:
- **texture_changed** **(** **)**
Emitted when the node's texture changes.
Enumerations
------------
.. _enum_NinePatchRect_AxisStretchMode:
.. _class_NinePatchRect_constant_AXIS_STRETCH_MODE_STRETCH:
.. _class_NinePatchRect_constant_AXIS_STRETCH_MODE_TILE:
.. _class_NinePatchRect_constant_AXIS_STRETCH_MODE_TILE_FIT:
enum **AxisStretchMode**:
- **AXIS_STRETCH_MODE_STRETCH** = **0** --- Doesn't do anything at the time of writing.
- **AXIS_STRETCH_MODE_TILE** = **1** --- Doesn't do anything at the time of writing.
- **AXIS_STRETCH_MODE_TILE_FIT** = **2** --- Doesn't do anything at the time of writing.
Property Descriptions
---------------------
.. _class_NinePatchRect_property_axis_stretch_horizontal:
- :ref:`AxisStretchMode<enum_NinePatchRect_AxisStretchMode>` **axis_stretch_horizontal**
+-----------+--------------------------------+
| *Default* | ``0`` |
+-----------+--------------------------------+
| *Setter* | set_h_axis_stretch_mode(value) |
+-----------+--------------------------------+
| *Getter* | get_h_axis_stretch_mode() |
+-----------+--------------------------------+
Doesn't do anything at the time of writing.
----
.. _class_NinePatchRect_property_axis_stretch_vertical:
- :ref:`AxisStretchMode<enum_NinePatchRect_AxisStretchMode>` **axis_stretch_vertical**
+-----------+--------------------------------+
| *Default* | ``0`` |
+-----------+--------------------------------+
| *Setter* | set_v_axis_stretch_mode(value) |
+-----------+--------------------------------+
| *Getter* | get_v_axis_stretch_mode() |
+-----------+--------------------------------+
Doesn't do anything at the time of writing.
----
.. _class_NinePatchRect_property_draw_center:
- :ref:`bool<class_bool>` **draw_center**
+-----------+--------------------------+
| *Default* | ``true`` |
+-----------+--------------------------+
| *Setter* | set_draw_center(value) |
+-----------+--------------------------+
| *Getter* | is_draw_center_enabled() |
+-----------+--------------------------+
If ``true``, draw the panel's center. Else, only draw the 9-slice's borders.
----
.. _class_NinePatchRect_property_patch_margin_bottom:
- :ref:`int<class_int>` **patch_margin_bottom**
+-----------+-------------------------+
| *Default* | ``0`` |
+-----------+-------------------------+
| *Setter* | set_patch_margin(value) |
+-----------+-------------------------+
| *Getter* | get_patch_margin() |
+-----------+-------------------------+
The height of the 9-slice's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders.
----
.. _class_NinePatchRect_property_patch_margin_left:
- :ref:`int<class_int>` **patch_margin_left**
+-----------+-------------------------+
| *Default* | ``0`` |
+-----------+-------------------------+
| *Setter* | set_patch_margin(value) |
+-----------+-------------------------+
| *Getter* | get_patch_margin() |
+-----------+-------------------------+
The height of the 9-slice's left column.
----
.. _class_NinePatchRect_property_patch_margin_right:
- :ref:`int<class_int>` **patch_margin_right**
+-----------+-------------------------+
| *Default* | ``0`` |
+-----------+-------------------------+
| *Setter* | set_patch_margin(value) |
+-----------+-------------------------+
| *Getter* | get_patch_margin() |
+-----------+-------------------------+
The height of the 9-slice's right column.
----
.. _class_NinePatchRect_property_patch_margin_top:
- :ref:`int<class_int>` **patch_margin_top**
+-----------+-------------------------+
| *Default* | ``0`` |
+-----------+-------------------------+
| *Setter* | set_patch_margin(value) |
+-----------+-------------------------+
| *Getter* | get_patch_margin() |
+-----------+-------------------------+
The height of the 9-slice's top row.
----
.. _class_NinePatchRect_property_region_rect:
- :ref:`Rect2<class_Rect2>` **region_rect**
+-----------+-------------------------+
| *Default* | ``Rect2( 0, 0, 0, 0 )`` |
+-----------+-------------------------+
| *Setter* | set_region_rect(value) |
+-----------+-------------------------+
| *Getter* | get_region_rect() |
+-----------+-------------------------+
Rectangular region of the texture to sample from. If you're working with an atlas, use this property to define the area the 9-slice should use. All other properties are relative to this one. If the rect is empty, NinePatchRect will use the whole texture.
----
.. _class_NinePatchRect_property_texture:
- :ref:`Texture<class_Texture>` **texture**
+----------+--------------------+
| *Setter* | set_texture(value) |
+----------+--------------------+
| *Getter* | get_texture() |
+----------+--------------------+
The node's texture resource.
Method Descriptions
-------------------
.. _class_NinePatchRect_method_get_patch_margin:
- :ref:`int<class_int>` **get_patch_margin** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin **)** |const|
Returns the size of the margin identified by the given :ref:`Margin<enum_@GlobalScope_Margin>` constant.
----
.. _class_NinePatchRect_method_set_patch_margin:
- void **set_patch_margin** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin, :ref:`int<class_int>` value **)**
Sets the size of the margin identified by the given :ref:`Margin<enum_@GlobalScope_Margin>` constant to ``value`` in pixels.
.. |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.)`