They're the recommended APIs now, and openFile is deprecated starting
with macOS 11.0. openURLs:withApplicationAtURL (for TextEdit usage)
requires macOS 10.15+, so we need different code paths.
NSUInteger should be an `unsigned int` on 32-bit Tiger, and an
`unsigned long` on 64-bit Tiger. In practice, this wasn't really a
problem since we were always using `unsigned long` which has the same
width on 32-bit Tiger, but still it's more correct to do what the
official 10.5 SDK does.
The preprocessor defines come from Apple's documentation and from
their SDK. We can use it as-is, since we're in the backend code, and
already in an ifdef only targeting Tiger (where I've tested this
change).
Also fix a small GCC warning while there.
Found while doing a review of our existing workarounds for those
versions, and the system features which can be used there.
Also fix indentation and some typos while there.
The User Manual Help menu item now opens the pdf bundled with the
application if present, and only opens the website otherwise.
The bundled documentation is preferred as:
- This will work even with no internet access
- This is future proof and will still work in 10 years when the
website URL might have changed or the website may be down.
- This ensure we get the doc that corresponds to the version of
ScummVM being used.
In particular it has been reported that setHelpMenu was introduced in
MacOS X 10.6. So hopefully this change will fix running ScummVM on
MacOS X 10.5 or older.
This might fix bug #11260: MAC OS X: App incomplete when launched on
OS X 10.5.8.
Now in addition to rtf extension and no extension, it also looks
for the html and md extensions. Also unless the extension is RTF or
HTML, which are widely recognized, it explicitely indicate that the
file should be open with TextEdit.
This fixes bug #10938, with opening the README and NEWS file from
the Help menu failing when the bundle was compiled without using
pandoc and thus the only files available are the markdown ones.
Support for the html extension is to prepare for a future change
to have a nicer README than the plain text one.
The local documents are not currently internationalised simply
because the internationalised resources are not put into the right
places (NSBundle will handle this automatically when they are);
Trac#10464 is a tracking bug for this outstanding issue.
Fixes Trac#10437.
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.
We remove the menus added by SDL before inserting our own menus,
but the code assumed that there were two SDL generated menus. SDL2
actually adds three menus. So the new code makes no assumptions on
the number of menus so that it works with both SDL1.2 and SDL2.
Also fix an issue on OS X 10.4 and earlier that caused the app menu
to be nameless.