X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2cfcf22d47b7d9cf3c85edfe498c5f23a18a9a19..670f9935630beb2123a5ca62894ae92a3f0efa4f:/src/common/mimecmn.cpp?ds=sidebyside diff --git a/src/common/mimecmn.cpp b/src/common/mimecmn.cpp index 4afd332148..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 @@ -453,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 @@ -461,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,