X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/da0766ab2ae2357cd4dc111415731ee85aa45984..a380af4dbff98b71780c32772625f1d974522e4e:/src/common/mimecmn.cpp diff --git a/src/common/mimecmn.cpp b/src/common/mimecmn.cpp index ec98e8097c..e04e17bc47 100644 --- a/src/common/mimecmn.cpp +++ b/src/common/mimecmn.cpp @@ -31,16 +31,11 @@ #if wxUSE_MIMETYPE -#ifndef WX_PRECOMP - #include "wx/module.h" -#endif -// this one is needed for MSVC5 -#include "wx/module.h" - #ifndef WX_PRECOMP #include "wx/string.h" #endif //WX_PRECOMP +#include "wx/module.h" #include "wx/log.h" #include "wx/file.h" #include "wx/iconloc.h" @@ -58,8 +53,9 @@ #include "wx/msw/mimetype.h" #elif defined(__WXMAC__) #include "wx/mac/mimetype.h" -#elif defined(__WXPM__) +#elif defined(__WXPM__) || defined (__EMX__) #include "wx/os2/mimetype.h" + #undef __UNIX__ #else // Unix #include "wx/unix/mimetype.h" #endif @@ -285,6 +281,25 @@ bool wxFileType::GetIcon(wxIconLocation *iconLoc) const return m_impl->GetIcon(iconLoc); } +bool +wxFileType::GetIcon(wxIconLocation *iconloc, + const MessageParameters& params) const +{ + if ( !GetIcon(iconloc) ) + { + return false; + } + + // we may have "%s" in the icon location string, at least under Windows, so + // expand this + if ( iconloc ) + { + iconloc->SetFileName(ExpandCommand(iconloc->GetFileName(), params)); + } + + return true; +} + bool wxFileType::GetDescription(wxString *desc) const { wxCHECK_MSG( desc, FALSE, _T("invalid parameter in GetDescription") ); @@ -387,7 +402,7 @@ bool wxFileType::Unassociate() { #if defined(__WXMSW__) return m_impl->Unassociate(); -#elif defined(__UNIX__) && !defined(__WXPM__) +#elif defined(__UNIX__) return m_impl->Unassociate(this); #else wxFAIL_MSG( _T("not implemented") ); // TODO @@ -473,7 +488,7 @@ wxMimeTypesManager::~wxMimeTypesManager() bool wxMimeTypesManager::Unassociate(wxFileType *ft) { -#if defined(__UNIX__) && !defined(__WXPM__) && !defined(__CYGWIN__) && !defined(__WINE__) +#if defined(__UNIX__) && !defined(__CYGWIN__) && !defined(__WINE__) return m_impl->Unassociate(ft); #else return ft->Unassociate(); @@ -486,7 +501,7 @@ wxMimeTypesManager::Associate(const wxFileTypeInfo& ftInfo) { EnsureImpl(); -#if defined(__WXMSW__) || (defined(__UNIX__) && !defined(__WXPM__)) +#if defined(__WXMSW__) || defined(__UNIX__) return m_impl->Associate(ftInfo); #else // other platforms wxFAIL_MSG( _T("not implemented") ); // TODO @@ -524,11 +539,11 @@ wxMimeTypesManager::GetFileTypeFromMimeType(const wxString& mimeType) EnsureImpl(); wxFileType *ft = m_impl->GetFileTypeFromMimeType(mimeType); - if ( ft ) { + if ( !ft ) { // check the fallbacks // - // TODO linear search is potentially slow, perhaps we should use a sorted - // array? + // TODO linear search is potentially slow, perhaps we should use a + // sorted array? size_t count = m_fallbacks.GetCount(); for ( size_t n = 0; n < count; n++ ) { if ( wxMimeTypesManager::IsOfType(mimeType, @@ -583,7 +598,7 @@ size_t wxMimeTypesManager::EnumAllFileTypes(wxArrayString& mimetypes) void wxMimeTypesManager::Initialize(int mcapStyle, const wxString& sExtraDir) { -#if defined(__UNIX__) && !defined(__WXPM__) && !defined(__CYGWIN__) && !defined(__WINE__) +#if defined(__UNIX__) && !defined(__CYGWIN__) && !defined(__WINE__) EnsureImpl(); m_impl->Initialize(mcapStyle, sExtraDir); @@ -596,7 +611,7 @@ void wxMimeTypesManager::Initialize(int mcapStyle, // and this function clears all the data from the manager void wxMimeTypesManager::ClearData() { -#if defined(__UNIX__) && !defined(__WXPM__) && !defined(__CYGWIN__) && !defined(__WINE__) +#if defined(__UNIX__) && !defined(__CYGWIN__) && !defined(__WINE__) EnsureImpl(); m_impl->ClearData();