]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/fontmap.h
Applied patch [ 1166587 ] [wxMSW] Removes all flicker from wxStaticBox
[wxWidgets.git] / include / wx / fontmap.h
index 143346f4aaf919013de830f6dbc76e209670eedd..d7555d3b5730acff04d4ba6ea9446d76f9fa9360 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     04.11.99
 // RCS-ID:      $Id$
 // Copyright:   (c) Vadim Zeitlin
 // Created:     04.11.99
 // RCS-ID:      $Id$
 // Copyright:   (c) Vadim Zeitlin
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_FONTMAPPER_H_
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_FONTMAPPER_H_
@@ -28,7 +28,7 @@
     class WXDLLIMPEXP_BASE wxConfigBase;
 #endif // wxUSE_CONFIG
 
     class WXDLLIMPEXP_BASE wxConfigBase;
 #endif // wxUSE_CONFIG
 
-class WXDLLIMPEXP_BASE wxFontMapper;
+class WXDLLIMPEXP_CORE wxFontMapper;
 
 #if wxUSE_GUI
     class WXDLLIMPEXP_CORE wxWindow;
 
 #if wxUSE_GUI
     class WXDLLIMPEXP_CORE wxWindow;
@@ -49,6 +49,8 @@ class WXDLLIMPEXP_BASE wxFontMapper;
 
 class WXDLLIMPEXP_BASE wxFontMapperBase
 {
 
 class WXDLLIMPEXP_BASE wxFontMapperBase
 {
+    // For IsWxFontMapper()
+    friend class WXDLLIMPEXP_CORE wxFontMapper;
 public:
     // constructtor and such
     // ---------------------
 public:
     // constructtor and such
     // ---------------------
@@ -60,7 +62,10 @@ public:
     virtual ~wxFontMapperBase();
 
     // return instance of the wxFontMapper singleton
     virtual ~wxFontMapperBase();
 
     // return instance of the wxFontMapper singleton
-    static wxFontMapper *Get();
+    // wxBase code only cares that it's a wxFontMapperBase
+    // In wxBase, wxFontMapper is only forward declared
+    // so one cannot implicitly cast from it to wxFontMapperBase.
+    static wxFontMapperBase *Get();
 
     // set the singleton to 'mapper' instance and return previous one
     static wxFontMapper *Set(wxFontMapper *mapper);
 
     // set the singleton to 'mapper' instance and return previous one
     static wxFontMapper *Set(wxFontMapper *mapper);
@@ -155,6 +160,9 @@ protected:
     int NonInteractiveCharsetToEncoding(const wxString& charset);
 
 private:
     int NonInteractiveCharsetToEncoding(const wxString& charset);
 
 private:
+    // pseudo-RTTI since we aren't a wxObject.
+    virtual bool IsWxFontMapper();
+
     // the global fontmapper object or NULL
     static wxFontMapper *sm_instance;
 
     // the global fontmapper object or NULL
     static wxFontMapper *sm_instance;
 
@@ -228,6 +236,9 @@ public:
     // the title for the dialogs (note that default is quite reasonable)
     void SetDialogTitle(const wxString& title) { m_titleDialog = title; }
 
     // the title for the dialogs (note that default is quite reasonable)
     void SetDialogTitle(const wxString& title) { m_titleDialog = title; }
 
+    // GUI code needs to know it's a wxFontMapper because there
+    // are additional methods in the subclass.
+    static wxFontMapper *Get();
 
 protected:
     // GetAltForEncoding() helper: tests for the existence of the given
 
 protected:
     // GetAltForEncoding() helper: tests for the existence of the given
@@ -248,16 +259,13 @@ protected:
     wxWindow *m_windowParent;
 
 private:
     wxWindow *m_windowParent;
 
 private:
-    DECLARE_NO_COPY_CLASS(wxFontMapper)
-};
+    // pseudo-RTTI since we aren't a wxObject.
+    virtual bool IsWxFontMapper();
 
 
-#else // !wxUSE_GUI
-
-class WXDLLIMPEXP_BASE wxFontMapper : public wxFontMapperBase
-{
+    DECLARE_NO_COPY_CLASS(wxFontMapper)
 };
 
 };
 
-#endif // wxUSE_GUI/!wxUSE_GUI
+#endif // wxUSE_GUI
 
 // ----------------------------------------------------------------------------
 // global variables
 
 // ----------------------------------------------------------------------------
 // global variables