Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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)
Методи
add_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
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) |
|
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) |
|
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) |
|
add_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
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) |
|
add_radio_check_item(rid: RID, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: Key = 0, index: int = -1) |
|
add_separator(rid: RID, index: int = -1) |
|
add_submenu_item(rid: RID, label: String, submenu_rid: RID, tag: Variant = null, index: int = -1) |
|
clear(rid: RID) |
|
RID |
create_menu() |
find_item_index_with_submenu(rid: RID, submenu_rid: RID) |const| |
|
find_item_index_with_tag(rid: RID, tag: Variant) |const| |
|
find_item_index_with_text(rid: RID, text: String) |const| |
|
free_menu(rid: RID) |
|
get_item_count(rid: RID) |const| |
|
Texture2D |
|
RID |
|
Variant |
|
String |
|
String |
|
get_minimum_width(rid: RID) |const| |
|
get_popup_close_callback(rid: RID) |const| |
|
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| |
has_menu(rid: RID) |const| |
|
has_system_menu(menu_id: SystemMenus) |const| |
|
is_opened(rid: RID) |const| |
|
is_system_menu(rid: RID) |const| |
|
popup(rid: RID, position: Vector2i) |
|
remove_item(rid: RID, idx: int) |
|
set_interface_direction(rid: RID, is_rtl: bool) |
|
set_item_hover_callbacks(rid: RID, idx: int, callback: Callable) |
|
set_item_icon(rid: RID, idx: int, icon: Texture2D) |
|
set_item_key_callback(rid: RID, idx: int, key_callback: Callable) |
|
set_item_radio_checkable(rid: RID, idx: int, checkable: bool) |
|
set_item_submenu(rid: RID, idx: int, submenu_rid: RID) |
|
set_item_tag(rid: RID, idx: int, tag: Variant) |
|
set_item_text(rid: RID, idx: int, text: String) |
|
set_item_tooltip(rid: RID, idx: int, tooltip: String) |
|
set_minimum_width(rid: RID, width: float) |
|
set_popup_close_callback(rid: RID, callback: Callable) |
|
set_popup_open_callback(rid: RID, callback: Callable) |
|
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 підтримує пункт меню hover callback.
Feature FEATURE_KEY_CALLBACK = 4
NativeMenu підтримує пункт меню акселератор/ключний дзвінок.
enum SystemMenus: 🔗
SystemMenus INVALID_MENU_ID = 0
Вказана спеціальна система ID.
SystemMenus MAIN_MENU_ID = 1
Глобальний ідентифікатор головного меню.
SystemMenus APPLICATION_MENU_ID = 2
Додаток (перше меню після меню «Додати» на macOS).
SystemMenus WINDOW_MENU_ID = 3
"Віндов" ідентифікатор меню (на macOS це меню включає стандартні елементи керування вікнами та список відкритих вікон).
SystemMenus HELP_MENU_ID = 4
В меню "Допомога" в меню "Допомога" в меню "Допомогти"".
SystemMenus DOCK_MENU_ID = 5
Dock icon right-click меню ID (на 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 до глобального меню index.
Повертає індекс вставленого пункту, не гарантується таким же, як index значення.
accelerator може бути визначений, який є клавіатурним ярликом, який можна натиснути, щоб запустити меню кнопка, навіть якщо це не відкрито. accelerator, як правило, поєднання KeyModifierMasks і Key, використовуючи бітум OR, такі як KEY_MASK_CTRL KEY_A (Ctrl + A).
Note: callback і key_callback Увімкнення необхідно приймати саме один параметр Variant, параметр, переданий до Callables, буде значення, передане до 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 до глобального меню з ID 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 до глобального меню парам позбутися.
Повертає індекс вставленого пункту, не гарантується таким же, як index значення.
accelerator може бути визначений, який є клавіатурним ярликом, який можна натиснути, щоб запустити меню кнопка, навіть якщо це не відкрито. accelerator, як правило, поєднання KeyModifierMasks і Key, використовуючи бітум OR, такі як KEY_MASK_CTRL КЛЮЧ_A (Ctrl + A).
Примітка: callback і key_callback Увімкнення необхідно приймати саме один параметр Variant, параметр, переданий до Callables, буде значення, передане до 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 з використанням бітумних OR, таких як KEY_MASK_CTRL Ключ_A (Ctrl + A).
Примітка: callback і key_callback Увімкнення необхідно приймати саме один параметр Variant, параметр, переданий до Callables, буде значення, передане до 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, як правило, поєднання KeyModifierMasks і Key, використовуючи бітум OR, такі як KEY_MASK_CTRL КЛЮЧ_A (Ctrl + A).
Примітка: За замовчуванням немає показання поточного стану елемента, його слід змінити вручну.
Примітка: callback і key_callback Увімкнення необхідно приймати саме один параметр Variant, параметр, переданий до Callables, буде значення, передане до tag.
Примітка: Цей метод реалізується на macOS і Windows.
Примітка: на Windows, параметра і 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 будуть проігноровані.