testnativecocoa.m (1159B)
1 2#include "testnative.h" 3 4#ifdef TEST_NATIVE_COCOA 5 6#include <Cocoa/Cocoa.h> 7 8static void *CreateWindowCocoa(int w, int h); 9static void DestroyWindowCocoa(void *window); 10 11NativeWindowFactory CocoaWindowFactory = { 12 "cocoa", 13 CreateWindowCocoa, 14 DestroyWindowCocoa 15}; 16 17static 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 42static 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