You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-30 18:30:54 +00:00
[macOS] Add option for renaming system menus.
This commit is contained in:
@@ -89,6 +89,9 @@ public:
|
||||
|
||||
NSMenu *get_native_menu_handle(const RID &p_rid);
|
||||
|
||||
virtual String get_system_menu_text(SystemMenus p_menu_id) const override;
|
||||
virtual void set_system_menu_text(SystemMenus p_menu_id, const String &p_name) override;
|
||||
|
||||
virtual Size2 get_size(const RID &p_rid) const override;
|
||||
virtual void popup(const RID &p_rid, const Vector2i &p_position) override;
|
||||
|
||||
|
||||
@@ -238,6 +238,47 @@ RID NativeMenuMacOS::get_system_menu(SystemMenus p_menu_id) const {
|
||||
}
|
||||
}
|
||||
|
||||
String NativeMenuMacOS::get_system_menu_text(SystemMenus p_menu_id) const {
|
||||
NSMenu *menu = nullptr;
|
||||
switch (p_menu_id) {
|
||||
case WINDOW_MENU_ID: {
|
||||
menu = window_menu_ns;
|
||||
} break;
|
||||
case HELP_MENU_ID: {
|
||||
menu = help_menu_ns;
|
||||
} break;
|
||||
default:
|
||||
return String();
|
||||
}
|
||||
if (!menu) {
|
||||
return String();
|
||||
}
|
||||
return String::utf8([[menu title] UTF8String]);
|
||||
}
|
||||
|
||||
void NativeMenuMacOS::set_system_menu_text(SystemMenus p_menu_id, const String &p_name) {
|
||||
NSMenu *menu = nullptr;
|
||||
switch (p_menu_id) {
|
||||
case WINDOW_MENU_ID: {
|
||||
menu = window_menu_ns;
|
||||
} break;
|
||||
case HELP_MENU_ID: {
|
||||
menu = help_menu_ns;
|
||||
} break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
if (!menu || !main_menu_ns) {
|
||||
return;
|
||||
}
|
||||
[menu setTitle:[NSString stringWithUTF8String:p_name.utf8().get_data()]];
|
||||
int idx = [main_menu_ns indexOfItemWithSubmenu:(NSMenu *)menu];
|
||||
NSMenuItem *menu_item = [main_menu_ns itemAtIndex:idx];
|
||||
if (menu_item) {
|
||||
[menu_item setTitle:[NSString stringWithUTF8String:p_name.utf8().get_data()]];
|
||||
}
|
||||
}
|
||||
|
||||
RID NativeMenuMacOS::create_menu() {
|
||||
MenuData *md = memnew(MenuData);
|
||||
md->menu = [[NSMenu alloc] initWithTitle:@""];
|
||||
|
||||
Reference in New Issue
Block a user