]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/volume.cpp
adding CoreText
[wxWidgets.git] / src / msw / volume.cpp
index 35c487da019d23840a7ff8dff470e3d009cd9a0f..06c454ebc9677b964cb392e5460618afcf96fb5e 100644 (file)
@@ -32,6 +32,7 @@
         #include "wx/icon.h"
     #endif
     #include "wx/intl.h"
+    #include "wx/log.h"
     #include "wx/hashmap.h"
     #include "wx/filefn.h"
 #endif // WX_PRECOMP
@@ -40,6 +41,9 @@
 #include "wx/dynlib.h"
 #include "wx/arrimpl.cpp"
 
+// some compilers require including <windows.h> before <shellapi.h> so do it
+// even if this is not necessary with most of them
+#include "wx/msw/wrapwin.h"
 #include <shellapi.h>
 #include <shlobj.h>
 #include "wx/msw/missing.h"
@@ -284,7 +288,7 @@ static void BuildListFromNN(wxArrayString& list, NETRESOURCE* pResSrc,
                         // The filter function will not know mounted from unmounted, and neither do we unless
                         // we are iterating using RESOURCE_CONNECTED, in which case they all are mounted.
                         // Volumes on disconnected servers, however, will correctly show as unmounted.
-                        FilteredAdd(list, filename.wx_str(), flagsSet, flagsUnset&~wxFS_VOL_MOUNTED);
+                        FilteredAdd(list, filename.t_str(), flagsSet, flagsUnset&~wxFS_VOL_MOUNTED);
                         if (scope == RESOURCE_GLOBALNET)
                             s_fileInfo[filename].m_flags &= ~wxFS_VOL_MOUNTED;
                     }
@@ -498,16 +502,17 @@ bool wxFSVolumeBase::Create(const wxString& name)
 
     // Display name.
     SHFILEINFO fi;
-    long rc = SHGetFileInfo(m_volName.wx_str(), 0, &fi, sizeof(fi), SHGFI_DISPLAYNAME);
+    long rc = SHGetFileInfo(m_volName.t_str(), 0, &fi, sizeof(fi), SHGFI_DISPLAYNAME);
     if (!rc)
     {
         wxLogError(_("Cannot read typename from '%s'!"), m_volName.c_str());
-        return m_isOk;
+        return false;
     }
     m_dispName = fi.szDisplayName;
 
     // all tests passed.
-    return m_isOk = true;
+    m_isOk = true;
+    return true;
 } // Create
 
 //=============================================================================
@@ -580,6 +585,7 @@ wxIcon wxFSVolume::GetIcon(wxFSIconType type) const
     wxCHECK_MSG( type >= 0 && (size_t)type < m_icons.GetCount(), wxNullIcon,
                  wxT("wxFSIconType::GetIcon(): invalid icon index") );
 
+#ifdef __WXMSW__
     // Load on demand.
     if (m_icons[type].IsNull())
     {
@@ -608,7 +614,7 @@ wxIcon wxFSVolume::GetIcon(wxFSIconType type) const
         }
 
         SHFILEINFO fi;
-        long rc = SHGetFileInfo(m_volName.wx_str(), 0, &fi, sizeof(fi), flags);
+        long rc = SHGetFileInfo(m_volName.t_str(), 0, &fi, sizeof(fi), flags);
         m_icons[type].SetHICON((WXHICON)fi.hIcon);
         if (!rc || !fi.hIcon)
         {
@@ -617,6 +623,10 @@ wxIcon wxFSVolume::GetIcon(wxFSIconType type) const
     }
 
     return m_icons[type];
+#else
+    wxFAIL_MSG(wxS("Can't convert HICON to wxIcon in this port."));
+    return wxNullIcon;
+#endif
 } // GetIcon
 
 #endif // wxUSE_GUI