summaryrefslogtreecommitdiffstats
path: root/platform/macos/display_server_macos.h
diff options
context:
space:
mode:
Diffstat (limited to 'platform/macos/display_server_macos.h')
-rw-r--r--platform/macos/display_server_macos.h92
1 files changed, 8 insertions, 84 deletions
diff --git a/platform/macos/display_server_macos.h b/platform/macos/display_server_macos.h
index 7373a40237..5d38bf55ea 100644
--- a/platform/macos/display_server_macos.h
+++ b/platform/macos/display_server_macos.h
@@ -39,6 +39,8 @@
#include "gl_manager_macos_legacy.h"
#endif // GLES3_ENABLED
+#include "native_menu_macos.h"
+
#if defined(RD_ENABLED)
#include "servers/rendering/rendering_device.h"
@@ -142,19 +144,6 @@ private:
#endif
String rendering_driver;
- NSMenu *apple_menu = nullptr;
- NSMenu *window_menu = nullptr;
- NSMenu *help_menu = nullptr;
- NSMenu *dock_menu = nullptr;
- struct MenuData {
- Callable open;
- Callable close;
- NSMenu *menu = nullptr;
- bool is_open = false;
- };
- HashMap<String, MenuData> submenu;
- HashMap<NSMenu *, String> submenu_inv;
-
struct WarpEvent {
NSTimeInterval timestamp;
NSPoint delta;
@@ -168,6 +157,7 @@ private:
id tts = nullptr;
id menu_delegate = nullptr;
+ NativeMenuMacOS *native_menu = nullptr;
Point2i im_selection;
String im_text;
@@ -222,15 +212,10 @@ private:
Callable system_theme_changed;
- const NSMenu *_get_menu_root(const String &p_menu_root) const;
- NSMenu *_get_menu_root(const String &p_menu_root);
- bool _is_menu_opened(NSMenu *p_menu) const;
-
WindowID _create_window(WindowMode p_mode, VSyncMode p_vsync_mode, const Rect2i &p_rect);
void _update_window_style(WindowData p_wd);
void _update_displays_arrangement();
- Point2i _get_screens_origin() const;
Point2i _get_native_screen_position(int p_screen) const;
static void _displays_arrangement_changed(CGDirectDisplayID display_id, CGDisplayChangeSummaryFlags flags, void *user_info);
@@ -240,27 +225,24 @@ private:
void _process_key_events();
void _update_keyboard_layouts();
static void _keyboard_layout_changed(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef user_info);
- NSImage *_convert_to_nsimg(Ref<Image> &p_image) const;
static NSCursor *_cursor_from_selector(SEL p_selector, SEL p_fallback = nil);
- int _get_system_menu_start(const NSMenu *p_menu) const;
- int _get_system_menu_count(const NSMenu *p_menu) const;
- NSMenuItem *_menu_add_item(const String &p_menu_root, const String &p_label, Key p_accel, int p_index, int *r_out);
-
Error _file_dialog_with_options_show(const String &p_title, const String &p_current_directory, const String &p_root, const String &p_filename, bool p_show_hidden, FileDialogMode p_mode, const Vector<String> &p_filters, const TypedArray<Dictionary> &p_options, const Callable &p_callback, bool p_options_in_cb);
public:
- NSMenu *get_dock_menu() const;
void menu_callback(id p_sender);
- void menu_open(NSMenu *p_menu);
- void menu_close(NSMenu *p_menu);
void emit_system_theme_changed();
bool has_window(WindowID p_window) const;
WindowData &get_window(WindowID p_window);
+ NSImage *_convert_to_nsimg(Ref<Image> &p_image) const;
+ Point2i _get_screens_origin() const;
+
+ void set_menu_delegate(NSMenu *p_menu);
+
void send_event(NSEvent *p_event);
void send_window_event(const WindowData &p_wd, WindowEvent p_event);
void release_pressed_events();
@@ -293,63 +275,6 @@ public:
Callable _help_get_search_callback() const;
Callable _help_get_action_callback() const;
- virtual void global_menu_set_popup_callbacks(const String &p_menu_root, const Callable &p_open_callback = Callable(), const Callable &p_close_callback = Callable()) override;
-
- virtual int global_menu_add_submenu_item(const String &p_menu_root, const String &p_label, const String &p_submenu, int p_index = -1) override;
- virtual int global_menu_add_item(const String &p_menu_root, const String &p_label, const Callable &p_callback = Callable(), const Callable &p_key_callback = Callable(), const Variant &p_tag = Variant(), Key p_accel = Key::NONE, int p_index = -1) override;
- virtual int global_menu_add_check_item(const String &p_menu_root, const String &p_label, const Callable &p_callback = Callable(), const Callable &p_key_callback = Callable(), const Variant &p_tag = Variant(), Key p_accel = Key::NONE, int p_index = -1) override;
- virtual int global_menu_add_icon_item(const String &p_menu_root, const Ref<Texture2D> &p_icon, const String &p_label, const Callable &p_callback = Callable(), const Callable &p_key_callback = Callable(), const Variant &p_tag = Variant(), Key p_accel = Key::NONE, int p_index = -1) override;
- virtual int global_menu_add_icon_check_item(const String &p_menu_root, const Ref<Texture2D> &p_icon, const String &p_label, const Callable &p_callback = Callable(), const Callable &p_key_callback = Callable(), const Variant &p_tag = Variant(), Key p_accel = Key::NONE, int p_index = -1) override;
- virtual int global_menu_add_radio_check_item(const String &p_menu_root, const String &p_label, const Callable &p_callback = Callable(), const Callable &p_key_callback = Callable(), const Variant &p_tag = Variant(), Key p_accel = Key::NONE, int p_index = -1) override;
- virtual int global_menu_add_icon_radio_check_item(const String &p_menu_root, const Ref<Texture2D> &p_icon, const String &p_label, const Callable &p_callback = Callable(), const Callable &p_key_callback = Callable(), const Variant &p_tag = Variant(), Key p_accel = Key::NONE, int p_index = -1) override;
- virtual int global_menu_add_multistate_item(const String &p_menu_root, const String &p_label, int p_max_states, int p_default_state, const Callable &p_callback = Callable(), const Callable &p_key_callback = Callable(), const Variant &p_tag = Variant(), Key p_accel = Key::NONE, int p_index = -1) override;
- virtual int global_menu_add_separator(const String &p_menu_root, int p_index = -1) override;
-
- virtual int global_menu_get_item_index_from_text(const String &p_menu_root, const String &p_text) const override;
- virtual int global_menu_get_item_index_from_tag(const String &p_menu_root, const Variant &p_tag) const override;
-
- virtual bool global_menu_is_item_checked(const String &p_menu_root, int p_idx) const override;
- virtual bool global_menu_is_item_checkable(const String &p_menu_root, int p_idx) const override;
- virtual bool global_menu_is_item_radio_checkable(const String &p_menu_root, int p_idx) const override;
- virtual Callable global_menu_get_item_callback(const String &p_menu_root, int p_idx) const override;
- virtual Callable global_menu_get_item_key_callback(const String &p_menu_root, int p_idx) const override;
- virtual Variant global_menu_get_item_tag(const String &p_menu_root, int p_idx) const override;
- virtual String global_menu_get_item_text(const String &p_menu_root, int p_idx) const override;
- virtual String global_menu_get_item_submenu(const String &p_menu_root, int p_idx) const override;
- virtual Key global_menu_get_item_accelerator(const String &p_menu_root, int p_idx) const override;
- virtual bool global_menu_is_item_disabled(const String &p_menu_root, int p_idx) const override;
- virtual bool global_menu_is_item_hidden(const String &p_menu_root, int p_idx) const override;
- virtual String global_menu_get_item_tooltip(const String &p_menu_root, int p_idx) const override;
- virtual int global_menu_get_item_state(const String &p_menu_root, int p_idx) const override;
- virtual int global_menu_get_item_max_states(const String &p_menu_root, int p_idx) const override;
- virtual Ref<Texture2D> global_menu_get_item_icon(const String &p_menu_root, int p_idx) const override;
- virtual int global_menu_get_item_indentation_level(const String &p_menu_root, int p_idx) const override;
-
- virtual void global_menu_set_item_checked(const String &p_menu_root, int p_idx, bool p_checked) override;
- virtual void global_menu_set_item_checkable(const String &p_menu_root, int p_idx, bool p_checkable) override;
- virtual void global_menu_set_item_radio_checkable(const String &p_menu_root, int p_idx, bool p_checkable) override;
- virtual void global_menu_set_item_callback(const String &p_menu_root, int p_idx, const Callable &p_callback) override;
- virtual void global_menu_set_item_key_callback(const String &p_menu_root, int p_idx, const Callable &p_key_callback) override;
- virtual void global_menu_set_item_hover_callbacks(const String &p_menu_root, int p_idx, const Callable &p_callback) override;
- virtual void global_menu_set_item_tag(const String &p_menu_root, int p_idx, const Variant &p_tag) override;
- virtual void global_menu_set_item_text(const String &p_menu_root, int p_idx, const String &p_text) override;
- virtual void global_menu_set_item_submenu(const String &p_menu_root, int p_idx, const String &p_submenu) override;
- virtual void global_menu_set_item_accelerator(const String &p_menu_root, int p_idx, Key p_keycode) override;
- virtual void global_menu_set_item_disabled(const String &p_menu_root, int p_idx, bool p_disabled) override;
- virtual void global_menu_set_item_hidden(const String &p_menu_root, int p_idx, bool p_hidden) override;
- virtual void global_menu_set_item_tooltip(const String &p_menu_root, int p_idx, const String &p_tooltip) override;
- virtual void global_menu_set_item_state(const String &p_menu_root, int p_idx, int p_state) override;
- virtual void global_menu_set_item_max_states(const String &p_menu_root, int p_idx, int p_max_states) override;
- virtual void global_menu_set_item_icon(const String &p_menu_root, int p_idx, const Ref<Texture2D> &p_icon) override;
- virtual void global_menu_set_item_indentation_level(const String &p_menu_root, int p_idx, int p_level) override;
-
- virtual int global_menu_get_item_count(const String &p_menu_root) const override;
-
- virtual void global_menu_remove_item(const String &p_menu_root, int p_idx) override;
- virtual void global_menu_clear(const String &p_menu_root) override;
-
- virtual Dictionary global_menu_get_system_menu_roots() const override;
-
virtual bool tts_is_speaking() const override;
virtual bool tts_is_paused() const override;
virtual TypedArray<Dictionary> tts_get_voices() const override;
@@ -501,7 +426,6 @@ public:
virtual void force_process_and_drop_events() override;
virtual void release_rendering_thread() override;
- virtual void make_rendering_thread() override;
virtual void swap_buffers() override;
virtual void set_native_icon(const String &p_filename) override;