virtualx-engine/doc/classes/PopupMenu.xml
2022-05-19 19:07:45 +08:00

567 lines
28 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="PopupMenu" inherits="Popup" version="3.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<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="&quot;&quot;" />
<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 [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="font_separator" data_type="font" type="Font">
[Font] used for the labeled separator.
</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>