From 8d1063389aacd6966249aa24012e5f1199e9d5d8 Mon Sep 17 00:00:00 2001 From: Jouk Date: Wed, 5 Sep 2018 10:42:35 +0200 Subject: [PATCH] update gtk1 font routines to support nwe code in wxWidgets --- include/wx/gtk1/font.h | 6 ++++-- src/gtk1/font.cpp | 28 ++++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/include/wx/gtk1/font.h b/include/wx/gtk1/font.h index 0284f3d6b9..50bdcd834c 100644 --- a/include/wx/gtk1/font.h +++ b/include/wx/gtk1/font.h @@ -90,19 +90,21 @@ public: virtual ~wxFont(); // implement base class pure virtuals - virtual int GetPointSize() const; + virtual float GetFractionalPointSize() const; virtual wxFontStyle GetStyle() const; virtual wxFontWeight GetWeight() const; + virtual int GetNumericWeight() const; virtual wxString GetFaceName() const; virtual bool GetUnderlined() const; virtual wxFontEncoding GetEncoding() const; virtual const wxNativeFontInfo *GetNativeFontInfo() const; virtual bool IsFixedWidth() const; - virtual void SetPointSize( int pointSize ); + virtual void SetPointSize( float pointSize ); virtual void SetFamily(wxFontFamily family); virtual void SetStyle(wxFontStyle style); virtual void SetWeight(wxFontWeight weight); + virtual void SetNumericWeight(int weight); virtual bool SetFaceName( const wxString& faceName ); virtual void SetUnderlined( bool underlined ); virtual void SetEncoding(wxFontEncoding encoding); diff --git a/src/gtk1/font.cpp b/src/gtk1/font.cpp index 57ba87c846..45dca6abf9 100644 --- a/src/gtk1/font.cpp +++ b/src/gtk1/font.cpp @@ -87,6 +87,7 @@ public: void SetFamily(wxFontFamily family); void SetStyle(wxFontStyle style); void SetWeight(wxFontWeight weight); + void SetNumericWeight(int weight); void SetUnderlined(bool underlined); bool SetFaceName(const wxString& facename); void SetEncoding(wxFontEncoding encoding); @@ -401,6 +402,11 @@ void wxFontRefData::SetWeight(wxFontWeight weight) } } +void wxFontRefData::SetNumericWeight(int weight) +{ + m_nativeFontInfo.SetNumericWeight(weight); +} + void wxFontRefData::SetUnderlined(bool underlined) { m_underlined = underlined; @@ -518,11 +524,11 @@ wxGDIRefData *wxFont::CloneGDIRefData(const wxGDIRefData *data) const // accessors // ---------------------------------------------------------------------------- -int wxFont::GetPointSize() const +float wxFont::GetFractionalPointSize() const { wxCHECK_MSG( IsOk(), 0, wxT("invalid font") ); - return M_FONTDATA->m_pointSize; + return M_FONTDATA->m_nativeFontInfo.GetFractionalPointSize(); } wxString wxFont::GetFaceName() const @@ -551,6 +557,13 @@ wxFontWeight wxFont::GetWeight() const return M_FONTDATA->m_weight; } +int wxFont::GetNumericWeight() const +{ + wxCHECK_MSG( IsOk(), wxFONTWEIGHT_MAX, "invalid font" ); + + return M_FONTDATA->m_nativeFontInfo.GetNumericWeight(); +} + bool wxFont::GetUnderlined() const { wxCHECK_MSG( IsOk(), false, wxT("invalid font") ); @@ -601,11 +614,11 @@ bool wxFont::IsFixedWidth() const // change font attributes // ---------------------------------------------------------------------------- -void wxFont::SetPointSize(int pointSize) +void wxFont::SetPointSize(float pointSize) { Unshare(); - M_FONTDATA->SetPointSize(pointSize); + M_FONTDATA->SetPointSize( nintf(pointSize)); } void wxFont::SetFamily(wxFontFamily family) @@ -629,6 +642,13 @@ void wxFont::SetWeight(wxFontWeight weight) M_FONTDATA->SetWeight(weight); } +void wxFont::SetNumericWeight(int weight) +{ + AllocExclusive(); + + M_FONTDATA->SetNumericWeight(weight); +} + bool wxFont::SetFaceName(const wxString& faceName) { Unshare();