[Qemu-devel] [PATCH] ui/cocoa.m: Fix macOS 10.14 deprecation warnings

2019-01-31 Thread Brendan Shanks
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 
---
 ui/cocoa.m | 28 ++--
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index ddc058e76e..e2567d6946 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -54,6 +54,9 @@
 #ifndef MAC_OS_X_VERSION_10_12
 #define MAC_OS_X_VERSION_10_12 101200
 #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 
*/
 #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
 #define NSModalResponseOK NSFileHandlingPanelOKButton
 #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
 
@@ -377,7 +388,12 @@ - (void) drawRect:(NSRect) rect
 COCOA_DEBUG("QemuCocoaView: drawRect\n");
 
 // get CoreGraphic context
+#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10
 CGContextRef viewContextRef = [[NSGraphicsContext currentContext] 
graphicsPort];
+#else
+CGContextRef viewContextRef = [[NSGraphicsContext currentContext] 
CGContext];
+#endif
+
 CGContextSetInterpolationQuality (viewContextRef, kCGInterpolationNone);
 CGContextSetShouldAntialias (viewContextRef, NO);
 
@@ -1147,9 +1163,9 @@ - (void)zoomToFit:(id) sender
 {
 stretch_video = !stretch_video;
 if (stretch_video == true) {
-[sender setState: NSOnState];
+[sender setState: NSControlStateValueOn];
 } else {
-[sender setState: NSOffState];
+[sender setState: NSControlStateValueOff];
 }
 }
 
@@ -1390,15 +1406,15 @@ - (void)adjustSpeed:(id)sender
 {
 /* Unselect the currently selected item */
 for (NSMenuItem *item in [menu itemArray]) {
-if (item.state == NSOnState) {
-[item setState: NSOffState];
+if (item.state == NSControlStateValueOn) {
+[item setState: NSControlStateValueOff];
 break;
 }
 }
 }
 
 // check the menu item
-[sender setState: NSOnState];
+[sender setState: NSControlStateValueOn];
 
 // get the throttle percentage
 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];
 
 if (percentage == 100) {
-[menuItem setState: NSOnState];
+[menuItem setState: NSControlStateValueOn];
 }
 
 /* Calculate the throttle percentage */
-- 
2.17.2 (Apple Git-113)




Re: [Qemu-devel] [PATCH] ui/cocoa.m: Fix macOS 10.14 deprecation warnings

2019-02-05 Thread Gerd Hoffmann
On Thu, Jan 31, 2019 at 11:12:25PM -0800, Brendan Shanks wrote:
> 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.

Added to UI patch queue.

thanks,
  Gerd