X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7a893a3152a6ac676b0409320daef188a7be1b7b..777f37e0ccea2836804085fc7d0f5d9666a787f9:/src/common/mimecmn.cpp diff --git a/src/common/mimecmn.cpp b/src/common/mimecmn.cpp index 3ac318ce0b..104285eac5 100644 --- a/src/common/mimecmn.cpp +++ b/src/common/mimecmn.cpp @@ -18,10 +18,6 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "mimetypebase.h" -#endif - // for compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -85,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 @@ -114,7 +120,7 @@ wxFileTypeInfo::wxFileTypeInfo(const wxArrayString& sArray) } #include "wx/arrimpl.cpp" -WX_DEFINE_OBJARRAY(wxArrayFileTypeInfo); +WX_DEFINE_OBJARRAY(wxArrayFileTypeInfo) // ============================================================================ // implementation of the wrapper classes @@ -447,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 @@ -455,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,