Examples: Apple: add native menu with Quit entry. Add missing title text. Standardize code.

This commit is contained in:
ocornut 2026-11-04 18:14:26 +01:00
parent 9d0b72573a
commit b2298afa71
5 changed files with 45 additions and 24 deletions

1
.gitignore vendored
View File

@ -66,6 +66,7 @@ cmake-build-*
## Unix executables from our example Makefiles
examples/example_apple_metal/example_apple_metal
examples/example_apple_metal4/example_apple_metal4
examples/example_apple_opengl2/example_apple_opengl2
examples/example_apple_opengl3/example_apple_opengl3
examples/example_glfw_metal/example_glfw_metal

View File

@ -273,6 +273,20 @@
@implementation AppDelegate
-(void)applicationDidFinishLaunching:(NSNotification *)notification
{
NSMenu* mainMenuBar = [[NSMenu alloc] init];
NSMenu* appMenu = [[NSMenu alloc] initWithTitle:@"Dear ImGui OSX+Metal Example"];
NSMenuItem* quitMenuItem = [appMenu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"];
[quitMenuItem setTarget:NSApp];
[quitMenuItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand];
NSMenuItem* appMenuItem = [[NSMenuItem alloc] init];
[appMenuItem setSubmenu:appMenu];
[mainMenuBar addItem:appMenuItem];
[NSApp setMainMenu:mainMenuBar];
}
-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
{
return YES;
@ -287,6 +301,7 @@
styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskResizable | NSWindowStyleMaskMiniaturizable
backing:NSBackingStoreBuffered
defer:NO];
self.window.title = @"Dear ImGui OSX+Metal Example";
self.window.contentViewController = rootViewController;
[self.window center];
[self.window makeKeyAndOrderFront:self];

View File

@ -289,6 +289,20 @@
@implementation AppDelegate
-(void)applicationDidFinishLaunching:(NSNotification *)notification
{
NSMenu* mainMenuBar = [[NSMenu alloc] init];
NSMenu* appMenu = [[NSMenu alloc] initWithTitle:@"Dear ImGui OSX+Metal4 Example"];
NSMenuItem* quitMenuItem = [appMenu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"];
[quitMenuItem setTarget:NSApp];
[quitMenuItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand];
NSMenuItem* appMenuItem = [[NSMenuItem alloc] init];
[appMenuItem setSubmenu:appMenu];
[mainMenuBar addItem:appMenuItem];
[NSApp setMainMenu:mainMenuBar];
}
-(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
{
return YES;
@ -303,6 +317,7 @@
styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskResizable | NSWindowStyleMaskMiniaturizable
backing:NSBackingStoreBuffered
defer:NO];
self.window.title = @"Dear ImGui OSX+Metal4 Example";
self.window.contentViewController = rootViewController;
[self.window center];
[self.window makeKeyAndOrderFront:self];

View File

@ -191,19 +191,14 @@
-(void)setupMenu
{
NSMenu* mainMenuBar = [[NSMenu alloc] init];
NSMenu* appMenu;
NSMenuItem* menuItem;
NSMenu* appMenu = [[NSMenu alloc] initWithTitle:@"Dear ImGui OSX+OpenGL2 Example"];
NSMenuItem* quitMenuItem = [appMenu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"];
[quitMenuItem setTarget:NSApp];
[quitMenuItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand];
appMenu = [[NSMenu alloc] initWithTitle:@"Dear ImGui OSX+OpenGL2 Example"];
menuItem = [appMenu addItemWithTitle:@"Quit Dear ImGui OSX+OpenGL2 Example" action:@selector(terminate:) keyEquivalent:@"q"];
[menuItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand];
menuItem = [[NSMenuItem alloc] init];
[menuItem setSubmenu:appMenu];
[mainMenuBar addItem:menuItem];
appMenu = nil;
NSMenuItem* appMenuItem = [[NSMenuItem alloc] init];
[appMenuItem setSubmenu:appMenu];
[mainMenuBar addItem:appMenuItem];
[NSApp setMainMenu:mainMenuBar];
}

View File

@ -191,19 +191,14 @@
-(void)setupMenu
{
NSMenu* mainMenuBar = [[NSMenu alloc] init];
NSMenu* appMenu;
NSMenuItem* menuItem;
NSMenu* appMenu = [[NSMenu alloc] initWithTitle:@"Dear ImGui OSX+OpenGL3 Example"];
NSMenuItem* quitMenuItem = [appMenu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"];
[quitMenuItem setTarget:NSApp];
[quitMenuItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand];
appMenu = [[NSMenu alloc] initWithTitle:@"Dear ImGui OSX+OpenGL3 Example"];
menuItem = [appMenu addItemWithTitle:@"Quit Dear ImGui OSX+OpenGL3 Example" action:@selector(terminate:) keyEquivalent:@"q"];
[menuItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand];
menuItem = [[NSMenuItem alloc] init];
[menuItem setSubmenu:appMenu];
[mainMenuBar addItem:menuItem];
appMenu = nil;
NSMenuItem* appMenuItem = [[NSMenuItem alloc] init];
[appMenuItem setSubmenu:appMenu];
[mainMenuBar addItem:appMenuItem];
[NSApp setMainMenu:mainMenuBar];
}