52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
	
	
|   | 
 | ||
|  | #include "testnative.h"
 | ||
|  | 
 | ||
|  | #ifdef TEST_NATIVE_COCOA
 | ||
|  | 
 | ||
|  | #include <Cocoa/Cocoa.h>
 | ||
|  | 
 | ||
|  | static void *CreateWindowCocoa(int w, int h);
 | ||
|  | static void DestroyWindowCocoa(void *window);
 | ||
|  | 
 | ||
|  | NativeWindowFactory CocoaWindowFactory = {
 | ||
|  |     "cocoa",
 | ||
|  |     CreateWindowCocoa,
 | ||
|  |     DestroyWindowCocoa
 | ||
|  | };
 | ||
|  | 
 | ||
|  | static void *CreateWindowCocoa(int w, int h)
 | ||
|  | {
 | ||
|  |     NSAutoreleasePool *pool;
 | ||
|  |     NSWindow *nswindow;
 | ||
|  |     NSRect rect;
 | ||
|  |     unsigned int style;
 | ||
|  | 
 | ||
|  |     pool = [[NSAutoreleasePool alloc] init];
 | ||
|  | 
 | ||
|  |     rect.origin.x = 0;
 | ||
|  |     rect.origin.y = 0;
 | ||
|  |     rect.size.width = w;
 | ||
|  |     rect.size.height = h;
 | ||
|  |     rect.origin.y = CGDisplayPixelsHigh(kCGDirectMainDisplay) - rect.origin.y - rect.size.height;
 | ||
|  | 
 | ||
|  |     style = (NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask);
 | ||
|  | 
 | ||
|  |     nswindow = [[NSWindow alloc] initWithContentRect:rect styleMask:style backing:NSBackingStoreBuffered defer:FALSE];
 | ||
|  |     [nswindow makeKeyAndOrderFront:nil];
 | ||
|  | 
 | ||
|  |     [pool release];
 | ||
|  | 
 | ||
|  |     return nswindow;
 | ||
|  | }
 | ||
|  | 
 | ||
|  | static void DestroyWindowCocoa(void *window)
 | ||
|  | {
 | ||
|  |     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 | ||
|  |     NSWindow *nswindow = (NSWindow *)window;
 | ||
|  | 
 | ||
|  |     [nswindow close];
 | ||
|  |     [pool release];
 | ||
|  | }
 | ||
|  | 
 | ||
|  | #endif
 |