aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/sdl/macosx/macosx_wrapper.mm
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/sdl/macosx/macosx_wrapper.mm')
-rw-r--r--backends/platform/sdl/macosx/macosx_wrapper.mm16
1 files changed, 16 insertions, 0 deletions
diff --git a/backends/platform/sdl/macosx/macosx_wrapper.mm b/backends/platform/sdl/macosx/macosx_wrapper.mm
index 8ec9eac5ac..5de3eb6bac 100644
--- a/backends/platform/sdl/macosx/macosx_wrapper.mm
+++ b/backends/platform/sdl/macosx/macosx_wrapper.mm
@@ -27,6 +27,8 @@
#include <AppKit/NSPasteboard.h>
#include <Foundation/NSArray.h>
+#include <Foundation/NSPathUtilities.h>
+#include <AvailabilityMacros.h>
bool hasTextInClipboardMacOSX() {
return [[NSPasteboard generalPasteboard] availableTypeFromArray:[NSArray arrayWithObject:NSStringPboardType]] != nil;
@@ -46,3 +48,17 @@ Common::String getTextFromClipboardMacOSX() {
// we should use NSISOLatin1StringEncoding?).
return Common::String([str cStringUsingEncoding:NSASCIIStringEncoding]);
}
+
+Common::String getDesktopPathMacOSX() {
+ // The recommanded method is to use NSFileManager.
+ // NSUrl *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDesktopDirectory inDomains:NSUserDomainMask] firstObject];
+ // However it is only available in OS X 10.6+. So use NSSearchPathForDirectoriesInDomains instead (available since OS X 10.0)
+ // [NSArray firstObject] is also only available in OS X 10.6+. So we need to use [NSArray count] and [NSArray objectAtIndex:]
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, NO);
+ if ([paths count] == 0)
+ return Common::String();
+ NSString *path = [paths objectAtIndex:0];
+ if (path == nil)
+ return Common::String();
+ return Common::String([path cStringUsingEncoding:NSASCIIStringEncoding]);
+} \ No newline at end of file