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.
This commit is contained in:
parent
56810b5598
commit
6e2f18c498
3 changed files with 49 additions and 12 deletions
|
@ -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
|
||||
|
|
36
backends/platform/sdl/macosx/macosx-compat.h
Normal file
36
backends/platform/sdl/macosx/macosx-compat.h
Normal file
|
@ -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
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue