X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5276b0a53cef4815230e39b54d2ecda14f72cbd1..e64dd5d6524e2284f585c97514421e029a320393:/src/unix/fontutil.cpp diff --git a/src/unix/fontutil.cpp b/src/unix/fontutil.cpp index a9fac62420..8751cd3c39 100644 --- a/src/unix/fontutil.cpp +++ b/src/unix/fontutil.cpp @@ -53,8 +53,8 @@ #include "wx/x11/private.h" #include "wx/gtk/private/string.h" - #define wxPANGO_CONV(s) (wxConvUTF8.cWX2MB((s))) - #define wxPANGO_CONV_BACK(s) (wxConvUTF8.cMB2WX((s))) + #define wxPANGO_CONV(s) s.utf8_str() + #define wxPANGO_CONV_BACK(s) wxString::FromUTF8Unchecked(s) #endif // ---------------------------------------------------------------------------- @@ -133,6 +133,11 @@ bool wxNativeFontInfo::GetUnderlined() const return false; } +bool wxNativeFontInfo::GetStrikethrough() const +{ + return false; +} + wxString wxNativeFontInfo::GetFaceName() const { // the Pango "family" is the wx "face name" @@ -154,15 +159,12 @@ wxFontFamily wxNativeFontInfo::GetFamily() const // Check for some common fonts, to salvage what we can from the current // win32 centric wxFont API: - if (strncasecmp( family_text, "monospace", 9 ) == 0) + if (wxStrnicmp( family_text, "monospace", 9 ) == 0) ret = wxFONTFAMILY_TELETYPE; // begins with "Monospace" - else if (strncasecmp( family_text, "courier", 7 ) == 0) + else if (wxStrnicmp( family_text, "courier", 7 ) == 0) ret = wxFONTFAMILY_TELETYPE; // begins with "Courier" #if defined(__WXGTK20__) || defined(HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE) else -#ifdef __WXGTK20__ - if (!gtk_check_version(2,4,0)) -#endif { PangoFontFamily **families; PangoFontFamily *family = NULL; @@ -204,9 +206,9 @@ wxFontFamily wxNativeFontInfo::GetFamily() const ret = wxFONTFAMILY_SWISS; // contains "Sans" else if (strstr( family_text, "serif" ) != NULL || strstr( family_text, "Serif" ) != NULL) ret = wxFONTFAMILY_ROMAN; // contains "Serif" - else if (strncasecmp( family_text, "times", 5 ) == 0) + else if (wxStrnicmp( family_text, "times", 5 ) == 0) ret = wxFONTFAMILY_ROMAN; // begins with "Times" - else if (strncasecmp( family_text, "old", 3 ) == 0) + else if (wxStrnicmp( family_text, "old", 3 ) == 0) ret = wxFONTFAMILY_DECORATIVE; // begins with "Old" - "Old English", "Old Town" } @@ -267,6 +269,11 @@ void wxNativeFontInfo::SetUnderlined(bool WXUNUSED(underlined)) wxFAIL_MSG( "not implemented" ); } +void wxNativeFontInfo::SetStrikethrough(bool WXUNUSED(strikethrough)) +{ + wxFAIL_MSG( "not implemented" ); +} + bool wxNativeFontInfo::SetFaceName(const wxString& facename) { pango_font_description_set_family(description, wxPANGO_CONV(facename)); @@ -299,25 +306,34 @@ void wxNativeFontInfo::SetFamily(wxFontFamily family) case wxFONTFAMILY_ROMAN: // corresponds to the serif font family in the page linked above - facename.Add(wxS("Century Schoolbook L")); - facename.Add(wxS("URW Bookman L")); - facename.Add(wxS("URW Palladio L")); + facename.Add(wxS("Serif")); facename.Add(wxS("DejaVu Serif")); + facename.Add(wxS("DejaVu LGC Serif")); + facename.Add(wxS("Bitstream Vera Serif")); + facename.Add(wxS("Liberation Serif")); facename.Add(wxS("FreeSerif")); + facename.Add(wxS("Luxi Serif")); facename.Add(wxS("Times New Roman")); + facename.Add(wxS("Century Schoolbook L")); + facename.Add(wxS("URW Bookman L")); + facename.Add(wxS("URW Palladio L")); facename.Add(wxS("Times")); break; case wxFONTFAMILY_TELETYPE: case wxFONTFAMILY_MODERN: // corresponds to the monospace font family in the page linked above + facename.Add(wxS("Monospace")); facename.Add(wxS("DejaVu Sans Mono")); - facename.Add(wxS("Nimbus Mono L")); + facename.Add(wxS("DejaVu LGC Sans Mono")); facename.Add(wxS("Bitstream Vera Sans Mono")); - facename.Add(wxS("Andale Mono")); - facename.Add(wxS("Lucida Sans Typewriter")); + facename.Add(wxS("Liberation Mono")); facename.Add(wxS("FreeMono")); + facename.Add(wxS("Luxi Mono")); facename.Add(wxS("Courier New")); + facename.Add(wxS("Lucida Sans Typewriter")); + facename.Add(wxS("Nimbus Mono L")); + facename.Add(wxS("Andale Mono")); facename.Add(wxS("Courier")); break; @@ -325,13 +341,17 @@ void wxNativeFontInfo::SetFamily(wxFontFamily family) case wxFONTFAMILY_DEFAULT: default: // corresponds to the sans-serif font family in the page linked above + facename.Add(wxS("Sans")); facename.Add(wxS("DejaVu Sans")); - facename.Add(wxS("URW Gothic L")); - facename.Add(wxS("Nimbus Sans L")); + facename.Add(wxS("DejaVu LGC Sans")); facename.Add(wxS("Bitstream Vera Sans")); - facename.Add(wxS("Lucida Sans")); - facename.Add(wxS("Arial")); + facename.Add(wxS("Liberation Sans")); facename.Add(wxS("FreeSans")); + facename.Add(wxS("Luxi Sans")); + facename.Add(wxS("Arial")); + facename.Add(wxS("Lucida Sans")); + facename.Add(wxS("Nimbus Sans L")); + facename.Add(wxS("URW Gothic L")); break; } @@ -581,8 +601,7 @@ wxString wxNativeFontInfo::GetXFontComponent(wxXLFDField field) const if ( !HasElements() ) { - // const_cast - if ( !((wxNativeFontInfo *)this)->FromXFontName(xFontName) ) + if ( !const_cast(this)->FromXFontName(xFontName) ) return wxEmptyString; } @@ -639,8 +658,7 @@ wxString wxNativeFontInfo::GetXFontName() const elt = wxT('*'); } - // const_cast - ((wxNativeFontInfo *)this)->xFontName << wxT('-') << elt; + const_cast(this)->xFontName << wxT('-') << elt; } } @@ -658,8 +676,7 @@ wxNativeFontInfo::SetXFontComponent(wxXLFDField field, const wxString& value) if ( !HasElements() ) { - // const_cast - if ( !((wxNativeFontInfo *)this)->FromXFontName(xFontName) ) + if ( !const_cast(this)->FromXFontName(xFontName) ) { wxFAIL_MSG( wxT("can't set font element for invalid XLFD") ); @@ -818,6 +835,11 @@ void wxNativeFontInfo::SetUnderlined(bool WXUNUSED(underlined)) // can't do this under X } +void wxNativeFontInfo::SetStrikethrough(bool WXUNUSED(strikethrough)) +{ + // this is not supported by Pango fonts neither +} + bool wxNativeFontInfo::SetFaceName(const wxString& facename) { SetXFontComponent(wxXLFD_FAMILY, facename);