class_optionbutton.rst 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  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/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/OptionButton.xml.
  6. .. _class_OptionButton:
  7. OptionButton
  8. ============
  9. **Inherits:** :ref:`Button<class_Button>` **<** :ref:`BaseButton<class_BaseButton>` **<** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. A button that brings up a dropdown with selectable options when pressed.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. **OptionButton** is a type of button that brings up a dropdown with selectable items when pressed. The item selected becomes the "current" item and is displayed as the button text.
  15. See also :ref:`BaseButton<class_BaseButton>` which contains common properties and methods associated with this node.
  16. \ **Note:** Properties :ref:`Button.text<class_Button_property_text>` and :ref:`Button.icon<class_Button_property_icon>` are automatically set based on the selected item. They shouldn't be changed manually.
  17. \ **Note:** The ID values used for items are limited to 32 bits, not full 64 bits of :ref:`int<class_int>`. This has a range of ``-2^32`` to ``2^32 - 1``, i.e. ``-2147483648`` to ``2147483647``.
  18. \ **Note:** The ID values used for items are 32-bit, unlike :ref:`int<class_int>` which is always 64-bit. They go from ``-2147483648`` to ``2147483647``.
  19. \ **Note:** The :ref:`Button.text<class_Button_property_text>` and :ref:`Button.icon<class_Button_property_icon>` properties are set automatically based on the selected item. They shouldn't be changed manually.
  20. .. rst-class:: classref-reftable-group
  21. Properties
  22. ----------
  23. .. table::
  24. :widths: auto
  25. +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------------------------------------------------------------+
  26. | :ref:`ActionMode<enum_BaseButton_ActionMode>` | action_mode | ``0`` (overrides :ref:`BaseButton<class_BaseButton_property_action_mode>`) |
  27. +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------------------------------------------------------------+
  28. | :ref:`HorizontalAlignment<enum_@GlobalScope_HorizontalAlignment>` | alignment | ``0`` (overrides :ref:`Button<class_Button_property_alignment>`) |
  29. +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------------------------------------------------------------+
  30. | :ref:`bool<class_bool>` | :ref:`allow_reselect<class_OptionButton_property_allow_reselect>` | ``false`` |
  31. +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------------------------------------------------------------+
  32. | :ref:`bool<class_bool>` | :ref:`fit_to_longest_item<class_OptionButton_property_fit_to_longest_item>` | ``true`` |
  33. +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------------------------------------------------------------+
  34. | :ref:`int<class_int>` | :ref:`item_count<class_OptionButton_property_item_count>` | ``0`` |
  35. +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------------------------------------------------------------+
  36. | :ref:`int<class_int>` | :ref:`selected<class_OptionButton_property_selected>` | ``-1`` |
  37. +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------------------------------------------------------------+
  38. | :ref:`bool<class_bool>` | toggle_mode | ``true`` (overrides :ref:`BaseButton<class_BaseButton_property_toggle_mode>`) |
  39. +-------------------------------------------------------------------+-----------------------------------------------------------------------------+-------------------------------------------------------------------------------+
  40. .. rst-class:: classref-reftable-group
  41. Methods
  42. -------
  43. .. table::
  44. :widths: auto
  45. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | void | :ref:`add_icon_item<class_OptionButton_method_add_icon_item>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1 **)** |
  47. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | void | :ref:`add_item<class_OptionButton_method_add_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1 **)** |
  49. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | void | :ref:`add_separator<class_OptionButton_method_add_separator>` **(** :ref:`String<class_String>` text="" **)** |
  51. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | void | :ref:`clear<class_OptionButton_method_clear>` **(** **)** |
  53. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | :ref:`Texture2D<class_Texture2D>` | :ref:`get_item_icon<class_OptionButton_method_get_item_icon>` **(** :ref:`int<class_int>` idx **)** |const| |
  55. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | :ref:`int<class_int>` | :ref:`get_item_id<class_OptionButton_method_get_item_id>` **(** :ref:`int<class_int>` idx **)** |const| |
  57. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | :ref:`int<class_int>` | :ref:`get_item_index<class_OptionButton_method_get_item_index>` **(** :ref:`int<class_int>` id **)** |const| |
  59. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | :ref:`Variant<class_Variant>` | :ref:`get_item_metadata<class_OptionButton_method_get_item_metadata>` **(** :ref:`int<class_int>` idx **)** |const| |
  61. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | :ref:`String<class_String>` | :ref:`get_item_text<class_OptionButton_method_get_item_text>` **(** :ref:`int<class_int>` idx **)** |const| |
  63. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | :ref:`String<class_String>` | :ref:`get_item_tooltip<class_OptionButton_method_get_item_tooltip>` **(** :ref:`int<class_int>` idx **)** |const| |
  65. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | :ref:`PopupMenu<class_PopupMenu>` | :ref:`get_popup<class_OptionButton_method_get_popup>` **(** **)** |const| |
  67. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | :ref:`int<class_int>` | :ref:`get_selectable_item<class_OptionButton_method_get_selectable_item>` **(** :ref:`bool<class_bool>` from_last=false **)** |const| |
  69. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | :ref:`int<class_int>` | :ref:`get_selected_id<class_OptionButton_method_get_selected_id>` **(** **)** |const| |
  71. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | :ref:`Variant<class_Variant>` | :ref:`get_selected_metadata<class_OptionButton_method_get_selected_metadata>` **(** **)** |const| |
  73. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | :ref:`bool<class_bool>` | :ref:`has_selectable_items<class_OptionButton_method_has_selectable_items>` **(** **)** |const| |
  75. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | :ref:`bool<class_bool>` | :ref:`is_item_disabled<class_OptionButton_method_is_item_disabled>` **(** :ref:`int<class_int>` idx **)** |const| |
  77. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | :ref:`bool<class_bool>` | :ref:`is_item_separator<class_OptionButton_method_is_item_separator>` **(** :ref:`int<class_int>` idx **)** |const| |
  79. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. | void | :ref:`remove_item<class_OptionButton_method_remove_item>` **(** :ref:`int<class_int>` idx **)** |
  81. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  82. | void | :ref:`select<class_OptionButton_method_select>` **(** :ref:`int<class_int>` idx **)** |
  83. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  84. | void | :ref:`set_disable_shortcuts<class_OptionButton_method_set_disable_shortcuts>` **(** :ref:`bool<class_bool>` disabled **)** |
  85. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  86. | void | :ref:`set_item_disabled<class_OptionButton_method_set_item_disabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` disabled **)** |
  87. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  88. | void | :ref:`set_item_icon<class_OptionButton_method_set_item_icon>` **(** :ref:`int<class_int>` idx, :ref:`Texture2D<class_Texture2D>` texture **)** |
  89. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  90. | void | :ref:`set_item_id<class_OptionButton_method_set_item_id>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` id **)** |
  91. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  92. | void | :ref:`set_item_metadata<class_OptionButton_method_set_item_metadata>` **(** :ref:`int<class_int>` idx, :ref:`Variant<class_Variant>` metadata **)** |
  93. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  94. | void | :ref:`set_item_text<class_OptionButton_method_set_item_text>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` text **)** |
  95. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  96. | void | :ref:`set_item_tooltip<class_OptionButton_method_set_item_tooltip>` **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tooltip **)** |
  97. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  98. | void | :ref:`show_popup<class_OptionButton_method_show_popup>` **(** **)** |
  99. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  100. .. rst-class:: classref-reftable-group
  101. Theme Properties
  102. ----------------
  103. .. table::
  104. :widths: auto
  105. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  106. | :ref:`Color<class_Color>` | :ref:`font_color<class_OptionButton_theme_color_font_color>` | ``Color(0.875, 0.875, 0.875, 1)`` |
  107. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  108. | :ref:`Color<class_Color>` | :ref:`font_disabled_color<class_OptionButton_theme_color_font_disabled_color>` | ``Color(0.875, 0.875, 0.875, 0.5)`` |
  109. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  110. | :ref:`Color<class_Color>` | :ref:`font_focus_color<class_OptionButton_theme_color_font_focus_color>` | ``Color(0.95, 0.95, 0.95, 1)`` |
  111. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  112. | :ref:`Color<class_Color>` | :ref:`font_hover_color<class_OptionButton_theme_color_font_hover_color>` | ``Color(0.95, 0.95, 0.95, 1)`` |
  113. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  114. | :ref:`Color<class_Color>` | :ref:`font_hover_pressed_color<class_OptionButton_theme_color_font_hover_pressed_color>` | ``Color(1, 1, 1, 1)`` |
  115. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  116. | :ref:`Color<class_Color>` | :ref:`font_outline_color<class_OptionButton_theme_color_font_outline_color>` | ``Color(1, 1, 1, 1)`` |
  117. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  118. | :ref:`Color<class_Color>` | :ref:`font_pressed_color<class_OptionButton_theme_color_font_pressed_color>` | ``Color(1, 1, 1, 1)`` |
  119. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  120. | :ref:`int<class_int>` | :ref:`arrow_margin<class_OptionButton_theme_constant_arrow_margin>` | ``4`` |
  121. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  122. | :ref:`int<class_int>` | :ref:`h_separation<class_OptionButton_theme_constant_h_separation>` | ``4`` |
  123. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  124. | :ref:`int<class_int>` | :ref:`modulate_arrow<class_OptionButton_theme_constant_modulate_arrow>` | ``0`` |
  125. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  126. | :ref:`int<class_int>` | :ref:`outline_size<class_OptionButton_theme_constant_outline_size>` | ``0`` |
  127. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  128. | :ref:`Font<class_Font>` | :ref:`font<class_OptionButton_theme_font_font>` | |
  129. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  130. | :ref:`int<class_int>` | :ref:`font_size<class_OptionButton_theme_font_size_font_size>` | |
  131. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  132. | :ref:`Texture2D<class_Texture2D>` | :ref:`arrow<class_OptionButton_theme_icon_arrow>` | |
  133. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  134. | :ref:`StyleBox<class_StyleBox>` | :ref:`disabled<class_OptionButton_theme_style_disabled>` | |
  135. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  136. | :ref:`StyleBox<class_StyleBox>` | :ref:`disabled_mirrored<class_OptionButton_theme_style_disabled_mirrored>` | |
  137. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  138. | :ref:`StyleBox<class_StyleBox>` | :ref:`focus<class_OptionButton_theme_style_focus>` | |
  139. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  140. | :ref:`StyleBox<class_StyleBox>` | :ref:`hover<class_OptionButton_theme_style_hover>` | |
  141. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  142. | :ref:`StyleBox<class_StyleBox>` | :ref:`hover_mirrored<class_OptionButton_theme_style_hover_mirrored>` | |
  143. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  144. | :ref:`StyleBox<class_StyleBox>` | :ref:`normal<class_OptionButton_theme_style_normal>` | |
  145. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  146. | :ref:`StyleBox<class_StyleBox>` | :ref:`normal_mirrored<class_OptionButton_theme_style_normal_mirrored>` | |
  147. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  148. | :ref:`StyleBox<class_StyleBox>` | :ref:`pressed<class_OptionButton_theme_style_pressed>` | |
  149. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  150. | :ref:`StyleBox<class_StyleBox>` | :ref:`pressed_mirrored<class_OptionButton_theme_style_pressed_mirrored>` | |
  151. +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
  152. .. rst-class:: classref-section-separator
  153. ----
  154. .. rst-class:: classref-descriptions-group
  155. Signals
  156. -------
  157. .. _class_OptionButton_signal_item_focused:
  158. .. rst-class:: classref-signal
  159. **item_focused** **(** :ref:`int<class_int>` index **)**
  160. Emitted when the user navigates to an item using the :ref:`ProjectSettings.input/ui_up<class_ProjectSettings_property_input/ui_up>` or :ref:`ProjectSettings.input/ui_down<class_ProjectSettings_property_input/ui_down>` input actions. The index of the item selected is passed as argument.
  161. .. rst-class:: classref-item-separator
  162. ----
  163. .. _class_OptionButton_signal_item_selected:
  164. .. rst-class:: classref-signal
  165. **item_selected** **(** :ref:`int<class_int>` index **)**
  166. Emitted when the current item has been changed by the user. The index of the item selected is passed as argument.
  167. \ :ref:`allow_reselect<class_OptionButton_property_allow_reselect>` must be enabled to reselect an item.
  168. .. rst-class:: classref-section-separator
  169. ----
  170. .. rst-class:: classref-descriptions-group
  171. Property Descriptions
  172. ---------------------
  173. .. _class_OptionButton_property_allow_reselect:
  174. .. rst-class:: classref-property
  175. :ref:`bool<class_bool>` **allow_reselect** = ``false``
  176. .. rst-class:: classref-property-setget
  177. - void **set_allow_reselect** **(** :ref:`bool<class_bool>` value **)**
  178. - :ref:`bool<class_bool>` **get_allow_reselect** **(** **)**
  179. If ``true``, the currently selected item can be selected again.
  180. .. rst-class:: classref-item-separator
  181. ----
  182. .. _class_OptionButton_property_fit_to_longest_item:
  183. .. rst-class:: classref-property
  184. :ref:`bool<class_bool>` **fit_to_longest_item** = ``true``
  185. .. rst-class:: classref-property-setget
  186. - void **set_fit_to_longest_item** **(** :ref:`bool<class_bool>` value **)**
  187. - :ref:`bool<class_bool>` **is_fit_to_longest_item** **(** **)**
  188. If ``true``, minimum size will be determined by the longest item's text, instead of the currently selected one's.
  189. \ **Note:** For performance reasons, the minimum size doesn't update immediately when adding, removing or modifying items.
  190. .. rst-class:: classref-item-separator
  191. ----
  192. .. _class_OptionButton_property_item_count:
  193. .. rst-class:: classref-property
  194. :ref:`int<class_int>` **item_count** = ``0``
  195. .. rst-class:: classref-property-setget
  196. - void **set_item_count** **(** :ref:`int<class_int>` value **)**
  197. - :ref:`int<class_int>` **get_item_count** **(** **)**
  198. The number of items to select from.
  199. .. rst-class:: classref-item-separator
  200. ----
  201. .. _class_OptionButton_property_selected:
  202. .. rst-class:: classref-property
  203. :ref:`int<class_int>` **selected** = ``-1``
  204. .. rst-class:: classref-property-setget
  205. - :ref:`int<class_int>` **get_selected** **(** **)**
  206. The index of the currently selected item, or ``-1`` if no item is selected.
  207. .. rst-class:: classref-section-separator
  208. ----
  209. .. rst-class:: classref-descriptions-group
  210. Method Descriptions
  211. -------------------
  212. .. _class_OptionButton_method_add_icon_item:
  213. .. rst-class:: classref-method
  214. void **add_icon_item** **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1 **)**
  215. Adds an item, with a ``texture`` icon, text ``label`` and (optionally) ``id``. If no ``id`` is passed, the item index will be used as the item's ID. New items are appended at the end.
  216. .. rst-class:: classref-item-separator
  217. ----
  218. .. _class_OptionButton_method_add_item:
  219. .. rst-class:: classref-method
  220. void **add_item** **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1 **)**
  221. Adds an item, with text ``label`` and (optionally) ``id``. If no ``id`` is passed, the item index will be used as the item's ID. New items are appended at the end.
  222. .. rst-class:: classref-item-separator
  223. ----
  224. .. _class_OptionButton_method_add_separator:
  225. .. rst-class:: classref-method
  226. void **add_separator** **(** :ref:`String<class_String>` text="" **)**
  227. Adds a separator to the list of items. Separators help to group items, and can optionally be given a ``text`` header. A separator also gets an index assigned, and is appended at the end of the item list.
  228. .. rst-class:: classref-item-separator
  229. ----
  230. .. _class_OptionButton_method_clear:
  231. .. rst-class:: classref-method
  232. void **clear** **(** **)**
  233. Clears all the items in the **OptionButton**.
  234. .. rst-class:: classref-item-separator
  235. ----
  236. .. _class_OptionButton_method_get_item_icon:
  237. .. rst-class:: classref-method
  238. :ref:`Texture2D<class_Texture2D>` **get_item_icon** **(** :ref:`int<class_int>` idx **)** |const|
  239. Returns the icon of the item at index ``idx``.
  240. .. rst-class:: classref-item-separator
  241. ----
  242. .. _class_OptionButton_method_get_item_id:
  243. .. rst-class:: classref-method
  244. :ref:`int<class_int>` **get_item_id** **(** :ref:`int<class_int>` idx **)** |const|
  245. Returns the ID of the item at index ``idx``.
  246. .. rst-class:: classref-item-separator
  247. ----
  248. .. _class_OptionButton_method_get_item_index:
  249. .. rst-class:: classref-method
  250. :ref:`int<class_int>` **get_item_index** **(** :ref:`int<class_int>` id **)** |const|
  251. Returns the index of the item with the given ``id``.
  252. .. rst-class:: classref-item-separator
  253. ----
  254. .. _class_OptionButton_method_get_item_metadata:
  255. .. rst-class:: classref-method
  256. :ref:`Variant<class_Variant>` **get_item_metadata** **(** :ref:`int<class_int>` idx **)** |const|
  257. Retrieves the metadata of an item. Metadata may be any type and can be used to store extra information about an item, such as an external string ID.
  258. .. rst-class:: classref-item-separator
  259. ----
  260. .. _class_OptionButton_method_get_item_text:
  261. .. rst-class:: classref-method
  262. :ref:`String<class_String>` **get_item_text** **(** :ref:`int<class_int>` idx **)** |const|
  263. Returns the text of the item at index ``idx``.
  264. .. rst-class:: classref-item-separator
  265. ----
  266. .. _class_OptionButton_method_get_item_tooltip:
  267. .. rst-class:: classref-method
  268. :ref:`String<class_String>` **get_item_tooltip** **(** :ref:`int<class_int>` idx **)** |const|
  269. Returns the tooltip of the item at index ``idx``.
  270. .. rst-class:: classref-item-separator
  271. ----
  272. .. _class_OptionButton_method_get_popup:
  273. .. rst-class:: classref-method
  274. :ref:`PopupMenu<class_PopupMenu>` **get_popup** **(** **)** |const|
  275. Returns the :ref:`PopupMenu<class_PopupMenu>` contained in this button.
  276. \ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their :ref:`Window.visible<class_Window_property_visible>` property.
  277. .. rst-class:: classref-item-separator
  278. ----
  279. .. _class_OptionButton_method_get_selectable_item:
  280. .. rst-class:: classref-method
  281. :ref:`int<class_int>` **get_selectable_item** **(** :ref:`bool<class_bool>` from_last=false **)** |const|
  282. Returns the index of the first item which is not disabled, or marked as a separator. If ``from_last`` is ``true``, the items will be searched in reverse order.
  283. Returns ``-1`` if no item is found.
  284. .. rst-class:: classref-item-separator
  285. ----
  286. .. _class_OptionButton_method_get_selected_id:
  287. .. rst-class:: classref-method
  288. :ref:`int<class_int>` **get_selected_id** **(** **)** |const|
  289. Returns the ID of the selected item, or ``-1`` if no item is selected.
  290. .. rst-class:: classref-item-separator
  291. ----
  292. .. _class_OptionButton_method_get_selected_metadata:
  293. .. rst-class:: classref-method
  294. :ref:`Variant<class_Variant>` **get_selected_metadata** **(** **)** |const|
  295. Gets the metadata of the selected item. Metadata for items can be set using :ref:`set_item_metadata<class_OptionButton_method_set_item_metadata>`.
  296. .. rst-class:: classref-item-separator
  297. ----
  298. .. _class_OptionButton_method_has_selectable_items:
  299. .. rst-class:: classref-method
  300. :ref:`bool<class_bool>` **has_selectable_items** **(** **)** |const|
  301. Returns ``true`` if this button contains at least one item which is not disabled, or marked as a separator.
  302. .. rst-class:: classref-item-separator
  303. ----
  304. .. _class_OptionButton_method_is_item_disabled:
  305. .. rst-class:: classref-method
  306. :ref:`bool<class_bool>` **is_item_disabled** **(** :ref:`int<class_int>` idx **)** |const|
  307. Returns ``true`` if the item at index ``idx`` is disabled.
  308. .. rst-class:: classref-item-separator
  309. ----
  310. .. _class_OptionButton_method_is_item_separator:
  311. .. rst-class:: classref-method
  312. :ref:`bool<class_bool>` **is_item_separator** **(** :ref:`int<class_int>` idx **)** |const|
  313. Returns ``true`` if the item at index ``idx`` is marked as a separator.
  314. .. rst-class:: classref-item-separator
  315. ----
  316. .. _class_OptionButton_method_remove_item:
  317. .. rst-class:: classref-method
  318. void **remove_item** **(** :ref:`int<class_int>` idx **)**
  319. Removes the item at index ``idx``.
  320. .. rst-class:: classref-item-separator
  321. ----
  322. .. _class_OptionButton_method_select:
  323. .. rst-class:: classref-method
  324. void **select** **(** :ref:`int<class_int>` idx **)**
  325. Selects an item by index and makes it the current item. This will work even if the item is disabled.
  326. Passing ``-1`` as the index deselects any currently selected item.
  327. .. rst-class:: classref-item-separator
  328. ----
  329. .. _class_OptionButton_method_set_disable_shortcuts:
  330. .. rst-class:: classref-method
  331. void **set_disable_shortcuts** **(** :ref:`bool<class_bool>` disabled **)**
  332. If ``true``, shortcuts are disabled and cannot be used to trigger the button.
  333. .. rst-class:: classref-item-separator
  334. ----
  335. .. _class_OptionButton_method_set_item_disabled:
  336. .. rst-class:: classref-method
  337. void **set_item_disabled** **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` disabled **)**
  338. Sets whether the item at index ``idx`` is disabled.
  339. Disabled items are drawn differently in the dropdown and are not selectable by the user. If the current selected item is set as disabled, it will remain selected.
  340. .. rst-class:: classref-item-separator
  341. ----
  342. .. _class_OptionButton_method_set_item_icon:
  343. .. rst-class:: classref-method
  344. void **set_item_icon** **(** :ref:`int<class_int>` idx, :ref:`Texture2D<class_Texture2D>` texture **)**
  345. Sets the icon of the item at index ``idx``.
  346. .. rst-class:: classref-item-separator
  347. ----
  348. .. _class_OptionButton_method_set_item_id:
  349. .. rst-class:: classref-method
  350. void **set_item_id** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` id **)**
  351. Sets the ID of the item at index ``idx``.
  352. .. rst-class:: classref-item-separator
  353. ----
  354. .. _class_OptionButton_method_set_item_metadata:
  355. .. rst-class:: classref-method
  356. void **set_item_metadata** **(** :ref:`int<class_int>` idx, :ref:`Variant<class_Variant>` metadata **)**
  357. Sets the metadata of an item. Metadata may be of any type and can be used to store extra information about an item, such as an external string ID.
  358. .. rst-class:: classref-item-separator
  359. ----
  360. .. _class_OptionButton_method_set_item_text:
  361. .. rst-class:: classref-method
  362. void **set_item_text** **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` text **)**
  363. Sets the text of the item at index ``idx``.
  364. .. rst-class:: classref-item-separator
  365. ----
  366. .. _class_OptionButton_method_set_item_tooltip:
  367. .. rst-class:: classref-method
  368. void **set_item_tooltip** **(** :ref:`int<class_int>` idx, :ref:`String<class_String>` tooltip **)**
  369. Sets the tooltip of the item at index ``idx``.
  370. .. rst-class:: classref-item-separator
  371. ----
  372. .. _class_OptionButton_method_show_popup:
  373. .. rst-class:: classref-method
  374. void **show_popup** **(** **)**
  375. Adjusts popup position and sizing for the **OptionButton**, then shows the :ref:`PopupMenu<class_PopupMenu>`. Prefer this over using ``get_popup().popup()``.
  376. .. rst-class:: classref-section-separator
  377. ----
  378. .. rst-class:: classref-descriptions-group
  379. Theme Property Descriptions
  380. ---------------------------
  381. .. _class_OptionButton_theme_color_font_color:
  382. .. rst-class:: classref-themeproperty
  383. :ref:`Color<class_Color>` **font_color** = ``Color(0.875, 0.875, 0.875, 1)``
  384. Default text :ref:`Color<class_Color>` of the **OptionButton**.
  385. .. rst-class:: classref-item-separator
  386. ----
  387. .. _class_OptionButton_theme_color_font_disabled_color:
  388. .. rst-class:: classref-themeproperty
  389. :ref:`Color<class_Color>` **font_disabled_color** = ``Color(0.875, 0.875, 0.875, 0.5)``
  390. Text :ref:`Color<class_Color>` used when the **OptionButton** is disabled.
  391. .. rst-class:: classref-item-separator
  392. ----
  393. .. _class_OptionButton_theme_color_font_focus_color:
  394. .. rst-class:: classref-themeproperty
  395. :ref:`Color<class_Color>` **font_focus_color** = ``Color(0.95, 0.95, 0.95, 1)``
  396. Text :ref:`Color<class_Color>` used when the **OptionButton** is focused. Only replaces the normal text color of the button. Disabled, hovered, and pressed states take precedence over this color.
  397. .. rst-class:: classref-item-separator
  398. ----
  399. .. _class_OptionButton_theme_color_font_hover_color:
  400. .. rst-class:: classref-themeproperty
  401. :ref:`Color<class_Color>` **font_hover_color** = ``Color(0.95, 0.95, 0.95, 1)``
  402. Text :ref:`Color<class_Color>` used when the **OptionButton** is being hovered.
  403. .. rst-class:: classref-item-separator
  404. ----
  405. .. _class_OptionButton_theme_color_font_hover_pressed_color:
  406. .. rst-class:: classref-themeproperty
  407. :ref:`Color<class_Color>` **font_hover_pressed_color** = ``Color(1, 1, 1, 1)``
  408. Text :ref:`Color<class_Color>` used when the **OptionButton** is being hovered and pressed.
  409. .. rst-class:: classref-item-separator
  410. ----
  411. .. _class_OptionButton_theme_color_font_outline_color:
  412. .. rst-class:: classref-themeproperty
  413. :ref:`Color<class_Color>` **font_outline_color** = ``Color(1, 1, 1, 1)``
  414. The tint of text outline of the **OptionButton**.
  415. .. rst-class:: classref-item-separator
  416. ----
  417. .. _class_OptionButton_theme_color_font_pressed_color:
  418. .. rst-class:: classref-themeproperty
  419. :ref:`Color<class_Color>` **font_pressed_color** = ``Color(1, 1, 1, 1)``
  420. Text :ref:`Color<class_Color>` used when the **OptionButton** is being pressed.
  421. .. rst-class:: classref-item-separator
  422. ----
  423. .. _class_OptionButton_theme_constant_arrow_margin:
  424. .. rst-class:: classref-themeproperty
  425. :ref:`int<class_int>` **arrow_margin** = ``4``
  426. The horizontal space between the arrow icon and the right edge of the button.
  427. .. rst-class:: classref-item-separator
  428. ----
  429. .. _class_OptionButton_theme_constant_h_separation:
  430. .. rst-class:: classref-themeproperty
  431. :ref:`int<class_int>` **h_separation** = ``4``
  432. The horizontal space between **OptionButton**'s icon and text. Negative values will be treated as ``0`` when used.
  433. .. rst-class:: classref-item-separator
  434. ----
  435. .. _class_OptionButton_theme_constant_modulate_arrow:
  436. .. rst-class:: classref-themeproperty
  437. :ref:`int<class_int>` **modulate_arrow** = ``0``
  438. If different than ``0``, the arrow icon will be modulated to the font color.
  439. .. rst-class:: classref-item-separator
  440. ----
  441. .. _class_OptionButton_theme_constant_outline_size:
  442. .. rst-class:: classref-themeproperty
  443. :ref:`int<class_int>` **outline_size** = ``0``
  444. The size of the text outline.
  445. \ **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_OptionButton_theme_constant_outline_size>` for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.
  446. .. rst-class:: classref-item-separator
  447. ----
  448. .. _class_OptionButton_theme_font_font:
  449. .. rst-class:: classref-themeproperty
  450. :ref:`Font<class_Font>` **font**
  451. :ref:`Font<class_Font>` of the **OptionButton**'s text.
  452. .. rst-class:: classref-item-separator
  453. ----
  454. .. _class_OptionButton_theme_font_size_font_size:
  455. .. rst-class:: classref-themeproperty
  456. :ref:`int<class_int>` **font_size**
  457. Font size of the **OptionButton**'s text.
  458. .. rst-class:: classref-item-separator
  459. ----
  460. .. _class_OptionButton_theme_icon_arrow:
  461. .. rst-class:: classref-themeproperty
  462. :ref:`Texture2D<class_Texture2D>` **arrow**
  463. The arrow icon to be drawn on the right end of the button.
  464. .. rst-class:: classref-item-separator
  465. ----
  466. .. _class_OptionButton_theme_style_disabled:
  467. .. rst-class:: classref-themeproperty
  468. :ref:`StyleBox<class_StyleBox>` **disabled**
  469. :ref:`StyleBox<class_StyleBox>` used when the **OptionButton** is disabled (for left-to-right layouts).
  470. .. rst-class:: classref-item-separator
  471. ----
  472. .. _class_OptionButton_theme_style_disabled_mirrored:
  473. .. rst-class:: classref-themeproperty
  474. :ref:`StyleBox<class_StyleBox>` **disabled_mirrored**
  475. :ref:`StyleBox<class_StyleBox>` used when the **OptionButton** is disabled (for right-to-left layouts).
  476. .. rst-class:: classref-item-separator
  477. ----
  478. .. _class_OptionButton_theme_style_focus:
  479. .. rst-class:: classref-themeproperty
  480. :ref:`StyleBox<class_StyleBox>` **focus**
  481. :ref:`StyleBox<class_StyleBox>` used when the **OptionButton** is focused. The ``focus`` :ref:`StyleBox<class_StyleBox>` is displayed *over* the base :ref:`StyleBox<class_StyleBox>`, so a partially transparent :ref:`StyleBox<class_StyleBox>` should be used to ensure the base :ref:`StyleBox<class_StyleBox>` remains visible. A :ref:`StyleBox<class_StyleBox>` that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a :ref:`StyleBoxEmpty<class_StyleBoxEmpty>` resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
  482. .. rst-class:: classref-item-separator
  483. ----
  484. .. _class_OptionButton_theme_style_hover:
  485. .. rst-class:: classref-themeproperty
  486. :ref:`StyleBox<class_StyleBox>` **hover**
  487. :ref:`StyleBox<class_StyleBox>` used when the **OptionButton** is being hovered (for left-to-right layouts).
  488. .. rst-class:: classref-item-separator
  489. ----
  490. .. _class_OptionButton_theme_style_hover_mirrored:
  491. .. rst-class:: classref-themeproperty
  492. :ref:`StyleBox<class_StyleBox>` **hover_mirrored**
  493. :ref:`StyleBox<class_StyleBox>` used when the **OptionButton** is being hovered (for right-to-left layouts).
  494. .. rst-class:: classref-item-separator
  495. ----
  496. .. _class_OptionButton_theme_style_normal:
  497. .. rst-class:: classref-themeproperty
  498. :ref:`StyleBox<class_StyleBox>` **normal**
  499. Default :ref:`StyleBox<class_StyleBox>` for the **OptionButton** (for left-to-right layouts).
  500. .. rst-class:: classref-item-separator
  501. ----
  502. .. _class_OptionButton_theme_style_normal_mirrored:
  503. .. rst-class:: classref-themeproperty
  504. :ref:`StyleBox<class_StyleBox>` **normal_mirrored**
  505. Default :ref:`StyleBox<class_StyleBox>` for the **OptionButton** (for right-to-left layouts).
  506. .. rst-class:: classref-item-separator
  507. ----
  508. .. _class_OptionButton_theme_style_pressed:
  509. .. rst-class:: classref-themeproperty
  510. :ref:`StyleBox<class_StyleBox>` **pressed**
  511. :ref:`StyleBox<class_StyleBox>` used when the **OptionButton** is being pressed (for left-to-right layouts).
  512. .. rst-class:: classref-item-separator
  513. ----
  514. .. _class_OptionButton_theme_style_pressed_mirrored:
  515. .. rst-class:: classref-themeproperty
  516. :ref:`StyleBox<class_StyleBox>` **pressed_mirrored**
  517. :ref:`StyleBox<class_StyleBox>` used when the **OptionButton** is being pressed (for right-to-left layouts).
  518. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  519. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  520. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  521. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  522. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  523. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  524. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`