X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4e115ed2c71e11ea37c83ed44f3553523ec16560..7ea1c917764fb2588fe1aadc75c49ba300f8cb2f:/src/generic/dirctrlg.cpp diff --git a/src/generic/dirctrlg.cpp b/src/generic/dirctrlg.cpp index 1d77415609..b631aa69cd 100644 --- a/src/generic/dirctrlg.cpp +++ b/src/generic/dirctrlg.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: dirctrlg.cpp +// Name: src/generic/dirctrlg.cpp // Purpose: wxGenericDirCtrl // Author: Harm van der Heijden, Robert Roebling, Julian Smart // Modified by: @@ -117,6 +117,15 @@ size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayI path.Printf(wxT("%c:\\"), driveBuffer[i]); name.Printf(wxT("%c:"), driveBuffer[i]); +#if !defined(__WXWINCE__) + wxChar pname[52]; // FIXME: why 52 and not MAX_PATH or whatever? + if ( GetVolumeInformation(path, pname, WXSIZEOF(pname), + NULL, NULL, NULL, NULL, 0) ) + { + name << _T(' ') << pname; + } +#endif // __WXWINCE__ + int imageId; int driveType = ::GetDriveType(path); switch (driveType) @@ -166,7 +175,17 @@ size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayI // Note: If _filesys is unsupported by some compilers, // we can always replace it by DosQueryFSAttach char filesysname[20]; +#ifdef __WATCOMC__ + ULONG cbBuffer = sizeof(filesysname); + PFSQBUFFER2 pfsqBuffer = (PFSQBUFFER2)filesysname; + APIRET rc = ::DosQueryFSAttach(name.fn_str(),0,FSAIL_QUERYNAME,pfsqBuffer,&cbBuffer); + if (rc != NO_ERROR) + { + filesysname[0] = '\0'; + } +#else _filesys(name.fn_str(), filesysname, sizeof(filesysname)); +#endif /* FAT, LAN, HPFS, CDFS, NFS */ int imageId; if (path == wxT("A:\\") || path == wxT("B:\\")) @@ -257,7 +276,9 @@ size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayI bool wxIsDriveAvailable(const wxString& dirName) { // FIXME_MGL - this method leads to hang up under Watcom for some reason -#ifndef __WATCOMC__ +#ifdef __WATCOMC__ + wxUnusedVar(dirName); +#else if ( dirName.Len() == 3 && dirName[1u] == wxT(':') ) { wxString dirNameLower(dirName.Lower()); @@ -1178,22 +1199,6 @@ void wxGenericDirCtrl::DoResize() wxSize filterSz ; if (m_filterListCtrl) { -#ifdef __WXMSW__ - // For some reason, this is required in order for the - // correct control height to always be returned, rather - // than the drop-down list height which is sometimes returned. - wxSize oldSize = m_filterListCtrl->GetSize(); - m_filterListCtrl->SetSize(wxDefaultCoord, - wxDefaultCoord, - oldSize.x+10, - wxDefaultCoord, - wxSIZE_USE_EXISTING); - m_filterListCtrl->SetSize(wxDefaultCoord, - wxDefaultCoord, - oldSize.x, - wxDefaultCoord, - wxSIZE_USE_EXISTING); -#endif filterSz = m_filterListCtrl->GetSize(); sz.y -= (filterSz.y + verticalSpacing); } @@ -1479,7 +1484,7 @@ wxImageList *wxFileIconsTable::GetSmallImageList() return m_smallImageList; } -#if wxUSE_MIMETYPE && wxUSE_IMAGE +#if wxUSE_MIMETYPE && wxUSE_IMAGE && (!defined(__WXMSW__) || wxUSE_WXDIB) // VS: we don't need this function w/o wxMimeTypesManager because we'll only have // one icon and we won't resize it @@ -1639,7 +1644,7 @@ int wxFileIconsTable::GetIconID(const wxString& extension, const wxString& mime) { m_smallImageList->Add(bmp); } -#if wxUSE_IMAGE +#if wxUSE_IMAGE && (!defined(__WXMSW__) || wxUSE_WXDIB) else { wxImage img = bmp.ConvertToImage();