class_ninepatchrect.rst 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the NinePatchRect.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_NinePatchRect:
  6. NinePatchRect
  7. =============
  8. **Inherits:** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  9. Scalable texture-based frame that tiles the texture's centers and sides, but keeps the corners' original size. Perfect for panels and dialog boxes.
  10. Description
  11. -----------
  12. 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.
  13. Properties
  14. ----------
  15. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  16. | :ref:`AxisStretchMode<enum_NinePatchRect_AxisStretchMode>` | :ref:`axis_stretch_horizontal<class_NinePatchRect_property_axis_stretch_horizontal>` | ``0`` |
  17. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  18. | :ref:`AxisStretchMode<enum_NinePatchRect_AxisStretchMode>` | :ref:`axis_stretch_vertical<class_NinePatchRect_property_axis_stretch_vertical>` | ``0`` |
  19. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  20. | :ref:`bool<class_bool>` | :ref:`draw_center<class_NinePatchRect_property_draw_center>` | ``true`` |
  21. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  22. | :ref:`MouseFilter<enum_Control_MouseFilter>` | mouse_filter | ``2`` *(parent override)* |
  23. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  24. | :ref:`int<class_int>` | :ref:`patch_margin_bottom<class_NinePatchRect_property_patch_margin_bottom>` | ``0`` |
  25. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  26. | :ref:`int<class_int>` | :ref:`patch_margin_left<class_NinePatchRect_property_patch_margin_left>` | ``0`` |
  27. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  28. | :ref:`int<class_int>` | :ref:`patch_margin_right<class_NinePatchRect_property_patch_margin_right>` | ``0`` |
  29. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  30. | :ref:`int<class_int>` | :ref:`patch_margin_top<class_NinePatchRect_property_patch_margin_top>` | ``0`` |
  31. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  32. | :ref:`Rect2<class_Rect2>` | :ref:`region_rect<class_NinePatchRect_property_region_rect>` | ``Rect2( 0, 0, 0, 0 )`` |
  33. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  34. | :ref:`Texture<class_Texture>` | :ref:`texture<class_NinePatchRect_property_texture>` | |
  35. +------------------------------------------------------------+--------------------------------------------------------------------------------------+---------------------------+
  36. Methods
  37. -------
  38. +-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`int<class_int>` | :ref:`get_patch_margin<class_NinePatchRect_method_get_patch_margin>` **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin **)** |const| |
  40. +-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | void | :ref:`set_patch_margin<class_NinePatchRect_method_set_patch_margin>` **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin, :ref:`int<class_int>` value **)** |
  42. +-----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. Signals
  44. -------
  45. .. _class_NinePatchRect_signal_texture_changed:
  46. - **texture_changed** **(** **)**
  47. Emitted when the node's texture changes.
  48. Enumerations
  49. ------------
  50. .. _enum_NinePatchRect_AxisStretchMode:
  51. .. _class_NinePatchRect_constant_AXIS_STRETCH_MODE_STRETCH:
  52. .. _class_NinePatchRect_constant_AXIS_STRETCH_MODE_TILE:
  53. .. _class_NinePatchRect_constant_AXIS_STRETCH_MODE_TILE_FIT:
  54. enum **AxisStretchMode**:
  55. - **AXIS_STRETCH_MODE_STRETCH** = **0** --- Doesn't do anything at the time of writing.
  56. - **AXIS_STRETCH_MODE_TILE** = **1** --- Doesn't do anything at the time of writing.
  57. - **AXIS_STRETCH_MODE_TILE_FIT** = **2** --- Doesn't do anything at the time of writing.
  58. Property Descriptions
  59. ---------------------
  60. .. _class_NinePatchRect_property_axis_stretch_horizontal:
  61. - :ref:`AxisStretchMode<enum_NinePatchRect_AxisStretchMode>` **axis_stretch_horizontal**
  62. +-----------+--------------------------------+
  63. | *Default* | ``0`` |
  64. +-----------+--------------------------------+
  65. | *Setter* | set_h_axis_stretch_mode(value) |
  66. +-----------+--------------------------------+
  67. | *Getter* | get_h_axis_stretch_mode() |
  68. +-----------+--------------------------------+
  69. Doesn't do anything at the time of writing.
  70. ----
  71. .. _class_NinePatchRect_property_axis_stretch_vertical:
  72. - :ref:`AxisStretchMode<enum_NinePatchRect_AxisStretchMode>` **axis_stretch_vertical**
  73. +-----------+--------------------------------+
  74. | *Default* | ``0`` |
  75. +-----------+--------------------------------+
  76. | *Setter* | set_v_axis_stretch_mode(value) |
  77. +-----------+--------------------------------+
  78. | *Getter* | get_v_axis_stretch_mode() |
  79. +-----------+--------------------------------+
  80. Doesn't do anything at the time of writing.
  81. ----
  82. .. _class_NinePatchRect_property_draw_center:
  83. - :ref:`bool<class_bool>` **draw_center**
  84. +-----------+--------------------------+
  85. | *Default* | ``true`` |
  86. +-----------+--------------------------+
  87. | *Setter* | set_draw_center(value) |
  88. +-----------+--------------------------+
  89. | *Getter* | is_draw_center_enabled() |
  90. +-----------+--------------------------+
  91. If ``true``, draw the panel's center. Else, only draw the 9-slice's borders.
  92. ----
  93. .. _class_NinePatchRect_property_patch_margin_bottom:
  94. - :ref:`int<class_int>` **patch_margin_bottom**
  95. +-----------+-------------------------+
  96. | *Default* | ``0`` |
  97. +-----------+-------------------------+
  98. | *Setter* | set_patch_margin(value) |
  99. +-----------+-------------------------+
  100. | *Getter* | get_patch_margin() |
  101. +-----------+-------------------------+
  102. 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.
  103. ----
  104. .. _class_NinePatchRect_property_patch_margin_left:
  105. - :ref:`int<class_int>` **patch_margin_left**
  106. +-----------+-------------------------+
  107. | *Default* | ``0`` |
  108. +-----------+-------------------------+
  109. | *Setter* | set_patch_margin(value) |
  110. +-----------+-------------------------+
  111. | *Getter* | get_patch_margin() |
  112. +-----------+-------------------------+
  113. The height of the 9-slice's left column.
  114. ----
  115. .. _class_NinePatchRect_property_patch_margin_right:
  116. - :ref:`int<class_int>` **patch_margin_right**
  117. +-----------+-------------------------+
  118. | *Default* | ``0`` |
  119. +-----------+-------------------------+
  120. | *Setter* | set_patch_margin(value) |
  121. +-----------+-------------------------+
  122. | *Getter* | get_patch_margin() |
  123. +-----------+-------------------------+
  124. The height of the 9-slice's right column.
  125. ----
  126. .. _class_NinePatchRect_property_patch_margin_top:
  127. - :ref:`int<class_int>` **patch_margin_top**
  128. +-----------+-------------------------+
  129. | *Default* | ``0`` |
  130. +-----------+-------------------------+
  131. | *Setter* | set_patch_margin(value) |
  132. +-----------+-------------------------+
  133. | *Getter* | get_patch_margin() |
  134. +-----------+-------------------------+
  135. The height of the 9-slice's top row.
  136. ----
  137. .. _class_NinePatchRect_property_region_rect:
  138. - :ref:`Rect2<class_Rect2>` **region_rect**
  139. +-----------+-------------------------+
  140. | *Default* | ``Rect2( 0, 0, 0, 0 )`` |
  141. +-----------+-------------------------+
  142. | *Setter* | set_region_rect(value) |
  143. +-----------+-------------------------+
  144. | *Getter* | get_region_rect() |
  145. +-----------+-------------------------+
  146. 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.
  147. ----
  148. .. _class_NinePatchRect_property_texture:
  149. - :ref:`Texture<class_Texture>` **texture**
  150. +----------+--------------------+
  151. | *Setter* | set_texture(value) |
  152. +----------+--------------------+
  153. | *Getter* | get_texture() |
  154. +----------+--------------------+
  155. The node's texture resource.
  156. Method Descriptions
  157. -------------------
  158. .. _class_NinePatchRect_method_get_patch_margin:
  159. - :ref:`int<class_int>` **get_patch_margin** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin **)** |const|
  160. Returns the size of the margin identified by the given :ref:`Margin<enum_@GlobalScope_Margin>` constant.
  161. ----
  162. .. _class_NinePatchRect_method_set_patch_margin:
  163. - void **set_patch_margin** **(** :ref:`Margin<enum_@GlobalScope_Margin>` margin, :ref:`int<class_int>` value **)**
  164. Sets the size of the margin identified by the given :ref:`Margin<enum_@GlobalScope_Margin>` constant to ``value`` in pixels.
  165. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  166. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  167. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`