]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/mimetype.cpp
capture mouse to be notified when it exists the popup rect (bug 1372228)
[wxWidgets.git] / src / os2 / mimetype.cpp
index 215229c4a34dff75467a8cfb22116d28db9a3650..69cec9db89ceb3007d522783d54d89670e0feb26 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        common/mimetype.cpp
+// Name:        src/os2/mimetype.cpp
 // Purpose:     classes and functions to manage MIME types
 // Author:      David Webster
 // Modified by:
@@ -9,28 +9,32 @@
 // Licence:     wxWindows licence (part of wxExtra library)
 /////////////////////////////////////////////////////////////////////////////
 
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#if wxUSE_MIMETYPE
+
+#include "wx/os2/mimetype.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/dynarray.h"
+    #include "wx/string.h"
+    #include "wx/intl.h"
+    #include "wx/log.h"
+    #if wxUSE_GUI
+        #include "wx/icon.h"
+    #endif
+#endif //WX_PRECOMP
+
 #define INCL_DOS
 #define INCL_GPI
 #define INCL_WIN
 #include <os2.h>
 
-#ifndef WX_PRECOMP
-  #include "wx/string.h"
-  #if wxUSE_GUI
-    #include "wx/icon.h"
-  #endif
-#endif //WX_PRECOMP
-
-#include "wx/log.h"
 #include "wx/file.h"
-#include "wx/intl.h"
-#include "wx/dynarray.h"
+#include "wx/iconloc.h"
 #include "wx/confbase.h"
 
-#if wxUSE_FILE
-
-#include "wx/os2/mimetype.h"
-
 // other standard headers
 #include <ctype.h>
 
@@ -61,7 +65,7 @@ class WXDLLEXPORT wxIcon;
 // location, uses it, so it isn't likely to change
 static const wxChar *MIME_DATABASE_KEY = wxT("MIME\\Database\\Content Type\\");
 
-wxString wxFileTypeImpl::GetCommand(const wxChar *verb) const
+wxString wxFileTypeImpl::GetCommand(const wxChar *WXUNUSED(verb)) const
 {
 // TODO: OS/2 doesn't have a registry but uses Prf
 /*
@@ -93,7 +97,7 @@ wxString wxFileTypeImpl::GetCommand(const wxChar *verb) const
             // NB: we don't make any attempt to verify that the string is valid,
             //     i.e. doesn't contain %2, or second %1 or .... But we do make
             //     sure that we return a string with _exactly_ one '%s'!
-            bool foundFilename = FALSE;
+            bool foundFilename = false;
             size_t len = command.Len();
             for ( size_t n = 0; (n < len) && !foundFilename; n++ ) {
                 if ( command[n] == wxT('%') &&
@@ -103,7 +107,7 @@ wxString wxFileTypeImpl::GetCommand(const wxChar *verb) const
                     // replace it with '%s'
                     command[n + 1] = wxT('s');
 
-                    foundFilename = TRUE;
+                    foundFilename = true;
                 }
             }
 
@@ -164,7 +168,7 @@ wxFileTypeImpl::GetOpenCommand(wxString *openCmd,
 
     *openCmd = wxFileType::ExpandCommand(cmd, params);
 
-    return !openCmd->IsEmpty();
+    return !openCmd->empty();
 }
 
 bool
@@ -182,7 +186,7 @@ wxFileTypeImpl::GetPrintCommand(wxString *printCmd,
 
     *printCmd = wxFileType::ExpandCommand(cmd, params);
 
-    return !printCmd->IsEmpty();
+    return !printCmd->empty();
 }
 
 // TODO this function is half implemented
@@ -191,19 +195,19 @@ bool wxFileTypeImpl::GetExtensions(wxArrayString& extensions)
     if ( m_info ) {
         extensions = m_info->GetExtensions();
 
-        return TRUE;
+        return true;
     }
-    else if ( m_ext.IsEmpty() ) {
+    else if ( m_ext.empty() ) {
         // the only way to get the list of extensions from the file type is to
         // scan through all extensions in the registry - too slow...
-        return FALSE;
+        return false;
     }
     else {
         extensions.Empty();
         extensions.Add(m_ext);
 
         // it's a lie too, we don't return _all_ extensions...
-        return TRUE;
+        return true;
     }
 }
 
@@ -213,7 +217,7 @@ bool wxFileTypeImpl::GetMimeType(wxString *mimeType) const
         // we already have it
         *mimeType = m_info->GetMimeType();
 
-        return TRUE;
+        return true;
     }
 
     // suppress possible error messages
@@ -222,13 +226,13 @@ bool wxFileTypeImpl::GetMimeType(wxString *mimeType) const
 /*
     wxRegKey key(wxRegKey::HKCR, wxT(".") + m_ext);
     if ( key.Open() && key.QueryValue(wxT("Content Type"), *mimeType) ) {
-        return TRUE;
+        return true;
     }
     else {
-        return FALSE;
+        return false;
     }
 */
-  return FALSE;
+    return false;
 }
 
 bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const
@@ -239,18 +243,17 @@ bool wxFileTypeImpl::GetMimeTypes(wxArrayString& mimeTypes) const
     {
         mimeTypes.Clear();
         mimeTypes.Add(s);
-        return TRUE;
+        return true;
     }
     else
-        return FALSE;
+        return false;
 }
 
-bool wxFileTypeImpl::GetIcon(wxIcon *icon, wxString* psCommand, int* pnIndex) const
+bool wxFileTypeImpl::GetIcon(wxIconLocation *WXUNUSED(iconLoc)) const
 {
-#if wxUSE_GUI
     if ( m_info ) {
         // we don't have icons in the fallback resources
-        return FALSE;
+        return false;
     }
 
     wxString strIconKey;
@@ -265,7 +268,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 '%'
@@ -274,33 +277,25 @@ bool wxFileTypeImpl::GetIcon(wxIcon *icon, wxString* psCommand, int* pnIndex) co
 
             // index may be omitted, in which case BeforeLast(',') is empty and
             // AfterLast(',') is the whole string
-            if ( strFullPath.IsEmpty() ) {
+            if ( strFullPath.empty() ) {
                 strFullPath = strIndex;
                 strIndex = wxT("0");
             }
 
-            wxString strExpPath = wxExpandEnvVars(strFullPath);
-            int nIndex = wxAtoi(strIndex);
-
-            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;
+            if ( iconLoc )
+            {
+                iconLoc->SetFileName(wxExpandEnvVars(strFullPath));
 
-                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;
+    return false;
 }
 
 bool wxFileTypeImpl::GetDescription(wxString *desc) const
@@ -309,7 +304,7 @@ bool wxFileTypeImpl::GetDescription(wxString *desc) const
         // we already have it
         *desc = m_info->GetDescription();
 
-        return TRUE;
+        return true;
     }
 
     // suppress possible error messages
@@ -321,11 +316,11 @@ bool wxFileTypeImpl::GetDescription(wxString *desc) const
     if ( key.Open() ) {
         // it's the default value of the key
         if ( key.QueryValue(wxT(""), *desc) ) {
-            return TRUE;
+            return true;
         }
     }
 */
-    return FALSE;
+    return false;
 }
 
 // extension -> file type
@@ -342,7 +337,7 @@ wxMimeTypesManagerImpl::GetFileTypeFromExtension(const wxString& ext)
     // suppress possible error messages
     wxLogNull nolog;
 
-    bool knownExtension = FALSE;
+    bool knownExtension = false;
 
     wxString strFileType;
 // TODO:
@@ -361,7 +356,7 @@ wxMimeTypesManagerImpl::GetFileTypeFromExtension(const wxString& ext)
             // this extension doesn't have a filetype, but it's known to the
             // system and may be has some other useful keys (open command or
             // content-type), so still return a file type object for it
-            knownExtension = TRUE;
+            knownExtension = true;
         }
     }
 */
@@ -430,7 +425,7 @@ wxMimeTypesManagerImpl::GetFileTypeFromMimeType(const wxString& mimeType)
     return NULL;
 }
 
-size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes)
+size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& WXUNUSED(mimetypes))
 {
     // enumerate all keys under MIME_DATABASE_KEY
 // TODO:
@@ -452,4 +447,4 @@ size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes)
   return 0;
 }
 
-#endif //wxUSE_FILE
+#endif //wxUSE_MIMETYPE