diff options
author | Michael Lutz <michi@icosahedron.de> | 2020-04-10 23:47:01 +0200 |
---|---|---|
committer | Michael Lutz <michi@icosahedron.de> | 2020-04-12 18:44:43 +0200 |
commit | 9dd8b3d430cc4d5f385b97e03e02fbc9865d069c (patch) | |
tree | c182d40dd56733ff55f81e6fa26e1711cea8942f /src/video/cocoa/cocoa_v.mm | |
parent | 0e5be3887cd6d77a4f6ab1e8a1b23701de7f12e7 (diff) | |
download | openttd-9dd8b3d430cc4d5f385b97e03e02fbc9865d069c.tar.xz |
Remove: [OSX] Stuff that is pre-10.7 from the Cocoa/Quartz video driver.
Diffstat (limited to 'src/video/cocoa/cocoa_v.mm')
-rw-r--r-- | src/video/cocoa/cocoa_v.mm | 167 |
1 files changed, 31 insertions, 136 deletions
diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 678fc75be..13a9cc9c4 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -45,10 +45,7 @@ */ -@interface OTTDMain : NSObject -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 - <NSApplicationDelegate> -#endif +@interface OTTDMain : NSObject <NSApplicationDelegate> @end @@ -159,7 +156,9 @@ static void setApplicationMenu() /* Tell the application object that this is now the application menu. * This interesting Objective-C construct is used because not all SDK * versions define this method publicly. */ - [ NSApp performSelector:@selector(setAppleMenu:) withObject:appleMenu ]; + if ([ NSApp respondsToSelector:@selector(setAppleMenu:) ]) { + [ NSApp performSelector:@selector(setAppleMenu:) withObject:appleMenu ]; + } /* Finally give up our references to the objects */ [ appleMenu release ]; @@ -204,13 +203,9 @@ static void setupApplication() /* Ensure the application object is initialised */ [ NSApplication sharedApplication ]; -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3 /* Tell the dock about us */ - if (MacOSVersionIsAtLeast(10, 3, 0)) { - OSStatus returnCode = TransformProcessType(&psn, kProcessTransformToForegroundApplication); - if (returnCode != 0) DEBUG(driver, 0, "Could not change to foreground application. Error %d", (int)returnCode); - } -#endif + OSStatus returnCode = TransformProcessType(&psn, kProcessTransformToForegroundApplication); + if (returnCode != 0) DEBUG(driver, 0, "Could not change to foreground application. Error %d", (int)returnCode); /* Disable the system-wide tab feature as we only have one window. */ if ([ NSWindow respondsToSelector:@selector(setAllowsAutomaticWindowTabbing:) ]) { @@ -243,57 +238,27 @@ static bool ModeSorter(const OTTD_Point &p1, const OTTD_Point &p2) static void QZ_GetDisplayModeInfo(CFArrayRef modes, CFIndex i, int &bpp, uint16 &width, uint16 &height) { - bpp = 0; - width = 0; - height = 0; - -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6) - if (MacOSVersionIsAtLeast(10, 6, 0)) { - CGDisplayModeRef mode = (CGDisplayModeRef)CFArrayGetValueAtIndex(modes, i); + CGDisplayModeRef mode = (CGDisplayModeRef)CFArrayGetValueAtIndex(modes, i); - width = (uint16)CGDisplayModeGetWidth(mode); - height = (uint16)CGDisplayModeGetHeight(mode); + width = (uint16)CGDisplayModeGetWidth(mode); + height = (uint16)CGDisplayModeGetHeight(mode); #if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11) - /* Extract bit depth from mode string. */ - CFAutoRelease<CFStringRef> pixEnc(CGDisplayModeCopyPixelEncoding(mode)); - if (CFStringCompare(pixEnc.get(), CFSTR(IO32BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 32; - if (CFStringCompare(pixEnc.get(), CFSTR(IO16BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 16; - if (CFStringCompare(pixEnc.get(), CFSTR(IO8BitIndexedPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 8; + /* Extract bit depth from mode string. */ + CFAutoRelease<CFStringRef> pixEnc(CGDisplayModeCopyPixelEncoding(mode)); + if (CFStringCompare(pixEnc.get(), CFSTR(IO32BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 32; + if (CFStringCompare(pixEnc.get(), CFSTR(IO16BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 16; + if (CFStringCompare(pixEnc.get(), CFSTR(IO8BitIndexedPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo) bpp = 8; #else - /* CGDisplayModeCopyPixelEncoding is deprecated on OSX 10.11+, but there are no 8 bpp modes anyway... */ - bpp = 32; + /* CGDisplayModeCopyPixelEncoding is deprecated on OSX 10.11+, but there are no 8 bpp modes anyway... */ + bpp = 32; #endif - } else -#endif - { - int intvalue; - - CFDictionaryRef onemode = (const __CFDictionary*)CFArrayGetValueAtIndex(modes, i); - CFNumberRef number = (const __CFNumber*)CFDictionaryGetValue(onemode, kCGDisplayBitsPerPixel); - CFNumberGetValue(number, kCFNumberSInt32Type, &intvalue); - bpp = intvalue; - - number = (const __CFNumber*)CFDictionaryGetValue(onemode, kCGDisplayWidth); - CFNumberGetValue(number, kCFNumberSInt32Type, &intvalue); - width = (uint16)intvalue; - - number = (const __CFNumber*)CFDictionaryGetValue(onemode, kCGDisplayHeight); - CFNumberGetValue(number, kCFNumberSInt32Type, &intvalue); - height = (uint16)intvalue; - } } uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_id, int device_depth) { -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6) && (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6) - CFArrayRef mode_list = MacOSVersionIsAtLeast(10, 6, 0) ? CGDisplayCopyAllDisplayModes(display_id, NULL) : CGDisplayAvailableModes(display_id); -#elif (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6) - CFArrayRef mode_list = CGDisplayCopyAllDisplayModes(display_id, NULL); -#else - CFArrayRef mode_list = CGDisplayAvailableModes(display_id); -#endif - CFIndex num_modes = CFArrayGetCount(mode_list); + CFAutoRelease<CFArrayRef> mode_list(CGDisplayCopyAllDisplayModes(display_id, nullptr)); + CFIndex num_modes = CFArrayGetCount(mode_list.get()); /* Build list of modes with the requested bpp */ uint count = 0; @@ -301,7 +266,7 @@ uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_i int bpp; uint16 width, height; - QZ_GetDisplayModeInfo(mode_list, i, bpp, width, height); + QZ_GetDisplayModeInfo(mode_list.get(), i, bpp, width, height); if (bpp != device_depth) continue; @@ -325,29 +290,9 @@ uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_i /* Sort list smallest to largest */ std::sort(modes, modes + count, ModeSorter); -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6) - if (MacOSVersionIsAtLeast(10, 6, 0)) CFRelease(mode_list); -#endif - return count; } -/** Small function to test if the main display can display 8 bpp in fullscreen */ -bool QZ_CanDisplay8bpp() -{ - /* 8bpp modes are deprecated starting in 10.5. CoreGraphics will return them - * as available in the display list, but many features (e.g. palette animation) - * will be broken. */ - if (MacOSVersionIsAtLeast(10, 5, 0)) return false; - - OTTD_Point p; - - /* We want to know if 8 bpp is possible in fullscreen and not anything about - * resolutions. Because of this we want to fill a list of 1 resolution of 8 bpp - * on display 0 (main) and return if we found one. */ - return QZ_ListModes(&p, 1, 0, 8); -} - /** * Update the video modus. * @@ -395,7 +340,7 @@ void QZ_GameSizeChanged() */ static CocoaSubdriver *QZ_CreateWindowSubdriver(int width, int height, int bpp) { -#if defined(ENABLE_COCOA_QUARTZ) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4) +#if defined(ENABLE_COCOA_QUARTZ) return QZ_CreateWindowQuartzSubdriver(width, height, bpp); #else return nullptr; @@ -453,7 +398,7 @@ void VideoDriver_Cocoa::Stop() */ const char *VideoDriver_Cocoa::Start(const char * const *parm) { - if (!MacOSVersionIsAtLeast(10, 3, 0)) return "The Cocoa video driver requires Mac OS X 10.3 or later."; + if (!MacOSVersionIsAtLeast(10, 6, 0)) return "The Cocoa video driver requires Mac OS X 10.6 or later."; if (_cocoa_video_started) return "Already started"; _cocoa_video_started = true; @@ -554,16 +499,7 @@ bool VideoDriver_Cocoa::AfterBlitterChange() */ void VideoDriver_Cocoa::EditBoxLostFocus() { - if (_cocoa_subdriver != NULL) { - if ([ _cocoa_subdriver->cocoaview respondsToSelector:@selector(inputContext) ] && [ [ _cocoa_subdriver->cocoaview performSelector:@selector(inputContext) ] respondsToSelector:@selector(discardMarkedText) ]) { - [ [ _cocoa_subdriver->cocoaview performSelector:@selector(inputContext) ] performSelector:@selector(discardMarkedText) ]; - } -#if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6) - else { - [ [ NSInputManager currentInputManager ] markedTextAbandoned:_cocoa_subdriver->cocoaview ]; - } -#endif - } + if (_cocoa_subdriver != NULL) [ [ _cocoa_subdriver->cocoaview inputContext ] discardMarkedText ]; /* Clear any marked string from the current edit box. */ HandleTextInput(NULL, true); } @@ -589,22 +525,13 @@ void CocoaDialog(const char *title, const char *message, const char *buttonLabel return; } -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3) - if (MacOSVersionIsAtLeast(10, 3, 0)) { - NSAlert *alert = [ [ NSAlert alloc ] init ]; - [ alert setAlertStyle: NSCriticalAlertStyle ]; - [ alert setMessageText:[ NSString stringWithUTF8String:title ] ]; - [ alert setInformativeText:[ NSString stringWithUTF8String:message ] ]; - [ alert addButtonWithTitle: [ NSString stringWithUTF8String:buttonLabel ] ]; - [ alert runModal ]; - [ alert release ]; - } else -#endif - { -#if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_3) - NSRunAlertPanel([ NSString stringWithUTF8String:title ], [ NSString stringWithUTF8String:message ], [ NSString stringWithUTF8String:buttonLabel ], nil, nil); -#endif - } + NSAlert *alert = [ [ NSAlert alloc ] init ]; + [ alert setAlertStyle: NSCriticalAlertStyle ]; + [ alert setMessageText:[ NSString stringWithUTF8String:title ] ]; + [ alert setInformativeText:[ NSString stringWithUTF8String:message ] ]; + [ alert addButtonWithTitle: [ NSString stringWithUTF8String:buttonLabel ] ]; + [ alert runModal ]; + [ alert release ]; if (!wasstarted && VideoDriver::GetInstance() != NULL) VideoDriver::GetInstance()->Stop(); @@ -1030,17 +957,7 @@ static const char *Utf8AdvanceByUtf16Units(const char *str, NSUInteger count) { if (!EditBoxInGlobalFocus()) return NSNotFound; - NSPoint view_pt = NSZeroPoint; -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7) - if ([ [ self window ] respondsToSelector:@selector(convertRectFromScreen:) ]) { - view_pt = [ self convertRect:[ [ self window ] convertRectFromScreen:NSMakeRect(thePoint.x, thePoint.y, 0, 0) ] fromView:nil ].origin; - } else -#endif - { -#if (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7) - view_pt = [ self convertPoint:[ [ self window ] convertScreenToBase:thePoint ] fromView:nil ]; -#endif - } + NSPoint view_pt = [ self convertRect:[ [ self window ] convertRectFromScreen:NSMakeRect(thePoint.x, thePoint.y, 0, 0) ] fromView:nil ].origin; Point pt = { (int)view_pt.x, (int)[ self frame ].size.height - (int)view_pt.y }; @@ -1063,19 +980,7 @@ static const char *Utf8AdvanceByUtf16Units(const char *str, NSUInteger count) Rect r = _focused_window->GetTextBoundingRect(start, end); NSRect view_rect = NSMakeRect(_focused_window->left + r.left, [ self frame ].size.height - _focused_window->top - r.bottom, r.right - r.left, r.bottom - r.top); -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if ([ [ self window ] respondsToSelector:@selector(convertRectToScreen:) ]) { - return [ [ self window ] convertRectToScreen:[ self convertRect:view_rect toView:nil ] ]; - } -#endif - -#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7 - NSRect window_rect = [ self convertRect:view_rect toView:nil ]; - NSPoint origin = [ [ self window ] convertBaseToScreen:window_rect.origin ]; - return NSMakeRect(origin.x, origin.y, window_rect.size.width, window_rect.size.height); -#else - return NSMakeRect(0, 0, 0, 0);; -#endif + return [ [ self window ] convertRectToScreen:[ self convertRect:view_rect toView:nil ] ]; } /** Get the bounding rect for the given range. */ @@ -1090,16 +995,6 @@ static const char *Utf8AdvanceByUtf16Units(const char *str, NSUInteger count) return [ NSArray array ]; } -/** Identifier for this text input instance. */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 -- (long)conversationIdentifier -#else -- (NSInteger)conversationIdentifier -#endif -{ - return 0; -} - /** Delete single character left of the cursor. */ - (void)deleteBackward:(id)sender { |