X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c06dde42fe5dc8c97d0a6dbf1d6e590b198e8fbb..5080e86f30478f61c5f638280f2d2ec2f4ff8b6a:/src/generic/dirctrlg.cpp diff --git a/src/generic/dirctrlg.cpp b/src/generic/dirctrlg.cpp index d792d8e4d2..7c88c16a7c 100644 --- a/src/generic/dirctrlg.cpp +++ b/src/generic/dirctrlg.cpp @@ -167,9 +167,19 @@ size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayI path.Printf(wxT("%c:\\"), 'A' + i); name.Printf(wxT("%c:"), 'A' + i); + // Note: If _filesys is unsupported by some compilers, + // we can always replace it by DosQueryFSAttach + char filesysname[20]; + _filesys(name.fn_str(), filesysname, sizeof(filesysname)); + /* FAT, LAN, HPFS, CDFS, NFS */ int imageId; if (path == wxT("A:\\") || path == wxT("B:\\")) imageId = wxFileIconsTable::floppy; + else if (!strcmp(filesysname, "CDFS")) + imageId = wxFileIconsTable::cdrom; + else if (!strcmp(filesysname, "LAN") || + !strcmp(filesysname, "NFS")) + imageId = wxFileIconsTable::drive; else imageId = wxFileIconsTable::drive; paths.Add(path); @@ -259,7 +269,7 @@ bool wxIsDriveAvailable(const wxString& dirName) // like it when MS-DOS app accesses empty floppy drive return (dirNameLower[0u] == wxT('a') || dirNameLower[0u] == wxT('b') || - wxPathExists(dirNameLower)); + wxDirExists(dirNameLower)); } else #endif @@ -268,10 +278,9 @@ bool wxIsDriveAvailable(const wxString& dirName) #elif defined(__WINDOWS__) || defined(__OS2__) -int setdrive(int drive) +int setdrive(int WXUNUSED_IN_WINCE(drive)) { #ifdef __WXWINCE__ - wxUnusedVar(drive); return 0; #elif defined(__GNUWIN32__) && \ (defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 1) @@ -301,10 +310,9 @@ int setdrive(int drive) #endif // !GNUWIN32 } -bool wxIsDriveAvailable(const wxString& dirName) +bool wxIsDriveAvailable(const wxString& WXUNUSED_IN_WINCE(dirName)) { #ifdef __WXWINCE__ - wxUnusedVar(dirName); return false; #else #ifdef __WIN32__ @@ -318,7 +326,7 @@ bool wxIsDriveAvailable(const wxString& dirName) { wxString dirNameLower(dirName.Lower()); #if defined(__GNUWIN32__) && !(defined(__MINGW32_MAJOR_VERSION) && __MINGW32_MAJOR_VERSION >= 1) - success = wxPathExists(dirNameLower); + success = wxDirExists(dirNameLower); #else #if defined(__OS2__) // Avoid changing to drive since no media may be inserted. @@ -524,7 +532,13 @@ bool wxGenericDirCtrl::Create(wxWindow *parent, Init(); - long treeStyle = wxTR_HAS_BUTTONS | wxTR_HIDE_ROOT; + long treeStyle = wxTR_HAS_BUTTONS; + + // On Windows CE, if you hide the root, you get a crash when + // attempting to access data for children of the root item. +#ifndef __WXWINCE__ + treeStyle |= wxTR_HIDE_ROOT; +#endif #ifdef __WXGTK20__ treeStyle |= wxTR_NO_LINES; @@ -771,7 +785,7 @@ void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId) wxString dirName(data->m_path); -#if defined(__WINDOWS__) || defined(__DOS__) || defined(__OS2__) +#if (defined(__WINDOWS__) && !defined(__WXWINCE__)) || defined(__DOS__) || defined(__OS2__) // Check if this is a root directory and if so, // whether the drive is avaiable. if (!wxIsDriveAvailable(dirName)) @@ -1289,32 +1303,70 @@ void wxDirFilterListCtrl::FillFilterList(const wxString& filter, int defaultFilt // ---------------------------------------------------------------------------- #ifndef __WXGTK24__ -/* Computer */ +/* Computer (c) Julian Smart */ static const char * file_icons_tbl_computer_xpm[] = { -"16 16 7 1", -" s None c None", -". c #808080", -"X c #c0c0c0", -"o c Black", -"O c Gray100", -"+ c #008080", -"@ c Blue", -" ........... ", -" .XXXXXXXXXX.o", -" .OOOOOOOOO..o", -" .OoooooooX..o", -" .Oo+...@+X..o", -" .Oo+XXX.+X..o", -" .Oo+....+X..o", -" .Oo++++++X..o", -" .OXXXXXXXX.oo", -" ..........o.o", -" ...........Xo", -" .XXXXXXXXXX.o", -" .o.o.o.o.o...o", -" .oXoXoXoXoXo.o ", -".XOXXXXXXXXX.o ", -"............o "}; +/* columns rows colors chars-per-pixel */ +"16 16 42 1", +"r c #4E7FD0", +"$ c #7198D9", +"; c #DCE6F6", +"q c #FFFFFF", +"u c #4A7CCE", +"# c #779DDB", +"w c #95B2E3", +"y c #7FA2DD", +"f c #3263B4", +"= c #EAF0FA", +"< c #B1C7EB", +"% c #6992D7", +"9 c #D9E4F5", +"o c #9BB7E5", +"6 c #F7F9FD", +", c #BED0EE", +"3 c #F0F5FC", +"1 c #A8C0E8", +" c None", +"0 c #FDFEFF", +"4 c #C4D5F0", +"@ c #81A4DD", +"e c #4377CD", +"- c #E2EAF8", +"i c #9FB9E5", +"> c #CCDAF2", +"+ c #89A9DF", +"s c #5584D1", +"t c #5D89D3", +": c #D2DFF4", +"5 c #FAFCFE", +"2 c #F5F8FD", +"8 c #DFE8F7", +"& c #5E8AD4", +"X c #638ED5", +"a c #CEDCF2", +"p c #90AFE2", +"d c #2F5DA9", +"* c #5282D0", +"7 c #E5EDF9", +". c #A2BCE6", +"O c #8CACE0", +/* pixels */ +" ", +" .XXXXXXXXXXX ", +" oXO++@#$%&*X ", +" oX=-;:>,<1%X ", +" oX23=-;:4,$X ", +" oX5633789:@X ", +" oX05623=78+X ", +" oXqq05623=OX ", +" oX,,,,,<<<$X ", +" wXXXXXXXXXXe ", +" XrtX%$$y@+O,, ", +" uyiiiiiiiii@< ", +" ouiiiiiiiiiip