X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eb9d223a9a39a6f251c63308bca268a6f66d2428..a1c882c99ded33004d8e38cb53fbfc7e95bbaa85:/src/motif/font.cpp diff --git a/src/motif/font.cpp b/src/motif/font.cpp index abfa867eb0..a9c0b0ac48 100644 --- a/src/motif/font.cpp +++ b/src/motif/font.cpp @@ -20,8 +20,6 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#include "wx/defs.h" - #ifdef __VMS #pragma message disable nosimpint #include "wx/vms_x_fix.h" @@ -31,13 +29,17 @@ #pragma message enable nosimpint #endif -#include "wx/string.h" #include "wx/font.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" // for wxGetDisplay() + +#ifndef WX_PRECOMP + #include "wx/string.h" + #include "wx/utils.h" // for wxGetDisplay() + #include "wx/settings.h" + #include "wx/gdicmn.h" +#endif + #include "wx/fontutil.h" // for wxNativeFontInfo #include "wx/tokenzr.h" -#include "wx/settings.h" #include "wx/motif/private.h" IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) @@ -52,7 +54,7 @@ class wxXFont : public wxObject { public: wxXFont(); - ~wxXFont(); + virtual ~wxXFont(); #if !wxMOTIF_NEW_FONT_HANDLING WXFontStructPtr m_fontStruct; // XFontStruct @@ -89,7 +91,7 @@ public: data.m_underlined, data.m_faceName, data.m_encoding); } - ~wxFontRefData(); + virtual ~wxFontRefData(); protected: // common part of all ctors @@ -209,21 +211,17 @@ wxFontRefData::~wxFontRefData() m_fonts.Clear(); } +#define M_FONTDATA ((wxFontRefData*)m_refData) + // ---------------------------------------------------------------------------- // wxFont // ---------------------------------------------------------------------------- wxFont::wxFont(const wxNativeFontInfo& info) { - Init(); - (void)Create(info.GetXFontName()); } -void wxFont::Init() -{ -} - bool wxFont::Create(int pointSize, int family, int style, @@ -397,12 +395,14 @@ void wxFont::SetWeight(int weight) M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now } -void wxFont::SetFaceName(const wxString& faceName) +bool wxFont::SetFaceName(const wxString& faceName) { Unshare(); M_FONTDATA->m_faceName = faceName; M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now + + return wxFontBase::SetFaceName(faceName); } void wxFont::SetUnderlined(bool underlined) @@ -440,7 +440,7 @@ int wxFont::GetPointSize() const wxString wxFont::GetFaceName() const { - wxCHECK_MSG( Ok(), wxT(""), wxT("invalid font") ); + wxCHECK_MSG( Ok(), wxEmptyString, wxT("invalid font") ); return M_FONTDATA->m_faceName ; } @@ -484,7 +484,7 @@ const wxNativeFontInfo *wxFont::GetNativeFontInfo() const { wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") ); - if(M_FONTDATA->m_nativeFontInfo.GetXFontName().IsEmpty()) + if(M_FONTDATA->m_nativeFontInfo.GetXFontName().empty()) GetInternalFont(); return &(M_FONTDATA->m_nativeFontInfo); @@ -542,7 +542,7 @@ wxXFont* wxFont::GetInternalFont(double scale, WXDisplay* display) const #endif f->m_display = ( display ? display : wxGetDisplay() ); f->m_scale = intScale; - + #if wxMOTIF_USE_RENDER_TABLE XmRendition rendition; XmRenderTable renderTable; @@ -658,13 +658,13 @@ void wxGetTextExtent(WXDisplay* display, const wxFont& font, double scale, { XRectangle ink, logical; WXFontSet fset = font.GetFontSet(scale, display); - + XmbTextExtents( (XFontSet)fset, str.c_str(), str.length(), &ink, &logical); if( width ) *width = logical.width; if( height ) *height = logical.height; - if( ascent ) *ascent = -logical.y; - if( descent ) *descent = logical.height + logical.y; + if( ascent ) *ascent = -logical.y; + if( descent ) *descent = logical.height + logical.y; } #else // if !wxMOTIF_NEW_FONT_HANDLING @@ -677,7 +677,7 @@ void wxGetTextExtent(WXDisplay* display, const wxFont& font, int direction, ascent2, descent2; XCharStruct overall; - int slen = str.Len(); + int slen = str.length(); XTextExtents((XFontStruct*) pFontStruct, (char*) str.c_str(), slen, &direction, &ascent2, &descent2, &overall);