X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..67193066b2d16ca36529216f70d093690d7e1123:/src/motif/font.cpp diff --git a/src/motif/font.cpp b/src/motif/font.cpp index b8911db0d1..b16a93e085 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,23 +29,21 @@ #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) -#if wxCHECK_MOTIF_VERSION( 2, 0 ) && !wxCHECK_LESSTIF() - #define wxUSE_RENDER_TABLE 1 -#else - #define wxUSE_RENDER_TABLE 0 -#endif - // ---------------------------------------------------------------------------- // private classes // ---------------------------------------------------------------------------- @@ -63,7 +59,7 @@ public: #if !wxMOTIF_NEW_FONT_HANDLING WXFontStructPtr m_fontStruct; // XFontStruct #endif -#if !wxUSE_RENDER_TABLE && !wxMOTIF_NEW_FONT_HANDLING +#if !wxMOTIF_USE_RENDER_TABLE && !wxMOTIF_NEW_FONT_HANDLING WXFontList m_fontList; // Motif XmFontList #else // if wxUSE_RENDER_TABLE WXRenderTable m_renderTable; // Motif XmRenderTable @@ -135,9 +131,9 @@ wxXFont::wxXFont() #if !wxMOTIF_NEW_FONT_HANDLING m_fontStruct = (WXFontStructPtr) 0; #endif -#if !wxUSE_RENDER_TABLE && !wxMOTIF_NEW_FONT_HANDLING +#if !wxMOTIF_USE_RENDER_TABLE && !wxMOTIF_NEW_FONT_HANDLING m_fontList = (WXFontList) 0; -#else // if wxUSE_RENDER_TABLE +#else // if wxMOTIF_USE_RENDER_TABLE m_renderTable = (WXRenderTable) 0; m_rendition = (WXRendition) 0; #endif @@ -147,7 +143,7 @@ wxXFont::wxXFont() wxXFont::~wxXFont() { -#if !wxUSE_RENDER_TABLE +#if !wxMOTIF_USE_RENDER_TABLE if (m_fontList) XmFontListFree ((XmFontList) m_fontList); m_fontList = NULL; @@ -221,15 +217,9 @@ wxFontRefData::~wxFontRefData() wxFont::wxFont(const wxNativeFontInfo& info) { - Init(); - (void)Create(info.GetXFontName()); } -void wxFont::Init() -{ -} - bool wxFont::Create(int pointSize, int family, int style, @@ -242,8 +232,6 @@ bool wxFont::Create(int pointSize, m_refData = new wxFontRefData(pointSize, family, style, weight, underlined, faceName, encoding); - RealizeResource(); - return true; } @@ -379,8 +367,6 @@ void wxFont::SetPointSize(int pointSize) M_FONTDATA->m_pointSize = pointSize; M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now - - RealizeResource(); } void wxFont::SetFamily(int family) @@ -389,8 +375,6 @@ void wxFont::SetFamily(int family) M_FONTDATA->m_family = family; M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now - - RealizeResource(); } void wxFont::SetStyle(int style) @@ -399,8 +383,6 @@ void wxFont::SetStyle(int style) M_FONTDATA->m_style = style; M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now - - RealizeResource(); } void wxFont::SetWeight(int weight) @@ -409,18 +391,16 @@ void wxFont::SetWeight(int weight) M_FONTDATA->m_weight = weight; M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now - - RealizeResource(); } -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 - RealizeResource(); + return wxFontBase::SetFaceName(faceName); } void wxFont::SetUnderlined(bool underlined) @@ -428,8 +408,6 @@ void wxFont::SetUnderlined(bool underlined) Unshare(); M_FONTDATA->m_underlined = underlined; - - RealizeResource(); } void wxFont::SetEncoding(wxFontEncoding encoding) @@ -438,8 +416,6 @@ void wxFont::SetEncoding(wxFontEncoding encoding) M_FONTDATA->m_encoding = encoding; M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now - - RealizeResource(); } void wxFont::DoSetNativeFontInfo(const wxNativeFontInfo& info) @@ -462,7 +438,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 ; } @@ -506,7 +482,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); @@ -564,8 +540,8 @@ wxXFont* wxFont::GetInternalFont(double scale, WXDisplay* display) const #endif f->m_display = ( display ? display : wxGetDisplay() ); f->m_scale = intScale; - -#if wxUSE_RENDER_TABLE + +#if wxMOTIF_USE_RENDER_TABLE XmRendition rendition; XmRenderTable renderTable; Arg args[5]; @@ -589,7 +565,7 @@ wxXFont* wxFont::GetInternalFont(double scale, WXDisplay* display) const f->m_renderTable = (WXRenderTable)renderTable; f->m_rendition = (WXRendition)rendition; wxASSERT( f->m_renderTable != NULL ); -#else // if !wxUSE_RENDER_TABLE +#else // if !wxMOTIF_USE_RENDER_TABLE f->m_fontList = XmFontListCreate ((XFontStruct*) font, XmSTRING_DEFAULT_CHARSET); wxASSERT( f->m_fontList != NULL ); #endif @@ -608,38 +584,31 @@ WXFontStructPtr wxFont::GetFontStruct(double scale, WXDisplay* display) const return (f ? f->m_fontStruct : (WXFontStructPtr) 0); } +#endif + +#if !wxMOTIF_USE_RENDER_TABLE + WXFontList wxFont::GetFontList(double scale, WXDisplay* display) const { -#if !wxUSE_RENDER_TABLE wxXFont* f = GetInternalFont(scale, display); return (f ? f->m_fontList : (WXFontList) 0); -#else - return NULL; -#endif } -#endif // !wxMOTIF_NEW_FONT_HANDLING - - // declared in the header, can't use wxUSE_RENDER_TABLE -#if wxCHECK_MOTIF_VERSION( 2, 0 ) +#else // if wxMOTIF_USE_RENDER_TABLE WXRenderTable wxFont::GetRenderTable(WXDisplay* display) const { -#if wxUSE_RENDER_TABLE wxXFont* f = GetInternalFont(1.0, display); - return (f ? f->m_renderTable : (WXFontList) 0); -#else - return NULL; -#endif + return (f ? f->m_renderTable : (WXRenderTable) 0); } -#endif // wxCHECK_MOTIF_VERSION( 2, 0 ) +#endif // wxMOTIF_USE_RENDER_TABLE WXFontType wxFont::GetFontType(WXDisplay* display) const { -#if wxUSE_RENDER_TABLE +#if wxMOTIF_USE_RENDER_TABLE return Ok() ? GetRenderTable(display) : NULL; #else return Ok() ? GetFontList(1.0, display) : NULL; @@ -648,7 +617,7 @@ WXFontType wxFont::GetFontType(WXDisplay* display) const WXFontType wxFont::GetFontTypeC(WXDisplay* display) const { -#if wxUSE_RENDER_TABLE +#if wxMOTIF_USE_RENDER_TABLE return Ok() ? GetRenderTable(display) : NULL; #else return Ok() ? XmFontListCopy( (XmFontList)GetFontList(1.0, display) ) : NULL; @@ -657,7 +626,7 @@ WXFontType wxFont::GetFontTypeC(WXDisplay* display) const /*static*/ WXString wxFont::GetFontTag() { -#if wxUSE_RENDER_TABLE +#if wxMOTIF_USE_RENDER_TABLE return (WXString)XmNrenderTable; #else return (WXString)XmNfontList; @@ -687,13 +656,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 @@ -706,7 +675,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);