mirror of
https://github.com/XProger/OpenLara.git
synced 2025-02-24 07:22:58 +01:00
Add proper main menu for OS X
The OS X code did not create a main menu. While it arguably doesn’t really need one, it’s considered impolite to forgo it on this platform, especially since all standard key commands interact with the menu bar (they quickly highlight the menu item that has the actual user-selectable command to provide some feedback). With this menu added, the Command+Q shortcut to quit the application now also works.
This commit is contained in:
parent
4d1738dd0a
commit
a4c16b8d95
@ -277,6 +277,44 @@ int main() {
|
||||
view.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
|
||||
mainWindow.contentView = view;
|
||||
[view.openGLContext makeCurrentContext];
|
||||
|
||||
// Init main menu
|
||||
NSMenu *mainMenu = [[NSMenu alloc] initWithTitle:@""];
|
||||
NSMenuItem *appMenu = [[NSMenuItem alloc] initWithTitle:@"OpenLara" action:nil keyEquivalent:@""];
|
||||
[mainMenu addItem:appMenu];
|
||||
appMenu.submenu = [[NSMenu alloc] initWithTitle:@"OpenLara"];
|
||||
|
||||
// - app menu (no preferences)
|
||||
[appMenu.submenu addItemWithTitle:@"About OpenLara" action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
|
||||
|
||||
[appMenu.submenu addItem:[NSMenuItem separatorItem]];
|
||||
|
||||
NSMenuItem *servicesItem = [[NSMenuItem alloc] initWithTitle:@"Services" action:nil keyEquivalent:@""];
|
||||
servicesItem.submenu = [[NSMenu alloc] initWithTitle:@"Services"];
|
||||
[appMenu.submenu addItem:servicesItem];
|
||||
|
||||
[appMenu.submenu addItem:[NSMenuItem separatorItem]];
|
||||
|
||||
[appMenu.submenu addItemWithTitle:@"Hide OpenLara" action:@selector(hide:) keyEquivalent:@"h"];
|
||||
NSMenuItem *hideOthersItem = [appMenu.submenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
|
||||
hideOthersItem.keyEquivalentModifierMask = NSAlternateKeyMask | NSCommandKeyMask;
|
||||
[appMenu.submenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
|
||||
|
||||
[appMenu.submenu addItem:[NSMenuItem separatorItem]];
|
||||
|
||||
[appMenu.submenu addItemWithTitle:@"Quit OpenLara" action:@selector(terminate:) keyEquivalent:@"q"];
|
||||
|
||||
// - window menu
|
||||
NSMenuItem *windowMenu= [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
|
||||
[mainMenu addItem:windowMenu];
|
||||
windowMenu.submenu = [[NSMenu alloc] initWithTitle:@"Window"];
|
||||
|
||||
[windowMenu.submenu addItemWithTitle:@"Minimize" action:@selector(miniaturize:) keyEquivalent:@"m"];
|
||||
[windowMenu.submenu addItemWithTitle:@"Zoom" action:@selector(zoom:) keyEquivalent:@""];
|
||||
|
||||
application.mainMenu = mainMenu;
|
||||
application.windowsMenu = windowMenu.submenu;
|
||||
application.servicesMenu = servicesItem.submenu;
|
||||
|
||||
// get path to game content
|
||||
NSBundle *bundle = [NSBundle mainBundle];
|
||||
|
Loading…
x
Reference in New Issue
Block a user