free wxDCFactory::m_factory; also renamed SetDCFactory() to just Set()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-11-30 21:11:00 +00:00
parent f087550131
commit f2498c4e33
2 changed files with 32 additions and 20 deletions

View File

@@ -129,7 +129,7 @@ public:
virtual wxDCImpl* CreatePrinterDC( wxPrinterDC *owner, const wxPrintData &data ) = 0; virtual wxDCImpl* CreatePrinterDC( wxPrinterDC *owner, const wxPrintData &data ) = 0;
#endif #endif
static void SetDCFactory( wxDCFactory *factory ); static void Set(wxDCFactory *factory);
static wxDCFactory *Get(); static wxDCFactory *Get();
private: private:

View File

@@ -33,30 +33,31 @@
#ifndef WX_PRECOMP #ifndef WX_PRECOMP
#include "wx/math.h" #include "wx/math.h"
#include "wx/module.h"
#endif #endif
#ifdef __WXMSW__ #ifdef __WXMSW__
#include "wx/msw/dcclient.h" #include "wx/msw/dcclient.h"
#include "wx/msw/dcmemory.h" #include "wx/msw/dcmemory.h"
#include "wx/msw/dcscreen.h" #include "wx/msw/dcscreen.h"
#endif #endif
#ifdef __WXGTK__ #ifdef __WXGTK__
#include "wx/gtk/dcclient.h" #include "wx/gtk/dcclient.h"
#include "wx/gtk/dcmemory.h" #include "wx/gtk/dcmemory.h"
#include "wx/gtk/dcscreen.h" #include "wx/gtk/dcscreen.h"
#endif #endif
#ifdef __WXMAC__ #ifdef __WXMAC__
#include "wx/mac/dcclient.h" #include "wx/mac/dcclient.h"
#include "wx/mac/dcmemory.h" #include "wx/mac/dcmemory.h"
#include "wx/mac/dcscreen.h" #include "wx/mac/dcscreen.h"
#endif #endif
#ifdef __WXX11__ #ifdef __WXX11__
#include "wx/x11/dcclient.h" #include "wx/x11/dcclient.h"
#include "wx/x11/dcmemory.h" #include "wx/x11/dcmemory.h"
#include "wx/x11/dcscreen.h" #include "wx/x11/dcscreen.h"
#endif #endif
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@@ -65,22 +66,33 @@
wxDCFactory *wxDCFactory::m_factory = NULL; wxDCFactory *wxDCFactory::m_factory = NULL;
void wxDCFactory::SetDCFactory( wxDCFactory *factory ) void wxDCFactory::Set(wxDCFactory *factory)
{ {
if (wxDCFactory::m_factory) delete m_factory;
delete wxDCFactory::m_factory;
wxDCFactory::m_factory = factory; m_factory = factory;
} }
wxDCFactory *wxDCFactory::Get() wxDCFactory *wxDCFactory::Get()
{ {
if (!wxDCFactory::m_factory) if ( !m_factory )
wxDCFactory::m_factory = new wxNativeDCFactory; m_factory = new wxNativeDCFactory;
return wxDCFactory::m_factory; return m_factory;
} }
class wxDCFactoryCleanupModule : public wxModule
{
public:
virtual bool OnInit() { return true; }
virtual void OnExit() { wxDCFactory::Set(NULL); }
private:
DECLARE_DYNAMIC_CLASS(wxDCFactoryCleanupModule)
};
IMPLEMENT_DYNAMIC_CLASS(wxDCFactoryCleanupModule, wxModule)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxNativeDCFactory // wxNativeDCFactory
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------