From f3437beb5d119ef51d058a35ef8933b412f77576 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= 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