aboutsummaryrefslogtreecommitdiff
path: root/src/osx/gui/Menu.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/osx/gui/Menu.mm')
-rw-r--r--src/osx/gui/Menu.mm12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/osx/gui/Menu.mm b/src/osx/gui/Menu.mm
index 69e45ad3..53e69520 100644
--- a/src/osx/gui/Menu.mm
+++ b/src/osx/gui/Menu.mm
@@ -1,5 +1,7 @@
+#include "cru/osx/gui/Menu.hpp"
#import "MenuPrivate.h"
+#include "KeyboardPrivate.h"
#include "cru/common/platform/osx/Convert.hpp"
#import <AppKit/NSApplication.h>
@@ -72,6 +74,16 @@ IMenu* OsxMenuItem::GetParentMenu() { return p_->parent_menu_; }
IMenu* OsxMenuItem::GetSubmenu() { return p_->sub_menu_; }
+void OsxMenuItem::SetKeyboardShortcut(KeyCode key, KeyModifier modifiers) {
+ [p_->menu_item_ setKeyEquivalent:ConvertKeyCodeToKeyEquivalent(key)];
+ [p_->menu_item_ setKeyEquivalentModifierMask:ConvertKeyModifier(modifiers)];
+}
+
+void OsxMenuItem::DeleteKeyboardShortcut() {
+ [p_->menu_item_ setKeyEquivalent:@""];
+ [p_->menu_item_ setKeyEquivalentModifierMask:0];
+}
+
void OsxMenuItem::SetOnClickHandler(std::function<void()> handler) {
p_->on_click_handler_ = std::move(handler);
}