<?xml version="1.0" encoding="UTF-8" ?> <class name="PopupMenu" inherits="Popup" version="3.5"> <brief_description> PopupMenu displays a list of options. </brief_description> <description> [PopupMenu] is a [Control] that displays a list of options. They are popular in toolbars or context menus. </description> <tutorials> </tutorials> <methods> <method name="add_check_item"> <return type="void" /> <argument index="0" name="label" type="String" /> <argument index="1" name="id" type="int" default="-1" /> <argument index="2" name="accel" type="int" default="0" /> <description> Adds a new checkable item with text [code]label[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_check_shortcut"> <return type="void" /> <argument index="0" name="shortcut" type="ShortCut" /> <argument index="1" name="id" type="int" default="-1" /> <argument index="2" name="global" type="bool" default="false" /> <description> Adds a new checkable item and assigns the specified [ShortCut] to it. Sets the label of the checkbox to the [ShortCut]'s name. An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_icon_check_item"> <return type="void" /> <argument index="0" name="texture" type="Texture" /> <argument index="1" name="label" type="String" /> <argument index="2" name="id" type="int" default="-1" /> <argument index="3" name="accel" type="int" default="0" /> <description> Adds a new checkable item with text [code]label[/code] and icon [code]texture[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_icon_check_shortcut"> <return type="void" /> <argument index="0" name="texture" type="Texture" /> <argument index="1" name="shortcut" type="ShortCut" /> <argument index="2" name="id" type="int" default="-1" /> <argument index="3" name="global" type="bool" default="false" /> <description> Adds a new checkable item and assigns the specified [ShortCut] and icon [code]texture[/code] to it. Sets the label of the checkbox to the [ShortCut]'s name. An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_icon_item"> <return type="void" /> <argument index="0" name="texture" type="Texture" /> <argument index="1" name="label" type="String" /> <argument index="2" name="id" type="int" default="-1" /> <argument index="3" name="accel" type="int" default="0" /> <description> Adds a new item with text [code]label[/code] and icon [code]texture[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. </description> </method> <method name="add_icon_radio_check_item"> <return type="void" /> <argument index="0" name="texture" type="Texture" /> <argument index="1" name="label" type="String" /> <argument index="2" name="id" type="int" default="-1" /> <argument index="3" name="accel" type="int" default="0" /> <description> Same as [method add_icon_check_item], but uses a radio check button. </description> </method> <method name="add_icon_radio_check_shortcut"> <return type="void" /> <argument index="0" name="texture" type="Texture" /> <argument index="1" name="shortcut" type="ShortCut" /> <argument index="2" name="id" type="int" default="-1" /> <argument index="3" name="global" type="bool" default="false" /> <description> Same as [method add_icon_check_shortcut], but uses a radio check button. </description> </method> <method name="add_icon_shortcut"> <return type="void" /> <argument index="0" name="texture" type="Texture" /> <argument index="1" name="shortcut" type="ShortCut" /> <argument index="2" name="id" type="int" default="-1" /> <argument index="3" name="global" type="bool" default="false" /> <description> Adds a new item and assigns the specified [ShortCut] and icon [code]texture[/code] to it. Sets the label of the checkbox to the [ShortCut]'s name. An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. </description> </method> <method name="add_item"> <return type="void" /> <argument index="0" name="label" type="String" /> <argument index="1" name="id" type="int" default="-1" /> <argument index="2" name="accel" type="int" default="0" /> <description> Adds a new item with text [code]label[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. </description> </method> <method name="add_multistate_item"> <return type="void" /> <argument index="0" name="label" type="String" /> <argument index="1" name="max_states" type="int" /> <argument index="2" name="default_state" type="int" default="0" /> <argument index="3" name="id" type="int" default="-1" /> <argument index="4" name="accel" type="int" default="0" /> <description> Adds a new multistate item with text [code]label[/code]. Contrarily to normal binary items, multistate items can have more than two states, as defined by [code]max_states[/code]. Each press or activate of the item will increase the state by one. The default value is defined by [code]default_state[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. </description> </method> <method name="add_radio_check_item"> <return type="void" /> <argument index="0" name="label" type="String" /> <argument index="1" name="id" type="int" default="-1" /> <argument index="2" name="accel" type="int" default="0" /> <description> Adds a new radio check button with text [code]label[/code]. An [code]id[/code] can optionally be provided, as well as an accelerator ([code]accel[/code]). If no [code]id[/code] is provided, one will be created from the index. If no [code]accel[/code] is provided then the default [code]0[/code] will be assigned to it. See [method get_item_accelerator] for more info on accelerators. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_radio_check_shortcut"> <return type="void" /> <argument index="0" name="shortcut" type="ShortCut" /> <argument index="1" name="id" type="int" default="-1" /> <argument index="2" name="global" type="bool" default="false" /> <description> Adds a new radio check button and assigns a [ShortCut] to it. Sets the label of the checkbox to the [ShortCut]'s name. An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See [method set_item_checked] for more info on how to control it. </description> </method> <method name="add_separator"> <return type="void" /> <argument index="0" name="label" type="String" default="""" /> <argument index="1" name="id" type="int" default="-1" /> <description> Adds a separator between items. Separators also occupy an index, which you can set by using the [code]id[/code] parameter. A [code]label[/code] can optionally be provided, which will appear at the center of the separator. </description> </method> <method name="add_shortcut"> <return type="void" /> <argument index="0" name="shortcut" type="ShortCut" /> <argument index="1" name="id" type="int" default="-1" /> <argument index="2" name="global" type="bool" default="false" /> <description> Adds a [ShortCut]. An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. </description> </method> <method name="add_submenu_item"> <return type="void" /> <argument index="0" name="label" type="String" /> <argument index="1" name="submenu" type="String" /> <argument index="2" name="id" type="int" default="-1" /> <description> Adds an item that will act as a submenu of the parent [PopupMenu] node when clicked. The [code]submenu[/code] argument is the name of the child [PopupMenu] node that will be shown when the item is clicked. An [code]id[/code] can optionally be provided. If no [code]id[/code] is provided, one will be created from the index. </description> </method> <method name="clear"> <return type="void" /> <description> Removes all items from the [PopupMenu]. </description> </method> <method name="get_current_index" qualifiers="const"> <return type="int" /> <description> Returns the index of the currently focused item. Returns [code]-1[/code] if no item is focused. </description> </method> <method name="get_item_accelerator" qualifiers="const"> <return type="int" /> <argument index="0" name="idx" type="int" /> <description> Returns the accelerator of the item at index [code]idx[/code]. Accelerators are special combinations of keys that activate the item, no matter which control is focused. </description> </method> <method name="get_item_count" qualifiers="const"> <return type="int" /> <description> Returns the number of items in the [PopupMenu]. </description> </method> <method name="get_item_icon" qualifiers="const"> <return type="Texture" /> <argument index="0" name="idx" type="int" /> <description> Returns the icon of the item at index [code]idx[/code]. </description> </method> <method name="get_item_id" qualifiers="const"> <return type="int" /> <argument index="0" name="idx" type="int" /> <description> Returns the id of the item at index [code]idx[/code]. [code]id[/code] can be manually assigned, while index can not. </description> </method> <method name="get_item_index" qualifiers="const"> <return type="int" /> <argument index="0" name="id" type="int" /> <description> Returns the index of the item containing the specified [code]id[/code]. Index is automatically assigned to each item by the engine. Index can not be set manually. </description> </method> <method name="get_item_metadata" qualifiers="const"> <return type="Variant" /> <argument index="0" name="idx" type="int" /> <description> Returns the metadata of the specified item, which might be of any type. You can set it with [method set_item_metadata], which provides a simple way of assigning context data to items. </description> </method> <method name="get_item_shortcut" qualifiers="const"> <return type="ShortCut" /> <argument index="0" name="idx" type="int" /> <description> Returns the [ShortCut] associated with the specified [code]idx[/code] item. </description> </method> <method name="get_item_submenu" qualifiers="const"> <return type="String" /> <argument index="0" name="idx" type="int" /> <description> Returns the submenu name of the item at index [code]idx[/code]. See [method add_submenu_item] for more info on how to add a submenu. </description> </method> <method name="get_item_text" qualifiers="const"> <return type="String" /> <argument index="0" name="idx" type="int" /> <description> Returns the text of the item at index [code]idx[/code]. </description> </method> <method name="get_item_tooltip" qualifiers="const"> <return type="String" /> <argument index="0" name="idx" type="int" /> <description> Returns the tooltip associated with the specified index index [code]idx[/code]. </description> </method> <method name="is_hide_on_window_lose_focus" qualifiers="const"> <return type="bool" /> <description> Returns [code]true[/code] if the popup will be hidden when the window loses focus or not. </description> </method> <method name="is_item_checkable" qualifiers="const"> <return type="bool" /> <argument index="0" name="idx" type="int" /> <description> Returns [code]true[/code] if the item at index [code]idx[/code] is checkable in some way, i.e. if it has a checkbox or radio button. [b]Note:[/b] Checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually. </description> </method> <method name="is_item_checked" qualifiers="const"> <return type="bool" /> <argument index="0" name="idx" type="int" /> <description> Returns [code]true[/code] if the item at index [code]idx[/code] is checked. </description> </method> <method name="is_item_disabled" qualifiers="const"> <return type="bool" /> <argument index="0" name="idx" type="int" /> <description> Returns [code]true[/code] if the item at index [code]idx[/code] is disabled. When it is disabled it can't be selected, or its action invoked. See [method set_item_disabled] for more info on how to disable an item. </description> </method> <method name="is_item_radio_checkable" qualifiers="const"> <return type="bool" /> <argument index="0" name="idx" type="int" /> <description> Returns [code]true[/code] if the item at index [code]idx[/code] has radio button-style checkability. [b]Note:[/b] This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. </description> </method> <method name="is_item_separator" qualifiers="const"> <return type="bool" /> <argument index="0" name="idx" type="int" /> <description> Returns [code]true[/code] if the item is a separator. If it is, it will be displayed as a line. See [method add_separator] for more info on how to add a separator. </description> </method> <method name="is_item_shortcut_disabled" qualifiers="const"> <return type="bool" /> <argument index="0" name="idx" type="int" /> <description> Returns [code]true[/code] if the specified item's shortcut is disabled. </description> </method> <method name="remove_item"> <return type="void" /> <argument index="0" name="idx" type="int" /> <description> Removes the item at index [code]idx[/code] from the menu. [b]Note:[/b] The indices of items after the removed item will be shifted by one. </description> </method> <method name="set_current_index"> <return type="void" /> <argument index="0" name="index" type="int" /> <description> Sets the currently focused item as the given [code]index[/code]. </description> </method> <method name="set_hide_on_window_lose_focus"> <return type="void" /> <argument index="0" name="enable" type="bool" /> <description> Hides the [PopupMenu] when the window loses focus. </description> </method> <method name="set_item_accelerator"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="accel" type="int" /> <description> Sets the accelerator of the item at index [code]idx[/code]. Accelerators are special combinations of keys that activate the item, no matter which control is focused. </description> </method> <method name="set_item_as_checkable"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="enable" type="bool" /> <description> Sets whether the item at index [code]idx[/code] has a checkbox. If [code]false[/code], sets the type of the item to plain text. [b]Note:[/b] Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. </description> </method> <method name="set_item_as_radio_checkable"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="enable" type="bool" /> <description> Sets the type of the item at the specified index [code]idx[/code] to radio button. If [code]false[/code], sets the type of the item to plain text. </description> </method> <method name="set_item_as_separator"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="enable" type="bool" /> <description> Mark the item at index [code]idx[/code] as a separator, which means that it would be displayed as a line. If [code]false[/code], sets the type of the item to plain text. </description> </method> <method name="set_item_checked"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="checked" type="bool" /> <description> Sets the checkstate status of the item at index [code]idx[/code]. </description> </method> <method name="set_item_disabled"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="disabled" type="bool" /> <description> Enables/disables the item at index [code]idx[/code]. When it is disabled, it can't be selected and its action can't be invoked. </description> </method> <method name="set_item_icon"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="icon" type="Texture" /> <description> Replaces the [Texture] icon of the specified [code]idx[/code]. </description> </method> <method name="set_item_id"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="id" type="int" /> <description> Sets the [code]id[/code] of the item at index [code]idx[/code]. </description> </method> <method name="set_item_metadata"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="metadata" type="Variant" /> <description> Sets the metadata of an item, which may be of any type. You can later get it with [method get_item_metadata], which provides a simple way of assigning context data to items. </description> </method> <method name="set_item_multistate"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="state" type="int" /> <description> Sets the state of a multistate item. See [method add_multistate_item] for details. </description> </method> <method name="set_item_shortcut"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="shortcut" type="ShortCut" /> <argument index="2" name="global" type="bool" default="false" /> <description> Sets a [ShortCut] for the specified item [code]idx[/code]. </description> </method> <method name="set_item_shortcut_disabled"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="disabled" type="bool" /> <description> Disables the [ShortCut] of the specified index [code]idx[/code]. </description> </method> <method name="set_item_submenu"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="submenu" type="String" /> <description> Sets the submenu of the item at index [code]idx[/code]. The submenu is the name of a child [PopupMenu] node that would be shown when the item is clicked. </description> </method> <method name="set_item_text"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="text" type="String" /> <description> Sets the text of the item at index [code]idx[/code]. </description> </method> <method name="set_item_tooltip"> <return type="void" /> <argument index="0" name="idx" type="int" /> <argument index="1" name="tooltip" type="String" /> <description> Sets the [String] tooltip of the item at the specified index [code]idx[/code]. </description> </method> <method name="toggle_item_checked"> <return type="void" /> <argument index="0" name="idx" type="int" /> <description> Toggles the check state of the item of the specified index [code]idx[/code]. </description> </method> <method name="toggle_item_multistate"> <return type="void" /> <argument index="0" name="idx" type="int" /> <description> Cycle to the next state of a multistate item. See [method add_multistate_item] for details. </description> </method> </methods> <members> <member name="allow_search" type="bool" setter="set_allow_search" getter="get_allow_search" default="false"> If [code]true[/code], allows navigating [PopupMenu] with letter keys. </member> <member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" overrides="Control" enum="Control.FocusMode" default="2" /> <member name="hide_on_checkable_item_selection" type="bool" setter="set_hide_on_checkable_item_selection" getter="is_hide_on_checkable_item_selection" default="true"> If [code]true[/code], hides the [PopupMenu] when a checkbox or radio button is selected. </member> <member name="hide_on_item_selection" type="bool" setter="set_hide_on_item_selection" getter="is_hide_on_item_selection" default="true"> If [code]true[/code], hides the [PopupMenu] when an item is selected. </member> <member name="hide_on_state_item_selection" type="bool" setter="set_hide_on_state_item_selection" getter="is_hide_on_state_item_selection" default="false"> If [code]true[/code], hides the [PopupMenu] when a state item is selected. </member> <member name="submenu_popup_delay" type="float" setter="set_submenu_popup_delay" getter="get_submenu_popup_delay" default="0.3"> 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. </member> </members> <signals> <signal name="id_focused"> <argument index="0" name="id" type="int" /> <description> Emitted when user navigated to an item of some [code]id[/code] using [code]ui_up[/code] or [code]ui_down[/code] action. </description> </signal> <signal name="id_pressed"> <argument index="0" name="id" type="int" /> <description> Emitted when an item of some [code]id[/code] is pressed or its accelerator is activated. </description> </signal> <signal name="index_pressed"> <argument index="0" name="index" type="int" /> <description> Emitted when an item of some [code]index[/code] is pressed or its accelerator is activated. </description> </signal> </signals> <constants> </constants> <theme_items> <theme_item name="font_color" data_type="color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )"> The default text [Color] for menu items' names. </theme_item> <theme_item name="font_color_accel" data_type="color" type="Color" default="Color( 0.7, 0.7, 0.7, 0.8 )"> The text [Color] used for shortcuts and accelerators that show next to the menu item name when defined. See [method get_item_accelerator] for more info on accelerators. </theme_item> <theme_item name="font_color_disabled" data_type="color" type="Color" default="Color( 0.4, 0.4, 0.4, 0.8 )"> [Color] used for disabled menu items' text. </theme_item> <theme_item name="font_color_hover" data_type="color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )"> [Color] used for the hovered text. </theme_item> <theme_item name="font_color_separator" data_type="color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )"> [Color] used for labeled separators' text. See [method add_separator]. </theme_item> <theme_item name="hseparation" data_type="constant" type="int" default="4"> The horizontal space between the item's name and the shortcut text/submenu arrow. </theme_item> <theme_item name="vseparation" data_type="constant" type="int" default="4"> The vertical space between each menu item. </theme_item> <theme_item name="font" data_type="font" type="Font"> [Font] used for the menu items. </theme_item> <theme_item name="checked" data_type="icon" type="Texture"> [Texture] icon for the checked checkbox items. </theme_item> <theme_item name="radio_checked" data_type="icon" type="Texture"> [Texture] icon for the checked radio button items. </theme_item> <theme_item name="radio_unchecked" data_type="icon" type="Texture"> [Texture] icon for the unchecked radio button items. </theme_item> <theme_item name="submenu" data_type="icon" type="Texture"> [Texture] icon for the submenu arrow. </theme_item> <theme_item name="unchecked" data_type="icon" type="Texture"> [Texture] icon for the unchecked checkbox items. </theme_item> <theme_item name="hover" data_type="style" type="StyleBox"> [StyleBox] displayed when the [PopupMenu] item is hovered. </theme_item> <theme_item name="labeled_separator_left" data_type="style" type="StyleBox"> [StyleBox] for the left side of labeled separator. See [method add_separator]. </theme_item> <theme_item name="labeled_separator_right" data_type="style" type="StyleBox"> [StyleBox] for the right side of labeled separator. See [method add_separator]. </theme_item> <theme_item name="panel" data_type="style" type="StyleBox"> Default [StyleBox] of the [PopupMenu] items. </theme_item> <theme_item name="panel_disabled" data_type="style" type="StyleBox"> [StyleBox] used when the [PopupMenu] item is disabled. </theme_item> <theme_item name="separator" data_type="style" type="StyleBox"> [StyleBox] used for the separators. See [method add_separator]. </theme_item> </theme_items> </class>