]> git.saurik.com Git - wxWidgets.git/commitdiff
Get rid of wxFontMapper in wxBase library.
authorDavid Elliott <dfe@tgwbd.org>
Sat, 26 Mar 2005 07:10:52 +0000 (07:10 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Sat, 26 Mar 2005 07:10:52 +0000 (07:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/fontmap.h
src/common/fmapbase.cpp

index 0256128ad46e32b3ec6d1a5daebb5b24104b6472..2dee4a244b4a00675725db764009d349f6477a6a 100644 (file)
@@ -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
index b7107408bd931cf244566df77091104cea136ec9..759c7541eb789c6f30a159869c1df7302df02af7 100644 (file)
@@ -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 */