From 73302af6dddd667af4ebec69c800bc9de106f28e Mon Sep 17 00:00:00 2001 From: David Elliott Date: Sat, 26 Mar 2005 07:10:52 +0000 Subject: [PATCH] Get rid of wxFontMapper in wxBase library. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/fontmap.h | 17 +++++++++-------- src/common/fmapbase.cpp | 10 +++++++--- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/include/wx/fontmap.h b/include/wx/fontmap.h index 0256128ad4..2dee4a244b 100644 --- a/include/wx/fontmap.h +++ b/include/wx/fontmap.h @@ -28,7 +28,7 @@ class WXDLLIMPEXP_BASE wxConfigBase; #endif // wxUSE_CONFIG -class WXDLLIMPEXP_BASE wxFontMapper; +class WXDLLIMPEXP_CORE wxFontMapper; #if wxUSE_GUI class WXDLLIMPEXP_CORE wxWindow; @@ -60,7 +60,14 @@ public: virtual ~wxFontMapperBase(); // return instance of the wxFontMapper singleton +#if wxUSE_GUI + // GUI code needs to know it's a wxFontMapper because there + // are additional methods in the subclass. static wxFontMapper *Get(); +#else + // wxBase code only cares that it's a wxFontMapperBase + static wxFontMapperBase *Get(); +#endif // set the singleton to 'mapper' instance and return previous one static wxFontMapper *Set(wxFontMapper *mapper); @@ -251,13 +258,7 @@ private: DECLARE_NO_COPY_CLASS(wxFontMapper) }; -#else // !wxUSE_GUI - -class WXDLLIMPEXP_BASE wxFontMapper : public wxFontMapperBase -{ -}; - -#endif // wxUSE_GUI/!wxUSE_GUI +#endif // wxUSE_GUI // ---------------------------------------------------------------------------- // global variables diff --git a/src/common/fmapbase.cpp b/src/common/fmapbase.cpp index b7107408bd..759c7541eb 100644 --- a/src/common/fmapbase.cpp +++ b/src/common/fmapbase.cpp @@ -199,7 +199,7 @@ class wxFontMapperModule : public wxModule public: wxFontMapperModule() : wxModule() { } virtual bool OnInit() { return true; } - virtual void OnExit() { delete wxFontMapper::Set(NULL); } + virtual void OnExit() { delete wxFontMapperBase::Set(NULL); } DECLARE_DYNAMIC_CLASS(wxFontMapperModule) }; @@ -234,7 +234,11 @@ wxFontMapperBase::~wxFontMapperBase() } /* static */ -wxFontMapper *wxFontMapperBase::Get() +// Declared as returning wxFontMapper when wxUSE_GUI=1. Unfortunately, it's +// only implemented in wxBase library. Note that if the last resort +// is taken and GUI code tries to treat it as a real wxFontMapper +// then you'd be in trouble. +wxFontMapperBase *wxFontMapperBase::Get() { if ( !sm_instance ) { @@ -255,7 +259,7 @@ wxFontMapper *wxFontMapperBase::Get() } } - return sm_instance; + return (wxFontMapperBase*)sm_instance; } /* static */ -- 2.45.2