mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			759 lines
		
	
	
	
		
			37 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			759 lines
		
	
	
	
		
			37 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8" ?>
 | |
| <class name="NativeMenu" inherits="Object" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
 | |
| 	<brief_description>
 | |
| 		A server interface for OS native menus.
 | |
| 	</brief_description>
 | |
| 	<description>
 | |
| 		[NativeMenu] handles low-level access to the OS native global menu bar and popup menus.
 | |
| 		[b]Note:[/b] This is low-level API, consider using [MenuBar] with [member MenuBar.prefer_global_menu] set to [code]true[/code], and [PopupMenu] with [member PopupMenu.prefer_native_menu] set to [code]true[/code].
 | |
| 		To create a menu, use [method create_menu], add menu items using [code]add_*_item[/code] methods. To remove a menu, use [method free_menu].
 | |
| 		[codeblock]
 | |
| 		var menu
 | |
| 
 | |
| 		func _menu_callback(item_id):
 | |
| 		    if item_id == "ITEM_CUT":
 | |
| 		        cut()
 | |
| 		    elif item_id == "ITEM_COPY":
 | |
| 		        copy()
 | |
| 		    elif item_id == "ITEM_PASTE":
 | |
| 		        paste()
 | |
| 
 | |
| 		func _enter_tree():
 | |
| 		    # Create new menu and add items:
 | |
| 		    menu = NativeMenu.create_menu()
 | |
| 		    NativeMenu.add_item(menu, "Cut", _menu_callback, Callable(), "ITEM_CUT")
 | |
| 		    NativeMenu.add_item(menu, "Copy", _menu_callback, Callable(), "ITEM_COPY")
 | |
| 		    NativeMenu.add_separator(menu)
 | |
| 		    NativeMenu.add_item(menu, "Paste", _menu_callback, Callable(), "ITEM_PASTE")
 | |
| 
 | |
| 		func _on_button_pressed():
 | |
| 		    # Show popup menu at mouse position:
 | |
| 		    NativeMenu.popup(menu, DisplayServer.mouse_get_position())
 | |
| 
 | |
| 		func _exit_tree():
 | |
| 		    # Remove menu when it's no longer needed:
 | |
| 		    NativeMenu.free_menu(menu)
 | |
| 		[/codeblock]
 | |
| 	</description>
 | |
| 	<tutorials>
 | |
| 	</tutorials>
 | |
| 	<methods>
 | |
| 		<method name="add_check_item">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="label" type="String" />
 | |
| 			<param index="2" name="callback" type="Callable" default="Callable()" />
 | |
| 			<param index="3" name="key_callback" type="Callable" default="Callable()" />
 | |
| 			<param index="4" name="tag" type="Variant" default="null" />
 | |
| 			<param index="5" name="accelerator" type="int" enum="Key" default="0" />
 | |
| 			<param index="6" name="index" type="int" default="-1" />
 | |
| 			<description>
 | |
| 				Adds a new checkable item with text [param label] to the global menu [param rid].
 | |
| 				Returns index of the inserted item, it's not guaranteed to be the same as [param index] value.
 | |
| 				An [param accelerator] can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The [param accelerator] is generally a combination of [enum KeyModifierMask]s and [enum Key]s using bitwise OR such as [code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).
 | |
| 				[b]Note:[/b] The [param callback] and [param key_callback] Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to [param tag].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 				[b]Note:[/b] On Windows, [param accelerator] and [param key_callback] are ignored.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="add_icon_check_item">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="icon" type="Texture2D" />
 | |
| 			<param index="2" name="label" type="String" />
 | |
| 			<param index="3" name="callback" type="Callable" default="Callable()" />
 | |
| 			<param index="4" name="key_callback" type="Callable" default="Callable()" />
 | |
| 			<param index="5" name="tag" type="Variant" default="null" />
 | |
| 			<param index="6" name="accelerator" type="int" enum="Key" default="0" />
 | |
| 			<param index="7" name="index" type="int" default="-1" />
 | |
| 			<description>
 | |
| 				Adds a new checkable item with text [param label] and icon [param icon] to the global menu [param rid].
 | |
| 				Returns index of the inserted item, it's not guaranteed to be the same as [param index] value.
 | |
| 				An [param accelerator] can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The [param accelerator] is generally a combination of [enum KeyModifierMask]s and [enum Key]s using bitwise OR such as [code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).
 | |
| 				[b]Note:[/b] The [param callback] and [param key_callback] Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to [param tag].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 				[b]Note:[/b] On Windows, [param accelerator] and [param key_callback] are ignored.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="add_icon_item">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="icon" type="Texture2D" />
 | |
| 			<param index="2" name="label" type="String" />
 | |
| 			<param index="3" name="callback" type="Callable" default="Callable()" />
 | |
| 			<param index="4" name="key_callback" type="Callable" default="Callable()" />
 | |
| 			<param index="5" name="tag" type="Variant" default="null" />
 | |
| 			<param index="6" name="accelerator" type="int" enum="Key" default="0" />
 | |
| 			<param index="7" name="index" type="int" default="-1" />
 | |
| 			<description>
 | |
| 				Adds a new item with text [param label] and icon [param icon] to the global menu [param rid].
 | |
| 				Returns index of the inserted item, it's not guaranteed to be the same as [param index] value.
 | |
| 				An [param accelerator] can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The [param accelerator] is generally a combination of [enum KeyModifierMask]s and [enum Key]s using bitwise OR such as [code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).
 | |
| 				[b]Note:[/b] The [param callback] and [param key_callback] Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to [param tag].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 				[b]Note:[/b] On Windows, [param accelerator] and [param key_callback] are ignored.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="add_icon_radio_check_item">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="icon" type="Texture2D" />
 | |
| 			<param index="2" name="label" type="String" />
 | |
| 			<param index="3" name="callback" type="Callable" default="Callable()" />
 | |
| 			<param index="4" name="key_callback" type="Callable" default="Callable()" />
 | |
| 			<param index="5" name="tag" type="Variant" default="null" />
 | |
| 			<param index="6" name="accelerator" type="int" enum="Key" default="0" />
 | |
| 			<param index="7" name="index" type="int" default="-1" />
 | |
| 			<description>
 | |
| 				Adds a new radio-checkable item with text [param label] and icon [param icon] to the global menu [param rid].
 | |
| 				Returns index of the inserted item, it's not guaranteed to be the same as [param index] value.
 | |
| 				An [param accelerator] can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The [param accelerator] is generally a combination of [enum KeyModifierMask]s and [enum Key]s using bitwise OR such as [code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).
 | |
| 				[b]Note:[/b] Radio-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.
 | |
| 				[b]Note:[/b] The [param callback] and [param key_callback] Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to [param tag].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 				[b]Note:[/b] On Windows, [param accelerator] and [param key_callback] are ignored.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="add_item">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="label" type="String" />
 | |
| 			<param index="2" name="callback" type="Callable" default="Callable()" />
 | |
| 			<param index="3" name="key_callback" type="Callable" default="Callable()" />
 | |
| 			<param index="4" name="tag" type="Variant" default="null" />
 | |
| 			<param index="5" name="accelerator" type="int" enum="Key" default="0" />
 | |
| 			<param index="6" name="index" type="int" default="-1" />
 | |
| 			<description>
 | |
| 				Adds a new item with text [param label] to the global menu [param rid].
 | |
| 				Returns index of the inserted item, it's not guaranteed to be the same as [param index] value.
 | |
| 				An [param accelerator] can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The [param accelerator] is generally a combination of [enum KeyModifierMask]s and [enum Key]s using bitwise OR such as [code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).
 | |
| 				[b]Note:[/b] The [param callback] and [param key_callback] Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to [param tag].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 				[b]Note:[/b] On Windows, [param accelerator] and [param key_callback] are ignored.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="add_multistate_item">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="label" type="String" />
 | |
| 			<param index="2" name="max_states" type="int" />
 | |
| 			<param index="3" name="default_state" type="int" />
 | |
| 			<param index="4" name="callback" type="Callable" default="Callable()" />
 | |
| 			<param index="5" name="key_callback" type="Callable" default="Callable()" />
 | |
| 			<param index="6" name="tag" type="Variant" default="null" />
 | |
| 			<param index="7" name="accelerator" type="int" enum="Key" default="0" />
 | |
| 			<param index="8" name="index" type="int" default="-1" />
 | |
| 			<description>
 | |
| 				Adds a new item with text [param label] to the global menu [param rid].
 | |
| 				Contrarily to normal binary items, multistate items can have more than two states, as defined by [param max_states]. Each press or activate of the item will increase the state by one. The default value is defined by [param default_state].
 | |
| 				Returns index of the inserted item, it's not guaranteed to be the same as [param index] value.
 | |
| 				An [param accelerator] can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The [param accelerator] is generally a combination of [enum KeyModifierMask]s and [enum Key]s using bitwise OR such as [code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).
 | |
| 				[b]Note:[/b] By default, there's no indication of the current item state, it should be changed manually.
 | |
| 				[b]Note:[/b] The [param callback] and [param key_callback] Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to [param tag].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 				[b]Note:[/b] On Windows, [param accelerator] and [param key_callback] are ignored.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="add_radio_check_item">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="label" type="String" />
 | |
| 			<param index="2" name="callback" type="Callable" default="Callable()" />
 | |
| 			<param index="3" name="key_callback" type="Callable" default="Callable()" />
 | |
| 			<param index="4" name="tag" type="Variant" default="null" />
 | |
| 			<param index="5" name="accelerator" type="int" enum="Key" default="0" />
 | |
| 			<param index="6" name="index" type="int" default="-1" />
 | |
| 			<description>
 | |
| 				Adds a new radio-checkable item with text [param label] to the global menu [param rid].
 | |
| 				Returns index of the inserted item, it's not guaranteed to be the same as [param index] value.
 | |
| 				An [param accelerator] can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The [param accelerator] is generally a combination of [enum KeyModifierMask]s and [enum Key]s using bitwise OR such as [code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).
 | |
| 				[b]Note:[/b] Radio-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.
 | |
| 				[b]Note:[/b] The [param callback] and [param key_callback] Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to [param tag].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 				[b]Note:[/b] On Windows, [param accelerator] and [param key_callback] are ignored.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="add_separator">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="index" type="int" default="-1" />
 | |
| 			<description>
 | |
| 				Adds a separator between items to the global menu [param rid]. Separators also occupy an index.
 | |
| 				Returns index of the inserted item, it's not guaranteed to be the same as [param index] value.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="add_submenu_item">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="label" type="String" />
 | |
| 			<param index="2" name="submenu_rid" type="RID" />
 | |
| 			<param index="3" name="tag" type="Variant" default="null" />
 | |
| 			<param index="4" name="index" type="int" default="-1" />
 | |
| 			<description>
 | |
| 				Adds an item that will act as a submenu of the global menu [param rid]. The [param submenu_rid] argument is the RID of the global menu that will be shown when the item is clicked.
 | |
| 				Returns index of the inserted item, it's not guaranteed to be the same as [param index] value.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="clear">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Removes all items from the global menu [param rid].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="create_menu">
 | |
| 			<return type="RID" />
 | |
| 			<description>
 | |
| 				Creates a new global menu object.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="find_item_index_with_submenu" qualifiers="const">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="submenu_rid" type="RID" />
 | |
| 			<description>
 | |
| 				Returns the index of the item with the submenu specified by [param submenu_rid]. Indices are automatically assigned to each item by the engine, and cannot be set manually.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="find_item_index_with_tag" qualifiers="const">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="tag" type="Variant" />
 | |
| 			<description>
 | |
| 				Returns the index of the item with the specified [param tag]. Indices are automatically assigned to each item by the engine, and cannot be set manually.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="find_item_index_with_text" qualifiers="const">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="text" type="String" />
 | |
| 			<description>
 | |
| 				Returns the index of the item with the specified [param text]. Indices are automatically assigned to each item by the engine, and cannot be set manually.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="free_menu">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Frees a global menu object created by this [NativeMenu].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_accelerator" qualifiers="const">
 | |
| 			<return type="int" enum="Key" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns the accelerator of the item at index [param idx]. Accelerators are special combinations of keys that activate the item, no matter which control is focused.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_callback" qualifiers="const">
 | |
| 			<return type="Callable" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns the callback of the item at index [param idx].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_count" qualifiers="const">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Returns number of items in the global menu [param rid].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_icon" qualifiers="const">
 | |
| 			<return type="Texture2D" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns the icon of the item at index [param idx].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_indentation_level" qualifiers="const">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns the horizontal offset of the item at the given [param idx].
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_key_callback" qualifiers="const">
 | |
| 			<return type="Callable" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns the callback of the item accelerator at index [param idx].
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_max_states" qualifiers="const">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns number of states of a multistate item. See [method add_multistate_item] for details.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_state" qualifiers="const">
 | |
| 			<return type="int" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns the state of a multistate item. See [method add_multistate_item] for details.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_submenu" qualifiers="const">
 | |
| 			<return type="RID" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns the submenu ID of the item at index [param idx]. See [method add_submenu_item] for more info on how to add a submenu.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_tag" qualifiers="const">
 | |
| 			<return type="Variant" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" 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_tag], which provides a simple way of assigning context data to items.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_text" qualifiers="const">
 | |
| 			<return type="String" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns the text of the item at index [param idx].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_item_tooltip" qualifiers="const">
 | |
| 			<return type="String" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns the tooltip associated with the specified index [param idx].
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_minimum_width" qualifiers="const">
 | |
| 			<return type="float" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Returns global menu minimum width.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_popup_close_callback" qualifiers="const">
 | |
| 			<return type="Callable" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Returns global menu close callback.
 | |
| 				b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_popup_open_callback" qualifiers="const">
 | |
| 			<return type="Callable" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Returns global menu open callback.
 | |
| 				b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_size" qualifiers="const">
 | |
| 			<return type="Vector2" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Returns global menu size.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_system_menu" qualifiers="const">
 | |
| 			<return type="RID" />
 | |
| 			<param index="0" name="menu_id" type="int" enum="NativeMenu.SystemMenus" />
 | |
| 			<description>
 | |
| 				Returns RID of a special system menu.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_system_menu_name" qualifiers="const">
 | |
| 			<return type="String" />
 | |
| 			<param index="0" name="menu_id" type="int" enum="NativeMenu.SystemMenus" />
 | |
| 			<description>
 | |
| 				Returns readable name of a special system menu.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="has_feature" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="feature" type="int" enum="NativeMenu.Feature" />
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if the specified [param feature] is supported by the current [NativeMenu], [code]false[/code] otherwise.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="has_menu" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if [param rid] is valid global menu.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="has_system_menu" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="menu_id" type="int" enum="NativeMenu.SystemMenus" />
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if a special system menu is supported.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="is_item_checkable" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if the item at index [param idx] is checkable in some way, i.e. if it has a checkbox or radio button.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="is_item_checked" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if the item at index [param idx] is checked.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="is_item_disabled" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if the item at index [param idx] 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.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="is_item_hidden" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if the item at index [param idx] is hidden.
 | |
| 				See [method set_item_hidden] for more info on how to hide an item.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="is_item_radio_checkable" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if the item at index [param idx] has radio button-style checkability.
 | |
| 				[b]Note:[/b] This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="is_opened" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Returns [code]true[/code] if the menu is currently opened.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="is_system_menu" qualifiers="const">
 | |
| 			<return type="bool" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<description>
 | |
| 				Return [code]true[/code] is global menu is a special system menu.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="popup">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="position" type="Vector2i" />
 | |
| 			<description>
 | |
| 				Shows the global menu at [param position] in the screen coordinates.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="remove_item">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<description>
 | |
| 				Removes the item at index [param idx] from the global menu [param rid].
 | |
| 				[b]Note:[/b] The indices of items after the removed item will be shifted by one.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_interface_direction">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="is_rtl" type="bool" />
 | |
| 			<description>
 | |
| 				Sets the menu text layout direction from right-to-left if [param is_rtl] is [code]true[/code].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_accelerator">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="keycode" type="int" enum="Key" />
 | |
| 			<description>
 | |
| 				Sets the accelerator of the item at index [param idx]. [param keycode] can be a single [enum Key], or a combination of [enum KeyModifierMask]s and [enum Key]s using bitwise OR such as [code]KEY_MASK_CTRL | KEY_A[/code] ([kbd]Ctrl + A[/kbd]).
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_callback">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="callback" type="Callable" />
 | |
| 			<description>
 | |
| 				Sets the callback of the item at index [param idx]. Callback is emitted when an item is pressed.
 | |
| 				[b]Note:[/b] The [param callback] Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the [code]tag[/code] parameter when the menu item was created.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_checkable">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="checkable" type="bool" />
 | |
| 			<description>
 | |
| 				Sets whether the item at index [param idx] has a checkbox. If [code]false[/code], sets the type of the item to plain text.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_checked">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="checked" type="bool" />
 | |
| 			<description>
 | |
| 				Sets the checkstate status of the item at index [param idx].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_disabled">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="disabled" type="bool" />
 | |
| 			<description>
 | |
| 				Enables/disables the item at index [param idx]. When it is disabled, it can't be selected and its action can't be invoked.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_hidden">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="hidden" type="bool" />
 | |
| 			<description>
 | |
| 				Hides/shows the item at index [param idx]. When it is hidden, an item does not appear in a menu and its action cannot be invoked.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_hover_callbacks">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="callback" type="Callable" />
 | |
| 			<description>
 | |
| 				Sets the callback of the item at index [param idx]. The callback is emitted when an item is hovered.
 | |
| 				[b]Note:[/b] The [param callback] Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the [code]tag[/code] parameter when the menu item was created.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_icon">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="icon" type="Texture2D" />
 | |
| 			<description>
 | |
| 				Replaces the [Texture2D] icon of the specified [param idx].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 				[b]Note:[/b] This method is not supported by macOS Dock menu items.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_indentation_level">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="level" type="int" />
 | |
| 			<description>
 | |
| 				Sets the horizontal offset of the item at the given [param idx].
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_key_callback">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="key_callback" type="Callable" />
 | |
| 			<description>
 | |
| 				Sets the callback of the item at index [param idx]. Callback is emitted when its accelerator is activated.
 | |
| 				[b]Note:[/b] The [param key_callback] Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the [code]tag[/code] parameter when the menu item was created.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_max_states">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="max_states" type="int" />
 | |
| 			<description>
 | |
| 				Sets number of state of a multistate item. See [method add_multistate_item] for details.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_radio_checkable">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="checkable" type="bool" />
 | |
| 			<description>
 | |
| 				Sets the type of the item at the specified index [param idx] to radio button. If [code]false[/code], sets the type of the item to plain text.
 | |
| 				[b]Note:[/b] This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_state">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="state" type="int" />
 | |
| 			<description>
 | |
| 				Sets the state of a multistate item. See [method add_multistate_item] for details.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_submenu">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="submenu_rid" type="RID" />
 | |
| 			<description>
 | |
| 				Sets the submenu RID of the item at index [param idx]. The submenu is a global menu that would be shown when the item is clicked.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_tag">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="tag" type="Variant" />
 | |
| 			<description>
 | |
| 				Sets the metadata of an item, which may be of any type. You can later get it with [method get_item_tag], which provides a simple way of assigning context data to items.
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_text">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="text" type="String" />
 | |
| 			<description>
 | |
| 				Sets the text of the item at index [param idx].
 | |
| 				[b]Note:[/b] This method is implemented on macOS and Windows.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_item_tooltip">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="idx" type="int" />
 | |
| 			<param index="2" name="tooltip" type="String" />
 | |
| 			<description>
 | |
| 				Sets the [String] tooltip of the item at the specified index [param idx].
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_minimum_width">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="width" type="float" />
 | |
| 			<description>
 | |
| 				Sets the minimum width of the global menu.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_popup_close_callback">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="callback" type="Callable" />
 | |
| 			<description>
 | |
| 				Registers callable to emit when the menu is about to show.
 | |
| 				[b]Note:[/b] The OS can simulate menu opening to track menu item changes and global shortcuts, in which case the corresponding close callback is not triggered. Use [method is_opened] to check if the menu is currently opened.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="set_popup_open_callback">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="rid" type="RID" />
 | |
| 			<param index="1" name="callback" type="Callable" />
 | |
| 			<description>
 | |
| 				Registers callable to emit after the menu is closed.
 | |
| 				[b]Note:[/b] This method is implemented only on macOS.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 	</methods>
 | |
| 	<constants>
 | |
| 		<constant name="FEATURE_GLOBAL_MENU" value="0" enum="Feature">
 | |
| 			[NativeMenu] supports native global main menu.
 | |
| 		</constant>
 | |
| 		<constant name="FEATURE_POPUP_MENU" value="1" enum="Feature">
 | |
| 			[NativeMenu] supports native popup menus.
 | |
| 		</constant>
 | |
| 		<constant name="FEATURE_OPEN_CLOSE_CALLBACK" value="2" enum="Feature">
 | |
| 			[NativeMenu] supports menu open and close callbacks.
 | |
| 		</constant>
 | |
| 		<constant name="FEATURE_HOVER_CALLBACK" value="3" enum="Feature">
 | |
| 			[NativeMenu] supports menu item hover callback.
 | |
| 		</constant>
 | |
| 		<constant name="FEATURE_KEY_CALLBACK" value="4" enum="Feature">
 | |
| 			[NativeMenu] supports menu item accelerator/key callback.
 | |
| 		</constant>
 | |
| 		<constant name="INVALID_MENU_ID" value="0" enum="SystemMenus">
 | |
| 			Invalid special system menu ID.
 | |
| 		</constant>
 | |
| 		<constant name="MAIN_MENU_ID" value="1" enum="SystemMenus">
 | |
| 			Global main menu ID.
 | |
| 		</constant>
 | |
| 		<constant name="APPLICATION_MENU_ID" value="2" enum="SystemMenus">
 | |
| 			Application (first menu after "Apple" menu on macOS) menu ID.
 | |
| 		</constant>
 | |
| 		<constant name="WINDOW_MENU_ID" value="3" enum="SystemMenus">
 | |
| 			"Window" menu ID (on macOS this menu includes standard window control items and a list of open windows).
 | |
| 		</constant>
 | |
| 		<constant name="HELP_MENU_ID" value="4" enum="SystemMenus">
 | |
| 			"Help" menu ID (on macOS this menu includes help search bar).
 | |
| 		</constant>
 | |
| 		<constant name="DOCK_MENU_ID" value="5" enum="SystemMenus">
 | |
| 			Dock icon right-click menu ID (on macOS this menu include standard application control items and a list of open windows).
 | |
| 		</constant>
 | |
| 	</constants>
 | |
| </class>
 | 
