Home | History | Annotate | Download | only in test
      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