From 18d78013461ed32c46639b01b01c46ff907259f1 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 15 Sep 2018 02:36:18 +0200 Subject: [PATCH] Fix wxMotif build after wxFont API changes Run-time seems to be totally broken, but fonts are probably not the most important problem in this port, so don't bother fixing it. --- include/wx/motif/font.h | 22 +++++----------------- src/motif/font.cpp | 34 +++++++++++++++++++++------------- 2 files changed, 26 insertions(+), 30 deletions(-) diff --git a/include/wx/motif/font.h b/include/wx/motif/font.h index 656cb743b6..bb0d21e0b6 100644 --- a/include/wx/motif/font.h +++ b/include/wx/motif/font.h @@ -27,19 +27,7 @@ public: // ctors and such wxFont() { } - wxFont(const wxFontInfo& info) - { - Create(info.GetPointSize(), - info.GetFamily(), - info.GetStyle(), - info.GetWeight(), - info.IsUnderlined(), - info.GetFaceName(), - info.GetEncoding()); - - if ( info.IsUsingSizeInPixels() ) - SetPixelSize(info.GetPixelSize()); - } + wxFont(const wxFontInfo& info); wxFont(const wxNativeFontInfo& info); @@ -82,18 +70,18 @@ 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 bool GetUnderlined() const; virtual wxString GetFaceName() const; virtual wxFontEncoding GetEncoding() const; virtual const wxNativeFontInfo *GetNativeFontInfo() const; - virtual void SetPointSize(int pointSize); + virtual void SetFractionalPointSize(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/motif/font.cpp b/src/motif/font.cpp index 3e5d07e25f..a1b1f6e606 100644 --- a/src/motif/font.cpp +++ b/src/motif/font.cpp @@ -74,10 +74,10 @@ class wxFontRefData: public wxGDIRefData public: wxFontRefData(const wxFontInfo& info = wxFontInfo()) { - Init(info.GetPointSize(), + Init(info.GetFractionalPointSize(), info.GetFamily(), info.GetStyle(), - info.GetWeight(), + info.GetNumericWeight(), info.IsUnderlined(), info.GetFaceName(), info.GetEncoding()); @@ -93,19 +93,19 @@ public: protected: // common part of all ctors - void Init(int size, + void Init(float size, wxFontFamily family, wxFontStyle style, - wxFontWeight weight, + int weight, bool underlined, const wxString& faceName, wxFontEncoding encoding); // font attributes - int m_pointSize; + float m_pointSize; wxFontFamily m_family; wxFontStyle m_style; - wxFontWeight m_weight; + int m_weight; bool m_underlined; wxString m_faceName; wxFontEncoding m_encoding; @@ -163,10 +163,10 @@ wxXFont::~wxXFont() // wxFontRefData // ---------------------------------------------------------------------------- -void wxFontRefData::Init(int pointSize, +void wxFontRefData::Init(float pointSize, wxFontFamily family, wxFontStyle style, - wxFontWeight weight, + int weight, bool underlined, const wxString& faceName, wxFontEncoding encoding) @@ -181,7 +181,7 @@ void wxFontRefData::Init(int pointSize, m_style = style; m_weight = weight; - if (pointSize == -1) + if (pointSize < 0) m_pointSize = 12; else m_pointSize = pointSize; @@ -213,6 +213,14 @@ wxFont::wxFont(const wxNativeFontInfo& info) (void)Create(info.GetXFontName()); } +wxFont::wxFont(const wxFontInfo& info) +{ + m_refData = new wxFontRefData(info); + + if ( info.IsUsingSizeInPixels() ) + SetPixelSize(info.GetPixelSize()); +} + bool wxFont::Create(int pointSize, wxFontFamily family, wxFontStyle style, @@ -366,7 +374,7 @@ void wxFont::Unshare() } } -void wxFont::SetPointSize(int pointSize) +void wxFont::SetFractionalPointSize(float pointSize) { Unshare(); @@ -390,7 +398,7 @@ void wxFont::SetStyle(wxFontStyle style) M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now } -void wxFont::SetWeight(wxFontWeight weight) +void wxFont::SetNumericWeight(int weight) { Unshare(); @@ -434,7 +442,7 @@ void wxFont::DoSetNativeFontInfo(const wxNativeFontInfo& info) // query font attributes // ---------------------------------------------------------------------------- -int wxFont::GetPointSize() const +float wxFont::GetFractionalPointSize() const { wxCHECK_MSG( IsOk(), 0, wxT("invalid font") ); @@ -460,7 +468,7 @@ wxFontStyle wxFont::GetStyle() const return M_FONTDATA->m_style; } -wxFontWeight wxFont::GetWeight() const +int wxFont::GetNumericWeight() const { wxCHECK_MSG( IsOk(), wxFONTWEIGHT_MAX, wxT("invalid font") );