From: Tim Clem tclem@codeweavers.com
--- dlls/winemac.drv/cocoa_app.m | 129 +++++++++++++++++------------------ 1 file changed, 64 insertions(+), 65 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m index 1a8991b60f5..ee0add686a5 100644 --- a/dlls/winemac.drv/cocoa_app.m +++ b/dlls/winemac.drv/cocoa_app.m @@ -241,16 +241,73 @@ - (void) dealloc [super dealloc]; }
+ - (void) setDefaultMenus + { + mainMenu = [[[NSMenu alloc] init] autorelease]; + + // Application menu + submenu = [[[NSMenu alloc] initWithTitle:WineLocalizedString(STRING_MENU_WINE)] autorelease]; + bundleName = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleNameKey]; + + if ([bundleName length]) + title = [NSString stringWithFormat:WineLocalizedString(STRING_MENU_ITEM_HIDE_APPNAME), bundleName]; + else + title = WineLocalizedString(STRING_MENU_ITEM_HIDE); + item = [submenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@""]; + + item = [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_HIDE_OTHERS) + action:@selector(hideOtherApplications:) + keyEquivalent:@"h"]; + [item setKeyEquivalentModifierMask:NSEventModifierFlagCommand | NSEventModifierFlagOption]; + + item = [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_SHOW_ALL) + action:@selector(unhideAllApplications:) + keyEquivalent:@""]; + + [submenu addItem:[NSMenuItem separatorItem]]; + + if ([bundleName length]) + title = [NSString stringWithFormat:WineLocalizedString(STRING_MENU_ITEM_QUIT_APPNAME), bundleName]; + else + title = WineLocalizedString(STRING_MENU_ITEM_QUIT); + item = [submenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"]; + [item setKeyEquivalentModifierMask:NSEventModifierFlagCommand | NSEventModifierFlagOption]; + item = [[[NSMenuItem alloc] init] autorelease]; + [item setTitle:WineLocalizedString(STRING_MENU_WINE)]; + [item setSubmenu:submenu]; + [mainMenu addItem:item]; + + // Window menu + submenu = [[[NSMenu alloc] initWithTitle:WineLocalizedString(STRING_MENU_WINDOW)] autorelease]; + [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_MINIMIZE) + action:@selector(performMiniaturize:) + keyEquivalent:@""]; + [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_ZOOM) + action:@selector(performZoom:) + keyEquivalent:@""]; + item = [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_ENTER_FULL_SCREEN) + action:@selector(toggleFullScreen:) + keyEquivalent:@"f"]; + [item setKeyEquivalentModifierMask:NSEventModifierFlagCommand | + NSEventModifierFlagOption | + NSEventModifierFlagControl]; + [submenu addItem:[NSMenuItem separatorItem]]; + [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_BRING_ALL_TO_FRONT) + action:@selector(arrangeInFront:) + keyEquivalent:@""]; + item = [[[NSMenuItem alloc] init] autorelease]; + [item setTitle:WineLocalizedString(STRING_MENU_WINDOW)]; + [item setSubmenu:submenu]; + [mainMenu addItem:item]; + + [NSApp setMainMenu:mainMenu]; + [NSApp setWindowsMenu:submenu]; + } + - (void) transformProcessToForeground:(BOOL)activateIfTransformed { if ([NSApp activationPolicy] != NSApplicationActivationPolicyRegular) { - NSMenu* mainMenu; - NSMenu* submenu; - NSString* bundleName; - NSString* title; - NSMenuItem* item; - [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
if (activateIfTransformed) @@ -264,65 +321,7 @@ - (void) transformProcessToForeground:(BOOL)activateIfTransformed } #endif
- mainMenu = [[[NSMenu alloc] init] autorelease]; - - // Application menu - submenu = [[[NSMenu alloc] initWithTitle:WineLocalizedString(STRING_MENU_WINE)] autorelease]; - bundleName = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleNameKey]; - - if ([bundleName length]) - title = [NSString stringWithFormat:WineLocalizedString(STRING_MENU_ITEM_HIDE_APPNAME), bundleName]; - else - title = WineLocalizedString(STRING_MENU_ITEM_HIDE); - item = [submenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@""]; - - item = [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_HIDE_OTHERS) - action:@selector(hideOtherApplications:) - keyEquivalent:@"h"]; - [item setKeyEquivalentModifierMask:NSEventModifierFlagCommand | NSEventModifierFlagOption]; - - item = [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_SHOW_ALL) - action:@selector(unhideAllApplications:) - keyEquivalent:@""]; - - [submenu addItem:[NSMenuItem separatorItem]]; - - if ([bundleName length]) - title = [NSString stringWithFormat:WineLocalizedString(STRING_MENU_ITEM_QUIT_APPNAME), bundleName]; - else - title = WineLocalizedString(STRING_MENU_ITEM_QUIT); - item = [submenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"]; - [item setKeyEquivalentModifierMask:NSEventModifierFlagCommand | NSEventModifierFlagOption]; - item = [[[NSMenuItem alloc] init] autorelease]; - [item setTitle:WineLocalizedString(STRING_MENU_WINE)]; - [item setSubmenu:submenu]; - [mainMenu addItem:item]; - - // Window menu - submenu = [[[NSMenu alloc] initWithTitle:WineLocalizedString(STRING_MENU_WINDOW)] autorelease]; - [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_MINIMIZE) - action:@selector(performMiniaturize:) - keyEquivalent:@""]; - [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_ZOOM) - action:@selector(performZoom:) - keyEquivalent:@""]; - item = [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_ENTER_FULL_SCREEN) - action:@selector(toggleFullScreen:) - keyEquivalent:@"f"]; - [item setKeyEquivalentModifierMask:NSEventModifierFlagCommand | - NSEventModifierFlagOption | - NSEventModifierFlagControl]; - [submenu addItem:[NSMenuItem separatorItem]]; - [submenu addItemWithTitle:WineLocalizedString(STRING_MENU_ITEM_BRING_ALL_TO_FRONT) - action:@selector(arrangeInFront:) - keyEquivalent:@""]; - item = [[[NSMenuItem alloc] init] autorelease]; - [item setTitle:WineLocalizedString(STRING_MENU_WINDOW)]; - [item setSubmenu:submenu]; - [mainMenu addItem:item]; - - [NSApp setMainMenu:mainMenu]; - [NSApp setWindowsMenu:submenu]; + [self setDefaultMenus];
[NSApp setApplicationIconImage:self.applicationIcon]; }