: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//doc_classes. .. _class_NinePatchRect: NinePatchRect ============= **Inherits:** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`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` | :ref:`axis_stretch_horizontal` | ``0`` | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ | :ref:`AxisStretchMode` | :ref:`axis_stretch_vertical` | ``0`` | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ | :ref:`bool` | :ref:`draw_center` | ``true`` | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ | :ref:`MouseFilter` | mouse_filter | ``2`` *(parent override)* | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ | :ref:`int` | :ref:`patch_margin_bottom` | ``0`` | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ | :ref:`int` | :ref:`patch_margin_left` | ``0`` | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ | :ref:`int` | :ref:`patch_margin_right` | ``0`` | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ | :ref:`int` | :ref:`patch_margin_top` | ``0`` | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ | :ref:`Rect2` | :ref:`region_rect` | ``Rect2( 0, 0, 0, 0 )`` | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ | :ref:`Texture` | :ref:`texture` | | +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+ Methods ------- +-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_patch_margin` **(** :ref:`Margin` margin **)** |const| | +-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_patch_margin` **(** :ref:`Margin` margin, :ref:`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` **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` **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` **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` **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` **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` **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` **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` **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` **texture** +----------+--------------------+ | *Setter* | set_texture(value) | +----------+--------------------+ | *Getter* | get_texture() | +----------+--------------------+ The node's texture resource. Method Descriptions ------------------- .. _class_NinePatchRect_method_get_patch_margin: - :ref:`int` **get_patch_margin** **(** :ref:`Margin` margin **)** |const| Returns the size of the margin identified by the given :ref:`Margin` constant. ---- .. _class_NinePatchRect_method_set_patch_margin: - void **set_patch_margin** **(** :ref:`Margin` margin, :ref:`int` value **)** Sets the size of the margin identified by the given :ref:`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.)`