summaryrefslogtreecommitdiff
path: root/src/main.mm
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2025-01-13 20:39:23 +0100
committerHannes Schulze <haschu0103@outlook.de>2025-01-13 20:39:23 +0100
commit4366e924e44d4294b9791533486f3ab81317ec71 (patch)
tree6daa5fe5ae8a6d348cf343052d0fbfb372e9a761 /src/main.mm
initial commit
Diffstat (limited to 'src/main.mm')
-rw-r--r--src/main.mm40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main.mm b/src/main.mm
new file mode 100644
index 0000000..a526e66
--- /dev/null
+++ b/src/main.mm
@@ -0,0 +1,40 @@
+#import <Cocoa/Cocoa.h>
+#import "view-controller.hh"
+
+int main(int argc, char** argv)
+{
+ NSApplication* app = [NSApplication sharedApplication];
+ [app setActivationPolicy:NSApplicationActivationPolicyRegular];
+
+ NSMenuItem *quitItem = [[NSMenuItem alloc] init];
+ [quitItem setTitle:@"Quit NES"];
+ [quitItem setKeyEquivalent:@"q"];
+ [quitItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand];
+ [quitItem setTarget:app];
+ [quitItem setAction:@selector(terminate:)];
+
+ NSMenu *menu = [[NSMenu alloc] init];
+ [menu addItem:quitItem];
+
+ NSMenuItem *item = [[NSMenuItem alloc] init];
+ [item setSubmenu:menu];
+
+ NSMenu *mainMenu = [[NSMenu alloc] init];
+ [mainMenu addItem:item];
+ [app setMainMenu:mainMenu];
+
+ NSWindow *window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0., 0., 640., 480.)
+ styleMask:(NSWindowStyleMaskTitled | NSWindowStyleMaskClosable |
+ NSWindowMiniaturizeButton | NSWindowStyleMaskResizable)
+ backing:NSBackingStoreBuffered
+ defer:false];
+ [window setTitle:@"NES"];
+ [window setContentViewController:[[ViewController alloc] init]];
+ [window setContentSize:NSMakeSize(640., 480.)];
+ [window makeKeyAndOrderFront:nil];
+
+ [app activateIgnoringOtherApps:YES];
+ [app run];
+
+ return 0;
+} \ No newline at end of file