mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-11-04 01:34:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
 | 
						|
#include "testnative.h"
 | 
						|
 | 
						|
#ifdef TEST_NATIVE_COCOA
 | 
						|
 | 
						|
#include <AvailabilityMacros.h>
 | 
						|
#include <Cocoa/Cocoa.h>
 | 
						|
 | 
						|
#ifndef MAC_OS_X_VERSION_10_12
 | 
						|
static const unsigned int NSWindowStyleMaskTitled = NSTitledWindowMask;
 | 
						|
static const unsigned int NSWindowStyleMaskMiniaturizable = NSMiniaturizableWindowMask;
 | 
						|
static const unsigned int NSWindowStyleMaskClosable = NSClosableWindowMask;
 | 
						|
#endif
 | 
						|
 | 
						|
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 = (NSWindowStyleMaskTitled|NSWindowStyleMaskClosable|NSWindowStyleMaskMiniaturizable);
 | 
						|
 | 
						|
    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
 |