aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.m
diff options
context:
space:
mode:
authorTeddy Wing2023-08-14 00:44:08 +0200
committerTeddy Wing2023-08-14 00:53:08 +0200
commit70b8d569190c7a54f0dc0e2cd11ead6577caa840 (patch)
tree061a06dadab6513d3a6e32cbca017653b4683ae6 /src/main.m
downloadBase-Windowed-Application-70b8d569190c7a54f0dc0e2cd11ead6577caa840.tar.bz2
Simple windowed application
Create a simple windowed Cocoa application with an application menu and a "Quit" menu item.
Diffstat (limited to 'src/main.m')
-rw-r--r--src/main.m45
1 files changed, 45 insertions, 0 deletions
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 <stdlib.h>
+
+#import <Cocoa/Cocoa.h>
+
+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;
+}