]> git.saurik.com Git - wxWidgets.git/commitdiff
Use wxIconLocation instead of wxIcon (as in the other ports).
authorStefan Neis <Stefan.Neis@t-online.de>
Sun, 24 Aug 2003 15:56:19 +0000 (15:56 +0000)
committerStefan Neis <Stefan.Neis@t-online.de>
Sun, 24 Aug 2003 15:56:19 +0000 (15:56 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23174 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/os2/mimetype.h
src/os2/mimetype.cpp

index ac2f55bc5518ebc6eed85ac4ac634a4cad5e316f..475fb052882bc1273ea1937327d810245fe1d92a 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        wx/mimetype.h
+// Name:        wx/os2/mimetype.h
 // Purpose:     classes and functions to manage MIME types
 // Author:      David Webster
 // Modified by:
 #ifndef _MIMETYPE_IMPL_H
 #define _MIMETYPE_IMPL_H
 
+#ifdef    __GNUG__
+    #pragma interface "mimetype.h"
+#endif
+
 #include "wx/defs.h"
 
+#if wxUSE_MIMETYPE
+
 #include "wx/mimetype.h"
 
+// ----------------------------------------------------------------------------
+// wxFileTypeImpl is the OS/2 version of wxFileType, this is a private class
+// and is never used directly by the application
+// ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxFileTypeImpl
+class WXDLLIMPEXP_BASE wxFileTypeImpl
 {
 public:
     // ctor
@@ -40,7 +50,7 @@ public:
     bool GetExtensions(wxArrayString& extensions);
     bool GetMimeType(wxString *mimeType) const;
     bool GetMimeTypes(wxArrayString& mimeTypes) const;
-    bool GetIcon(wxIcon *icon, wxString *sCommand = NULL, int *iIndex = NULL) const;
+    bool GetIcon(wxIconLocation *iconLoc) const;
     bool GetDescription(wxString *desc) const;
     bool GetOpenCommand(wxString *openCmd,
                         const wxFileType::MessageParameters& params) const;
@@ -76,7 +86,7 @@ private:
 
 
 
-class WXDLLEXPORT wxMimeTypesManagerImpl
+class WXDLLIMPEXP_BASE wxMimeTypesManagerImpl
 {
 public:
     // nothing to do here, we don't load any data but just go and fetch it from
@@ -90,7 +100,7 @@ public:
 
     size_t EnumAllFileTypes(wxArrayString& mimetypes);
 
-    // these are NOPs under Windows
+    // these are NOPs under OS/2
     bool ReadMailcap(const wxString& filename, bool fallback = TRUE)
         { return TRUE; }
     bool ReadMimeTypes(const wxString& filename)
@@ -102,6 +112,7 @@ private:
     wxArrayFileTypeInfo m_fallbacks;
 };
 
+#endif // wxUSE_MIMETYPE
 
 #endif
   //_MIMETYPE_IMPL_H
index 215229c4a34dff75467a8cfb22116d28db9a3650..eb5e585853b88b36dc7582551030562cf4017aee 100644 (file)
 
 #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_FILE
+#if wxUSE_MIMETYPE
 
 #include "wx/os2/mimetype.h"
 
@@ -245,9 +246,8 @@ bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const
         return FALSE;
 }
 
-bool wxFileTypeImpl::GetIcon(wxIcon *icon, wxString* psCommand, int* pnIndex) const
+bool wxFileTypeImpl::GetIcon(wxIconLocation *iconLoc) const
 {
-#if wxUSE_GUI
     if ( m_info ) {
         // we don't have icons in the fallback resources
         return FALSE;
@@ -265,7 +265,7 @@ bool wxFileTypeImpl::GetIcon(wxIcon *icon, wxString* psCommand, int* pnIndex) co
     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 '%'
@@ -279,27 +279,19 @@ bool wxFileTypeImpl::GetIcon(wxIcon *icon, wxString* psCommand, int* pnIndex) co
                 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;
 }
 
@@ -452,4 +444,4 @@ size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes)
   return 0;
 }
 
-#endif //wxUSE_FILE
+#endif //wxUSE_MIMETYPE