Implements OS_OSX::get_system_dir()

This commit is contained in:
poke1024 2017-08-29 18:22:06 +02:00
parent c812c17633
commit 9d841b5336
2 changed files with 42 additions and 0 deletions

View file

@ -160,6 +160,8 @@ public:
virtual MainLoop *get_main_loop() const;
virtual String get_system_dir(SystemDir p_dir) const;
virtual bool can_draw() const;
virtual void set_clipboard(const String &p_text);

View file

@ -1327,6 +1327,46 @@ MainLoop *OS_OSX::get_main_loop() const {
return main_loop;
}
String OS_OSX::get_system_dir(SystemDir p_dir) const {
NSSearchPathDirectory id = 0;
switch (p_dir) {
case SYSTEM_DIR_DESKTOP: {
id = NSDesktopDirectory;
} break;
case SYSTEM_DIR_DOCUMENTS: {
id = NSDocumentDirectory;
} break;
case SYSTEM_DIR_DOWNLOADS: {
id = NSDownloadsDirectory;
} break;
case SYSTEM_DIR_MOVIES: {
id = NSMoviesDirectory;
} break;
case SYSTEM_DIR_MUSIC: {
id = NSMusicDirectory;
} break;
case SYSTEM_DIR_PICTURES: {
id = NSPicturesDirectory;
} break;
}
String ret;
if (id) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(id, NSUserDomainMask, YES);
if (paths && [paths count] >= 1) {
char *utfs = strdup([[paths firstObject] UTF8String]);
ret.parse_utf8(utfs);
free(utfs);
}
}
return ret;
}
bool OS_OSX::can_draw() const {
return true;