wxFont::IsFixedWidth for wxMGL

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2002-01-17 19:38:39 +00:00
parent 84664b4684
commit f3437beb5d
4 changed files with 19 additions and 6 deletions

View File

@@ -80,6 +80,7 @@ public:
virtual wxString GetFaceName() const; virtual wxString GetFaceName() const;
virtual bool GetUnderlined() const; virtual bool GetUnderlined() const;
virtual wxFontEncoding GetEncoding() const; virtual wxFontEncoding GetEncoding() const;
virtual bool IsFixedWidth() const;
virtual void SetPointSize(int pointSize); virtual void SetPointSize(int pointSize);
virtual void SetFamily(int family); virtual void SetFamily(int family);

View File

@@ -57,10 +57,11 @@ private:
class wxMGLFontLibrary class wxMGLFontLibrary
{ {
public: public:
wxMGLFontLibrary(const wxString& filename, int type); wxMGLFontLibrary(const wxString& filename, int type, wxMGLFontFamily *parentFamily);
~wxMGLFontLibrary(); ~wxMGLFontLibrary();
wxMGLFontInstance *GetFontInstance(wxFont *font, float scale, bool aa); wxMGLFontInstance *GetFontInstance(wxFont *font, float scale, bool aa);
wxMGLFontFamily *GetFamily() const { return m_family; }
void IncRef(); void IncRef();
void DecRef(); void DecRef();
@@ -73,6 +74,7 @@ private:
wxString m_fileName; wxString m_fileName;
size_t m_refs; size_t m_refs;
wxMGLFontInstanceList *m_instances; wxMGLFontInstanceList *m_instances;
wxMGLFontFamily *m_family;
}; };
// structure representing native MGL font family // structure representing native MGL font family

View File

@@ -33,6 +33,7 @@
#include "wx/gdicmn.h" #include "wx/gdicmn.h"
#include "wx/tokenzr.h" #include "wx/tokenzr.h"
#include "wx/settings.h" #include "wx/settings.h"
#include "wx/mgl/private.h"
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxFontRefData // wxFontRefData
@@ -259,6 +260,13 @@ wxFontEncoding wxFont::GetEncoding() const
return M_FONTDATA->m_encoding; 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 // change font attributes

View File

@@ -189,8 +189,10 @@ wxMGLFontInstance::~wxMGLFontInstance()
MGL_unloadFontInstance(m_font); 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_type = type;
m_fileName = filename; m_fileName = filename;
m_refs = 0; m_refs = 0;
@@ -299,25 +301,25 @@ wxMGLFontFamily::wxMGLFontFamily(const font_info_t *info)
m_fontLibs[wxFONTFACE_REGULAR] = NULL; m_fontLibs[wxFONTFACE_REGULAR] = NULL;
else else
m_fontLibs[wxFONTFACE_REGULAR] = m_fontLibs[wxFONTFACE_REGULAR] =
new wxMGLFontLibrary(info->regularFace, wxFONTFACE_REGULAR); new wxMGLFontLibrary(info->regularFace, wxFONTFACE_REGULAR, this);
if ( info->italicFace[0] == '\0' ) if ( info->italicFace[0] == '\0' )
m_fontLibs[wxFONTFACE_ITALIC] = NULL; m_fontLibs[wxFONTFACE_ITALIC] = NULL;
else else
m_fontLibs[wxFONTFACE_ITALIC] = m_fontLibs[wxFONTFACE_ITALIC] =
new wxMGLFontLibrary(info->italicFace, wxFONTFACE_ITALIC); new wxMGLFontLibrary(info->italicFace, wxFONTFACE_ITALIC, this);
if ( info->boldFace[0] == '\0' ) if ( info->boldFace[0] == '\0' )
m_fontLibs[wxFONTFACE_BOLD] = NULL; m_fontLibs[wxFONTFACE_BOLD] = NULL;
else else
m_fontLibs[wxFONTFACE_BOLD] = m_fontLibs[wxFONTFACE_BOLD] =
new wxMGLFontLibrary(info->boldFace, wxFONTFACE_BOLD); new wxMGLFontLibrary(info->boldFace, wxFONTFACE_BOLD, this);
if ( info->boldItalicFace[0] == '\0' ) if ( info->boldItalicFace[0] == '\0' )
m_fontLibs[wxFONTFACE_BOLD_ITALIC] = NULL; m_fontLibs[wxFONTFACE_BOLD_ITALIC] = NULL;
else else
m_fontLibs[wxFONTFACE_BOLD_ITALIC] = 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", wxLogTrace("mgl_font", "new family '%s' (r=%s, i=%s, b=%s, bi=%s)\n",
info->familyName, info->regularFace, info->italicFace, info->familyName, info->regularFace, info->italicFace,