From f3437beb5d119ef51d058a35ef8933b412f77576 Mon Sep 17 00:00:00 2001
From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= <vslavik@fastmail.fm>
Date: Thu, 17 Jan 2002 19:38:39 +0000
Subject: [PATCH] wxFont::IsFixedWidth for wxMGL

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 include/wx/mgl/font.h     |  1 +
 include/wx/mgl/fontutil.h |  4 +++-
 src/mgl/font.cpp          |  8 ++++++++
 src/mgl/fontutil.cpp      | 12 +++++++-----
 4 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/include/wx/mgl/font.h b/include/wx/mgl/font.h
index 29f2fd6093..4aed3d6dfb 100644
--- a/include/wx/mgl/font.h
+++ b/include/wx/mgl/font.h
@@ -80,6 +80,7 @@ public:
     virtual wxString GetFaceName() const;
     virtual bool GetUnderlined() const;
     virtual wxFontEncoding GetEncoding() const;
+    virtual bool IsFixedWidth() const;
 
     virtual void SetPointSize(int pointSize);
     virtual void SetFamily(int family);
diff --git a/include/wx/mgl/fontutil.h b/include/wx/mgl/fontutil.h
index 6f353a4d4a..f83849b133 100644
--- a/include/wx/mgl/fontutil.h
+++ b/include/wx/mgl/fontutil.h
@@ -57,10 +57,11 @@ private:
 class wxMGLFontLibrary
 {
 public:
-    wxMGLFontLibrary(const wxString& filename, int type);
+    wxMGLFontLibrary(const wxString& filename, int type, wxMGLFontFamily *parentFamily);
     ~wxMGLFontLibrary();
     
     wxMGLFontInstance *GetFontInstance(wxFont *font, float scale, bool aa);
+    wxMGLFontFamily *GetFamily() const { return m_family; }
     
     void IncRef();
     void DecRef();
@@ -73,6 +74,7 @@ private:
     wxString m_fileName;
     size_t m_refs;
     wxMGLFontInstanceList *m_instances;
+    wxMGLFontFamily *m_family;
 };
 
 // structure representing native MGL font family
diff --git a/src/mgl/font.cpp b/src/mgl/font.cpp
index ff9f73343d..3120a1d59f 100644
--- a/src/mgl/font.cpp
+++ b/src/mgl/font.cpp
@@ -33,6 +33,7 @@
 #include "wx/gdicmn.h"
 #include "wx/tokenzr.h"
 #include "wx/settings.h"
+#include "wx/mgl/private.h"
 
 // ----------------------------------------------------------------------------
 // wxFontRefData
@@ -259,6 +260,13 @@ wxFontEncoding wxFont::GetEncoding() const
     return M_FONTDATA->m_encoding;
 }
 
+bool wxFont::IsFixedWidth() const
+{
+    wxCHECK_MSG( Ok(), FALSE, wxT("invalid font") );
+
+    return (bool)(M_FONTDATA->m_library->GetFamily()->GetInfo()->isFixed);
+}
+
 
 // ----------------------------------------------------------------------------
 // change font attributes
diff --git a/src/mgl/fontutil.cpp b/src/mgl/fontutil.cpp
index 59eb523363..85b76d080a 100644
--- a/src/mgl/fontutil.cpp
+++ b/src/mgl/fontutil.cpp
@@ -189,8 +189,10 @@ wxMGLFontInstance::~wxMGLFontInstance()
         MGL_unloadFontInstance(m_font);
 }
     
-wxMGLFontLibrary::wxMGLFontLibrary(const wxString& filename, int type)
+wxMGLFontLibrary::wxMGLFontLibrary(const wxString& filename, int type, 
+                                   wxMGLFontFamily *parentFamily)
 {
+    m_family = parentFamily;
     m_type = type;
     m_fileName = filename;
     m_refs = 0;
@@ -299,25 +301,25 @@ wxMGLFontFamily::wxMGLFontFamily(const font_info_t *info)
         m_fontLibs[wxFONTFACE_REGULAR] = NULL;
     else
         m_fontLibs[wxFONTFACE_REGULAR] = 
-            new wxMGLFontLibrary(info->regularFace, wxFONTFACE_REGULAR);
+            new wxMGLFontLibrary(info->regularFace, wxFONTFACE_REGULAR, this);
     
     if ( info->italicFace[0] == '\0' )
         m_fontLibs[wxFONTFACE_ITALIC] = NULL;
     else
         m_fontLibs[wxFONTFACE_ITALIC] = 
-            new wxMGLFontLibrary(info->italicFace, wxFONTFACE_ITALIC);
+            new wxMGLFontLibrary(info->italicFace, wxFONTFACE_ITALIC, this);
     
     if ( info->boldFace[0] == '\0' )
         m_fontLibs[wxFONTFACE_BOLD] = NULL;
     else
         m_fontLibs[wxFONTFACE_BOLD] = 
-            new wxMGLFontLibrary(info->boldFace, wxFONTFACE_BOLD);
+            new wxMGLFontLibrary(info->boldFace, wxFONTFACE_BOLD, this);
     
     if ( info->boldItalicFace[0] == '\0' )
         m_fontLibs[wxFONTFACE_BOLD_ITALIC] = NULL;
     else
         m_fontLibs[wxFONTFACE_BOLD_ITALIC] = 
-            new wxMGLFontLibrary(info->boldItalicFace, wxFONTFACE_BOLD_ITALIC);
+            new wxMGLFontLibrary(info->boldItalicFace, wxFONTFACE_BOLD_ITALIC, this);
             
     wxLogTrace("mgl_font", "new family '%s' (r=%s, i=%s, b=%s, bi=%s)\n",
                info->familyName, info->regularFace, info->italicFace, 
-- 
2.47.2