aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Snover2017-09-10 21:03:18 -0500
committerColin Snover2017-09-10 22:17:16 -0500
commit6e2f18c498b6d40d8184dfe05993ac6d0ba99326 (patch)
treea535c744015a37efd4fdbff23b5211356a08525f
parent56810b5598458ce04dee4647a4044e9ca07a8577 (diff)
downloadscummvm-rg350-6e2f18c498b6d40d8184dfe05993ac6d0ba99326.tar.gz
scummvm-rg350-6e2f18c498b6d40d8184dfe05993ac6d0ba99326.tar.bz2
scummvm-rg350-6e2f18c498b6d40d8184dfe05993ac6d0ba99326.zip
MACOS: Fix warnings about undeclared selectors
When -Wundeclared-selector is enabled (recommended by Apple), the calls to the setBadgeLabel selector in MacOSXTaskbarManager are warned on because NSDockTile declarations are not included because they do not exist in macOS 10.4 and earlier. While I don't know that we are even supporting such old macOS versions these days, it is simple enough to fix this problem when compiling to modern macOS versions by conditionally including the necessary header.
-rw-r--r--backends/platform/sdl/macosx/appmenu_osx.mm9
-rw-r--r--backends/platform/sdl/macosx/macosx-compat.h36
-rw-r--r--backends/taskbar/macosx/macosx-taskbar.mm16
3 files changed, 49 insertions, 12 deletions
diff --git a/backends/platform/sdl/macosx/appmenu_osx.mm b/backends/platform/sdl/macosx/appmenu_osx.mm
index 452c386607..b02d9c56b6 100644
--- a/backends/platform/sdl/macosx/appmenu_osx.mm
+++ b/backends/platform/sdl/macosx/appmenu_osx.mm
@@ -26,13 +26,8 @@
#include "backends/platform/sdl/macosx/appmenu_osx.h"
#include "common/translation.h"
-#include <Cocoa/Cocoa.h>
-
-// macOS 10.12 deprecated many constants, #define the new names we need for
-// older SDKs. (This approach was taken from qemu.)
-#ifndef MAC_OS_X_VERSION_10_12
-#define MAC_OS_X_VERSION_10_12 101200
-#endif
+#include "backends/platform/sdl/macosx/macosx-compat.h"
+#include <cocoa/Cocoa.h>
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12
#define NSEventModifierFlagCommand NSCommandKeyMask
diff --git a/backends/platform/sdl/macosx/macosx-compat.h b/backends/platform/sdl/macosx/macosx-compat.h
new file mode 100644
index 0000000000..9bf1600688
--- /dev/null
+++ b/backends/platform/sdl/macosx/macosx-compat.h
@@ -0,0 +1,36 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef PLATFORM_SDL_MACOSX_COMPAT_H
+#define PLATFORM_SDL_MACOSX_COMPAT_H
+
+#include <AvailabilityMacros.h>
+
+#ifndef MAC_OS_X_VERSION_10_5
+#define MAC_OS_X_VERSION_10_5 1050
+#endif
+
+#ifndef MAC_OS_X_VERSION_10_12
+#define MAC_OS_X_VERSION_10_12 101200
+#endif
+
+#endif
diff --git a/backends/taskbar/macosx/macosx-taskbar.mm b/backends/taskbar/macosx/macosx-taskbar.mm
index 692fa84429..f6d3be55ce 100644
--- a/backends/taskbar/macosx/macosx-taskbar.mm
+++ b/backends/taskbar/macosx/macosx-taskbar.mm
@@ -26,13 +26,10 @@
#if defined(MACOSX) && defined(USE_TASKBAR)
-// NSDockTile was introduced with Mac OS X 10.5.
-// Try provide backward compatibility by avoiding NSDockTile symbols.
-
#include "backends/taskbar/macosx/macosx-taskbar.h"
#include "common/config-manager.h"
#include "common/file.h"
-
+#include "backends/platform/sdl/macosx/macosx-compat.h"
#include <AppKit/NSApplication.h>
#include <AppKit/NSImage.h>
#include <Foundation/NSString.h>
@@ -44,7 +41,16 @@
#include <AppKit/NSBezierPath.h>
#include <CoreFoundation/CFString.h>
-id _dockTile;
+// NSDockTile was introduced with Mac OS X 10.5.
+// Try provide backward compatibility by avoiding NSDockTile symbols.
+#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5
+typedef id NSDockTilePtr;
+#else
+#include <AppKit/NSDockTile.h>
+typedef NSDockTile * NSDockTilePtr;
+#endif
+
+NSDockTilePtr _dockTile;
NSImageView *_applicationIconView;
NSImageView *_overlayIconView;