ui/cocoa.m: Fix macOS 10.14 deprecation warnings

macOS 10.14 deprecated NSOnState/NSOffState in favour of
NSControlStateValueOn/NSControlStateValueOff. Use the new constants,
and #define them to the old ones when compiling against a pre-10.13 SDK.
Also [NSGraphicsContext graphicsPort] is now deprecated, use
[NSGraphicsContext CGContext] when available.

Signed-off-by: Brendan Shanks <brendan@bslabs.net>
Message-id: 20190201071225.20576-1-brendan@bslabs.net
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Brendan Shanks 2019-01-31 23:12:25 -08:00 committed by Gerd Hoffmann
parent a981814a44
commit 5e24600a7c
1 changed files with 22 additions and 6 deletions

View File

@ -54,6 +54,9 @@
#ifndef MAC_OS_X_VERSION_10_12 #ifndef MAC_OS_X_VERSION_10_12
#define MAC_OS_X_VERSION_10_12 101200 #define MAC_OS_X_VERSION_10_12 101200
#endif #endif
#ifndef MAC_OS_X_VERSION_10_13
#define MAC_OS_X_VERSION_10_13 101300
#endif
/* macOS 10.12 deprecated many constants, #define the new names for older SDKs */ /* macOS 10.12 deprecated many constants, #define the new names for older SDKs */
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12 #if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12
@ -90,6 +93,14 @@
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9 #if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9
#define NSModalResponseOK NSFileHandlingPanelOKButton #define NSModalResponseOK NSFileHandlingPanelOKButton
#endif #endif
/* 10.14 deprecates NSOnState and NSOffState in favor of
* NSControlStateValueOn/Off, which were introduced in 10.13.
* Define for older versions
*/
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_13
#define NSControlStateValueOn NSOnState
#define NSControlStateValueOff NSOffState
#endif
//#define DEBUG //#define DEBUG
@ -377,7 +388,12 @@ - (void) drawRect:(NSRect) rect
COCOA_DEBUG("QemuCocoaView: drawRect\n"); COCOA_DEBUG("QemuCocoaView: drawRect\n");
// get CoreGraphic context // get CoreGraphic context
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10
CGContextRef viewContextRef = [[NSGraphicsContext currentContext] graphicsPort]; CGContextRef viewContextRef = [[NSGraphicsContext currentContext] graphicsPort];
#else
CGContextRef viewContextRef = [[NSGraphicsContext currentContext] CGContext];
#endif
CGContextSetInterpolationQuality (viewContextRef, kCGInterpolationNone); CGContextSetInterpolationQuality (viewContextRef, kCGInterpolationNone);
CGContextSetShouldAntialias (viewContextRef, NO); CGContextSetShouldAntialias (viewContextRef, NO);
@ -1147,9 +1163,9 @@ - (void)zoomToFit:(id) sender
{ {
stretch_video = !stretch_video; stretch_video = !stretch_video;
if (stretch_video == true) { if (stretch_video == true) {
[sender setState: NSOnState]; [sender setState: NSControlStateValueOn];
} else { } else {
[sender setState: NSOffState]; [sender setState: NSControlStateValueOff];
} }
} }
@ -1390,15 +1406,15 @@ - (void)adjustSpeed:(id)sender
{ {
/* Unselect the currently selected item */ /* Unselect the currently selected item */
for (NSMenuItem *item in [menu itemArray]) { for (NSMenuItem *item in [menu itemArray]) {
if (item.state == NSOnState) { if (item.state == NSControlStateValueOn) {
[item setState: NSOffState]; [item setState: NSControlStateValueOff];
break; break;
} }
} }
} }
// check the menu item // check the menu item
[sender setState: NSOnState]; [sender setState: NSControlStateValueOn];
// get the throttle percentage // get the throttle percentage
throttle_pct = [sender tag]; throttle_pct = [sender tag];
@ -1502,7 +1518,7 @@ int main (int argc, const char * argv[]) {
initWithTitle: [NSString stringWithFormat: @"%d%%", percentage] action:@selector(adjustSpeed:) keyEquivalent:@""] autorelease]; initWithTitle: [NSString stringWithFormat: @"%d%%", percentage] action:@selector(adjustSpeed:) keyEquivalent:@""] autorelease];
if (percentage == 100) { if (percentage == 100) {
[menuItem setState: NSOnState]; [menuItem setState: NSControlStateValueOn];
} }
/* Calculate the throttle percentage */ /* Calculate the throttle percentage */