class_popupmenu.rst 79 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the PopupMenu.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_PopupMenu:
  6. PopupMenu
  7. =========
  8. **Inherits:** :ref:`Popup<class_Popup>` **<** :ref:`Window<class_Window>` **<** :ref:`Viewport<class_Viewport>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  9. PopupMenu displays a list of options.
  10. Description
  11. -----------
  12. ``PopupMenu`` is a modal window used to display a list of options. They are popular in toolbars or context menus.
  13. The size of a ``PopupMenu`` can be limited by using :ref:`Window.max_size<class_Window_property_max_size>`. If the height of the list of items is larger than the maximum height of the ``PopupMenu``, a :ref:`ScrollContainer<class_ScrollContainer>` within the popup will allow the user to scroll the contents.
  14. If no maximum size is set, or if it is set to 0, the ``PopupMenu`` height will be limited by its parent rect.
  15. Properties
  16. ----------
  17. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  18. | :ref:`bool<class_bool>` | :ref:`allow_search<class_PopupMenu_property_allow_search>` | ``true`` |
  19. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  20. | :ref:`bool<class_bool>` | :ref:`hide_on_checkable_item_selection<class_PopupMenu_property_hide_on_checkable_item_selection>` | ``true`` |
  21. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  22. | :ref:`bool<class_bool>` | :ref:`hide_on_item_selection<class_PopupMenu_property_hide_on_item_selection>` | ``true`` |
  23. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  24. | :ref:`bool<class_bool>` | :ref:`hide_on_state_item_selection<class_PopupMenu_property_hide_on_state_item_selection>` | ``false`` |
  25. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  26. | :ref:`int<class_int>` | :ref:`item_count<class_PopupMenu_property_item_count>` | ``0`` |
  27. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  28. | :ref:`float<class_float>` | :ref:`submenu_popup_delay<class_PopupMenu_property_submenu_popup_delay>` | ``0.3`` |
  29. +---------------------------+----------------------------------------------------------------------------------------------------+-----------+
  30. Methods
  31. -------
  32. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  33. | void | :ref:`add_check_item<class_PopupMenu_method_add_check_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)** |
  34. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. | void | :ref:`add_check_shortcut<class_PopupMenu_method_add_check_shortcut>` **(** :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)** |
  36. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | void | :ref:`add_icon_check_item<class_PopupMenu_method_add_icon_check_item>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)** |
  38. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | void | :ref:`add_icon_check_shortcut<class_PopupMenu_method_add_icon_check_shortcut>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)** |
  40. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | void | :ref:`add_icon_item<class_PopupMenu_method_add_icon_item>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)** |
  42. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. | void | :ref:`add_icon_radio_check_item<class_PopupMenu_method_add_icon_radio_check_item>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)** |
  44. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  45. | void | :ref:`add_icon_radio_check_shortcut<class_PopupMenu_method_add_icon_radio_check_shortcut>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)** |
  46. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  47. | void | :ref:`add_icon_shortcut<class_PopupMenu_method_add_icon_shortcut>` **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)** |
  48. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | void | :ref:`add_item<class_PopupMenu_method_add_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)** |
  50. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | void | :ref:`add_multistate_item<class_PopupMenu_method_add_multistate_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` max_states, :ref:`int<class_int>` default_state=0, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)** |
  52. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | void | :ref:`add_radio_check_item<class_PopupMenu_method_add_radio_check_item>` **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)** |
  54. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | void | :ref:`add_radio_check_shortcut<class_PopupMenu_method_add_radio_check_shortcut>` **(** :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)** |
  56. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | void | :ref:`add_separator<class_PopupMenu_method_add_separator>` **(** :ref:`String<class_String>` label="", :ref:`int<class_int>` id=-1 **)** |
  58. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. | void | :ref:`add_shortcut<class_PopupMenu_method_add_shortcut>` **(** :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)** |
  60. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  61. | void | :ref:`add_submenu_item<class_PopupMenu_method_add_submenu_item>` **(** :ref:`String<class_String>` label, :ref:`String<class_String>` submenu, :ref:`int<class_int>` id=-1 **)** |
  62. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  63. | void | :ref:`clear<class_PopupMenu_method_clear>` **(** **)** |
  64. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  65. | void | :ref:`clear_item_opentype_features<class_PopupMenu_method_clear_item_opentype_features>` **(** :ref:`int<class_int>` index **)** |
  66. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  67. | :ref:`int<class_int>` | :ref:`get_current_index<class_PopupMenu_method_get_current_index>` **(** **)** |const| |
  68. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  69. | :ref:`Key<enum_@GlobalScope_Key>` | :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` **(** :ref:`int<class_int>` index **)** |const| |
  70. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  71. | :ref:`Texture2D<class_Texture2D>` | :ref:`get_item_icon<class_PopupMenu_method_get_item_icon>` **(** :ref:`int<class_int>` index **)** |const| |
  72. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  73. | :ref:`int<class_int>` | :ref:`get_item_id<class_PopupMenu_method_get_item_id>` **(** :ref:`int<class_int>` index **)** |const| |
  74. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  75. | :ref:`int<class_int>` | :ref:`get_item_index<class_PopupMenu_method_get_item_index>` **(** :ref:`int<class_int>` id **)** |const| |
  76. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  77. | :ref:`String<class_String>` | :ref:`get_item_language<class_PopupMenu_method_get_item_language>` **(** :ref:`int<class_int>` index **)** |const| |
  78. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  79. | :ref:`Variant<class_Variant>` | :ref:`get_item_metadata<class_PopupMenu_method_get_item_metadata>` **(** :ref:`int<class_int>` index **)** |const| |
  80. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  81. | :ref:`int<class_int>` | :ref:`get_item_opentype_feature<class_PopupMenu_method_get_item_opentype_feature>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tag **)** |const| |
  82. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  83. | :ref:`Shortcut<class_Shortcut>` | :ref:`get_item_shortcut<class_PopupMenu_method_get_item_shortcut>` **(** :ref:`int<class_int>` index **)** |const| |
  84. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  85. | :ref:`String<class_String>` | :ref:`get_item_submenu<class_PopupMenu_method_get_item_submenu>` **(** :ref:`int<class_int>` index **)** |const| |
  86. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  87. | :ref:`String<class_String>` | :ref:`get_item_text<class_PopupMenu_method_get_item_text>` **(** :ref:`int<class_int>` index **)** |const| |
  88. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  89. | :ref:`TextDirection<enum_Control_TextDirection>` | :ref:`get_item_text_direction<class_PopupMenu_method_get_item_text_direction>` **(** :ref:`int<class_int>` index **)** |const| |
  90. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  91. | :ref:`String<class_String>` | :ref:`get_item_tooltip<class_PopupMenu_method_get_item_tooltip>` **(** :ref:`int<class_int>` index **)** |const| |
  92. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  93. | :ref:`bool<class_bool>` | :ref:`is_item_checkable<class_PopupMenu_method_is_item_checkable>` **(** :ref:`int<class_int>` index **)** |const| |
  94. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  95. | :ref:`bool<class_bool>` | :ref:`is_item_checked<class_PopupMenu_method_is_item_checked>` **(** :ref:`int<class_int>` index **)** |const| |
  96. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  97. | :ref:`bool<class_bool>` | :ref:`is_item_disabled<class_PopupMenu_method_is_item_disabled>` **(** :ref:`int<class_int>` index **)** |const| |
  98. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  99. | :ref:`bool<class_bool>` | :ref:`is_item_radio_checkable<class_PopupMenu_method_is_item_radio_checkable>` **(** :ref:`int<class_int>` index **)** |const| |
  100. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  101. | :ref:`bool<class_bool>` | :ref:`is_item_separator<class_PopupMenu_method_is_item_separator>` **(** :ref:`int<class_int>` index **)** |const| |
  102. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  103. | :ref:`bool<class_bool>` | :ref:`is_item_shortcut_disabled<class_PopupMenu_method_is_item_shortcut_disabled>` **(** :ref:`int<class_int>` index **)** |const| |
  104. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  105. | void | :ref:`remove_item<class_PopupMenu_method_remove_item>` **(** :ref:`int<class_int>` index **)** |
  106. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  107. | void | :ref:`scroll_to_item<class_PopupMenu_method_scroll_to_item>` **(** :ref:`int<class_int>` index **)** |
  108. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  109. | void | :ref:`set_current_index<class_PopupMenu_method_set_current_index>` **(** :ref:`int<class_int>` index **)** |
  110. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  111. | void | :ref:`set_item_accelerator<class_PopupMenu_method_set_item_accelerator>` **(** :ref:`int<class_int>` index, :ref:`Key<enum_@GlobalScope_Key>` accel **)** |
  112. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  113. | void | :ref:`set_item_as_checkable<class_PopupMenu_method_set_item_as_checkable>` **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` enable **)** |
  114. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  115. | void | :ref:`set_item_as_radio_checkable<class_PopupMenu_method_set_item_as_radio_checkable>` **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` enable **)** |
  116. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  117. | void | :ref:`set_item_as_separator<class_PopupMenu_method_set_item_as_separator>` **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` enable **)** |
  118. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  119. | void | :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>` **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` checked **)** |
  120. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  121. | void | :ref:`set_item_disabled<class_PopupMenu_method_set_item_disabled>` **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` disabled **)** |
  122. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  123. | void | :ref:`set_item_icon<class_PopupMenu_method_set_item_icon>` **(** :ref:`int<class_int>` index, :ref:`Texture2D<class_Texture2D>` icon **)** |
  124. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  125. | void | :ref:`set_item_id<class_PopupMenu_method_set_item_id>` **(** :ref:`int<class_int>` index, :ref:`int<class_int>` id **)** |
  126. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  127. | void | :ref:`set_item_language<class_PopupMenu_method_set_item_language>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` language **)** |
  128. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  129. | void | :ref:`set_item_metadata<class_PopupMenu_method_set_item_metadata>` **(** :ref:`int<class_int>` index, :ref:`Variant<class_Variant>` metadata **)** |
  130. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  131. | void | :ref:`set_item_multistate<class_PopupMenu_method_set_item_multistate>` **(** :ref:`int<class_int>` index, :ref:`int<class_int>` state **)** |
  132. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  133. | void | :ref:`set_item_opentype_feature<class_PopupMenu_method_set_item_opentype_feature>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)** |
  134. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  135. | void | :ref:`set_item_shortcut<class_PopupMenu_method_set_item_shortcut>` **(** :ref:`int<class_int>` index, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`bool<class_bool>` global=false **)** |
  136. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  137. | void | :ref:`set_item_shortcut_disabled<class_PopupMenu_method_set_item_shortcut_disabled>` **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` disabled **)** |
  138. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  139. | void | :ref:`set_item_submenu<class_PopupMenu_method_set_item_submenu>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` submenu **)** |
  140. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  141. | void | :ref:`set_item_text<class_PopupMenu_method_set_item_text>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` text **)** |
  142. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  143. | void | :ref:`set_item_text_direction<class_PopupMenu_method_set_item_text_direction>` **(** :ref:`int<class_int>` index, :ref:`TextDirection<enum_Control_TextDirection>` direction **)** |
  144. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  145. | void | :ref:`set_item_tooltip<class_PopupMenu_method_set_item_tooltip>` **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tooltip **)** |
  146. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  147. | void | :ref:`toggle_item_checked<class_PopupMenu_method_toggle_item_checked>` **(** :ref:`int<class_int>` index **)** |
  148. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  149. | void | :ref:`toggle_item_multistate<class_PopupMenu_method_toggle_item_multistate>` **(** :ref:`int<class_int>` index **)** |
  150. +--------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  151. Theme Properties
  152. ----------------
  153. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  154. | :ref:`Color<class_Color>` | :ref:`font_accelerator_color<class_PopupMenu_theme_color_font_accelerator_color>` | ``Color(0.7, 0.7, 0.7, 0.8)`` |
  155. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  156. | :ref:`Color<class_Color>` | :ref:`font_color<class_PopupMenu_theme_color_font_color>` | ``Color(0.875, 0.875, 0.875, 1)`` |
  157. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  158. | :ref:`Color<class_Color>` | :ref:`font_disabled_color<class_PopupMenu_theme_color_font_disabled_color>` | ``Color(0.4, 0.4, 0.4, 0.8)`` |
  159. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  160. | :ref:`Color<class_Color>` | :ref:`font_hover_color<class_PopupMenu_theme_color_font_hover_color>` | ``Color(0.875, 0.875, 0.875, 1)`` |
  161. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  162. | :ref:`Color<class_Color>` | :ref:`font_outline_color<class_PopupMenu_theme_color_font_outline_color>` | ``Color(1, 1, 1, 1)`` |
  163. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  164. | :ref:`Color<class_Color>` | :ref:`font_separator_color<class_PopupMenu_theme_color_font_separator_color>` | ``Color(0.875, 0.875, 0.875, 1)`` |
  165. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  166. | :ref:`int<class_int>` | :ref:`hseparation<class_PopupMenu_theme_constant_hseparation>` | ``4`` |
  167. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  168. | :ref:`int<class_int>` | :ref:`item_end_padding<class_PopupMenu_theme_constant_item_end_padding>` | ``2`` |
  169. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  170. | :ref:`int<class_int>` | :ref:`item_start_padding<class_PopupMenu_theme_constant_item_start_padding>` | ``2`` |
  171. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  172. | :ref:`int<class_int>` | :ref:`outline_size<class_PopupMenu_theme_constant_outline_size>` | ``0`` |
  173. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  174. | :ref:`int<class_int>` | :ref:`vseparation<class_PopupMenu_theme_constant_vseparation>` | ``4`` |
  175. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  176. | :ref:`Font<class_Font>` | :ref:`font<class_PopupMenu_theme_font_font>` | |
  177. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  178. | :ref:`int<class_int>` | :ref:`font_size<class_PopupMenu_theme_font_size_font_size>` | |
  179. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  180. | :ref:`Texture2D<class_Texture2D>` | :ref:`checked<class_PopupMenu_theme_icon_checked>` | |
  181. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  182. | :ref:`Texture2D<class_Texture2D>` | :ref:`radio_checked<class_PopupMenu_theme_icon_radio_checked>` | |
  183. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  184. | :ref:`Texture2D<class_Texture2D>` | :ref:`radio_unchecked<class_PopupMenu_theme_icon_radio_unchecked>` | |
  185. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  186. | :ref:`Texture2D<class_Texture2D>` | :ref:`submenu<class_PopupMenu_theme_icon_submenu>` | |
  187. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  188. | :ref:`Texture2D<class_Texture2D>` | :ref:`submenu_mirrored<class_PopupMenu_theme_icon_submenu_mirrored>` | |
  189. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  190. | :ref:`Texture2D<class_Texture2D>` | :ref:`unchecked<class_PopupMenu_theme_icon_unchecked>` | |
  191. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  192. | :ref:`StyleBox<class_StyleBox>` | :ref:`hover<class_PopupMenu_theme_style_hover>` | |
  193. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  194. | :ref:`StyleBox<class_StyleBox>` | :ref:`labeled_separator_left<class_PopupMenu_theme_style_labeled_separator_left>` | |
  195. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  196. | :ref:`StyleBox<class_StyleBox>` | :ref:`labeled_separator_right<class_PopupMenu_theme_style_labeled_separator_right>` | |
  197. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  198. | :ref:`StyleBox<class_StyleBox>` | :ref:`panel<class_PopupMenu_theme_style_panel>` | |
  199. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  200. | :ref:`StyleBox<class_StyleBox>` | :ref:`panel_disabled<class_PopupMenu_theme_style_panel_disabled>` | |
  201. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  202. | :ref:`StyleBox<class_StyleBox>` | :ref:`separator<class_PopupMenu_theme_style_separator>` | |
  203. +-----------------------------------+-------------------------------------------------------------------------------------+-----------------------------------+
  204. Signals
  205. -------
  206. .. _class_PopupMenu_signal_id_focused:
  207. - **id_focused** **(** :ref:`int<class_int>` id **)**
  208. Emitted when user navigated to an item of some ``id`` using ``ui_up`` or ``ui_down`` action.
  209. ----
  210. .. _class_PopupMenu_signal_id_pressed:
  211. - **id_pressed** **(** :ref:`int<class_int>` id **)**
  212. Emitted when an item of some ``id`` is pressed or its accelerator is activated.
  213. ----
  214. .. _class_PopupMenu_signal_index_pressed:
  215. - **index_pressed** **(** :ref:`int<class_int>` index **)**
  216. Emitted when an item of some ``index`` is pressed or its accelerator is activated.
  217. Property Descriptions
  218. ---------------------
  219. .. _class_PopupMenu_property_allow_search:
  220. - :ref:`bool<class_bool>` **allow_search**
  221. +-----------+-------------------------+
  222. | *Default* | ``true`` |
  223. +-----------+-------------------------+
  224. | *Setter* | set_allow_search(value) |
  225. +-----------+-------------------------+
  226. | *Getter* | get_allow_search() |
  227. +-----------+-------------------------+
  228. If ``true``, allows navigating ``PopupMenu`` with letter keys.
  229. ----
  230. .. _class_PopupMenu_property_hide_on_checkable_item_selection:
  231. - :ref:`bool<class_bool>` **hide_on_checkable_item_selection**
  232. +-----------+---------------------------------------------+
  233. | *Default* | ``true`` |
  234. +-----------+---------------------------------------------+
  235. | *Setter* | set_hide_on_checkable_item_selection(value) |
  236. +-----------+---------------------------------------------+
  237. | *Getter* | is_hide_on_checkable_item_selection() |
  238. +-----------+---------------------------------------------+
  239. If ``true``, hides the ``PopupMenu`` when a checkbox or radio button is selected.
  240. ----
  241. .. _class_PopupMenu_property_hide_on_item_selection:
  242. - :ref:`bool<class_bool>` **hide_on_item_selection**
  243. +-----------+-----------------------------------+
  244. | *Default* | ``true`` |
  245. +-----------+-----------------------------------+
  246. | *Setter* | set_hide_on_item_selection(value) |
  247. +-----------+-----------------------------------+
  248. | *Getter* | is_hide_on_item_selection() |
  249. +-----------+-----------------------------------+
  250. If ``true``, hides the ``PopupMenu`` when an item is selected.
  251. ----
  252. .. _class_PopupMenu_property_hide_on_state_item_selection:
  253. - :ref:`bool<class_bool>` **hide_on_state_item_selection**
  254. +-----------+-----------------------------------------+
  255. | *Default* | ``false`` |
  256. +-----------+-----------------------------------------+
  257. | *Setter* | set_hide_on_state_item_selection(value) |
  258. +-----------+-----------------------------------------+
  259. | *Getter* | is_hide_on_state_item_selection() |
  260. +-----------+-----------------------------------------+
  261. If ``true``, hides the ``PopupMenu`` when a state item is selected.
  262. ----
  263. .. _class_PopupMenu_property_item_count:
  264. - :ref:`int<class_int>` **item_count**
  265. +-----------+-----------------------+
  266. | *Default* | ``0`` |
  267. +-----------+-----------------------+
  268. | *Setter* | set_item_count(value) |
  269. +-----------+-----------------------+
  270. | *Getter* | get_item_count() |
  271. +-----------+-----------------------+
  272. The number of items currently in the list.
  273. ----
  274. .. _class_PopupMenu_property_submenu_popup_delay:
  275. - :ref:`float<class_float>` **submenu_popup_delay**
  276. +-----------+--------------------------------+
  277. | *Default* | ``0.3`` |
  278. +-----------+--------------------------------+
  279. | *Setter* | set_submenu_popup_delay(value) |
  280. +-----------+--------------------------------+
  281. | *Getter* | get_submenu_popup_delay() |
  282. +-----------+--------------------------------+
  283. Sets the delay time in seconds for the submenu item to popup on mouse hovering. If the popup menu is added as a child of another (acting as a submenu), it will inherit the delay time of the parent menu item.
  284. Method Descriptions
  285. -------------------
  286. .. _class_PopupMenu_method_add_check_item:
  287. - void **add_check_item** **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)**
  288. Adds a new checkable item with text ``label``.
  289. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
  290. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>` for more info on how to control it.
  291. ----
  292. .. _class_PopupMenu_method_add_check_shortcut:
  293. - void **add_check_shortcut** **(** :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
  294. Adds a new checkable item and assigns the specified :ref:`Shortcut<class_Shortcut>` to it. Sets the label of the checkbox to the :ref:`Shortcut<class_Shortcut>`'s name.
  295. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index.
  296. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>` for more info on how to control it.
  297. ----
  298. .. _class_PopupMenu_method_add_icon_check_item:
  299. - void **add_icon_check_item** **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)**
  300. Adds a new checkable item with text ``label`` and icon ``texture``.
  301. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
  302. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>` for more info on how to control it.
  303. ----
  304. .. _class_PopupMenu_method_add_icon_check_shortcut:
  305. - void **add_icon_check_shortcut** **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
  306. Adds a new checkable item and assigns the specified :ref:`Shortcut<class_Shortcut>` and icon ``texture`` to it. Sets the label of the checkbox to the :ref:`Shortcut<class_Shortcut>`'s name.
  307. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index.
  308. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>` for more info on how to control it.
  309. ----
  310. .. _class_PopupMenu_method_add_icon_item:
  311. - void **add_icon_item** **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)**
  312. Adds a new item with text ``label`` and icon ``texture``.
  313. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
  314. ----
  315. .. _class_PopupMenu_method_add_icon_radio_check_item:
  316. - void **add_icon_radio_check_item** **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)**
  317. Same as :ref:`add_icon_check_item<class_PopupMenu_method_add_icon_check_item>`, but uses a radio check button.
  318. ----
  319. .. _class_PopupMenu_method_add_icon_radio_check_shortcut:
  320. - void **add_icon_radio_check_shortcut** **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
  321. Same as :ref:`add_icon_check_shortcut<class_PopupMenu_method_add_icon_check_shortcut>`, but uses a radio check button.
  322. ----
  323. .. _class_PopupMenu_method_add_icon_shortcut:
  324. - void **add_icon_shortcut** **(** :ref:`Texture2D<class_Texture2D>` texture, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
  325. Adds a new item and assigns the specified :ref:`Shortcut<class_Shortcut>` and icon ``texture`` to it. Sets the label of the checkbox to the :ref:`Shortcut<class_Shortcut>`'s name.
  326. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index.
  327. ----
  328. .. _class_PopupMenu_method_add_item:
  329. - void **add_item** **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)**
  330. Adds a new item with text ``label``.
  331. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
  332. \ **Note:** The provided ``id`` is used only in :ref:`id_pressed<class_PopupMenu_signal_id_pressed>` and :ref:`id_focused<class_PopupMenu_signal_id_focused>` signals. It's not related to the ``index`` arguments in e.g. :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>`.
  333. ----
  334. .. _class_PopupMenu_method_add_multistate_item:
  335. - void **add_multistate_item** **(** :ref:`String<class_String>` label, :ref:`int<class_int>` max_states, :ref:`int<class_int>` default_state=0, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)**
  336. Adds a new multistate item with text ``label``.
  337. Contrarily to normal binary items, multistate items can have more than two states, as defined by ``max_states``. Each press or activate of the item will increase the state by one. The default value is defined by ``default_state``.
  338. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
  339. ----
  340. .. _class_PopupMenu_method_add_radio_check_item:
  341. - void **add_radio_check_item** **(** :ref:`String<class_String>` label, :ref:`int<class_int>` id=-1, :ref:`Key<enum_@GlobalScope_Key>` accel=0 **)**
  342. Adds a new radio check button with text ``label``.
  343. An ``id`` can optionally be provided, as well as an accelerator (``accel``). If no ``id`` is provided, one will be created from the index. If no ``accel`` is provided then the default ``0`` will be assigned to it. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
  344. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>` for more info on how to control it.
  345. ----
  346. .. _class_PopupMenu_method_add_radio_check_shortcut:
  347. - void **add_radio_check_shortcut** **(** :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
  348. Adds a new radio check button and assigns a :ref:`Shortcut<class_Shortcut>` to it. Sets the label of the checkbox to the :ref:`Shortcut<class_Shortcut>`'s name.
  349. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index.
  350. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See :ref:`set_item_checked<class_PopupMenu_method_set_item_checked>` for more info on how to control it.
  351. ----
  352. .. _class_PopupMenu_method_add_separator:
  353. - void **add_separator** **(** :ref:`String<class_String>` label="", :ref:`int<class_int>` id=-1 **)**
  354. Adds a separator between items. Separators also occupy an index, which you can set by using the ``id`` parameter.
  355. A ``label`` can optionally be provided, which will appear at the center of the separator.
  356. ----
  357. .. _class_PopupMenu_method_add_shortcut:
  358. - void **add_shortcut** **(** :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`int<class_int>` id=-1, :ref:`bool<class_bool>` global=false **)**
  359. Adds a :ref:`Shortcut<class_Shortcut>`.
  360. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index.
  361. ----
  362. .. _class_PopupMenu_method_add_submenu_item:
  363. - void **add_submenu_item** **(** :ref:`String<class_String>` label, :ref:`String<class_String>` submenu, :ref:`int<class_int>` id=-1 **)**
  364. Adds an item that will act as a submenu of the parent ``PopupMenu`` node when clicked. The ``submenu`` argument is the name of the child ``PopupMenu`` node that will be shown when the item is clicked.
  365. An ``id`` can optionally be provided. If no ``id`` is provided, one will be created from the index.
  366. ----
  367. .. _class_PopupMenu_method_clear:
  368. - void **clear** **(** **)**
  369. Removes all items from the ``PopupMenu``.
  370. ----
  371. .. _class_PopupMenu_method_clear_item_opentype_features:
  372. - void **clear_item_opentype_features** **(** :ref:`int<class_int>` index **)**
  373. Removes all OpenType features form the item's text.
  374. ----
  375. .. _class_PopupMenu_method_get_current_index:
  376. - :ref:`int<class_int>` **get_current_index** **(** **)** |const|
  377. Returns the index of the currently focused item. Returns ``-1`` if no item is focused.
  378. ----
  379. .. _class_PopupMenu_method_get_item_accelerator:
  380. - :ref:`Key<enum_@GlobalScope_Key>` **get_item_accelerator** **(** :ref:`int<class_int>` index **)** |const|
  381. Returns the accelerator of the item at the given ``index``. Accelerators are special combinations of keys that activate the item, no matter which control is focused.
  382. ----
  383. .. _class_PopupMenu_method_get_item_icon:
  384. - :ref:`Texture2D<class_Texture2D>` **get_item_icon** **(** :ref:`int<class_int>` index **)** |const|
  385. Returns the icon of the item at the given ``index``.
  386. ----
  387. .. _class_PopupMenu_method_get_item_id:
  388. - :ref:`int<class_int>` **get_item_id** **(** :ref:`int<class_int>` index **)** |const|
  389. Returns the id of the item at the given ``index``. ``id`` can be manually assigned, while index can not.
  390. ----
  391. .. _class_PopupMenu_method_get_item_index:
  392. - :ref:`int<class_int>` **get_item_index** **(** :ref:`int<class_int>` id **)** |const|
  393. Returns the index of the item containing the specified ``id``. Index is automatically assigned to each item by the engine and can not be set manually.
  394. ----
  395. .. _class_PopupMenu_method_get_item_language:
  396. - :ref:`String<class_String>` **get_item_language** **(** :ref:`int<class_int>` index **)** |const|
  397. Returns item's text language code.
  398. ----
  399. .. _class_PopupMenu_method_get_item_metadata:
  400. - :ref:`Variant<class_Variant>` **get_item_metadata** **(** :ref:`int<class_int>` index **)** |const|
  401. Returns the metadata of the specified item, which might be of any type. You can set it with :ref:`set_item_metadata<class_PopupMenu_method_set_item_metadata>`, which provides a simple way of assigning context data to items.
  402. ----
  403. .. _class_PopupMenu_method_get_item_opentype_feature:
  404. - :ref:`int<class_int>` **get_item_opentype_feature** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tag **)** |const|
  405. Returns OpenType feature ``tag`` of the item's text.
  406. ----
  407. .. _class_PopupMenu_method_get_item_shortcut:
  408. - :ref:`Shortcut<class_Shortcut>` **get_item_shortcut** **(** :ref:`int<class_int>` index **)** |const|
  409. Returns the :ref:`Shortcut<class_Shortcut>` associated with the item at the given ``index``.
  410. ----
  411. .. _class_PopupMenu_method_get_item_submenu:
  412. - :ref:`String<class_String>` **get_item_submenu** **(** :ref:`int<class_int>` index **)** |const|
  413. Returns the submenu name of the item at the given ``index``. See :ref:`add_submenu_item<class_PopupMenu_method_add_submenu_item>` for more info on how to add a submenu.
  414. ----
  415. .. _class_PopupMenu_method_get_item_text:
  416. - :ref:`String<class_String>` **get_item_text** **(** :ref:`int<class_int>` index **)** |const|
  417. Returns the text of the item at the given ``index``.
  418. ----
  419. .. _class_PopupMenu_method_get_item_text_direction:
  420. - :ref:`TextDirection<enum_Control_TextDirection>` **get_item_text_direction** **(** :ref:`int<class_int>` index **)** |const|
  421. Returns item's text base writing direction.
  422. ----
  423. .. _class_PopupMenu_method_get_item_tooltip:
  424. - :ref:`String<class_String>` **get_item_tooltip** **(** :ref:`int<class_int>` index **)** |const|
  425. Returns the tooltip associated with the item at the given ``index``.
  426. ----
  427. .. _class_PopupMenu_method_is_item_checkable:
  428. - :ref:`bool<class_bool>` **is_item_checkable** **(** :ref:`int<class_int>` index **)** |const|
  429. Returns ``true`` if the item at the given ``index`` is checkable in some way, i.e. if it has a checkbox or radio button.
  430. \ **Note:** Checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually.
  431. ----
  432. .. _class_PopupMenu_method_is_item_checked:
  433. - :ref:`bool<class_bool>` **is_item_checked** **(** :ref:`int<class_int>` index **)** |const|
  434. Returns ``true`` if the item at the given ``index`` is checked.
  435. ----
  436. .. _class_PopupMenu_method_is_item_disabled:
  437. - :ref:`bool<class_bool>` **is_item_disabled** **(** :ref:`int<class_int>` index **)** |const|
  438. Returns ``true`` if the item at the given ``index`` is disabled. When it is disabled it can't be selected, or its action invoked.
  439. See :ref:`set_item_disabled<class_PopupMenu_method_set_item_disabled>` for more info on how to disable an item.
  440. ----
  441. .. _class_PopupMenu_method_is_item_radio_checkable:
  442. - :ref:`bool<class_bool>` **is_item_radio_checkable** **(** :ref:`int<class_int>` index **)** |const|
  443. Returns ``true`` if the item at the given ``index`` has radio button-style checkability.
  444. \ **Note:** This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups.
  445. ----
  446. .. _class_PopupMenu_method_is_item_separator:
  447. - :ref:`bool<class_bool>` **is_item_separator** **(** :ref:`int<class_int>` index **)** |const|
  448. Returns ``true`` if the item is a separator. If it is, it will be displayed as a line. See :ref:`add_separator<class_PopupMenu_method_add_separator>` for more info on how to add a separator.
  449. ----
  450. .. _class_PopupMenu_method_is_item_shortcut_disabled:
  451. - :ref:`bool<class_bool>` **is_item_shortcut_disabled** **(** :ref:`int<class_int>` index **)** |const|
  452. Returns ``true`` if the specified item's shortcut is disabled.
  453. ----
  454. .. _class_PopupMenu_method_remove_item:
  455. - void **remove_item** **(** :ref:`int<class_int>` index **)**
  456. Removes the item at the given ``index`` from the menu.
  457. \ **Note:** The indices of items after the removed item will be shifted by one.
  458. ----
  459. .. _class_PopupMenu_method_scroll_to_item:
  460. - void **scroll_to_item** **(** :ref:`int<class_int>` index **)**
  461. Moves the scroll view to make the item at the given ``index`` visible.
  462. ----
  463. .. _class_PopupMenu_method_set_current_index:
  464. - void **set_current_index** **(** :ref:`int<class_int>` index **)**
  465. Sets the currently focused item as the given ``index``.
  466. ----
  467. .. _class_PopupMenu_method_set_item_accelerator:
  468. - void **set_item_accelerator** **(** :ref:`int<class_int>` index, :ref:`Key<enum_@GlobalScope_Key>` accel **)**
  469. Sets the accelerator of the item at the given ``index``. Accelerators are special combinations of keys that activate the item, no matter which control is focused.
  470. ----
  471. .. _class_PopupMenu_method_set_item_as_checkable:
  472. - void **set_item_as_checkable** **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` enable **)**
  473. Sets whether the item at the given ``index`` has a checkbox. If ``false``, sets the type of the item to plain text.
  474. \ **Note:** Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually.
  475. ----
  476. .. _class_PopupMenu_method_set_item_as_radio_checkable:
  477. - void **set_item_as_radio_checkable** **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` enable **)**
  478. Sets the type of the item at the given ``index`` to radio button. If ``false``, sets the type of the item to plain text.
  479. ----
  480. .. _class_PopupMenu_method_set_item_as_separator:
  481. - void **set_item_as_separator** **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` enable **)**
  482. Mark the item at the given ``index`` as a separator, which means that it would be displayed as a line. If ``false``, sets the type of the item to plain text.
  483. ----
  484. .. _class_PopupMenu_method_set_item_checked:
  485. - void **set_item_checked** **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` checked **)**
  486. Sets the checkstate status of the item at the given ``index``.
  487. ----
  488. .. _class_PopupMenu_method_set_item_disabled:
  489. - void **set_item_disabled** **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` disabled **)**
  490. Enables/disables the item at the given ``index``. When it is disabled, it can't be selected and its action can't be invoked.
  491. ----
  492. .. _class_PopupMenu_method_set_item_icon:
  493. - void **set_item_icon** **(** :ref:`int<class_int>` index, :ref:`Texture2D<class_Texture2D>` icon **)**
  494. Replaces the :ref:`Texture2D<class_Texture2D>` icon of the item at the given ``index``.
  495. ----
  496. .. _class_PopupMenu_method_set_item_id:
  497. - void **set_item_id** **(** :ref:`int<class_int>` index, :ref:`int<class_int>` id **)**
  498. Sets the ``id`` of the item at the given ``index``.
  499. The ``id`` is used in :ref:`id_pressed<class_PopupMenu_signal_id_pressed>` and :ref:`id_focused<class_PopupMenu_signal_id_focused>` signals.
  500. ----
  501. .. _class_PopupMenu_method_set_item_language:
  502. - void **set_item_language** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` language **)**
  503. Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead.
  504. ----
  505. .. _class_PopupMenu_method_set_item_metadata:
  506. - void **set_item_metadata** **(** :ref:`int<class_int>` index, :ref:`Variant<class_Variant>` metadata **)**
  507. Sets the metadata of an item, which may be of any type. You can later get it with :ref:`get_item_metadata<class_PopupMenu_method_get_item_metadata>`, which provides a simple way of assigning context data to items.
  508. ----
  509. .. _class_PopupMenu_method_set_item_multistate:
  510. - void **set_item_multistate** **(** :ref:`int<class_int>` index, :ref:`int<class_int>` state **)**
  511. Sets the state of a multistate item. See :ref:`add_multistate_item<class_PopupMenu_method_add_multistate_item>` for details.
  512. ----
  513. .. _class_PopupMenu_method_set_item_opentype_feature:
  514. - void **set_item_opentype_feature** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tag, :ref:`int<class_int>` value **)**
  515. Sets OpenType feature ``tag`` for the item's text. More info: `OpenType feature tags <https://docs.microsoft.com/en-us/typography/opentype/spec/featuretags>`__.
  516. ----
  517. .. _class_PopupMenu_method_set_item_shortcut:
  518. - void **set_item_shortcut** **(** :ref:`int<class_int>` index, :ref:`Shortcut<class_Shortcut>` shortcut, :ref:`bool<class_bool>` global=false **)**
  519. Sets a :ref:`Shortcut<class_Shortcut>` for the item at the given ``index``.
  520. ----
  521. .. _class_PopupMenu_method_set_item_shortcut_disabled:
  522. - void **set_item_shortcut_disabled** **(** :ref:`int<class_int>` index, :ref:`bool<class_bool>` disabled **)**
  523. Disables the :ref:`Shortcut<class_Shortcut>` of the item at the given ``index``.
  524. ----
  525. .. _class_PopupMenu_method_set_item_submenu:
  526. - void **set_item_submenu** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` submenu **)**
  527. Sets the submenu of the item at the given ``index``. The submenu is the name of a child ``PopupMenu`` node that would be shown when the item is clicked.
  528. ----
  529. .. _class_PopupMenu_method_set_item_text:
  530. - void **set_item_text** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` text **)**
  531. Sets the text of the item at the given ``index``.
  532. ----
  533. .. _class_PopupMenu_method_set_item_text_direction:
  534. - void **set_item_text_direction** **(** :ref:`int<class_int>` index, :ref:`TextDirection<enum_Control_TextDirection>` direction **)**
  535. Sets item's text base writing direction.
  536. ----
  537. .. _class_PopupMenu_method_set_item_tooltip:
  538. - void **set_item_tooltip** **(** :ref:`int<class_int>` index, :ref:`String<class_String>` tooltip **)**
  539. Sets the :ref:`String<class_String>` tooltip of the item at the given ``index``.
  540. ----
  541. .. _class_PopupMenu_method_toggle_item_checked:
  542. - void **toggle_item_checked** **(** :ref:`int<class_int>` index **)**
  543. Toggles the check state of the item at the given ``index``.
  544. ----
  545. .. _class_PopupMenu_method_toggle_item_multistate:
  546. - void **toggle_item_multistate** **(** :ref:`int<class_int>` index **)**
  547. Cycle to the next state of a multistate item. See :ref:`add_multistate_item<class_PopupMenu_method_add_multistate_item>` for details.
  548. Theme Property Descriptions
  549. ---------------------------
  550. .. _class_PopupMenu_theme_color_font_accelerator_color:
  551. - :ref:`Color<class_Color>` **font_accelerator_color**
  552. +-----------+-------------------------------+
  553. | *Default* | ``Color(0.7, 0.7, 0.7, 0.8)`` |
  554. +-----------+-------------------------------+
  555. The text :ref:`Color<class_Color>` used for shortcuts and accelerators that show next to the menu item name when defined. See :ref:`get_item_accelerator<class_PopupMenu_method_get_item_accelerator>` for more info on accelerators.
  556. ----
  557. .. _class_PopupMenu_theme_color_font_color:
  558. - :ref:`Color<class_Color>` **font_color**
  559. +-----------+-----------------------------------+
  560. | *Default* | ``Color(0.875, 0.875, 0.875, 1)`` |
  561. +-----------+-----------------------------------+
  562. The default text :ref:`Color<class_Color>` for menu items' names.
  563. ----
  564. .. _class_PopupMenu_theme_color_font_disabled_color:
  565. - :ref:`Color<class_Color>` **font_disabled_color**
  566. +-----------+-------------------------------+
  567. | *Default* | ``Color(0.4, 0.4, 0.4, 0.8)`` |
  568. +-----------+-------------------------------+
  569. :ref:`Color<class_Color>` used for disabled menu items' text.
  570. ----
  571. .. _class_PopupMenu_theme_color_font_hover_color:
  572. - :ref:`Color<class_Color>` **font_hover_color**
  573. +-----------+-----------------------------------+
  574. | *Default* | ``Color(0.875, 0.875, 0.875, 1)`` |
  575. +-----------+-----------------------------------+
  576. :ref:`Color<class_Color>` used for the hovered text.
  577. ----
  578. .. _class_PopupMenu_theme_color_font_outline_color:
  579. - :ref:`Color<class_Color>` **font_outline_color**
  580. +-----------+-----------------------+
  581. | *Default* | ``Color(1, 1, 1, 1)`` |
  582. +-----------+-----------------------+
  583. The tint of text outline of the menu item.
  584. ----
  585. .. _class_PopupMenu_theme_color_font_separator_color:
  586. - :ref:`Color<class_Color>` **font_separator_color**
  587. +-----------+-----------------------------------+
  588. | *Default* | ``Color(0.875, 0.875, 0.875, 1)`` |
  589. +-----------+-----------------------------------+
  590. :ref:`Color<class_Color>` used for labeled separators' text. See :ref:`add_separator<class_PopupMenu_method_add_separator>`.
  591. ----
  592. .. _class_PopupMenu_theme_constant_hseparation:
  593. - :ref:`int<class_int>` **hseparation**
  594. +-----------+-------+
  595. | *Default* | ``4`` |
  596. +-----------+-------+
  597. The horizontal space between the item's name and the shortcut text/submenu arrow.
  598. ----
  599. .. _class_PopupMenu_theme_constant_item_end_padding:
  600. - :ref:`int<class_int>` **item_end_padding**
  601. +-----------+-------+
  602. | *Default* | ``2`` |
  603. +-----------+-------+
  604. ----
  605. .. _class_PopupMenu_theme_constant_item_start_padding:
  606. - :ref:`int<class_int>` **item_start_padding**
  607. +-----------+-------+
  608. | *Default* | ``2`` |
  609. +-----------+-------+
  610. ----
  611. .. _class_PopupMenu_theme_constant_outline_size:
  612. - :ref:`int<class_int>` **outline_size**
  613. +-----------+-------+
  614. | *Default* | ``0`` |
  615. +-----------+-------+
  616. The size of the item text outline.
  617. ----
  618. .. _class_PopupMenu_theme_constant_vseparation:
  619. - :ref:`int<class_int>` **vseparation**
  620. +-----------+-------+
  621. | *Default* | ``4`` |
  622. +-----------+-------+
  623. The vertical space between each menu item.
  624. ----
  625. .. _class_PopupMenu_theme_font_font:
  626. - :ref:`Font<class_Font>` **font**
  627. :ref:`Font<class_Font>` used for the menu items.
  628. ----
  629. .. _class_PopupMenu_theme_font_size_font_size:
  630. - :ref:`int<class_int>` **font_size**
  631. Font size of the menu items.
  632. ----
  633. .. _class_PopupMenu_theme_icon_checked:
  634. - :ref:`Texture2D<class_Texture2D>` **checked**
  635. :ref:`Texture2D<class_Texture2D>` icon for the checked checkbox items.
  636. ----
  637. .. _class_PopupMenu_theme_icon_radio_checked:
  638. - :ref:`Texture2D<class_Texture2D>` **radio_checked**
  639. :ref:`Texture2D<class_Texture2D>` icon for the checked radio button items.
  640. ----
  641. .. _class_PopupMenu_theme_icon_radio_unchecked:
  642. - :ref:`Texture2D<class_Texture2D>` **radio_unchecked**
  643. :ref:`Texture2D<class_Texture2D>` icon for the unchecked radio button items.
  644. ----
  645. .. _class_PopupMenu_theme_icon_submenu:
  646. - :ref:`Texture2D<class_Texture2D>` **submenu**
  647. :ref:`Texture2D<class_Texture2D>` icon for the submenu arrow (for left-to-right layouts).
  648. ----
  649. .. _class_PopupMenu_theme_icon_submenu_mirrored:
  650. - :ref:`Texture2D<class_Texture2D>` **submenu_mirrored**
  651. :ref:`Texture2D<class_Texture2D>` icon for the submenu arrow (for right-to-left layouts).
  652. ----
  653. .. _class_PopupMenu_theme_icon_unchecked:
  654. - :ref:`Texture2D<class_Texture2D>` **unchecked**
  655. :ref:`Texture2D<class_Texture2D>` icon for the unchecked checkbox items.
  656. ----
  657. .. _class_PopupMenu_theme_style_hover:
  658. - :ref:`StyleBox<class_StyleBox>` **hover**
  659. :ref:`StyleBox<class_StyleBox>` displayed when the ``PopupMenu`` item is hovered.
  660. ----
  661. .. _class_PopupMenu_theme_style_labeled_separator_left:
  662. - :ref:`StyleBox<class_StyleBox>` **labeled_separator_left**
  663. :ref:`StyleBox<class_StyleBox>` for the left side of labeled separator. See :ref:`add_separator<class_PopupMenu_method_add_separator>`.
  664. ----
  665. .. _class_PopupMenu_theme_style_labeled_separator_right:
  666. - :ref:`StyleBox<class_StyleBox>` **labeled_separator_right**
  667. :ref:`StyleBox<class_StyleBox>` for the right side of labeled separator. See :ref:`add_separator<class_PopupMenu_method_add_separator>`.
  668. ----
  669. .. _class_PopupMenu_theme_style_panel:
  670. - :ref:`StyleBox<class_StyleBox>` **panel**
  671. Default :ref:`StyleBox<class_StyleBox>` of the ``PopupMenu`` items.
  672. ----
  673. .. _class_PopupMenu_theme_style_panel_disabled:
  674. - :ref:`StyleBox<class_StyleBox>` **panel_disabled**
  675. :ref:`StyleBox<class_StyleBox>` used when the ``PopupMenu`` item is disabled.
  676. ----
  677. .. _class_PopupMenu_theme_style_separator:
  678. - :ref:`StyleBox<class_StyleBox>` **separator**
  679. :ref:`StyleBox<class_StyleBox>` used for the separators. See :ref:`add_separator<class_PopupMenu_method_add_separator>`.
  680. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  681. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  682. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  683. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  684. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  685. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`