Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_file/fsmenu.c
| Show First 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| } | } | ||||
| fclose(fp); | fclose(fp); | ||||
| } | } | ||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| /* Add a Windows known folder path to the System list. */ | /* Add a Windows known folder path to the System list. */ | ||||
| static void fsmenu_add_windows_folder(struct FSMenu *fsmenu, | static void fsmenu_add_windows_folder(struct FSMenu *fsmenu, | ||||
| FSMenuCategory category, | |||||
| REFKNOWNFOLDERID rfid, | REFKNOWNFOLDERID rfid, | ||||
| const char *name, | const char *name, | ||||
| const int icon, | const int icon, | ||||
| FSMenuInsert flag) | FSMenuInsert flag) | ||||
| { | { | ||||
| LPWSTR pPath; | LPWSTR pPath; | ||||
| char line[FILE_MAXDIR]; | char line[FILE_MAXDIR]; | ||||
| if (SHGetKnownFolderPath(rfid, 0, NULL, &pPath) == S_OK) { | if (SHGetKnownFolderPath(rfid, 0, NULL, &pPath) == S_OK) { | ||||
| BLI_strncpy_wchar_as_utf8(line, pPath, FILE_MAXDIR); | BLI_strncpy_wchar_as_utf8(line, pPath, FILE_MAXDIR); | ||||
| CoTaskMemFree(pPath); | CoTaskMemFree(pPath); | ||||
| fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM_BOOKMARKS, line, name, icon, flag); | fsmenu_insert_entry(fsmenu, category, line, name, icon, flag); | ||||
| } | } | ||||
| } | } | ||||
| #endif | #endif | ||||
| void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks) | void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks) | ||||
| { | { | ||||
| char line[FILE_MAXDIR]; | char line[FILE_MAXDIR]; | ||||
| #ifdef WIN32 | #ifdef WIN32 | ||||
| ▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, tmps, name, icon, FS_INSERT_SORTED); | fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, tmps, name, icon, FS_INSERT_SORTED); | ||||
| } | } | ||||
| } | } | ||||
| /* Get Special Folder Locations. */ | /* Get Special Folder Locations. */ | ||||
| if (read_bookmarks) { | if (read_bookmarks) { | ||||
| /* These items are shown in System List. */ | |||||
| fsmenu_add_windows_folder(fsmenu, | |||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | |||||
| &FOLDERID_Profile, | |||||
| IFACE_("Home"), | |||||
| ICON_HOME, | |||||
| FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder(fsmenu, | |||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | |||||
| &FOLDERID_Desktop, | |||||
| IFACE_("Desktop"), | |||||
| ICON_DESKTOP, | |||||
| FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder(fsmenu, | |||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | |||||
| &FOLDERID_Documents, | |||||
| IFACE_("Documents"), | |||||
| ICON_DOCUMENTS, | |||||
| FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder(fsmenu, | |||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | |||||
| &FOLDERID_Downloads, | |||||
| IFACE_("Downloads"), | |||||
| ICON_IMPORT, | |||||
| FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder(fsmenu, | |||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | |||||
| &FOLDERID_Music, | |||||
| IFACE_("Music"), | |||||
| ICON_FILE_SOUND, | |||||
| FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder(fsmenu, | |||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | |||||
| &FOLDERID_Pictures, | |||||
| IFACE_("Pictures"), | |||||
| ICON_FILE_IMAGE, | |||||
| FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder(fsmenu, | |||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | |||||
| &FOLDERID_Videos, | |||||
| IFACE_("Videos"), | |||||
| ICON_FILE_MOVIE, | |||||
| FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder(fsmenu, | |||||
| FS_CATEGORY_SYSTEM_BOOKMARKS, | |||||
| &FOLDERID_Fonts, | |||||
| IFACE_("Fonts"), | |||||
| ICON_FONTPREVIEW, | |||||
| FS_INSERT_LAST); | |||||
| /* These items are just put in path cache for thumbnail views and if bookmarked. */ | |||||
| fsmenu_add_windows_folder( | fsmenu_add_windows_folder( | ||||
| fsmenu, &FOLDERID_Profile, IFACE_("Home"), ICON_HOME, FS_INSERT_LAST); | fsmenu, FS_CATEGORY_OTHER, &FOLDERID_UserProfiles, NULL, ICON_COMMUNITY, FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder( | |||||
| fsmenu, &FOLDERID_Desktop, IFACE_("Desktop"), ICON_DESKTOP, FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder( | |||||
| fsmenu, &FOLDERID_Documents, IFACE_("Documents"), ICON_DOCUMENTS, FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder( | |||||
| fsmenu, &FOLDERID_Downloads, IFACE_("Downloads"), ICON_IMPORT, FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder( | |||||
| fsmenu, &FOLDERID_Music, IFACE_("Music"), ICON_FILE_SOUND, FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder( | |||||
| fsmenu, &FOLDERID_Pictures, IFACE_("Pictures"), ICON_FILE_IMAGE, FS_INSERT_LAST); | |||||
| fsmenu_add_windows_folder( | fsmenu_add_windows_folder( | ||||
| fsmenu, &FOLDERID_Videos, IFACE_("Videos"), ICON_FILE_MOVIE, FS_INSERT_LAST); | fsmenu, FS_CATEGORY_OTHER, &FOLDERID_Objects3D, NULL, ICON_FILE_3D, FS_INSERT_LAST); | ||||
| fsmenu_add_windows_folder( | fsmenu_add_windows_folder( | ||||
| fsmenu, &FOLDERID_Fonts, IFACE_("Fonts"), ICON_FONTPREVIEW, FS_INSERT_LAST); | fsmenu, FS_CATEGORY_OTHER, &FOLDERID_SkyDrive, NULL, ICON_URL, FS_INSERT_LAST); | ||||
| } | } | ||||
| } | } | ||||
| #else | #else | ||||
| # ifdef __APPLE__ | # ifdef __APPLE__ | ||||
| { | { | ||||
| /* We store some known macOS system paths and corresponding icons | /* We store some known macOS system paths and corresponding icons | ||||
| * and names in the FS_CATEGORY_OTHER (not displayed directly) category. */ | * and names in the FS_CATEGORY_OTHER (not displayed directly) category. */ | ||||
| fsmenu_insert_entry(fsmenu, FS_CATEGORY_OTHER, | fsmenu_insert_entry(fsmenu, FS_CATEGORY_OTHER, | ||||
| ▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | |||||
| NULL, kLSSharedFileListFavoriteItems, NULL); | NULL, kLSSharedFileListFavoriteItems, NULL); | ||||
| CFArrayRef pathesArray = LSSharedFileListCopySnapshot(list, &seed); | CFArrayRef pathesArray = LSSharedFileListCopySnapshot(list, &seed); | ||||
| CFIndex pathesCount = CFArrayGetCount(pathesArray); | CFIndex pathesCount = CFArrayGetCount(pathesArray); | ||||
| for (CFIndex i = 0; i < pathesCount; i++) { | for (CFIndex i = 0; i < pathesCount; i++) { | ||||
| LSSharedFileListItemRef itemRef = (LSSharedFileListItemRef)CFArrayGetValueAtIndex( | LSSharedFileListItemRef itemRef = (LSSharedFileListItemRef)CFArrayGetValueAtIndex( | ||||
| pathesArray, i); | pathesArray, i); | ||||
| CFURLRef cfURL = NULL; | CFURLRef cfURL = NULL; | ||||
| Context not available. | |||||
brecht: Always use {} | |||||
Always use {}