mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-10-28 14:56:06 +03: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
 | 
