diff options
| author | Joel de Vahl <joel@stalverk80.se> | 2008-10-21 15:59:32 +0000 |
|---|---|---|
| committer | Joel de Vahl <joel@stalverk80.se> | 2008-10-21 15:59:32 +0000 |
| commit | 8edfa800280d49c51c56e044d75b0858c20ed0a2 (patch) | |
| tree | 1dca72b1783bcdc4f6ae44aca3c722d29014437c /src/osxlaunch/main.m | |
| parent | 39b0b6cbf85d8f1b4fe97ff9ad6939905a5bfc22 (diff) | |
| download | zcatch-8edfa800280d49c51c56e044d75b0858c20ed0a2.tar.gz zcatch-8edfa800280d49c51c56e044d75b0858c20ed0a2.zip | |
Use SDL on OSX
Diffstat (limited to 'src/osxlaunch/main.m')
| -rw-r--r-- | src/osxlaunch/main.m | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/src/osxlaunch/main.m b/src/osxlaunch/main.m deleted file mode 100644 index a2c5dba5..00000000 --- a/src/osxlaunch/main.m +++ /dev/null @@ -1,101 +0,0 @@ -#import <Cocoa/Cocoa.h> -#include <Carbon/Carbon.h> - -@interface ServerView : NSTextView -{ - NSTask *task; - NSFileHandle *file; -} -- (void)listenTo: (NSTask*)t; -@end - -@implementation ServerView -- (void)listenTo: (NSTask*)t; -{ - NSPipe *pipe; - task = t; - pipe = [NSPipe pipe]; - [task setStandardOutput: pipe]; - file = [pipe fileHandleForReading]; - - [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(outputNotification:) name: NSFileHandleReadCompletionNotification object: file]; - - [file readInBackgroundAndNotify]; -} - -- (void) outputNotification: (NSNotification *) notification -{ - NSData *data = [[[notification userInfo] objectForKey: NSFileHandleNotificationDataItem] retain]; - NSString *string = [[NSString alloc] initWithData: data encoding: NSASCIIStringEncoding]; - - NSRange end = NSMakeRange([[self string] length], 0); - - [self replaceCharactersInRange: end withString: string]; - end.location += [string length]; - [self scrollRangeToVisible: end]; - - [string release]; - [file readInBackgroundAndNotify]; -} - --(void)windowWillClose:(NSNotification *)notification -{ - [task terminate]; - [NSApp terminate:self]; -} -@end - -int main(int argc, char **argv) -{ - UInt32 mod = GetCurrentKeyModifiers(); - - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSApp = [NSApplication sharedApplication]; - NSBundle* mainBundle = [NSBundle mainBundle]; - NSTask *task; - task = [[NSTask alloc] init]; - [task setCurrentDirectoryPath: [mainBundle resourcePath]]; - - if(mod & optionKey) - { - // run server - NSWindow *window; - ServerView *view; - NSRect graphicsRect; - - graphicsRect = NSMakeRect(100.0, 1000.0, 600.0, 400.0); - - window = [[NSWindow alloc] - initWithContentRect: graphicsRect - styleMask: NSTitledWindowMask - | NSClosableWindowMask - | NSMiniaturizableWindowMask - backing: NSBackingStoreBuffered - defer: NO]; - - [window setTitle: @"Teewars Server"]; - - view = [[[ServerView alloc] initWithFrame: graphicsRect] autorelease]; - [view setEditable: NO]; - - [window setContentView: view]; - [window setDelegate: view]; - [window makeKeyAndOrderFront: nil]; - - [view listenTo: task]; - [task setLaunchPath: [mainBundle pathForAuxiliaryExecutable: @"teeworlds_srv"]]; - [task launch]; - [NSApp run]; - [task terminate]; - } - else - { - // run client - [task setLaunchPath: [mainBundle pathForAuxiliaryExecutable: @"teeworlds"]]; - [task launch]; - } - - [NSApp release]; - [pool release]; - return(EXIT_SUCCESS); -} |