summaryrefslogtreecommitdiffstats
path: root/platform/macos
diff options
context:
space:
mode:
Diffstat (limited to 'platform/macos')
-rw-r--r--platform/macos/native_menu_macos.h1
-rw-r--r--platform/macos/native_menu_macos.mm10
2 files changed, 11 insertions, 0 deletions
diff --git a/platform/macos/native_menu_macos.h b/platform/macos/native_menu_macos.h
index e0e15df832..c00a510fd5 100644
--- a/platform/macos/native_menu_macos.h
+++ b/platform/macos/native_menu_macos.h
@@ -88,6 +88,7 @@ public:
virtual Size2 get_size(const RID &p_rid) const override;
virtual void popup(const RID &p_rid, const Vector2i &p_position) override;
+ virtual void set_interface_direction(const RID &p_rid, bool p_is_rtl) override;
virtual void set_popup_open_callback(const RID &p_rid, const Callable &p_callback) override;
virtual Callable get_popup_open_callback(const RID &p_rid) const override;
virtual void set_popup_close_callback(const RID &p_rid, const Callable &p_callback) override;
diff --git a/platform/macos/native_menu_macos.mm b/platform/macos/native_menu_macos.mm
index cb88f94a28..f00527767c 100644
--- a/platform/macos/native_menu_macos.mm
+++ b/platform/macos/native_menu_macos.mm
@@ -181,6 +181,9 @@ bool NativeMenuMacOS::has_feature(Feature p_feature) const {
switch (p_feature) {
case FEATURE_GLOBAL_MENU:
case FEATURE_POPUP_MENU:
+ case FEATURE_OPEN_CLOSE_CALLBACK:
+ case FEATURE_HOVER_CALLBACK:
+ case FEATURE_KEY_CALLBACK:
return true;
default:
return false;
@@ -264,6 +267,13 @@ void NativeMenuMacOS::popup(const RID &p_rid, const Vector2i &p_position) {
}
}
+void NativeMenuMacOS::set_interface_direction(const RID &p_rid, bool p_is_rtl) {
+ MenuData *md = menus.get_or_null(p_rid);
+ ERR_FAIL_NULL(md);
+
+ md->menu.userInterfaceLayoutDirection = p_is_rtl ? NSUserInterfaceLayoutDirectionLeftToRight : NSUserInterfaceLayoutDirectionRightToLeft;
+}
+
void NativeMenuMacOS::set_popup_open_callback(const RID &p_rid, const Callable &p_callback) {
MenuData *md = menus.get_or_null(p_rid);
ERR_FAIL_NULL(md);