From 4a9150f9c81e180f4224291283a39929722e340a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Mon, 11 Nov 2002 00:02:40 +0000 Subject: [PATCH] honor facename and weitght with Pango git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/font.cpp | 52 ++++++++++++++++++++++++++++++++++++----------- src/gtk1/font.cpp | 52 ++++++++++++++++++++++++++++++++++++----------- 2 files changed, 80 insertions(+), 24 deletions(-) diff --git a/src/gtk/font.cpp b/src/gtk/font.cpp index bd093a795d..a1facc7a32 100644 --- a/src/gtk/font.cpp +++ b/src/gtk/font.cpp @@ -193,19 +193,27 @@ void wxFontRefData::Init(int pointSize, m_nativeFontInfo.description = pango_font_description_new(); // And set its values - switch (m_family) + if (!m_faceName.empty()) { - case wxFONTFAMILY_MODERN: - case wxFONTFAMILY_TELETYPE: - pango_font_description_set_family( m_nativeFontInfo.description, "monospace" ); - break; - case wxFONTFAMILY_SWISS: - pango_font_description_set_family( m_nativeFontInfo.description, "serif" ); - break; - default: - pango_font_description_set_family( m_nativeFontInfo.description, "sans" ); - break; + pango_font_description_set_family( m_nativeFontInfo.description, wxGTK_CONV(m_faceName) ); } + else + { + switch (m_family) + { + case wxFONTFAMILY_MODERN: + case wxFONTFAMILY_TELETYPE: + pango_font_description_set_family( m_nativeFontInfo.description, "monospace" ); + break; + case wxFONTFAMILY_SWISS: + pango_font_description_set_family( m_nativeFontInfo.description, "serif" ); + break; + default: + pango_font_description_set_family( m_nativeFontInfo.description, "sans" ); + break; + } + } + SetStyle( m_style ); SetPointSize( m_pointSize ); SetWeight( m_weight ); @@ -525,7 +533,27 @@ void wxFontRefData::SetWeight(int weight) { m_weight = weight; -#ifndef __WXGTK20__ +#ifdef __WXGTK20__ + PangoFontDescription *desc = m_nativeFontInfo.description; + switch ( weight ) + { + case wxFONTWEIGHT_BOLD: + pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); + break; + + case wxFONTWEIGHT_LIGHT: + pango_font_description_set_weight(desc, PANGO_WEIGHT_LIGHT); + break; + + default: + wxFAIL_MSG( _T("unknown font weight") ); + // fall through + + case wxFONTWEIGHT_NORMAL: + // unspecified + pango_font_description_set_weight(desc, PANGO_WEIGHT_NORMAL); + } +#else //!__WXGTK20__ if ( HasNativeFont() ) { wxString boldness; diff --git a/src/gtk1/font.cpp b/src/gtk1/font.cpp index bd093a795d..a1facc7a32 100644 --- a/src/gtk1/font.cpp +++ b/src/gtk1/font.cpp @@ -193,19 +193,27 @@ void wxFontRefData::Init(int pointSize, m_nativeFontInfo.description = pango_font_description_new(); // And set its values - switch (m_family) + if (!m_faceName.empty()) { - case wxFONTFAMILY_MODERN: - case wxFONTFAMILY_TELETYPE: - pango_font_description_set_family( m_nativeFontInfo.description, "monospace" ); - break; - case wxFONTFAMILY_SWISS: - pango_font_description_set_family( m_nativeFontInfo.description, "serif" ); - break; - default: - pango_font_description_set_family( m_nativeFontInfo.description, "sans" ); - break; + pango_font_description_set_family( m_nativeFontInfo.description, wxGTK_CONV(m_faceName) ); } + else + { + switch (m_family) + { + case wxFONTFAMILY_MODERN: + case wxFONTFAMILY_TELETYPE: + pango_font_description_set_family( m_nativeFontInfo.description, "monospace" ); + break; + case wxFONTFAMILY_SWISS: + pango_font_description_set_family( m_nativeFontInfo.description, "serif" ); + break; + default: + pango_font_description_set_family( m_nativeFontInfo.description, "sans" ); + break; + } + } + SetStyle( m_style ); SetPointSize( m_pointSize ); SetWeight( m_weight ); @@ -525,7 +533,27 @@ void wxFontRefData::SetWeight(int weight) { m_weight = weight; -#ifndef __WXGTK20__ +#ifdef __WXGTK20__ + PangoFontDescription *desc = m_nativeFontInfo.description; + switch ( weight ) + { + case wxFONTWEIGHT_BOLD: + pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); + break; + + case wxFONTWEIGHT_LIGHT: + pango_font_description_set_weight(desc, PANGO_WEIGHT_LIGHT); + break; + + default: + wxFAIL_MSG( _T("unknown font weight") ); + // fall through + + case wxFONTWEIGHT_NORMAL: + // unspecified + pango_font_description_set_weight(desc, PANGO_WEIGHT_NORMAL); + } +#else //!__WXGTK20__ if ( HasNativeFont() ) { wxString boldness;