]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/mimetype.cpp
small optimization in wxConfigPathChanger: don't change the path if it is already...
[wxWidgets.git] / src / os2 / mimetype.cpp
index 28ba45db1fb581d316b7a0b4b224a26050ee1506..eb5e585853b88b36dc7582551030562cf4017aee 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     01.21.00
 // RCS-ID:      $Id$
 // Copyright:   Adopted from msw port --(c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:     wxWindows license (part of wxExtra library)
+// Licence:     wxWindows licence (part of wxExtra library)
 /////////////////////////////////////////////////////////////////////////////
 
 #define INCL_DOS
 
 #include "wx/log.h"
 #include "wx/file.h"
+#include "wx/iconloc.h"
 #include "wx/intl.h"
 #include "wx/dynarray.h"
 #include "wx/confbase.h"
 
+#if wxUSE_MIMETYPE
+
 #include "wx/os2/mimetype.h"
 
 // other standard headers
@@ -229,9 +232,22 @@ bool wxFileTypeImpl::GetMimeType(wxString *mimeType) const
   return FALSE;
 }
 
-bool wxFileTypeImpl::GetIcon(wxIcon *icon) const
+bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const
+{
+    wxString s;
+
+    if (GetMimeType(&s))
+    {
+        mimeTypes.Clear();
+        mimeTypes.Add(s);
+        return TRUE;
+    }
+    else
+        return FALSE;
+}
+
+bool wxFileTypeImpl::GetIcon(wxIconLocation *iconLoc) const
 {
-#if wxUSE_GUI
     if ( m_info ) {
         // we don't have icons in the fallback resources
         return FALSE;
@@ -249,7 +265,7 @@ bool wxFileTypeImpl::GetIcon(wxIcon *icon) const
     if ( key.Open() ) {
         wxString strIcon;
         // it's the default value of the key
-        if ( key.QueryValue(wxT(""), strIcon) ) {
+        if ( key.QueryValue(wxEmptyString, strIcon) ) {
             // the format is the following: <full path to file>, <icon index>
             // NB: icon index may be negative as well as positive and the full
             //     path may contain the environment variables inside '%'
@@ -263,27 +279,19 @@ bool wxFileTypeImpl::GetIcon(wxIcon *icon) const
                 strIndex = wxT("0");
             }
 
-            wxString strExpPath = wxExpandEnvVars(strFullPath);
-            int nIndex = wxAtoi(strIndex);
+            if ( iconLoc )
+            {
+                iconLoc->SetFileName(wxExpandEnvVars(strFullPath));
 
-            HICON hIcon = ExtractIcon(GetModuleHandle(NULL), strExpPath, nIndex);
-            switch ( (int)hIcon ) {
-                case 0: // means no icons were found
-                case 1: // means no such file or it wasn't a DLL/EXE/OCX/ICO/...
-                    wxLogDebug(wxT("incorrect registry entry '%s': no such icon."),
-                               key.GetName().c_str());
-                    break;
-
-                default:
-                    icon->SetHICON((WXHICON)hIcon);
-                    return TRUE;
+                iconLoc->SetIndex(wxAtoi(strIndex));
             }
+
+            return TRUE;
         }
     }
 
     // no such file type or no value or incorrect icon entry
 */
-#endif // wxUSE_GUI
     return FALSE;
 }
 
@@ -436,3 +444,4 @@ size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes)
   return 0;
 }
 
+#endif //wxUSE_MIMETYPE