class_tabbar.rst 46 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/4.0/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/4.0/doc/classes/TabBar.xml.
  6. .. _class_TabBar:
  7. TabBar
  8. ======
  9. **Inherits:** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. A control that provides a horizontal bar with tabs.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. A control that provides a horizontal bar with tabs. Similar to :ref:`TabContainer<class_TabContainer>` but is only in charge of drawing tabs, not interacting with children.
  15. .. rst-class:: classref-reftable-group
  16. Properties
  17. ----------
  18. .. table::
  19. :widths: auto
  20. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  21. | :ref:`bool<class_bool>` | :ref:`clip_tabs<class_TabBar_property_clip_tabs>` | ``true`` |
  22. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  23. | :ref:`int<class_int>` | :ref:`current_tab<class_TabBar_property_current_tab>` | ``0`` |
  24. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  25. | :ref:`bool<class_bool>` | :ref:`drag_to_rearrange_enabled<class_TabBar_property_drag_to_rearrange_enabled>` | ``false`` |
  26. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  27. | :ref:`int<class_int>` | :ref:`max_tab_width<class_TabBar_property_max_tab_width>` | ``0`` |
  28. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  29. | :ref:`bool<class_bool>` | :ref:`scroll_to_selected<class_TabBar_property_scroll_to_selected>` | ``true`` |
  30. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  31. | :ref:`bool<class_bool>` | :ref:`scrolling_enabled<class_TabBar_property_scrolling_enabled>` | ``true`` |
  32. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  33. | :ref:`bool<class_bool>` | :ref:`select_with_rmb<class_TabBar_property_select_with_rmb>` | ``false`` |
  34. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  35. | :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` | :ref:`tab_alignment<class_TabBar_property_tab_alignment>` | ``0`` |
  36. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  37. | :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` | :ref:`tab_close_display_policy<class_TabBar_property_tab_close_display_policy>` | ``0`` |
  38. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  39. | :ref:`int<class_int>` | :ref:`tab_count<class_TabBar_property_tab_count>` | ``0`` |
  40. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  41. | :ref:`int<class_int>` | :ref:`tabs_rearrange_group<class_TabBar_property_tabs_rearrange_group>` | ``-1`` |
  42. +-----------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------+
  43. .. rst-class:: classref-reftable-group
  44. Methods
  45. -------
  46. .. table::
  47. :widths: auto
  48. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | void | :ref:`add_tab<class_TabBar_method_add_tab>` **(** :ref:`String<class_String>` title="", :ref:`Texture2D<class_Texture2D>` icon=null **)** |
  50. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | void | :ref:`clear_tabs<class_TabBar_method_clear_tabs>` **(** **)** |
  52. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | void | :ref:`ensure_tab_visible<class_TabBar_method_ensure_tab_visible>` **(** :ref:`int<class_int>` idx **)** |
  54. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | :ref:`bool<class_bool>` | :ref:`get_offset_buttons_visible<class_TabBar_method_get_offset_buttons_visible>` **(** **)** |const| |
  56. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | :ref:`int<class_int>` | :ref:`get_previous_tab<class_TabBar_method_get_previous_tab>` **(** **)** |const| |
  58. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. | :ref:`Texture2D<class_Texture2D>` | :ref:`get_tab_button_icon<class_TabBar_method_get_tab_button_icon>` **(** :ref:`int<class_int>` tab_idx **)** |const| |
  60. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  61. | :ref:`Texture2D<class_Texture2D>` | :ref:`get_tab_icon<class_TabBar_method_get_tab_icon>` **(** :ref:`int<class_int>` tab_idx **)** |const| |
  62. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  63. | :ref:`int<class_int>` | :ref:`get_tab_idx_at_point<class_TabBar_method_get_tab_idx_at_point>` **(** :ref:`Vector2<class_Vector2>` point **)** |const| |
  64. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  65. | :ref:`String<class_String>` | :ref:`get_tab_language<class_TabBar_method_get_tab_language>` **(** :ref:`int<class_int>` tab_idx **)** |const| |
  66. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  67. | :ref:`int<class_int>` | :ref:`get_tab_offset<class_TabBar_method_get_tab_offset>` **(** **)** |const| |
  68. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  69. | :ref:`Rect2<class_Rect2>` | :ref:`get_tab_rect<class_TabBar_method_get_tab_rect>` **(** :ref:`int<class_int>` tab_idx **)** |const| |
  70. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  71. | :ref:`TextDirection<enum_Control_TextDirection>` | :ref:`get_tab_text_direction<class_TabBar_method_get_tab_text_direction>` **(** :ref:`int<class_int>` tab_idx **)** |const| |
  72. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  73. | :ref:`String<class_String>` | :ref:`get_tab_title<class_TabBar_method_get_tab_title>` **(** :ref:`int<class_int>` tab_idx **)** |const| |
  74. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  75. | :ref:`bool<class_bool>` | :ref:`is_tab_disabled<class_TabBar_method_is_tab_disabled>` **(** :ref:`int<class_int>` tab_idx **)** |const| |
  76. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  77. | :ref:`bool<class_bool>` | :ref:`is_tab_hidden<class_TabBar_method_is_tab_hidden>` **(** :ref:`int<class_int>` tab_idx **)** |const| |
  78. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  79. | void | :ref:`move_tab<class_TabBar_method_move_tab>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)** |
  80. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  81. | void | :ref:`remove_tab<class_TabBar_method_remove_tab>` **(** :ref:`int<class_int>` tab_idx **)** |
  82. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  83. | void | :ref:`set_tab_button_icon<class_TabBar_method_set_tab_button_icon>` **(** :ref:`int<class_int>` tab_idx, :ref:`Texture2D<class_Texture2D>` icon **)** |
  84. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  85. | void | :ref:`set_tab_disabled<class_TabBar_method_set_tab_disabled>` **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` disabled **)** |
  86. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  87. | void | :ref:`set_tab_hidden<class_TabBar_method_set_tab_hidden>` **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` hidden **)** |
  88. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  89. | void | :ref:`set_tab_icon<class_TabBar_method_set_tab_icon>` **(** :ref:`int<class_int>` tab_idx, :ref:`Texture2D<class_Texture2D>` icon **)** |
  90. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  91. | void | :ref:`set_tab_language<class_TabBar_method_set_tab_language>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` language **)** |
  92. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  93. | void | :ref:`set_tab_text_direction<class_TabBar_method_set_tab_text_direction>` **(** :ref:`int<class_int>` tab_idx, :ref:`TextDirection<enum_Control_TextDirection>` direction **)** |
  94. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  95. | void | :ref:`set_tab_title<class_TabBar_method_set_tab_title>` **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` title **)** |
  96. +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  97. .. rst-class:: classref-reftable-group
  98. Theme Properties
  99. ----------------
  100. .. table::
  101. :widths: auto
  102. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  103. | :ref:`Color<class_Color>` | :ref:`drop_mark_color<class_TabBar_theme_color_drop_mark_color>` | ``Color(1, 1, 1, 1)`` |
  104. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  105. | :ref:`Color<class_Color>` | :ref:`font_disabled_color<class_TabBar_theme_color_font_disabled_color>` | ``Color(0.875, 0.875, 0.875, 0.5)`` |
  106. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  107. | :ref:`Color<class_Color>` | :ref:`font_outline_color<class_TabBar_theme_color_font_outline_color>` | ``Color(1, 1, 1, 1)`` |
  108. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  109. | :ref:`Color<class_Color>` | :ref:`font_selected_color<class_TabBar_theme_color_font_selected_color>` | ``Color(0.95, 0.95, 0.95, 1)`` |
  110. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  111. | :ref:`Color<class_Color>` | :ref:`font_unselected_color<class_TabBar_theme_color_font_unselected_color>` | ``Color(0.7, 0.7, 0.7, 1)`` |
  112. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  113. | :ref:`int<class_int>` | :ref:`h_separation<class_TabBar_theme_constant_h_separation>` | ``4`` |
  114. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  115. | :ref:`int<class_int>` | :ref:`outline_size<class_TabBar_theme_constant_outline_size>` | ``0`` |
  116. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  117. | :ref:`Font<class_Font>` | :ref:`font<class_TabBar_theme_font_font>` | |
  118. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  119. | :ref:`int<class_int>` | :ref:`font_size<class_TabBar_theme_font_size_font_size>` | |
  120. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  121. | :ref:`Texture2D<class_Texture2D>` | :ref:`close<class_TabBar_theme_icon_close>` | |
  122. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  123. | :ref:`Texture2D<class_Texture2D>` | :ref:`decrement<class_TabBar_theme_icon_decrement>` | |
  124. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  125. | :ref:`Texture2D<class_Texture2D>` | :ref:`decrement_highlight<class_TabBar_theme_icon_decrement_highlight>` | |
  126. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  127. | :ref:`Texture2D<class_Texture2D>` | :ref:`drop_mark<class_TabBar_theme_icon_drop_mark>` | |
  128. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  129. | :ref:`Texture2D<class_Texture2D>` | :ref:`increment<class_TabBar_theme_icon_increment>` | |
  130. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  131. | :ref:`Texture2D<class_Texture2D>` | :ref:`increment_highlight<class_TabBar_theme_icon_increment_highlight>` | |
  132. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  133. | :ref:`StyleBox<class_StyleBox>` | :ref:`button_highlight<class_TabBar_theme_style_button_highlight>` | |
  134. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  135. | :ref:`StyleBox<class_StyleBox>` | :ref:`button_pressed<class_TabBar_theme_style_button_pressed>` | |
  136. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  137. | :ref:`StyleBox<class_StyleBox>` | :ref:`tab_disabled<class_TabBar_theme_style_tab_disabled>` | |
  138. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  139. | :ref:`StyleBox<class_StyleBox>` | :ref:`tab_selected<class_TabBar_theme_style_tab_selected>` | |
  140. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  141. | :ref:`StyleBox<class_StyleBox>` | :ref:`tab_unselected<class_TabBar_theme_style_tab_unselected>` | |
  142. +-----------------------------------+------------------------------------------------------------------------------+-------------------------------------+
  143. .. rst-class:: classref-section-separator
  144. ----
  145. .. rst-class:: classref-descriptions-group
  146. Signals
  147. -------
  148. .. _class_TabBar_signal_active_tab_rearranged:
  149. .. rst-class:: classref-signal
  150. **active_tab_rearranged** **(** :ref:`int<class_int>` idx_to **)**
  151. Emitted when the active tab is rearranged via mouse drag. See :ref:`drag_to_rearrange_enabled<class_TabBar_property_drag_to_rearrange_enabled>`.
  152. .. rst-class:: classref-item-separator
  153. ----
  154. .. _class_TabBar_signal_tab_button_pressed:
  155. .. rst-class:: classref-signal
  156. **tab_button_pressed** **(** :ref:`int<class_int>` tab **)**
  157. Emitted when a tab's right button is pressed. See :ref:`set_tab_button_icon<class_TabBar_method_set_tab_button_icon>`.
  158. .. rst-class:: classref-item-separator
  159. ----
  160. .. _class_TabBar_signal_tab_changed:
  161. .. rst-class:: classref-signal
  162. **tab_changed** **(** :ref:`int<class_int>` tab **)**
  163. Emitted when switching to another tab.
  164. .. rst-class:: classref-item-separator
  165. ----
  166. .. _class_TabBar_signal_tab_clicked:
  167. .. rst-class:: classref-signal
  168. **tab_clicked** **(** :ref:`int<class_int>` tab **)**
  169. Emitted when a tab is clicked, even if it is the current tab.
  170. .. rst-class:: classref-item-separator
  171. ----
  172. .. _class_TabBar_signal_tab_close_pressed:
  173. .. rst-class:: classref-signal
  174. **tab_close_pressed** **(** :ref:`int<class_int>` tab **)**
  175. Emitted when a tab's close button is pressed.
  176. \ **Note:** Tabs are not removed automatically once the close button is pressed, this behavior needs to be programmed manually. For example:
  177. .. tabs::
  178. .. code-tab:: gdscript
  179. $TabBar.tab_close_pressed.connect($TabBar.remove_tab)
  180. .. code-tab:: csharp
  181. GetNode<TabBar>("TabBar").TabClosePressed += GetNode<TabBar>("TabBar").RemoveTab;
  182. .. rst-class:: classref-item-separator
  183. ----
  184. .. _class_TabBar_signal_tab_hovered:
  185. .. rst-class:: classref-signal
  186. **tab_hovered** **(** :ref:`int<class_int>` tab **)**
  187. Emitted when a tab is hovered by the mouse.
  188. .. rst-class:: classref-item-separator
  189. ----
  190. .. _class_TabBar_signal_tab_rmb_clicked:
  191. .. rst-class:: classref-signal
  192. **tab_rmb_clicked** **(** :ref:`int<class_int>` tab **)**
  193. Emitted when a tab is right-clicked. :ref:`select_with_rmb<class_TabBar_property_select_with_rmb>` must be enabled.
  194. .. rst-class:: classref-item-separator
  195. ----
  196. .. _class_TabBar_signal_tab_selected:
  197. .. rst-class:: classref-signal
  198. **tab_selected** **(** :ref:`int<class_int>` tab **)**
  199. Emitted when a tab is selected via click or script, even if it is the current tab.
  200. .. rst-class:: classref-section-separator
  201. ----
  202. .. rst-class:: classref-descriptions-group
  203. Enumerations
  204. ------------
  205. .. _enum_TabBar_AlignmentMode:
  206. .. rst-class:: classref-enumeration
  207. enum **AlignmentMode**:
  208. .. _class_TabBar_constant_ALIGNMENT_LEFT:
  209. .. rst-class:: classref-enumeration-constant
  210. :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` **ALIGNMENT_LEFT** = ``0``
  211. Places tabs to the left.
  212. .. _class_TabBar_constant_ALIGNMENT_CENTER:
  213. .. rst-class:: classref-enumeration-constant
  214. :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` **ALIGNMENT_CENTER** = ``1``
  215. Places tabs in the middle.
  216. .. _class_TabBar_constant_ALIGNMENT_RIGHT:
  217. .. rst-class:: classref-enumeration-constant
  218. :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` **ALIGNMENT_RIGHT** = ``2``
  219. Places tabs to the right.
  220. .. _class_TabBar_constant_ALIGNMENT_MAX:
  221. .. rst-class:: classref-enumeration-constant
  222. :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` **ALIGNMENT_MAX** = ``3``
  223. Represents the size of the :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` enum.
  224. .. rst-class:: classref-item-separator
  225. ----
  226. .. _enum_TabBar_CloseButtonDisplayPolicy:
  227. .. rst-class:: classref-enumeration
  228. enum **CloseButtonDisplayPolicy**:
  229. .. _class_TabBar_constant_CLOSE_BUTTON_SHOW_NEVER:
  230. .. rst-class:: classref-enumeration-constant
  231. :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` **CLOSE_BUTTON_SHOW_NEVER** = ``0``
  232. Never show the close buttons.
  233. .. _class_TabBar_constant_CLOSE_BUTTON_SHOW_ACTIVE_ONLY:
  234. .. rst-class:: classref-enumeration-constant
  235. :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` **CLOSE_BUTTON_SHOW_ACTIVE_ONLY** = ``1``
  236. Only show the close button on the currently active tab.
  237. .. _class_TabBar_constant_CLOSE_BUTTON_SHOW_ALWAYS:
  238. .. rst-class:: classref-enumeration-constant
  239. :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` **CLOSE_BUTTON_SHOW_ALWAYS** = ``2``
  240. Show the close button on all tabs.
  241. .. _class_TabBar_constant_CLOSE_BUTTON_MAX:
  242. .. rst-class:: classref-enumeration-constant
  243. :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` **CLOSE_BUTTON_MAX** = ``3``
  244. Represents the size of the :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` enum.
  245. .. rst-class:: classref-section-separator
  246. ----
  247. .. rst-class:: classref-descriptions-group
  248. Property Descriptions
  249. ---------------------
  250. .. _class_TabBar_property_clip_tabs:
  251. .. rst-class:: classref-property
  252. :ref:`bool<class_bool>` **clip_tabs** = ``true``
  253. .. rst-class:: classref-property-setget
  254. - void **set_clip_tabs** **(** :ref:`bool<class_bool>` value **)**
  255. - :ref:`bool<class_bool>` **get_clip_tabs** **(** **)**
  256. If ``true``, tabs overflowing this node's width will be hidden, displaying two navigation buttons instead. Otherwise, this node's minimum size is updated so that all tabs are visible.
  257. .. rst-class:: classref-item-separator
  258. ----
  259. .. _class_TabBar_property_current_tab:
  260. .. rst-class:: classref-property
  261. :ref:`int<class_int>` **current_tab** = ``0``
  262. .. rst-class:: classref-property-setget
  263. - void **set_current_tab** **(** :ref:`int<class_int>` value **)**
  264. - :ref:`int<class_int>` **get_current_tab** **(** **)**
  265. Select tab at index ``tab_idx``.
  266. .. rst-class:: classref-item-separator
  267. ----
  268. .. _class_TabBar_property_drag_to_rearrange_enabled:
  269. .. rst-class:: classref-property
  270. :ref:`bool<class_bool>` **drag_to_rearrange_enabled** = ``false``
  271. .. rst-class:: classref-property-setget
  272. - void **set_drag_to_rearrange_enabled** **(** :ref:`bool<class_bool>` value **)**
  273. - :ref:`bool<class_bool>` **get_drag_to_rearrange_enabled** **(** **)**
  274. If ``true``, tabs can be rearranged with mouse drag.
  275. .. rst-class:: classref-item-separator
  276. ----
  277. .. _class_TabBar_property_max_tab_width:
  278. .. rst-class:: classref-property
  279. :ref:`int<class_int>` **max_tab_width** = ``0``
  280. .. rst-class:: classref-property-setget
  281. - void **set_max_tab_width** **(** :ref:`int<class_int>` value **)**
  282. - :ref:`int<class_int>` **get_max_tab_width** **(** **)**
  283. Sets the maximum width which all tabs should be limited to. Unlimited if set to ``0``.
  284. .. rst-class:: classref-item-separator
  285. ----
  286. .. _class_TabBar_property_scroll_to_selected:
  287. .. rst-class:: classref-property
  288. :ref:`bool<class_bool>` **scroll_to_selected** = ``true``
  289. .. rst-class:: classref-property-setget
  290. - void **set_scroll_to_selected** **(** :ref:`bool<class_bool>` value **)**
  291. - :ref:`bool<class_bool>` **get_scroll_to_selected** **(** **)**
  292. If ``true``, the tab offset will be changed to keep the currently selected tab visible.
  293. .. rst-class:: classref-item-separator
  294. ----
  295. .. _class_TabBar_property_scrolling_enabled:
  296. .. rst-class:: classref-property
  297. :ref:`bool<class_bool>` **scrolling_enabled** = ``true``
  298. .. rst-class:: classref-property-setget
  299. - void **set_scrolling_enabled** **(** :ref:`bool<class_bool>` value **)**
  300. - :ref:`bool<class_bool>` **get_scrolling_enabled** **(** **)**
  301. if ``true``, the mouse's scroll wheel can be used to navigate the scroll view.
  302. .. rst-class:: classref-item-separator
  303. ----
  304. .. _class_TabBar_property_select_with_rmb:
  305. .. rst-class:: classref-property
  306. :ref:`bool<class_bool>` **select_with_rmb** = ``false``
  307. .. rst-class:: classref-property-setget
  308. - void **set_select_with_rmb** **(** :ref:`bool<class_bool>` value **)**
  309. - :ref:`bool<class_bool>` **get_select_with_rmb** **(** **)**
  310. If ``true``, enables selecting a tab with the right mouse button.
  311. .. rst-class:: classref-item-separator
  312. ----
  313. .. _class_TabBar_property_tab_alignment:
  314. .. rst-class:: classref-property
  315. :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` **tab_alignment** = ``0``
  316. .. rst-class:: classref-property-setget
  317. - void **set_tab_alignment** **(** :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` value **)**
  318. - :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` **get_tab_alignment** **(** **)**
  319. Sets the position at which tabs will be placed. See :ref:`AlignmentMode<enum_TabBar_AlignmentMode>` for details.
  320. .. rst-class:: classref-item-separator
  321. ----
  322. .. _class_TabBar_property_tab_close_display_policy:
  323. .. rst-class:: classref-property
  324. :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` **tab_close_display_policy** = ``0``
  325. .. rst-class:: classref-property-setget
  326. - void **set_tab_close_display_policy** **(** :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` value **)**
  327. - :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` **get_tab_close_display_policy** **(** **)**
  328. Sets when the close button will appear on the tabs. See :ref:`CloseButtonDisplayPolicy<enum_TabBar_CloseButtonDisplayPolicy>` for details.
  329. .. rst-class:: classref-item-separator
  330. ----
  331. .. _class_TabBar_property_tab_count:
  332. .. rst-class:: classref-property
  333. :ref:`int<class_int>` **tab_count** = ``0``
  334. .. rst-class:: classref-property-setget
  335. - void **set_tab_count** **(** :ref:`int<class_int>` value **)**
  336. - :ref:`int<class_int>` **get_tab_count** **(** **)**
  337. The number of tabs currently in the bar.
  338. .. rst-class:: classref-item-separator
  339. ----
  340. .. _class_TabBar_property_tabs_rearrange_group:
  341. .. rst-class:: classref-property
  342. :ref:`int<class_int>` **tabs_rearrange_group** = ``-1``
  343. .. rst-class:: classref-property-setget
  344. - void **set_tabs_rearrange_group** **(** :ref:`int<class_int>` value **)**
  345. - :ref:`int<class_int>` **get_tabs_rearrange_group** **(** **)**
  346. **TabBar**\ s with the same rearrange group ID will allow dragging the tabs between them. Enable drag with :ref:`drag_to_rearrange_enabled<class_TabBar_property_drag_to_rearrange_enabled>`.
  347. Setting this to ``-1`` will disable rearranging between **TabBar**\ s.
  348. .. rst-class:: classref-section-separator
  349. ----
  350. .. rst-class:: classref-descriptions-group
  351. Method Descriptions
  352. -------------------
  353. .. _class_TabBar_method_add_tab:
  354. .. rst-class:: classref-method
  355. void **add_tab** **(** :ref:`String<class_String>` title="", :ref:`Texture2D<class_Texture2D>` icon=null **)**
  356. Adds a new tab.
  357. .. rst-class:: classref-item-separator
  358. ----
  359. .. _class_TabBar_method_clear_tabs:
  360. .. rst-class:: classref-method
  361. void **clear_tabs** **(** **)**
  362. Clears all tabs.
  363. .. rst-class:: classref-item-separator
  364. ----
  365. .. _class_TabBar_method_ensure_tab_visible:
  366. .. rst-class:: classref-method
  367. void **ensure_tab_visible** **(** :ref:`int<class_int>` idx **)**
  368. Moves the scroll view to make the tab visible.
  369. .. rst-class:: classref-item-separator
  370. ----
  371. .. _class_TabBar_method_get_offset_buttons_visible:
  372. .. rst-class:: classref-method
  373. :ref:`bool<class_bool>` **get_offset_buttons_visible** **(** **)** |const|
  374. Returns ``true`` if the offset buttons (the ones that appear when there's not enough space for all tabs) are visible.
  375. .. rst-class:: classref-item-separator
  376. ----
  377. .. _class_TabBar_method_get_previous_tab:
  378. .. rst-class:: classref-method
  379. :ref:`int<class_int>` **get_previous_tab** **(** **)** |const|
  380. Returns the previously active tab index.
  381. .. rst-class:: classref-item-separator
  382. ----
  383. .. _class_TabBar_method_get_tab_button_icon:
  384. .. rst-class:: classref-method
  385. :ref:`Texture2D<class_Texture2D>` **get_tab_button_icon** **(** :ref:`int<class_int>` tab_idx **)** |const|
  386. Returns the :ref:`Texture2D<class_Texture2D>` for the right button of the tab at index ``tab_idx`` or ``null`` if the button has no :ref:`Texture2D<class_Texture2D>`.
  387. .. rst-class:: classref-item-separator
  388. ----
  389. .. _class_TabBar_method_get_tab_icon:
  390. .. rst-class:: classref-method
  391. :ref:`Texture2D<class_Texture2D>` **get_tab_icon** **(** :ref:`int<class_int>` tab_idx **)** |const|
  392. Returns the :ref:`Texture2D<class_Texture2D>` for the tab at index ``tab_idx`` or ``null`` if the tab has no :ref:`Texture2D<class_Texture2D>`.
  393. .. rst-class:: classref-item-separator
  394. ----
  395. .. _class_TabBar_method_get_tab_idx_at_point:
  396. .. rst-class:: classref-method
  397. :ref:`int<class_int>` **get_tab_idx_at_point** **(** :ref:`Vector2<class_Vector2>` point **)** |const|
  398. Returns the index of the tab at local coordinates ``point``. Returns ``-1`` if the point is outside the control boundaries or if there's no tab at the queried position.
  399. .. rst-class:: classref-item-separator
  400. ----
  401. .. _class_TabBar_method_get_tab_language:
  402. .. rst-class:: classref-method
  403. :ref:`String<class_String>` **get_tab_language** **(** :ref:`int<class_int>` tab_idx **)** |const|
  404. Returns tab title language code.
  405. .. rst-class:: classref-item-separator
  406. ----
  407. .. _class_TabBar_method_get_tab_offset:
  408. .. rst-class:: classref-method
  409. :ref:`int<class_int>` **get_tab_offset** **(** **)** |const|
  410. Returns the number of hidden tabs offsetted to the left.
  411. .. rst-class:: classref-item-separator
  412. ----
  413. .. _class_TabBar_method_get_tab_rect:
  414. .. rst-class:: classref-method
  415. :ref:`Rect2<class_Rect2>` **get_tab_rect** **(** :ref:`int<class_int>` tab_idx **)** |const|
  416. Returns tab :ref:`Rect2<class_Rect2>` with local position and size.
  417. .. rst-class:: classref-item-separator
  418. ----
  419. .. _class_TabBar_method_get_tab_text_direction:
  420. .. rst-class:: classref-method
  421. :ref:`TextDirection<enum_Control_TextDirection>` **get_tab_text_direction** **(** :ref:`int<class_int>` tab_idx **)** |const|
  422. Returns tab title text base writing direction.
  423. .. rst-class:: classref-item-separator
  424. ----
  425. .. _class_TabBar_method_get_tab_title:
  426. .. rst-class:: classref-method
  427. :ref:`String<class_String>` **get_tab_title** **(** :ref:`int<class_int>` tab_idx **)** |const|
  428. Returns the title of the tab at index ``tab_idx``.
  429. .. rst-class:: classref-item-separator
  430. ----
  431. .. _class_TabBar_method_is_tab_disabled:
  432. .. rst-class:: classref-method
  433. :ref:`bool<class_bool>` **is_tab_disabled** **(** :ref:`int<class_int>` tab_idx **)** |const|
  434. Returns ``true`` if the tab at index ``tab_idx`` is disabled.
  435. .. rst-class:: classref-item-separator
  436. ----
  437. .. _class_TabBar_method_is_tab_hidden:
  438. .. rst-class:: classref-method
  439. :ref:`bool<class_bool>` **is_tab_hidden** **(** :ref:`int<class_int>` tab_idx **)** |const|
  440. Returns ``true`` if the tab at index ``tab_idx`` is hidden.
  441. .. rst-class:: classref-item-separator
  442. ----
  443. .. _class_TabBar_method_move_tab:
  444. .. rst-class:: classref-method
  445. void **move_tab** **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**
  446. Moves a tab from ``from`` to ``to``.
  447. .. rst-class:: classref-item-separator
  448. ----
  449. .. _class_TabBar_method_remove_tab:
  450. .. rst-class:: classref-method
  451. void **remove_tab** **(** :ref:`int<class_int>` tab_idx **)**
  452. Removes the tab at index ``tab_idx``.
  453. .. rst-class:: classref-item-separator
  454. ----
  455. .. _class_TabBar_method_set_tab_button_icon:
  456. .. rst-class:: classref-method
  457. void **set_tab_button_icon** **(** :ref:`int<class_int>` tab_idx, :ref:`Texture2D<class_Texture2D>` icon **)**
  458. Sets an ``icon`` for the button of the tab at index ``tab_idx`` (located to the right, before the close button), making it visible and clickable (See :ref:`tab_button_pressed<class_TabBar_signal_tab_button_pressed>`). Giving it a ``null`` value will hide the button.
  459. .. rst-class:: classref-item-separator
  460. ----
  461. .. _class_TabBar_method_set_tab_disabled:
  462. .. rst-class:: classref-method
  463. void **set_tab_disabled** **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` disabled **)**
  464. If ``disabled`` is ``true``, disables the tab at index ``tab_idx``, making it non-interactable.
  465. .. rst-class:: classref-item-separator
  466. ----
  467. .. _class_TabBar_method_set_tab_hidden:
  468. .. rst-class:: classref-method
  469. void **set_tab_hidden** **(** :ref:`int<class_int>` tab_idx, :ref:`bool<class_bool>` hidden **)**
  470. If ``hidden`` is ``true``, hides the tab at index ``tab_idx``, making it disappear from the tab area.
  471. .. rst-class:: classref-item-separator
  472. ----
  473. .. _class_TabBar_method_set_tab_icon:
  474. .. rst-class:: classref-method
  475. void **set_tab_icon** **(** :ref:`int<class_int>` tab_idx, :ref:`Texture2D<class_Texture2D>` icon **)**
  476. Sets an ``icon`` for the tab at index ``tab_idx``.
  477. .. rst-class:: classref-item-separator
  478. ----
  479. .. _class_TabBar_method_set_tab_language:
  480. .. rst-class:: classref-method
  481. void **set_tab_language** **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` language **)**
  482. Sets language code of tab title used for line-breaking and text shaping algorithms, if left empty current locale is used instead.
  483. .. rst-class:: classref-item-separator
  484. ----
  485. .. _class_TabBar_method_set_tab_text_direction:
  486. .. rst-class:: classref-method
  487. void **set_tab_text_direction** **(** :ref:`int<class_int>` tab_idx, :ref:`TextDirection<enum_Control_TextDirection>` direction **)**
  488. Sets tab title base writing direction.
  489. .. rst-class:: classref-item-separator
  490. ----
  491. .. _class_TabBar_method_set_tab_title:
  492. .. rst-class:: classref-method
  493. void **set_tab_title** **(** :ref:`int<class_int>` tab_idx, :ref:`String<class_String>` title **)**
  494. Sets a ``title`` for the tab at index ``tab_idx``.
  495. .. rst-class:: classref-section-separator
  496. ----
  497. .. rst-class:: classref-descriptions-group
  498. Theme Property Descriptions
  499. ---------------------------
  500. .. _class_TabBar_theme_color_drop_mark_color:
  501. .. rst-class:: classref-themeproperty
  502. :ref:`Color<class_Color>` **drop_mark_color** = ``Color(1, 1, 1, 1)``
  503. Modulation color for the :ref:`drop_mark<class_TabBar_theme_icon_drop_mark>` icon.
  504. .. rst-class:: classref-item-separator
  505. ----
  506. .. _class_TabBar_theme_color_font_disabled_color:
  507. .. rst-class:: classref-themeproperty
  508. :ref:`Color<class_Color>` **font_disabled_color** = ``Color(0.875, 0.875, 0.875, 0.5)``
  509. Font color of disabled tabs.
  510. .. rst-class:: classref-item-separator
  511. ----
  512. .. _class_TabBar_theme_color_font_outline_color:
  513. .. rst-class:: classref-themeproperty
  514. :ref:`Color<class_Color>` **font_outline_color** = ``Color(1, 1, 1, 1)``
  515. The tint of text outline of the tab name.
  516. .. rst-class:: classref-item-separator
  517. ----
  518. .. _class_TabBar_theme_color_font_selected_color:
  519. .. rst-class:: classref-themeproperty
  520. :ref:`Color<class_Color>` **font_selected_color** = ``Color(0.95, 0.95, 0.95, 1)``
  521. Font color of the currently selected tab.
  522. .. rst-class:: classref-item-separator
  523. ----
  524. .. _class_TabBar_theme_color_font_unselected_color:
  525. .. rst-class:: classref-themeproperty
  526. :ref:`Color<class_Color>` **font_unselected_color** = ``Color(0.7, 0.7, 0.7, 1)``
  527. Font color of the other, unselected tabs.
  528. .. rst-class:: classref-item-separator
  529. ----
  530. .. _class_TabBar_theme_constant_h_separation:
  531. .. rst-class:: classref-themeproperty
  532. :ref:`int<class_int>` **h_separation** = ``4``
  533. The horizontal separation between the elements inside tabs.
  534. .. rst-class:: classref-item-separator
  535. ----
  536. .. _class_TabBar_theme_constant_outline_size:
  537. .. rst-class:: classref-themeproperty
  538. :ref:`int<class_int>` **outline_size** = ``0``
  539. The size of the tab text outline.
  540. \ **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_TabBar_theme_constant_outline_size>` for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.
  541. .. rst-class:: classref-item-separator
  542. ----
  543. .. _class_TabBar_theme_font_font:
  544. .. rst-class:: classref-themeproperty
  545. :ref:`Font<class_Font>` **font**
  546. The font used to draw tab names.
  547. .. rst-class:: classref-item-separator
  548. ----
  549. .. _class_TabBar_theme_font_size_font_size:
  550. .. rst-class:: classref-themeproperty
  551. :ref:`int<class_int>` **font_size**
  552. Font size of the tab names.
  553. .. rst-class:: classref-item-separator
  554. ----
  555. .. _class_TabBar_theme_icon_close:
  556. .. rst-class:: classref-themeproperty
  557. :ref:`Texture2D<class_Texture2D>` **close**
  558. The icon for the close button (see :ref:`tab_close_display_policy<class_TabBar_property_tab_close_display_policy>`).
  559. .. rst-class:: classref-item-separator
  560. ----
  561. .. _class_TabBar_theme_icon_decrement:
  562. .. rst-class:: classref-themeproperty
  563. :ref:`Texture2D<class_Texture2D>` **decrement**
  564. Icon for the left arrow button that appears when there are too many tabs to fit in the container width. When the button is disabled (i.e. the first tab is visible), it appears semi-transparent.
  565. .. rst-class:: classref-item-separator
  566. ----
  567. .. _class_TabBar_theme_icon_decrement_highlight:
  568. .. rst-class:: classref-themeproperty
  569. :ref:`Texture2D<class_Texture2D>` **decrement_highlight**
  570. Icon for the left arrow button that appears when there are too many tabs to fit in the container width. Used when the button is being hovered with the cursor.
  571. .. rst-class:: classref-item-separator
  572. ----
  573. .. _class_TabBar_theme_icon_drop_mark:
  574. .. rst-class:: classref-themeproperty
  575. :ref:`Texture2D<class_Texture2D>` **drop_mark**
  576. Icon shown to indicate where a dragged tab is gonna be dropped (see :ref:`drag_to_rearrange_enabled<class_TabBar_property_drag_to_rearrange_enabled>`).
  577. .. rst-class:: classref-item-separator
  578. ----
  579. .. _class_TabBar_theme_icon_increment:
  580. .. rst-class:: classref-themeproperty
  581. :ref:`Texture2D<class_Texture2D>` **increment**
  582. Icon for the right arrow button that appears when there are too many tabs to fit in the container width. When the button is disabled (i.e. the last tab is visible) it appears semi-transparent.
  583. .. rst-class:: classref-item-separator
  584. ----
  585. .. _class_TabBar_theme_icon_increment_highlight:
  586. .. rst-class:: classref-themeproperty
  587. :ref:`Texture2D<class_Texture2D>` **increment_highlight**
  588. Icon for the right arrow button that appears when there are too many tabs to fit in the container width. Used when the button is being hovered with the cursor.
  589. .. rst-class:: classref-item-separator
  590. ----
  591. .. _class_TabBar_theme_style_button_highlight:
  592. .. rst-class:: classref-themeproperty
  593. :ref:`StyleBox<class_StyleBox>` **button_highlight**
  594. Background of the tab and close buttons when they're being hovered with the cursor.
  595. .. rst-class:: classref-item-separator
  596. ----
  597. .. _class_TabBar_theme_style_button_pressed:
  598. .. rst-class:: classref-themeproperty
  599. :ref:`StyleBox<class_StyleBox>` **button_pressed**
  600. Background of the tab and close buttons when it's being pressed.
  601. .. rst-class:: classref-item-separator
  602. ----
  603. .. _class_TabBar_theme_style_tab_disabled:
  604. .. rst-class:: classref-themeproperty
  605. :ref:`StyleBox<class_StyleBox>` **tab_disabled**
  606. The style of disabled tabs.
  607. .. rst-class:: classref-item-separator
  608. ----
  609. .. _class_TabBar_theme_style_tab_selected:
  610. .. rst-class:: classref-themeproperty
  611. :ref:`StyleBox<class_StyleBox>` **tab_selected**
  612. The style of the currently selected tab.
  613. .. rst-class:: classref-item-separator
  614. ----
  615. .. _class_TabBar_theme_style_tab_unselected:
  616. .. rst-class:: classref-themeproperty
  617. :ref:`StyleBox<class_StyleBox>` **tab_unselected**
  618. The style of the other, unselected tabs.
  619. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  620. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  621. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  622. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  623. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  624. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`