NativeMenu

Наследует: Object

Серверный интерфейс для собственных меню ОС.

Описание

NativeMenu обрабатывает низкоуровневый доступ к собственной глобальной строке меню ОС и всплывающим меню.

Примечание: Это низкоуровневый API, рассмотрите возможность использования MenuBar с MenuBar.prefer_global_menu, установленным на true, и PopupMenu с PopupMenu.prefer_native_menu, установленным на true.

Чтобы создать меню, используйте create_menu(), добавьте пункты меню с помощью методов add_*_item. Чтобы удалить меню, используйте free_menu().

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():
    # Создайте новое меню и добавьте пункты:
    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():
    # Показать всплывающее меню в позиции мыши:
    NativeMenu.popup(menu, DisplayServer.mouse_get_position())

func _exit_tree():
    # Удалить меню, когда оно больше не нужно:
    NativeMenu.free_menu(menu)

Методы

int

add_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

add_icon_check_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

add_icon_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

add_icon_radio_check_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

add_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

add_multistate_item(rid: RID, label: String, max_states: int, default_state: int, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

add_radio_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1)

int

add_separator(rid: RID, index: int = -1)

int

add_submenu_item(rid: RID, label: String, submenu_rid: RID, tag: Variant = null, index: int = -1)

void

clear(rid: RID)

RID

create_menu()

int

find_item_index_with_submenu(rid: RID, submenu_rid: RID) const

int

find_item_index_with_tag(rid: RID, tag: Variant) const

int

find_item_index_with_text(rid: RID, text: String) const

void

free_menu(rid: RID)

Key

get_item_accelerator(rid: RID, idx: int) const

Callable

get_item_callback(rid: RID, idx: int) const

int

get_item_count(rid: RID) const

Texture2D

get_item_icon(rid: RID, idx: int) const

int

get_item_indentation_level(rid: RID, idx: int) const

Callable

get_item_key_callback(rid: RID, idx: int) const

int

get_item_max_states(rid: RID, idx: int) const

int

get_item_state(rid: RID, idx: int) const

RID

get_item_submenu(rid: RID, idx: int) const

Variant

get_item_tag(rid: RID, idx: int) const

String

get_item_text(rid: RID, idx: int) const

String

get_item_tooltip(rid: RID, idx: int) const

float

get_minimum_width(rid: RID) const

Callable

get_popup_close_callback(rid: RID) const

Callable

get_popup_open_callback(rid: RID) const

Vector2

get_size(rid: RID) const

RID

get_system_menu(menu_id: SystemMenus) const

String

get_system_menu_name(menu_id: SystemMenus) const

String

get_system_menu_text(menu_id: SystemMenus) const

bool

has_feature(feature: Feature) const

bool

has_menu(rid: RID) const

bool

has_system_menu(menu_id: SystemMenus) const

bool

is_item_checkable(rid: RID, idx: int) const

bool

is_item_checked(rid: RID, idx: int) const

bool

is_item_disabled(rid: RID, idx: int) const

bool

is_item_hidden(rid: RID, idx: int) const

bool

is_item_radio_checkable(rid: RID, idx: int) const

bool

is_opened(rid: RID) const

bool

is_system_menu(rid: RID) const

void

popup(rid: RID, position: Vector2i)

void

remove_item(rid: RID, idx: int)

void

set_interface_direction(rid: RID, is_rtl: bool)

void

set_item_accelerator(rid: RID, idx: int, keycode: Key)

void

set_item_callback(rid: RID, idx: int, callback: Callable)

void

set_item_checkable(rid: RID, idx: int, checkable: bool)

void

set_item_checked(rid: RID, idx: int, checked: bool)

void

set_item_disabled(rid: RID, idx: int, disabled: bool)

void

set_item_hidden(rid: RID, idx: int, hidden: bool)

void

set_item_hover_callbacks(rid: RID, idx: int, callback: Callable)

void

set_item_icon(rid: RID, idx: int, icon: Texture2D)

void

set_item_indentation_level(rid: RID, idx: int, level: int)

void

set_item_key_callback(rid: RID, idx: int, key_callback: Callable)

void

set_item_max_states(rid: RID, idx: int, max_states: int)

void

set_item_radio_checkable(rid: RID, idx: int, checkable: bool)

void

set_item_state(rid: RID, idx: int, state: int)

void

set_item_submenu(rid: RID, idx: int, submenu_rid: RID)

void

set_item_tag(rid: RID, idx: int, tag: Variant)

void

set_item_text(rid: RID, idx: int, text: String)

void

set_item_tooltip(rid: RID, idx: int, tooltip: String)

void

set_minimum_width(rid: RID, width: float)

void

set_popup_close_callback(rid: RID, callback: Callable)

void

set_popup_open_callback(rid: RID, callback: Callable)

void

set_system_menu_text(menu_id: SystemMenus, name: String)


Перечисления

enum Feature: 🔗

Feature FEATURE_GLOBAL_MENU = 0

NativeMenu поддерживает собственное глобальное главное меню.

Feature FEATURE_POPUP_MENU = 1

NativeMenu поддерживает собственные всплывающие меню.

Feature FEATURE_OPEN_CLOSE_CALLBACK = 2

NativeMenu поддерживает обратные вызовы открытия и закрытия меню.

Feature FEATURE_HOVER_CALLBACK = 3

NativeMenu поддерживает обратный вызов при наведении на пункт меню.

Feature FEATURE_KEY_CALLBACK = 4

NativeMenu поддерживает обратный вызов ускорителя/клавиши пункта меню.


enum SystemMenus: 🔗

SystemMenus INVALID_MENU_ID = 0

Неверный идентификатор специального системного меню.

SystemMenus MAIN_MENU_ID = 1

Глобальный идентификатор главного меню.

SystemMenus APPLICATION_MENU_ID = 2

Идентификатор меню приложения (первое меню после меню «Apple» в macOS).

SystemMenus WINDOW_MENU_ID = 3

Идентификатор меню «Window» (в macOS это меню включает стандартные элементы управления окнами и список открытых окон).

SystemMenus HELP_MENU_ID = 4

Идентификатор меню «Справка» (в macOS это меню включает панель поиска справки).

SystemMenus DOCK_MENU_ID = 5

Идентификатор контекстного меню значка Dock (в macOS это меню включает стандартные элементы управления приложениями и список открытых окон).


Описания метода

int add_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

Добавляет новый отмечаемый элемент с текстом label в глобальное меню rid.

Возвращает индекс вставленного элемента, он не обязательно будет таким же, как значение index.

Дополнительно можно определить accelerator, который представляет собой сочетание клавиш, которое можно нажать для вызова кнопки меню, даже если оно в данный момент не открыто. accelerator обычно представляет собой комбинацию KeyModifierMask и Key с использованием побитового ИЛИ, например KEY_MASK_CTRL | KEY_A (Ctrl + A).

Примечание: Вызываемые callback и key_callback должны принимать ровно один параметр Variant, параметр, переданный в вызываемые, будет значением, переданным в tag.

Примечание: Этот метод реализован в macOS и Windows.

Примечание: В Windows accelerator и key_callback игнорируются.


int add_icon_check_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

Добавляет новый отмечаемый элемент с текстом label и значком icon в глобальное меню rid.

Возвращает индекс вставленного элемента, он не обязательно будет таким же, как значение index.

Дополнительно можно определить accelerator, который представляет собой сочетание клавиш, которое можно нажать для вызова кнопки меню, даже если оно в данный момент не открыто. accelerator обычно представляет собой комбинацию KeyModifierMask и Key с использованием побитового ИЛИ, например KEY_MASK_CTRL | KEY_A (Ctrl + A).

Примечание: Вызываемые callback и key_callback должны принимать ровно один параметр Variant, параметр, переданный в вызываемые, будет значением, переданным в tag.

Примечание: Этот метод реализован в macOS и Windows.

Примечание: В Windows accelerator и key_callback игнорируются.


int add_icon_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

Добавляет новый элемент с текстом label и значком icon в глобальное меню rid.

Возвращает индекс вставленного элемента, он не обязательно будет таким же, как значение index.

Дополнительно можно определить accelerator, который представляет собой сочетание клавиш, которое можно нажать для вызова кнопки меню, даже если оно в данный момент не открыто. accelerator обычно представляет собой комбинацию KeyModifierMask и Key с использованием побитового ИЛИ, например KEY_MASK_CTRL | KEY_A (Ctrl + A).

Примечание: Вызываемые callback и key_callback должны принимать ровно один параметр Variant, параметр, переданный в вызываемые, будет значением, переданным в tag.

Примечание: Этот метод реализован в macOS и Windows.

Примечание: В Windows accelerator и key_callback игнорируются.


int add_icon_radio_check_item(rid: RID, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

Добавляет новый элемент с возможностью радио-отметки с текстом label и значком icon в глобальное меню rid.

Возвращает индекс вставленного элемента, он не обязательно будет таким же, как значение index.

Дополнительно можно определить accelerator, который представляет собой сочетание клавиш, которое можно нажать для вызова кнопки меню, даже если оно в данный момент не открыто. accelerator обычно представляет собой комбинацию KeyModifierMask и Key с использованием побитового ИЛИ, например KEY_MASK_CTRL | KEY_A (Ctrl + A).

Примечание: Элементы с возможностью радио-отметки просто отображают галочку, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную. См. set_item_checked() для получения дополнительной информации о том, как управлять этим.

Примечание: Вызываемые объекты callback и key_callback должны принимать ровно один параметр Variant, параметр, переданный в вызываемые объекты, будет значением, переданным в tag.

Примечание: Этот метод реализован в macOS и Windows.

Примечание: В Windows accelerator и key_callback игнорируются.


int add_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

Добавляет новый элемент с текстом label в глобальное меню rid.

Возвращает индекс вставленного элемента, он не обязательно будет таким же, как значение index.

Дополнительно можно определить accelerator, который представляет собой сочетание клавиш, которое можно нажать для вызова кнопки меню, даже если оно в данный момент не открыто. accelerator обычно представляет собой комбинацию KeyModifierMask и Key с использованием побитового ИЛИ, например KEY_MASK_CTRL | KEY_A (Ctrl + A).

Примечание: Вызываемые callback и key_callback должны принимать ровно один параметр Variant, параметр, переданный в вызываемые, будет значением, переданным в tag.

Примечание: Этот метод реализован в macOS и Windows.

Примечание: В Windows accelerator и key_callback игнорируются.


int add_multistate_item(rid: RID, label: String, max_states: int, default_state: int, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

Добавляет новый элемент с текстом label в глобальное меню rid.

В отличие от обычных двоичных элементов, элементы с несколькими состояниями могут иметь более двух состояний, как определено max_states. Каждое нажатие или активация элемента увеличит состояние на единицу. Значение по умолчанию определяется default_state.

Возвращает индекс вставленного элемента, он не обязательно будет таким же, как значение index.

Необязательно может быть определен accelerator, представляющий собой сочетание клавиш, которое можно нажать для вызова кнопки меню, даже если оно в данный момент не открыто. accelerator обычно представляет собой комбинацию KeyModifierMask и Key с использованием побитового ИЛИ, например KEY_MASK_CTRL | KEY_A (Ctrl + A).

Примечание: По умолчанию нет указания на текущее состояние элемента, его следует изменить вручную.

Примечание: Вызываемые объекты callback и key_callback должны принимать ровно один параметр Variant, параметр, переданный в вызываемые объекты, будет значением, переданным в tag.

Примечание: Этот метод реализован в macOS и Windows.

Примечание: В Windows accelerator и key_callback игнорируются.


int add_radio_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) 🔗

Добавляет новый элемент с возможностью радио-отметки с текстом label в глобальное меню rid.

Возвращает индекс вставленного элемента, он не обязательно будет таким же, как значение index.

Дополнительно можно определить accelerator, который представляет собой сочетание клавиш, которое можно нажать для вызова кнопки меню, даже если оно в данный момент не открыто. accelerator обычно представляет собой комбинацию KeyModifierMask и Key с использованием побитового ИЛИ, например KEY_MASK_CTRL | KEY_A (Ctrl + A).

Примечание: Элементы с возможностью радио-отметки просто отображают галочку, но не имеют встроенного поведения проверки и должны быть отмечены/сняты вручную. См. set_item_checked() для получения дополнительной информации о том, как управлять этим.

Примечание: Вызываемые объекты callback и key_callback должны принимать ровно один параметр Variant, параметр, переданный в вызываемые объекты, будет значением, переданным в tag.

Примечание: Этот метод реализован в macOS и Windows.

Примечание: В Windows accelerator и key_callback игнорируются.


int add_separator(rid: RID, index: int = -1) 🔗

Добавляет разделитель между элементами в глобальное меню rid. Разделители также занимают индекс.

Возвращает индекс вставленного элемента, он не обязательно будет таким же, как значение index.

Примечание: Этот метод реализован в macOS и Windows.


int add_submenu_item(rid: RID, label: String, submenu_rid: RID, tag: Variant = null, index: int = -1) 🔗

Добавляет элемент, который будет действовать как подменю глобального меню rid. Аргумент submenu_rid — это RID глобального меню, которое будет показано при щелчке по элементу.

Возвращает индекс вставленного элемента, он не обязательно будет таким же, как значение index.

Примечание: Этот метод реализован в macOS и Windows.


void clear(rid: RID) 🔗

Удаляет все элементы из глобального меню rid.

Примечание: Этот метод реализован в macOS и Windows.


RID create_menu() 🔗

Создает новый глобальный объект меню.

Примечание: Этот метод реализован в macOS и Windows.


int find_item_index_with_submenu(rid: RID, submenu_rid: RID) const 🔗

Возвращает индекс элемента с подменю, указанным submenu_rid. Индексы автоматически назначаются каждому элементу движком и не могут быть установлены вручную.

Примечание: Этот метод реализован в macOS и Windows.


int find_item_index_with_tag(rid: RID, tag: Variant) const 🔗

Возвращает индекс элемента с указанным tag. Индексы автоматически назначаются каждому элементу движком и не могут быть установлены вручную.

Примечание: Этот метод реализован в macOS и Windows.


int find_item_index_with_text(rid: RID, text: String) const 🔗

Возвращает индекс элемента с указанным text. Индексы автоматически назначаются каждому элементу движком и не могут быть установлены вручную.

Примечание: Этот метод реализован в macOS и Windows.


void free_menu(rid: RID) 🔗

Освобождает глобальный объект меню, созданный этим NativeMenu.

Примечание: Этот метод реализован в macOS и Windows.


Key get_item_accelerator(rid: RID, idx: int) const 🔗

Возвращает ускоритель элемента по индексу idx. Ускорители — это специальные комбинации клавиш, которые активируют элемент, независимо от того, какой элемент управления находится в фокусе.

Примечание: Этот метод реализован только в macOS.


Callable get_item_callback(rid: RID, idx: int) const 🔗

Возвращает обратный вызов элемента с индексом idx.

Примечание: Этот метод реализован в macOS и Windows.


int get_item_count(rid: RID) const 🔗

Возвращает количество пунктов в глобальном меню rid.

Примечание: Этот метод реализован в macOS и Windows.


Texture2D get_item_icon(rid: RID, idx: int) const 🔗

Возвращает значок элемента по индексу idx.

Примечание: Этот метод реализован в macOS и Windows.


int get_item_indentation_level(rid: RID, idx: int) const 🔗

Возвращает горизонтальное смещение элемента по указанному idx.

Примечание: Этот метод реализован только в macOS.


Callable get_item_key_callback(rid: RID, idx: int) const 🔗

Возвращает обратный вызов ускорителя элемента по индексу idx.

Примечание: Этот метод реализован только в macOS.


int get_item_max_states(rid: RID, idx: int) const 🔗

Возвращает количество состояний элемента с несколькими состояниями. Подробности см. в add_multistate_item().

Примечание: Этот метод реализован в macOS и Windows.


int get_item_state(rid: RID, idx: int) const 🔗

Возвращает состояние элемента с несколькими состояниями. Подробности см. в add_multistate_item().

Примечание: Этот метод реализован в macOS и Windows.


RID get_item_submenu(rid: RID, idx: int) const 🔗

Возвращает идентификатор подменю элемента с индексом idx. Подробнее о том, как добавить подменю, см. в add_submenu_item().

Примечание: Этот метод реализован в macOS и Windows.


Variant get_item_tag(rid: RID, idx: int) const 🔗

Возвращает метаданные указанного элемента, которые могут быть любого типа. Вы можете задать их с помощью set_item_tag(), который обеспечивает простой способ назначения контекстных данных элементам.

Примечание: Этот метод реализован в macOS и Windows.


String get_item_text(rid: RID, idx: int) const 🔗

Возвращает текст элемента по индексу idx.

Примечание: Этот метод реализован в macOS и Windows.


String get_item_tooltip(rid: RID, idx: int) const 🔗

Возвращает подсказку, связанную с указанным индексом idx.

Примечание: Этот метод реализован только в macOS.


float get_minimum_width(rid: RID) const 🔗

Возвращает минимальную ширину глобального меню.

Примечание: Этот метод реализован только на macOS.


Callable get_popup_close_callback(rid: RID) const 🔗

Возвращает глобальный обратный вызов закрытия меню.

Примечание: Этот метод реализован в macOS и Windows.


Callable get_popup_open_callback(rid: RID) const 🔗

Возвращает глобальный обратный вызов открытия меню.

Примечание: Этот метод реализован только на macOS.


Vector2 get_size(rid: RID) const 🔗

Возвращает глобальный размер меню.

Примечание: Этот метод реализован в macOS и Windows.


RID get_system_menu(menu_id: SystemMenus) const 🔗

Возвращает RID специального системного меню.

Примечание: Этот метод реализован только на macOS.


String get_system_menu_name(menu_id: SystemMenus) const 🔗

Возвращает читаемое имя специального системного меню.

Примечание: Этот метод реализован только на macOS.


String get_system_menu_text(menu_id: SystemMenus) const 🔗

Возвращает текст пункта системного меню.

Примечание: Этот метод реализован в macOS.


bool has_feature(feature: Feature) const 🔗

Возвращает true, если указанная feature поддерживается текущим NativeMenu, false в противном случае.

Примечание: Этот метод реализован в macOS и Windows.


bool has_menu(rid: RID) const 🔗

Возвращает true, если rid является допустимым глобальным меню.

Примечание: Этот метод реализован в macOS и Windows.


bool has_system_menu(menu_id: SystemMenus) const 🔗

Возвращает true, если поддерживается специальное системное меню.

Примечание: Этот метод реализован только в macOS.


bool is_item_checkable(rid: RID, idx: int) const 🔗

Возвращает true, если элемент с индексом idx можно отметить каким-либо образом, например, если у него есть флажок или переключатель.

Примечание: Этот метод реализован в macOS и Windows.


bool is_item_checked(rid: RID, idx: int) const 🔗

Возвращает true, если элемент с индексом idx можно отметить каким-либо образом, например, если у него есть флажок или переключатель.

Примечание: Этот метод реализован в macOS и Windows.


bool is_item_disabled(rid: RID, idx: int) const 🔗

Возвращает true, если элемент с индексом idx отключен. Когда он отключен, его нельзя выбрать или вызвать его действие.

См. set_item_disabled() для получения дополнительной информации о том, как отключить элемент.

Примечание: Этот метод реализован в macOS и Windows.


bool is_item_hidden(rid: RID, idx: int) const 🔗

Возвращает true, если элемент с индексом idx скрыт.

См. set_item_hidden() для получения дополнительной информации о том, как скрыть элемент.

Примечание: Этот метод реализован только в macOS.


bool is_item_radio_checkable(rid: RID, idx: int) const 🔗

Возвращает true, если элемент с индексом idx имеет возможность отмечать в стиле радиокнопки.

Примечание: Это чисто косметическое действие; необходимо добавить логику для отметки/снятия отметки элементов в группах радиокнопок.

Примечание: Этот метод реализован в macOS и Windows.


bool is_opened(rid: RID) const 🔗

Возвращает true, если меню в данный момент открыто.

Примечание: Этот метод реализован только в macOS.


bool is_system_menu(rid: RID) const 🔗

Возврат true — глобальное меню — это специальное системное меню.

Примечание: Этот метод реализован только на macOS.


void popup(rid: RID, position: Vector2i) 🔗

Показывает глобальное меню в position в экранных координатах.

Примечание: Этот метод реализован в macOS и Windows.


void remove_item(rid: RID, idx: int) 🔗

Удаляет элемент с индексом idx из глобального меню rid.

Примечание: Индексы элементов после удаленного элемента будут смещены на единицу.

Примечание: Этот метод реализован в macOS и Windows.


void set_interface_direction(rid: RID, is_rtl: bool) 🔗

Устанавливает направление макета текста меню справа налево, если is_rtl равен true.

Примечание: Этот метод реализован в macOS и Windows.


void set_item_accelerator(rid: RID, idx: int, keycode: Key) 🔗

Устанавливает акселератор элемента с индексом idx. keycode может быть одним Key или комбинацией KeyModifierMask и Key с использованием побитового ИЛИ, например KEY_MASK_CTRL | KEY_A (Ctrl + A).

Примечание: Этот метод реализован только в macOS.


void set_item_callback(rid: RID, idx: int, callback: Callable) 🔗

Устанавливает обратный вызов элемента с индексом idx. Обратный вызов отправляется при нажатии элемента.

Примечание: Вызываемый callback должен принимать ровно один параметр Variant, параметр, переданный в вызываемый, будет значением, переданным параметру tag при создании элемента меню.

Примечание: Этот метод реализован в macOS и Windows.


void set_item_checkable(rid: RID, idx: int, checkable: bool) 🔗

Устанавливает, есть ли у элемента с индексом idx флажок. Если false, задает тип элемента как обычный текст.

Примечание: Этот метод реализован в macOS и Windows.


void set_item_checked(rid: RID, idx: int, checked: bool) 🔗

Устанавливает статус checkstate (контрольное состояние) элемента по индексу idx.

Примечание: Этот метод реализован в macOS и Windows.


void set_item_disabled(rid: RID, idx: int, disabled: bool) 🔗

Включает/отключает элемент с индексом idx. Когда он отключен, его нельзя выбрать и его действие нельзя вызвать.

Примечание: Этот метод реализован в macOS и Windows.


void set_item_hidden(rid: RID, idx: int, hidden: bool) 🔗

Скрывает/показывает элемент с индексом idx. Когда он скрыт, элемент не отображается в меню и его действие не может быть вызвано.

Примечание: Этот метод реализован только в macOS.


void set_item_hover_callbacks(rid: RID, idx: int, callback: Callable) 🔗

Устанавливает обратный вызов элемента с индексом idx. Обратный вызов срабатывает при наведении на элемент.

Примечание: Вызываемый callback должен принимать ровно один параметр Variant, параметр, переданный в вызываемый, будет значением, переданным параметру tag при создании элемента меню.

Примечание: Этот метод реализован только в macOS.


void set_item_icon(rid: RID, idx: int, icon: Texture2D) 🔗

Заменяет значок Texture2D указанного idx.

Примечание: Этот метод реализован в macOS и Windows.

Примечание: Этот метод не поддерживается элементами меню Dock macOS.


void set_item_indentation_level(rid: RID, idx: int, level: int) 🔗

Устанавливает горизонтальное смещение элемента по указанному idx.

Примечание: Этот метод реализован только в macOS.


void set_item_key_callback(rid: RID, idx: int, key_callback: Callable) 🔗

Устанавливает обратный вызов элемента с индексом idx. Обратный вызов отправляется при активации его ускорителя.

Примечание: Вызываемый объект key_callback должен принимать ровно один параметр Variant, параметр, переданный в вызываемый объект, будет значением, переданным параметру tag при создании элемента меню.

Примечание: Этот метод реализован только в macOS.


void set_item_max_states(rid: RID, idx: int, max_states: int) 🔗

Устанавливает номер состояния элемента с несколькими состояниями. Подробности см. в add_multistate_item().

Примечание: Этот метод реализован в macOS и Windows.


void set_item_radio_checkable(rid: RID, idx: int, checkable: bool) 🔗

Устанавливает тип элемента с указанным индексом idx на радиокнопку. Если false, устанавливает тип элемента на обычный текст.

Примечание: Это чисто косметическое действие; необходимо добавить логику для установки/снятия отметок элементов в группах радиокнопок.

Примечание: Этот метод реализован в macOS и Windows.


void set_item_state(rid: RID, idx: int, state: int) 🔗

Устанавливает состояние элемента с несколькими состояниями. Подробности см. в add_multistate_item().

Примечание: Этот метод реализован в macOS и Windows.


void set_item_submenu(rid: RID, idx: int, submenu_rid: RID) 🔗

Устанавливает RID подменю элемента с индексом idx. Подменю — это глобальное меню, которое будет показано при щелчке по элементу.

Примечание: Этот метод реализован в macOS и Windows.


void set_item_tag(rid: RID, idx: int, tag: Variant) 🔗

Устанавливает метаданные элемента, которые могут быть любого типа. Позже вы можете получить их с помощью get_item_tag(), который предоставляет простой способ назначения контекстных данных элементам.

Примечание: Этот метод реализован в macOS и Windows.


void set_item_text(rid: RID, idx: int, text: String) 🔗

Устанавливает текст элемента по индексу idx.

Примечание: Этот метод реализован в macOS и Windows.


void set_item_tooltip(rid: RID, idx: int, tooltip: String) 🔗

Устанавливает подсказку String элемента по указанному индексу idx.

Примечание: Этот метод реализован только в macOS.


void set_minimum_width(rid: RID, width: float) 🔗

Устанавливает минимальную ширину глобального меню.

Примечание: Этот метод реализован только на macOS.


void set_popup_close_callback(rid: RID, callback: Callable) 🔗

Регистрирует callable, которые можно вызывать, когда меню вот-вот отобразится.

Примечание: ОС может имитировать открытие меню для отслеживания изменений пунктов меню и глобальных сочетаний клавиш, в этом случае соответствующий обратный вызов закрытия не запускается. Используйте is_opened(), чтобы проверить, открыто ли меню в данный момент.

Примечание: Этот метод реализован в macOS и Windows.


void set_popup_open_callback(rid: RID, callback: Callable) 🔗

Регистры, которые можно вызвать для испускания после закрытия меню.

Примечание: Этот метод реализован только в macOS.


void set_system_menu_text(menu_id: SystemMenus, name: String) 🔗

Устанавливает текст пункта системного меню.

Примечание: Этот метод реализован в macOS.