79 lines
2.0 KiB
Plaintext
79 lines
2.0 KiB
Plaintext
@interface gsosx_ApplicationDelegate : NSObject <NSApplicationDelegate, NSWindowDelegate> @end
|
|
|
|
@implementation gsosx_ApplicationDelegate : NSObject
|
|
- (void)
|
|
applicationDidFinishLaunching: (NSNotification *)notification
|
|
{
|
|
[NSApp stop: nil];
|
|
NSAutoreleasePool* Pool = [[NSAutoreleasePool alloc] init];
|
|
|
|
[Pool drain];
|
|
}
|
|
|
|
- (NSApplicationTerminateReply)
|
|
applicationShouldTerminate: (NSApplication*) sender
|
|
{
|
|
return NO;
|
|
}
|
|
|
|
- (void)
|
|
dealloc
|
|
{
|
|
[super dealloc];
|
|
}
|
|
@end
|
|
|
|
@interface gsosx_WindowDelegate: NSObject<NSWindowDelegate> @end
|
|
@implementation gsosx_WindowDelegate : NSObject
|
|
- (BOOL)
|
|
windowShouldClose: (id)sender
|
|
{
|
|
// TODO(Peter): Stop Application Running?
|
|
NSLog(@"Close button pressed");
|
|
return NO;
|
|
}
|
|
|
|
- (void)
|
|
windowDidBecomeKey: (NSNotification*)notification
|
|
{
|
|
// TODO: ???
|
|
}
|
|
|
|
- (void)
|
|
windowDisResignKey: (NSNotification*)notification
|
|
{
|
|
// TODO: ???
|
|
}
|
|
@end
|
|
|
|
static NSWindow*
|
|
gsosx_CreateWindow(NSApplication* App, int Width, int Height, id Title)
|
|
{
|
|
int WindowStyleMask = NSWindowStyleMaskClosable;
|
|
NSRect WindowRect = NSMakeRect(0, 0, Width, Height);
|
|
|
|
NSWindow* Window = [[NSWindow alloc] initWithContentRect: WindowRect styleMask: WindowStyleMask backing: NSBackingStoreBuffered defer: YES];
|
|
Window.styleMask = NSWindowStyleMaskResizable | NSWindowStyleMaskTitled | NSWindowStyleMaskClosable;
|
|
|
|
gsosx_WindowDelegate* WindowDelegate = [[gsosx_WindowDelegate alloc] init];
|
|
|
|
[Window setOpaque: YES];
|
|
[Window setDelegate: WindowDelegate];
|
|
[Window setTitle: Title];
|
|
|
|
NSMenu* MenuBar = [NSMenu alloc];
|
|
NSMenuItem* AppMenuItem = [NSMenuItem alloc];
|
|
[MenuBar addItem: AppMenuItem];
|
|
[App setMainMenu: MenuBar];
|
|
|
|
NSMenu* AppMenu = [NSMenu alloc];
|
|
id QuitTitle = [@"Quit " gs_stringByAppendinggs_string: Title];
|
|
id QuitMenuItem = [[NSMenuItem alloc] initWithTitle: QuitTitle action: @selector(terminate:) keyEquivalent: @"q"];
|
|
[AppMenu addItem: QuitMenuItem];
|
|
[AppMenuItem setSubmenu: AppMenu];
|
|
|
|
[App activateIgnoringOtherApps: YES];
|
|
|
|
return Window;
|
|
}
|