[Scummvm-cvs-logs] scummvm master -> 67493394b3d0a3d9595f284898ba586271a26d41
criezy
criezy at scummvm.org
Sun Nov 18 02:31:29 CET 2012
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a49f55878a OSX: Improve native OS X browser dialog
5de0d081b7 OSX: Add missing include for NSURL
40941af7b9 OSX: Fix Sparkle compilation on older systems
67493394b3 OSX: Remove use of deprecated methods
Commit: a49f55878a152eb9bd206e874d54bdf8e9ec281d
https://github.com/scummvm/scummvm/commit/a49f55878a152eb9bd206e874d54bdf8e9ec281d
Author: Max Horn (max at quendi.de)
Date: 2012-11-17T17:29:08-08:00
Commit Message:
OSX: Improve native OS X browser dialog
Signed-off-by: Thierry Crozat <criezy at scummvm.org>
Changed paths:
backends/platform/sdl/macosx/appmenu_osx.mm
gui/browser.h
gui/browser_osx.mm
diff --git a/backends/platform/sdl/macosx/appmenu_osx.mm b/backends/platform/sdl/macosx/appmenu_osx.mm
index 97c7edb..0d2a2ab 100644
--- a/backends/platform/sdl/macosx/appmenu_osx.mm
+++ b/backends/platform/sdl/macosx/appmenu_osx.mm
@@ -35,9 +35,8 @@
- (void)setAppleMenu:(NSMenu *)menu;
@end
-NSString *constructNSStringFromCString(const char* rawCString, NSStringEncoding stringEncoding) {
- NSData *nsData = [NSData dataWithBytes:rawCString length:strlen(rawCString)];
- return [[NSString alloc] initWithData:nsData encoding:stringEncoding];
+NSString *constructNSStringFromCString(const char *rawCString, CFStringEncoding stringEncoding) {
+ return (NSString *)CFStringCreateWithCString(NULL, rawCString, stringEncoding);
}
void replaceApplicationMenuItems() {
@@ -59,11 +58,11 @@ void replaceApplicationMenuItems() {
// Get current encoding
#ifdef USE_TRANSLATION
- nsString = constructNSStringFromCString((TransMan.getCurrentCharset()).c_str(), NSASCIIStringEncoding);
- NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)nsString));
+ nsString = constructNSStringFromCString(TransMan.getCurrentCharset().c_str(), NSASCIIStringEncoding);
+ CFStringEncoding stringEncoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)nsString);
[nsString release];
#else
- NSStringEncoding stringEncoding = NSASCIIStringEncoding;
+ CFStringEncoding stringEncoding = kCFStringEncodingASCII;
#endif
// Add "About ScummVM" menu item
diff --git a/gui/browser.h b/gui/browser.h
index e5cc12a..5cf091f 100644
--- a/gui/browser.h
+++ b/gui/browser.h
@@ -48,6 +48,7 @@ public:
protected:
#ifdef MACOSX
const void *_titleRef;
+ const void *_chooseRef;
#else
ListWidget *_fileList;
StaticTextWidget *_currentPath;
diff --git a/gui/browser_osx.mm b/gui/browser_osx.mm
index b8aa7c5..1d5e6f2 100644
--- a/gui/browser_osx.mm
+++ b/gui/browser_osx.mm
@@ -28,6 +28,7 @@
#include "common/config-manager.h"
#include "common/system.h"
#include "common/algorithm.h"
+#include "common/translation.h"
#include <AppKit/NSOpenPanel.h>
#include <Foundation/NSString.h>
@@ -36,12 +37,29 @@ namespace GUI {
BrowserDialog::BrowserDialog(const char *title, bool dirBrowser)
: Dialog("Browser") {
- _titleRef = CFStringCreateWithCString(0, title, CFStringGetSystemEncoding());
+
+ // remember whether this is a file browser or a directory browser.
_isDirBrowser = dirBrowser;
+
+ // Get current encoding
+#ifdef USE_TRANSLATION
+ CFStringRef encStr = CFStringCreateWithCString(NULL, TransMan.getCurrentCharset().c_str(), kCFStringEncodingASCII);
+ CFStringEncoding stringEncoding = CFStringConvertIANACharSetNameToEncoding(encStr);
+ CFRelease(encStr);
+#else
+ CFStringEncoding stringEncoding = kCFStringEncodingASCII;
+#endif
+
+ // Convert title to NSString
+ _titleRef = CFStringCreateWithCString(0, title, stringEncoding);
+
+ // Convert button text to NSString
+ _chooseRef = CFStringCreateWithCString(0, _("Choose"), stringEncoding);
}
BrowserDialog::~BrowserDialog() {
CFRelease(_titleRef);
+ CFRelease(_chooseRef);
}
int BrowserDialog::runModal() {
@@ -58,16 +76,20 @@ int BrowserDialog::runModal() {
// Temporarily show the real mouse
CGDisplayShowCursor(kCGDirectMainDisplay);
-
- NSOpenPanel * panel = [NSOpenPanel openPanel];
- [panel setCanChooseDirectories:YES];
- if ([panel runModalForTypes:nil] == NSOKButton) {
- const char *filename = [[panel filename] UTF8String];
- _choice = Common::FSNode(filename);
- choiceMade = true;
+ NSOpenPanel *panel = [NSOpenPanel openPanel];
+ [panel setCanChooseFiles:!_isDirBrowser];
+ [panel setCanChooseDirectories:_isDirBrowser];
+ [panel setTitle:(NSString *)_titleRef];
+ [panel setPrompt:(NSString *)_chooseRef];
+ if ([panel runModal] == NSOKButton) {
+ NSURL *url = [panel URL];
+ if ([url isFileURL]) {
+ const char *filename = [[url path] UTF8String];
+ _choice = Common::FSNode(filename);
+ choiceMade = true;
+ }
}
-
// If we were in fullscreen mode, switch back
if (wasFullscreen) {
g_system->beginGFXTransaction();
Commit: 5de0d081b7824dc1b398bc20d1b4d113ddc15af1
https://github.com/scummvm/scummvm/commit/5de0d081b7824dc1b398bc20d1b4d113ddc15af1
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2012-11-17T17:29:09-08:00
Commit Message:
OSX: Add missing include for NSURL
This fixes compilation on older systems (apparently on newer
systems it was already included indirectly).
Changed paths:
gui/browser_osx.mm
diff --git a/gui/browser_osx.mm b/gui/browser_osx.mm
index 1d5e6f2..ecd6091 100644
--- a/gui/browser_osx.mm
+++ b/gui/browser_osx.mm
@@ -32,6 +32,7 @@
#include <AppKit/NSOpenPanel.h>
#include <Foundation/NSString.h>
+#include <Foundation/NSURL.h>
namespace GUI {
Commit: 40941af7b9ffeeee0e328fc86e5749b9043c9113
https://github.com/scummvm/scummvm/commit/40941af7b9ffeeee0e328fc86e5749b9043c9113
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2012-11-17T17:29:09-08:00
Commit Message:
OSX: Fix Sparkle compilation on older systems
This patch was provided by fingolfin (see patch #3582260). It replaces
use of methods introduced in MacOS X 10.4 with methods that exists
since MacOS X 10.0.
Changed paths:
backends/updates/macosx/macosx-updates.mm
diff --git a/backends/updates/macosx/macosx-updates.mm b/backends/updates/macosx/macosx-updates.mm
index 741e898..f3b221c 100644
--- a/backends/updates/macosx/macosx-updates.mm
+++ b/backends/updates/macosx/macosx-updates.mm
@@ -59,10 +59,14 @@ MacOSXUpdateManager::MacOSXUpdateManager() {
[sparkleUpdater setFeedURL:[NSURL URLWithString:feedbackURL]];
// Get current encoding
- NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding]));
+ CFStringRef encStr = CFStringCreateWithCString(NULL, TransMan.getCurrentCharset().c_str(), kCFStringEncodingASCII);
+ CFStringEncoding stringEncoding = CFStringConvertIANACharSetNameToEncoding(encStr);
+ CFRelease(encStr);
// Add "Check for Updates..." menu item
- NSMenuItem *updateMenuItem = [applicationMenu insertItemWithTitle:[NSString stringWithCString:_("Check for Updates...") encoding:stringEncoding] action:@selector(checkForUpdates:) keyEquivalent:@"" atIndex:1];
+ CFStringRef title = CFStringCreateWithCString(NULL, _("Check for Updates..."), stringEncoding);
+ NSMenuItem *updateMenuItem = [applicationMenu insertItemWithTitle:(NSString *)title action:@selector(checkForUpdates:) keyEquivalent:@"" atIndex:1];
+ CFRelease(title);
// Set the target of the new menu item
[updateMenuItem setTarget:sparkleUpdater];
Commit: 67493394b3d0a3d9595f284898ba586271a26d41
https://github.com/scummvm/scummvm/commit/67493394b3d0a3d9595f284898ba586271a26d41
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2012-11-17T17:29:09-08:00
Commit Message:
OSX: Remove use of deprecated methods
FSRef and FSPathMakeRef have been deprecated in OS X 10.8. So we
use CFURLRef instead.
Changed paths:
backends/platform/sdl/macosx/macosx.cpp
diff --git a/backends/platform/sdl/macosx/macosx.cpp b/backends/platform/sdl/macosx/macosx.cpp
index fb76c11..85342d6 100644
--- a/backends/platform/sdl/macosx/macosx.cpp
+++ b/backends/platform/sdl/macosx/macosx.cpp
@@ -39,7 +39,6 @@
#include "ApplicationServices/ApplicationServices.h" // for LSOpenFSRef
#include "CoreFoundation/CoreFoundation.h" // for CF* stuff
-#include "CoreServices/CoreServices.h" // for FSPathMakeRef
OSystem_MacOSX::OSystem_MacOSX()
:
@@ -107,13 +106,9 @@ bool OSystem_MacOSX::displayLogFile() {
if (_logFilePath.empty())
return false;
- FSRef ref;
- OSStatus err;
-
- err = FSPathMakeRef((const UInt8 *)_logFilePath.c_str(), &ref, NULL);
- if (err == noErr) {
- err = LSOpenFSRef(&ref, NULL);
- }
+ CFURLRef url = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, (const UInt8 *)_logFilePath.c_str(), _logFilePath.size(), false);
+ OSStatus err = LSOpenCFURLRef(url, NULL);
+ CFRelease(url);
return err != noErr;
}
More information about the Scummvm-git-logs
mailing list