[wxGTK2] Do what we (I) can wrt the win32 centric wxNativeFontInfo::GetFamily
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -747,8 +747,15 @@ int wxFont::GetFamily() const
|
|||||||
wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
|
wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
|
||||||
|
|
||||||
#if wxUSE_PANGO
|
#if wxUSE_PANGO
|
||||||
return M_FONTDATA->HasNativeFont() ? M_FONTDATA->m_nativeFontInfo.GetFamily()
|
int ret = M_FONTDATA->m_family;
|
||||||
: M_FONTDATA->m_family;
|
if (M_FONTDATA->HasNativeFont())
|
||||||
|
// wxNativeFontInfo::GetFamily is expensive, must not call more than once
|
||||||
|
ret = M_FONTDATA->m_nativeFontInfo.GetFamily();
|
||||||
|
|
||||||
|
if (ret == wxFONTFAMILY_DEFAULT)
|
||||||
|
ret = M_FONTDATA->m_family;
|
||||||
|
|
||||||
|
return ret;
|
||||||
#else
|
#else
|
||||||
return M_FONTDATA->m_family;
|
return M_FONTDATA->m_family;
|
||||||
#endif
|
#endif
|
||||||
|
@@ -747,8 +747,15 @@ int wxFont::GetFamily() const
|
|||||||
wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
|
wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
|
||||||
|
|
||||||
#if wxUSE_PANGO
|
#if wxUSE_PANGO
|
||||||
return M_FONTDATA->HasNativeFont() ? M_FONTDATA->m_nativeFontInfo.GetFamily()
|
int ret = M_FONTDATA->m_family;
|
||||||
: M_FONTDATA->m_family;
|
if (M_FONTDATA->HasNativeFont())
|
||||||
|
// wxNativeFontInfo::GetFamily is expensive, must not call more than once
|
||||||
|
ret = M_FONTDATA->m_nativeFontInfo.GetFamily();
|
||||||
|
|
||||||
|
if (ret == wxFONTFAMILY_DEFAULT)
|
||||||
|
ret = M_FONTDATA->m_family;
|
||||||
|
|
||||||
|
return ret;
|
||||||
#else
|
#else
|
||||||
return M_FONTDATA->m_family;
|
return M_FONTDATA->m_family;
|
||||||
#endif
|
#endif
|
||||||
|
@@ -138,11 +138,16 @@ wxString wxNativeFontInfo::GetFaceName() const
|
|||||||
|
|
||||||
wxFontFamily wxNativeFontInfo::GetFamily() const
|
wxFontFamily wxNativeFontInfo::GetFamily() const
|
||||||
{
|
{
|
||||||
#ifndef HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE
|
wxFontFamily ret = wxFONTFAMILY_DEFAULT;
|
||||||
if (g_ascii_strcasecmp( pango_font_description_get_family( description ), "monospace" ) == 0)
|
char *family_text = g_ascii_strdown( pango_font_description_get_family( description ), -1 );
|
||||||
return wxFONTFAMILY_TELETYPE;
|
// Check for some common fonts, to salvage what we can from the current win32 centric wxFont API:
|
||||||
#else
|
if (strncmp( family_text, "monospace", 9 ) == 0)
|
||||||
|
ret = wxFONTFAMILY_TELETYPE; // begins with "Monospace"
|
||||||
|
else if (strncmp( family_text, "courier", 7 ) == 0)
|
||||||
|
ret = wxFONTFAMILY_TELETYPE; // begins with "Courier"
|
||||||
|
#ifdef HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE
|
||||||
|
else
|
||||||
|
{
|
||||||
PangoFontFamily **families;
|
PangoFontFamily **families;
|
||||||
PangoFontFamily *family;
|
PangoFontFamily *family;
|
||||||
int n_families;
|
int n_families;
|
||||||
@@ -171,10 +176,24 @@ wxFontFamily wxNativeFontInfo::GetFamily() const
|
|||||||
//BCI: g_ascii_strcasecmp(pango_font_description_get_family(description), pango_font_family_get_name(family)) == 0
|
//BCI: g_ascii_strcasecmp(pango_font_description_get_family(description), pango_font_family_get_name(family)) == 0
|
||||||
|
|
||||||
if (pango_font_family_is_monospace( family ))
|
if (pango_font_family_is_monospace( family ))
|
||||||
return wxFONTFAMILY_TELETYPE;
|
ret = wxFONTFAMILY_TELETYPE; // is deemed a monospace font by pango
|
||||||
|
}
|
||||||
#endif // pango_font_family_is_monospace
|
#endif // pango_font_family_is_monospace
|
||||||
|
|
||||||
return wxFONTFAMILY_SWISS;
|
if (ret == wxFONTFAMILY_DEFAULT)
|
||||||
|
{
|
||||||
|
if (strstr( family_text, "sans" ) != NULL) // checked before serif, so that "* Sans Serif" fonts are detected correctly
|
||||||
|
ret = wxFONTFAMILY_SWISS; // contains "Sans"
|
||||||
|
else if (strstr( family_text, "serif" ) != NULL)
|
||||||
|
ret = wxFONTFAMILY_ROMAN; // contains "Serif"
|
||||||
|
else if (strncmp( family_text, "times", 5 ) == 0)
|
||||||
|
ret = wxFONTFAMILY_ROMAN; // begins with "Times"
|
||||||
|
else if (strncmp( family_text, "old", 3 ) == 0)
|
||||||
|
ret = wxFONTFAMILY_DECORATIVE; // Begins with "Old" - "Old English", "Old Town"
|
||||||
|
}
|
||||||
|
|
||||||
|
free(family_text);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxFontEncoding wxNativeFontInfo::GetEncoding() const
|
wxFontEncoding wxNativeFontInfo::GetEncoding() const
|
||||||
|
Reference in New Issue
Block a user