Browse Source

Implements OS_OSX::get_system_dir()

poke1024 8 năm trước cách đây
mục cha
commit
9d841b5336
2 tập tin đã thay đổi với 42 bổ sung0 xóa
  1. 2 0
      platform/osx/os_osx.h
  2. 40 0
      platform/osx/os_osx.mm

+ 2 - 0
platform/osx/os_osx.h

@@ -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);

+ 40 - 0
platform/osx/os_osx.mm

@@ -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;