* Added a list of OS X volumes to the file selector bookmarks pane, consistent with the drive letters on Windows. Currently this list only gets refreshed on Blender startup, hopefully this can be worked on but for now at least it's better than having to manually navigate to /Volumes/...

http://mke3.net/blender/devel/2.5/fileselect_volumes.png
This commit is contained in:
2009-05-02 03:09:40 +00:00
parent 792449f8f0
commit 76cedc4b9a
2 changed files with 33 additions and 3 deletions

View File

@@ -570,10 +570,13 @@ static void file_draw_fsmenu_category(const bContext *C, ARegion *ar, FSMenuCate
BLI_strncpy(bookmark, fname, FILE_MAX);
sl = strlen(bookmark)-1;
while (bookmark[sl] == '\\' || bookmark[sl] == '/') {
bookmark[sl] = '\0';
sl--;
if (sl > 1) {
while (bookmark[sl] == '\\' || bookmark[sl] == '/') {
bookmark[sl] = '\0';
sl--;
}
}
if (fsmenu_is_selected(fsmenu, category, i) ) {
UI_ThemeColor(TH_HILITE);
//uiSetRoundBox(15);

View File

@@ -47,6 +47,12 @@
#include "BLI_winstuff.h"
#endif
#ifdef __APPLE__
#include <CoreServices/CoreServices.h>
#include "BKE_utildefines.h"
#endif
#include "fsmenu.h" /* include ourselves */
@@ -303,6 +309,27 @@ void fsmenu_read_file(struct FSMenu* fsmenu, const char *filename)
}
#endif
#ifdef __APPLE__
{
OSErr err=noErr;
int i;
/* loop through all the OS X Volumes, and add them to the SYSTEM section */
for (i=1; err!=nsvErr; i++)
{
FSRef dir;
unsigned char path[FILE_MAXDIR+FILE_MAXFILE];
err = FSGetVolumeInfo(kFSInvalidVolumeRefNum, i, NULL, kFSVolInfoNone, NULL, NULL, &dir);
if (err != noErr)
continue;
FSRefMakePath(&dir, path, FILE_MAXDIR+FILE_MAXFILE);
fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)path, 1, 0);
}
}
#endif
fp = fopen(filename, "r");
if (!fp) return;