X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1cd04aa2e1c4ec7ff9425cb8114211c7885dcd22..d3e0ffbcd01cd6172234f9dc14f870ed6e1125cd:/src/os2/mimetype.cpp diff --git a/src/os2/mimetype.cpp b/src/os2/mimetype.cpp index bee950fe6d..eb5e585853 100644 --- a/src/os2/mimetype.cpp +++ b/src/os2/mimetype.cpp @@ -6,7 +6,7 @@ // Created: 01.21.00 // RCS-ID: $Id$ // Copyright: Adopted from msw port --(c) 1998 Vadim Zeitlin -// Licence: wxWindows license (part of wxExtra library) +// Licence: wxWindows licence (part of wxExtra library) ///////////////////////////////////////////////////////////////////////////// #define INCL_DOS @@ -23,10 +23,13 @@ #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: , // 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; } @@ -318,7 +326,7 @@ wxMimeTypesManagerImpl::GetFileTypeFromExtension(const wxString& ext) { // add the leading point if necessary wxString str; - if ( ext[0u] != wxT('.') ) { + if ( ext[(size_t) 0] != wxT('.') ) { str = wxT('.'); } str << ext; @@ -436,3 +444,4 @@ size_t wxMimeTypesManagerImpl::EnumAllFileTypes(wxArrayString& mimetypes) return 0; } +#endif //wxUSE_MIMETYPE