From 70b8d569190c7a54f0dc0e2cd11ead6577caa840 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Mon, 14 Aug 2023 00:44:08 +0200 Subject: Simple windowed application Create a simple windowed Cocoa application with an application menu and a "Quit" menu item. --- src/main.m | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main.m (limited to 'src') diff --git a/src/main.m b/src/main.m new file mode 100644 index 0000000..bc5e385 --- /dev/null +++ b/src/main.m @@ -0,0 +1,45 @@ +#include + +#import + +int main() { + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + + NSApplication *application = [NSApplication sharedApplication]; + [application setActivationPolicy:NSApplicationActivationPolicyRegular]; + + NSMenu *menubar = [[NSMenu alloc] init]; + NSMenuItem *application_menu_item = [[NSMenuItem alloc] init]; + [menubar addItem:application_menu_item]; + + NSMenu *application_menu = [[NSMenu alloc] init]; + NSMenuItem *quit_menu_item = [[NSMenuItem alloc] + initWithTitle:@"Quit" + action:@selector(terminate:) + keyEquivalent:@"q"]; + [application_menu addItem:quit_menu_item]; + [application_menu_item setSubmenu:application_menu]; + + [application setMainMenu:menubar]; + + NSWindow *window = [[NSWindow alloc] + initWithContentRect:NSMakeRect(0, 0, 400, 400) + styleMask:NSWindowStyleMaskTitled + backing:NSBackingStoreBuffered + defer:NO]; + + [window setTitle:@"Application"]; + [window cascadeTopLeftFromPoint:NSMakePoint(100, 100)]; + [window makeKeyAndOrderFront:nil]; + + [application run]; + + [window release]; + [quit_menu_item release]; + [application_menu release]; + [application_menu_item release]; + [menubar release]; + [pool drain]; + + return EXIT_SUCCESS; +} -- cgit v1.2.3