X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4115960d4b88375610bd0a8990a5a522c9fbe003..a9e8bf2dd9bccb38eb39fba955125aaf23d6f500:/src/common/mimecmn.cpp diff --git a/src/common/mimecmn.cpp b/src/common/mimecmn.cpp index cdf3108be8..27d4b8d429 100644 --- a/src/common/mimecmn.cpp +++ b/src/common/mimecmn.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: common/mimecmn.cpp +// Name: src/common/mimecmn.cpp // Purpose: classes and functions to manage MIME types // Author: Vadim Zeitlin // Modified by: @@ -27,20 +27,20 @@ #if wxUSE_MIMETYPE +#include "wx/mimetype.h" + #ifndef WX_PRECOMP - #include "wx/string.h" + #include "wx/dynarray.h" + #include "wx/string.h" + #include "wx/intl.h" + #include "wx/log.h" #endif //WX_PRECOMP #include "wx/module.h" -#include "wx/log.h" #include "wx/file.h" #include "wx/iconloc.h" -#include "wx/intl.h" -#include "wx/dynarray.h" #include "wx/confbase.h" -#include "wx/mimetype.h" - // other standard headers #include @@ -81,7 +81,17 @@ wxFileTypeInfo::wxFileTypeInfo(const wxChar *mimeType, for ( ;; ) { + // icc gives this warning in its own va_arg() macro, argh +#ifdef __INTELC__ + #pragma warning(push) + #pragma warning(disable: 1684) +#endif + const wxChar *ext = va_arg(argptr, const wxChar *); + +#ifdef __INTELC__ + #pragma warning(pop) +#endif if ( !ext ) { // NULL terminates the list @@ -443,6 +453,34 @@ bool wxFileType::SetDefaultIcon(const wxString& cmd, int index) #endif } +//---------------------------------------------------------------------------- +// wxMimeTypesManagerFactory +//---------------------------------------------------------------------------- + +wxMimeTypesManagerFactory *wxMimeTypesManagerFactory::m_factory = NULL; + +/* static */ +void wxMimeTypesManagerFactory::SetFactory( wxMimeTypesManagerFactory *factory ) +{ + if (wxMimeTypesManagerFactory::m_factory) + delete wxMimeTypesManagerFactory::m_factory; + + wxMimeTypesManagerFactory::m_factory = factory; +} + +/* static */ +wxMimeTypesManagerFactory *wxMimeTypesManagerFactory::GetFactory() +{ + if (!wxMimeTypesManagerFactory::m_factory) + wxMimeTypesManagerFactory::m_factory = new wxMimeTypesManagerFactory; + + return wxMimeTypesManagerFactory::m_factory; +} + +wxMimeTypesManagerImpl *wxMimeTypesManagerFactory::CreateMimeTypesManagerImpl() +{ + return new wxMimeTypesManagerImpl; +} // ---------------------------------------------------------------------------- // wxMimeTypesManager @@ -451,7 +489,7 @@ bool wxFileType::SetDefaultIcon(const wxString& cmd, int index) void wxMimeTypesManager::EnsureImpl() { if ( !m_impl ) - m_impl = new wxMimeTypesManagerImpl; + m_impl = wxMimeTypesManagerFactory::GetFactory()->CreateMimeTypesManagerImpl(); } bool wxMimeTypesManager::IsOfType(const wxString& mimeType,