From a1541f5f05a4f8f59b1a83959c099a1b0a660973 Mon Sep 17 00:00:00 2001 From: Stefan Neis Date: Sun, 24 Aug 2003 15:56:19 +0000 Subject: [PATCH] Use wxIconLocation instead of wxIcon (as in the other ports). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23174 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/os2/mimetype.h | 21 ++++++++++++++++----- src/os2/mimetype.cpp | 30 +++++++++++------------------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/include/wx/os2/mimetype.h b/include/wx/os2/mimetype.h index ac2f55bc55..475fb05288 100644 --- a/include/wx/os2/mimetype.h +++ b/include/wx/os2/mimetype.h @@ -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: @@ -12,12 +12,22 @@ #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 diff --git a/src/os2/mimetype.cpp b/src/os2/mimetype.cpp index 215229c4a3..eb5e585853 100644 --- a/src/os2/mimetype.cpp +++ b/src/os2/mimetype.cpp @@ -23,11 +23,12 @@ #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: , // 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 -- 2.45.2