1 2 #include "testnative.h" 3 4 #ifdef TEST_NATIVE_COCOA 5 6 #include <Cocoa/Cocoa.h> 7 8 static void *CreateWindowCocoa(int w, int h); 9 static void DestroyWindowCocoa(void *window); 10 11 NativeWindowFactory CocoaWindowFactory = { 12 "cocoa", 13 CreateWindowCocoa, 14 DestroyWindowCocoa 15 }; 16 17 static void *CreateWindowCocoa(int w, int h) 18 { 19 NSAutoreleasePool *pool; 20 NSWindow *nswindow; 21 NSRect rect; 22 unsigned int style; 23 24 pool = [[NSAutoreleasePool alloc] init]; 25 26 rect.origin.x = 0; 27 rect.origin.y = 0; 28 rect.size.width = w; 29 rect.size.height = h; 30 rect.origin.y = CGDisplayPixelsHigh(kCGDirectMainDisplay) - rect.origin.y - rect.size.height; 31 32 style = (NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask); 33 34 nswindow = [[NSWindow alloc] initWithContentRect:rect styleMask:style backing:NSBackingStoreBuffered defer:FALSE]; 35 [nswindow makeKeyAndOrderFront:nil]; 36 37 [pool release]; 38 39 return nswindow; 40 } 41 42 static void DestroyWindowCocoa(void *window) 43 { 44 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 45 NSWindow *nswindow = (NSWindow *)window; 46 47 [nswindow close]; 48 [pool release]; 49 } 50 51 #endif 52