summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-02-08 15:59:22 +0000
committerCaolán McNamara <caolanm@redhat.com>2016-02-09 09:49:53 +0000
commit1570fc17291b97b053f5507184dd661563348f04 (patch)
tree36af0cbbb58bd9d6ccee894be145eccd453e0ce5
parentac0773fac537615ce379a397e116be44256a48ae (diff)
gtk3: endless trudge as gtk changes theming yet again
start by silencing the warnings Change-Id: I2aa430e712e189a856a10c9d2284ef54dcfcb7d9
-rw-r--r--vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx290
1 files changed, 150 insertions, 140 deletions
diff --git a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
index 69c8a778a3d9..41a956b3c658 100644
--- a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
@@ -125,8 +125,8 @@ Rectangle GtkSalGraphics::NWGetSpinButtonRect( ControlPart nPart, Rectangle aAre
gint icon_size = std::max(w, h);
GtkBorder padding, border;
- gtk_style_context_get_padding(mpSpinStyle, GTK_STATE_FLAG_NORMAL, &padding);
- gtk_style_context_get_border(mpSpinStyle, GTK_STATE_FLAG_NORMAL, &border);
+ gtk_style_context_get_padding(mpSpinStyle, gtk_style_context_get_state(mpSpinStyle), &padding);
+ gtk_style_context_get_border(mpSpinStyle, gtk_style_context_get_state(mpSpinStyle), &border);
gint buttonWidth = icon_size + padding.left + padding.right +
border.left + border.right;
@@ -579,8 +579,8 @@ void GtkSalGraphics::PaintOneSpinButton( GtkStyleContext *context,
gtk_style_context_set_state(context, stateFlags);
gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON);
- gtk_style_context_get_padding(context, GTK_STATE_FLAG_NORMAL, &padding);
- gtk_style_context_get_border(context, GTK_STATE_FLAG_NORMAL, &border);
+ gtk_style_context_get_padding(context, gtk_style_context_get_state(context), &padding);
+ gtk_style_context_get_border(context, gtk_style_context_get_state(context), &border);
gtk_render_background(context, cr,
buttonRect.Left(), buttonRect.Top(),
@@ -670,14 +670,12 @@ Rectangle GtkSalGraphics::NWGetComboBoxButtonRect( ControlType nType,
(void)nType;
(void)nPart;
Rectangle aButtonRect;
- gint nArrowWidth;
- gint nButtonWidth;
- GtkBorder padding;
- gtk_style_context_get_padding( mpButtonStyle, GTK_STATE_FLAG_NORMAL, &padding);
+ GtkBorder padding;
+ gtk_style_context_get_padding( mpButtonStyle, gtk_style_context_get_state(mpButtonStyle), &padding);
- nArrowWidth = ARROW_SIZE;
- nButtonWidth = nArrowWidth + padding.left + padding.right;
+ gint nArrowWidth = ARROW_SIZE;
+ gint nButtonWidth = nArrowWidth + padding.left + padding.right;
if( nPart == PART_BUTTON_DOWN )
{
Point aPos = Point(aAreaRect.Left() + aAreaRect.GetWidth() - nButtonWidth, aAreaRect.Top());
@@ -1198,7 +1196,7 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
if (nProgressWidth)
{
GtkBorder padding;
- gtk_style_context_get_padding(context, GTK_STATE_FLAG_NORMAL, &padding);
+ gtk_style_context_get_padding(context, gtk_style_context_get_state(context), &padding);
gtk_style_context_remove_class(context, GTK_STYLE_CLASS_TROUGH);
gtk_style_context_add_class(context, GTK_STYLE_CLASS_PROGRESSBAR);
@@ -1236,13 +1234,11 @@ Rectangle GetWidgetSize(const Rectangle& rControlRegion, GtkWidget* widget)
Rectangle AdjustRectForTextBordersPadding(GtkStyleContext* pStyle, long nContentWidth, long nContentHeight, const Rectangle& rControlRegion)
{
- gtk_style_context_save(pStyle);
-
GtkBorder border;
- gtk_style_context_get_border(pStyle, GTK_STATE_FLAG_NORMAL, &border);
+ gtk_style_context_get_border(pStyle, gtk_style_context_get_state(pStyle), &border);
GtkBorder padding;
- gtk_style_context_get_padding(pStyle, GTK_STATE_FLAG_NORMAL, &padding);
+ gtk_style_context_get_padding(pStyle, gtk_style_context_get_state(pStyle), &padding);
gint nWidgetHeight = nContentHeight + padding.top + padding.bottom + border.top + border.bottom;
nWidgetHeight = std::max<gint>(nWidgetHeight, rControlRegion.GetHeight());
@@ -1252,8 +1248,6 @@ Rectangle AdjustRectForTextBordersPadding(GtkStyleContext* pStyle, long nContent
Rectangle aEditRect(rControlRegion.TopLeft(), Size(nWidgetWidth, nWidgetHeight));
- gtk_style_context_restore(pStyle);
-
return aEditRect;
}
@@ -1276,10 +1270,10 @@ bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPar
nullptr );
GtkBorder border;
- gtk_style_context_get_border(mpCheckButtonStyle, GTK_STATE_FLAG_NORMAL, &border);
+ gtk_style_context_get_border(mpCheckButtonStyle, gtk_style_context_get_state(mpCheckButtonStyle), &border);
GtkBorder padding;
- gtk_style_context_get_padding(mpCheckButtonStyle, GTK_STATE_FLAG_NORMAL, &padding);
+ gtk_style_context_get_padding(mpCheckButtonStyle, gtk_style_context_get_state(mpCheckButtonStyle), &padding);
indicator_size += 2*indicator_spacing + border.left + padding.left + border.right + padding.right;
@@ -1407,11 +1401,12 @@ bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPar
gtk_style_context_save(mpFrameInStyle);
gtk_style_context_add_class(mpFrameInStyle, GTK_STYLE_CLASS_FRAME);
+
GtkBorder padding;
- gtk_style_context_get_padding(mpFrameInStyle, GTK_STATE_FLAG_NORMAL, &padding);
+ gtk_style_context_get_padding(mpFrameInStyle, gtk_style_context_get_state(mpFrameInStyle), &padding);
GtkBorder border;
- gtk_style_context_get_border(mpFrameInStyle, GTK_STATE_FLAG_NORMAL, &border);
+ gtk_style_context_get_border(mpFrameInStyle, gtk_style_context_get_state(mpFrameInStyle), &border);
int x1 = aEditRect.Left();
int y1 = aEditRect.Top();
@@ -1425,6 +1420,7 @@ bool GtkSalGraphics::getNativeControlRegion( ControlType nType, ControlPart nPar
y2 - (padding.bottom + border.bottom));
gtk_style_context_restore(mpFrameInStyle);
+
return true;
}
else
@@ -1462,7 +1458,8 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
// text colors
GdkRGBA text_color;
- gtk_style_context_get_color(pStyle, GTK_STATE_FLAG_NORMAL, &text_color);
+ gtk_style_context_set_state(pStyle, GTK_STATE_FLAG_NORMAL);
+ gtk_style_context_get_color(pStyle, gtk_style_context_get_state(pStyle), &text_color);
::Color aTextColor = getColor( text_color );
aStyleSet.SetDialogTextColor( aTextColor );
aStyleSet.SetButtonTextColor( aTextColor );
@@ -1473,15 +1470,9 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
aStyleSet.SetWindowTextColor( aTextColor );
aStyleSet.SetFieldTextColor( aTextColor );
- // mouse over text colors
- gtk_style_context_get_color(pStyle, GTK_STATE_FLAG_PRELIGHT, &text_color);
- aTextColor = getColor( text_color );
- aStyleSet.SetButtonRolloverTextColor( aTextColor );
- aStyleSet.SetFieldRolloverTextColor( aTextColor );
-
// background colors
GdkRGBA background_color;
- gtk_style_context_get_background_color(pStyle, GTK_STATE_FLAG_NORMAL, &background_color);
+ gtk_style_context_get_background_color(pStyle, gtk_style_context_get_state(pStyle), &background_color);
::Color aBackColor = getColor( background_color );
aStyleSet.Set3DColors( aBackColor );
@@ -1490,6 +1481,106 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
aStyleSet.SetWorkspaceColor( aBackColor );
aStyleSet.SetCheckedColorSpecialCase( );
+ // UI font
+ const PangoFontDescription* font = gtk_style_context_get_font(pStyle, gtk_style_context_get_state(pStyle));
+ OString aFamily = pango_font_description_get_family( font );
+ int nPangoHeight = pango_font_description_get_size( font );
+ PangoStyle eStyle = pango_font_description_get_style( font );
+ PangoWeight eWeight = pango_font_description_get_weight( font );
+ PangoStretch eStretch = pango_font_description_get_stretch( font );
+
+ psp::FastPrintFontInfo aInfo;
+ // set family name
+ aInfo.m_aFamilyName = OStringToOUString( aFamily, RTL_TEXTENCODING_UTF8 );
+ // set italic
+ switch( eStyle )
+ {
+ case PANGO_STYLE_NORMAL: aInfo.m_eItalic = ITALIC_NONE;break;
+ case PANGO_STYLE_ITALIC: aInfo.m_eItalic = ITALIC_NORMAL;break;
+ case PANGO_STYLE_OBLIQUE: aInfo.m_eItalic = ITALIC_OBLIQUE;break;
+ }
+ // set weight
+ if( eWeight <= PANGO_WEIGHT_ULTRALIGHT )
+ aInfo.m_eWeight = WEIGHT_ULTRALIGHT;
+ else if( eWeight <= PANGO_WEIGHT_LIGHT )
+ aInfo.m_eWeight = WEIGHT_LIGHT;
+ else if( eWeight <= PANGO_WEIGHT_NORMAL )
+ aInfo.m_eWeight = WEIGHT_NORMAL;
+ else if( eWeight <= PANGO_WEIGHT_BOLD )
+ aInfo.m_eWeight = WEIGHT_BOLD;
+ else
+ aInfo.m_eWeight = WEIGHT_ULTRABOLD;
+ // set width
+ switch( eStretch )
+ {
+ case PANGO_STRETCH_ULTRA_CONDENSED: aInfo.m_eWidth = WIDTH_ULTRA_CONDENSED;break;
+ case PANGO_STRETCH_EXTRA_CONDENSED: aInfo.m_eWidth = WIDTH_EXTRA_CONDENSED;break;
+ case PANGO_STRETCH_CONDENSED: aInfo.m_eWidth = WIDTH_CONDENSED;break;
+ case PANGO_STRETCH_SEMI_CONDENSED: aInfo.m_eWidth = WIDTH_SEMI_CONDENSED;break;
+ case PANGO_STRETCH_NORMAL: aInfo.m_eWidth = WIDTH_NORMAL;break;
+ case PANGO_STRETCH_SEMI_EXPANDED: aInfo.m_eWidth = WIDTH_SEMI_EXPANDED;break;
+ case PANGO_STRETCH_EXPANDED: aInfo.m_eWidth = WIDTH_EXPANDED;break;
+ case PANGO_STRETCH_EXTRA_EXPANDED: aInfo.m_eWidth = WIDTH_EXTRA_EXPANDED;break;
+ case PANGO_STRETCH_ULTRA_EXPANDED: aInfo.m_eWidth = WIDTH_ULTRA_EXPANDED;break;
+ }
+
+#if OSL_DEBUG_LEVEL > 1
+ fprintf( stderr, "font name BEFORE system match: \"%s\"\n", aFamily.getStr() );
+#endif
+
+ // match font to e.g. resolve "Sans"
+ psp::PrintFontManager::get().matchFont( aInfo, rSettings.GetUILanguageTag().getLocale() );
+
+#if OSL_DEBUG_LEVEL > 1
+ fprintf( stderr, "font match %s, name AFTER: \"%s\"\n",
+ aInfo.m_nID != 0 ? "succeeded" : "failed",
+ OUStringToOString( aInfo.m_aFamilyName, RTL_TEXTENCODING_ISO_8859_1 ).getStr() );
+#endif
+
+ int nPointHeight = 0;
+ /*sal_Int32 nDispDPIY = GetDisplay()->GetResolution().B();
+ static gboolean(*pAbso)(const PangoFontDescription*) =
+ (gboolean(*)(const PangoFontDescription*))osl_getAsciiFunctionSymbol( GetSalData()->m_pPlugin, "pango_font_description_get_size_is_absolute" );
+
+ if( pAbso && pAbso( font ) )
+ nPointHeight = (nPangoHeight * 72 + nDispDPIY*PANGO_SCALE/2) / (nDispDPIY * PANGO_SCALE);
+ else*/
+ nPointHeight = nPangoHeight/PANGO_SCALE;
+
+ vcl::Font aFont( aInfo.m_aFamilyName, Size( 0, nPointHeight ) );
+ if( aInfo.m_eWeight != WEIGHT_DONTKNOW )
+ aFont.SetWeight( aInfo.m_eWeight );
+ if( aInfo.m_eWidth != WIDTH_DONTKNOW )
+ aFont.SetWidthType( aInfo.m_eWidth );
+ if( aInfo.m_eItalic != ITALIC_DONTKNOW )
+ aFont.SetItalic( aInfo.m_eItalic );
+ if( aInfo.m_ePitch != PITCH_DONTKNOW )
+ aFont.SetPitch( aInfo.m_ePitch );
+
+ aStyleSet.SetAppFont( aFont );
+ aStyleSet.SetHelpFont( aFont );
+ aStyleSet.SetMenuFont( aFont );
+ aStyleSet.SetToolFont( aFont );
+ aStyleSet.SetLabelFont( aFont );
+ aStyleSet.SetInfoFont( aFont );
+ aStyleSet.SetRadioCheckFont( aFont );
+ aStyleSet.SetPushButtonFont( aFont );
+ aStyleSet.SetFieldFont( aFont );
+ aStyleSet.SetIconFont( aFont );
+ aStyleSet.SetGroupFont( aFont );
+
+ aFont.SetWeight( WEIGHT_BOLD );
+ aStyleSet.SetTabFont( aFont ); //pull from notebook style + GTK_STYLE_REGION_TAB ?
+ aStyleSet.SetTitleFont( aFont );
+ aStyleSet.SetFloatTitleFont( aFont );
+
+ // mouse over text colors
+ gtk_style_context_set_state(pStyle, GTK_STATE_FLAG_PRELIGHT);
+ gtk_style_context_get_color(pStyle, gtk_style_context_get_state(pStyle), &text_color);
+ aTextColor = getColor( text_color );
+ aStyleSet.SetButtonRolloverTextColor( aTextColor );
+ aStyleSet.SetFieldRolloverTextColor( aTextColor );
+
// tooltip colors
{
GtkStyleContext *pCStyle = gtk_style_context_new();
@@ -1506,8 +1597,9 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
gtk_widget_path_free(pCPath);
GdkRGBA tooltip_bg_color, tooltip_fg_color;
- gtk_style_context_get_color(pCStyle, GTK_STATE_FLAG_NORMAL, &tooltip_fg_color);
- gtk_style_context_get_background_color(pCStyle, GTK_STATE_FLAG_NORMAL, &tooltip_bg_color);
+ gtk_style_context_set_state(pCStyle, GTK_STATE_FLAG_NORMAL);
+ gtk_style_context_get_color(pCStyle, gtk_style_context_get_state(pCStyle), &tooltip_fg_color);
+ gtk_style_context_get_background_color(pCStyle, gtk_style_context_get_state(pCStyle), &tooltip_bg_color);
g_object_unref( pCStyle );
aStyleSet.SetHelpColor( getColor( tooltip_bg_color ));
@@ -1525,16 +1617,18 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
gtk_widget_path_free( pCPath );
// highlighting colors
- gtk_style_context_get_background_color(pCStyle, GTK_STATE_FLAG_SELECTED, &text_color);
+ gtk_style_context_set_state(pCStyle, GTK_STATE_FLAG_SELECTED);
+ gtk_style_context_get_background_color(pCStyle, gtk_style_context_get_state(pCStyle), &text_color);
::Color aHighlightColor = getColor( text_color );
- gtk_style_context_get_color(pCStyle, GTK_STATE_FLAG_SELECTED, &text_color);
+ gtk_style_context_get_color(pCStyle, gtk_style_context_get_state(pCStyle), &text_color);
::Color aHighlightTextColor = getColor( text_color );
aStyleSet.SetHighlightColor( aHighlightColor );
aStyleSet.SetHighlightTextColor( aHighlightTextColor );
// field background color
GdkRGBA field_background_color;
- gtk_style_context_get_background_color(pCStyle, GTK_STATE_FLAG_NORMAL, &field_background_color);
+ gtk_style_context_set_state(pCStyle, GTK_STATE_FLAG_NORMAL);
+ gtk_style_context_get_background_color(pCStyle, gtk_style_context_get_state(pCStyle), &field_background_color);
g_object_unref( pCStyle );
::Color aBackFieldColor = getColor( field_background_color );
@@ -1548,30 +1642,34 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
aStyleSet.SetAcceleratorsInContextMenus( false );
// menu colors
- gtk_style_context_get_background_color( mpMenuStyle, GTK_STATE_FLAG_NORMAL, &background_color );
+ gtk_style_context_set_state(mpMenuStyle, GTK_STATE_FLAG_NORMAL);
+ gtk_style_context_get_background_color( mpMenuStyle, gtk_style_context_get_state(mpMenuStyle), &background_color );
aBackColor = getColor( background_color );
aStyleSet.SetMenuColor( aBackColor );
+ // menu items
+ gtk_style_context_get_color( mpMenuStyle, gtk_style_context_get_state(mpMenuStyle), &color );
+ aTextColor = getColor( color );
+ aStyleSet.SetMenuTextColor( aTextColor );
+
// menu bar
- gtk_style_context_get_background_color( mpMenuBarStyle, GTK_STATE_FLAG_NORMAL, &background_color );
+ gtk_style_context_set_state(mpMenuBarStyle, gtk_style_context_get_state(mpMenuStyle));
+ gtk_style_context_get_background_color( mpMenuBarStyle, gtk_style_context_get_state(mpMenuStyle), &background_color );
aBackColor = getColor( background_color );
aStyleSet.SetMenuBarColor( aBackColor );
aStyleSet.SetMenuBarRolloverColor( aBackColor );
- gtk_style_context_get_color( mpMenuBarItemStyle, GTK_STATE_FLAG_NORMAL, &text_color );
+ gtk_style_context_set_state(mpMenuBarItemStyle, GTK_STATE_FLAG_NORMAL);
+ gtk_style_context_get_color( mpMenuBarItemStyle, gtk_style_context_get_state(mpMenuBarItemStyle), &text_color );
aTextColor = aStyleSet.GetPersonaMenuBarTextColor().get_value_or( getColor( text_color ) );
aStyleSet.SetMenuBarTextColor( aTextColor );
aStyleSet.SetMenuBarRolloverTextColor( aTextColor );
- gtk_style_context_get_color( mpMenuBarItemStyle, GTK_STATE_FLAG_PRELIGHT, &text_color );
+ gtk_style_context_set_state(mpMenuBarItemStyle, GTK_STATE_FLAG_PRELIGHT);
+ gtk_style_context_get_color( mpMenuBarItemStyle, gtk_style_context_get_state(mpMenuBarItemStyle), &text_color );
aTextColor = aStyleSet.GetPersonaMenuBarTextColor().get_value_or( getColor( text_color ) );
aStyleSet.SetMenuBarHighlightTextColor( aTextColor );
- // menu items
- gtk_style_context_get_color( mpMenuStyle, GTK_STATE_FLAG_NORMAL, &color );
- aTextColor = getColor( color );
- aStyleSet.SetMenuTextColor( aTextColor );
-
// Awful hack for menu separators in the Sonar and similar themes.
// If the menu color is not too dark, and the menu text color is lighter,
// make the "light" color lighter than the menu color and the "shadow"
@@ -1587,11 +1685,12 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
aStyleSet.SetShadowColor( temp );
}
- gtk_style_context_get_background_color( mpCheckMenuItemStyle, GTK_STATE_FLAG_PRELIGHT, &background_color );
+ gtk_style_context_set_state(mpCheckMenuItemStyle, GTK_STATE_FLAG_PRELIGHT);
+ gtk_style_context_get_background_color( mpCheckMenuItemStyle, gtk_style_context_get_state(mpCheckMenuItemStyle), &background_color );
::Color aHighlightColor = getColor( background_color );
aStyleSet.SetMenuHighlightColor( aHighlightColor );
- gtk_style_context_get_color( mpCheckMenuItemStyle, GTK_STATE_FLAG_PRELIGHT, &color );
+ gtk_style_context_get_color( mpCheckMenuItemStyle, gtk_style_context_get_state(mpCheckMenuItemStyle), &color );
::Color aHighlightTextColor = getColor( color );
aStyleSet.SetMenuHighlightTextColor( aHighlightTextColor );
@@ -1629,19 +1728,22 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
gtk_style_context_set_path(pCStyle, pCPath);
gtk_widget_path_free(pCPath);
- gtk_style_context_get_color(pCStyle, GTK_STATE_FLAG_NORMAL, &text_color);
+ gtk_style_context_set_state(pCStyle, GTK_STATE_FLAG_NORMAL);
+ gtk_style_context_get_color(pCStyle, gtk_style_context_get_state(pCStyle), &text_color);
aTextColor = getColor( text_color );
aStyleSet.SetTabTextColor(aTextColor);
// mouse over text colors
gtk_style_context_add_class(pCStyle, "prelight-page");
- gtk_style_context_get_color(pCStyle, GTK_STATE_FLAG_PRELIGHT, &text_color);
+ gtk_style_context_set_state(pCStyle, GTK_STATE_FLAG_PRELIGHT);
+ gtk_style_context_get_color(pCStyle, gtk_style_context_get_state(pCStyle), &text_color);
gtk_style_context_remove_class(pCStyle, "prelight-page");
aTextColor = getColor( text_color );
aStyleSet.SetTabRolloverTextColor(aTextColor);
gtk_style_context_add_class(pCStyle, "active-page");
- gtk_style_context_get_color(pCStyle, GTK_STATE_FLAG_ACTIVE, &text_color);
+ gtk_style_context_set_state(pCStyle, GTK_STATE_FLAG_ACTIVE);
+ gtk_style_context_get_color(pCStyle, gtk_style_context_get_state(pCStyle), &text_color);
gtk_style_context_remove_class(pCStyle, "active-page");
aTextColor = getColor( text_color );
aStyleSet.SetTabHighlightTextColor(aTextColor);
@@ -1649,98 +1751,6 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
g_object_unref( pCStyle );
}
- // UI font
- const PangoFontDescription* font = gtk_style_context_get_font(pStyle, GTK_STATE_FLAG_NORMAL);
- OString aFamily = pango_font_description_get_family( font );
- int nPangoHeight = pango_font_description_get_size( font );
- PangoStyle eStyle = pango_font_description_get_style( font );
- PangoWeight eWeight = pango_font_description_get_weight( font );
- PangoStretch eStretch = pango_font_description_get_stretch( font );
-
- psp::FastPrintFontInfo aInfo;
- // set family name
- aInfo.m_aFamilyName = OStringToOUString( aFamily, RTL_TEXTENCODING_UTF8 );
- // set italic
- switch( eStyle )
- {
- case PANGO_STYLE_NORMAL: aInfo.m_eItalic = ITALIC_NONE;break;
- case PANGO_STYLE_ITALIC: aInfo.m_eItalic = ITALIC_NORMAL;break;
- case PANGO_STYLE_OBLIQUE: aInfo.m_eItalic = ITALIC_OBLIQUE;break;
- }
- // set weight
- if( eWeight <= PANGO_WEIGHT_ULTRALIGHT )
- aInfo.m_eWeight = WEIGHT_ULTRALIGHT;
- else if( eWeight <= PANGO_WEIGHT_LIGHT )
- aInfo.m_eWeight = WEIGHT_LIGHT;
- else if( eWeight <= PANGO_WEIGHT_NORMAL )
- aInfo.m_eWeight = WEIGHT_NORMAL;
- else if( eWeight <= PANGO_WEIGHT_BOLD )
- aInfo.m_eWeight = WEIGHT_BOLD;
- else
- aInfo.m_eWeight = WEIGHT_ULTRABOLD;
- // set width
- switch( eStretch )
- {
- case PANGO_STRETCH_ULTRA_CONDENSED: aInfo.m_eWidth = WIDTH_ULTRA_CONDENSED;break;
- case PANGO_STRETCH_EXTRA_CONDENSED: aInfo.m_eWidth = WIDTH_EXTRA_CONDENSED;break;
- case PANGO_STRETCH_CONDENSED: aInfo.m_eWidth = WIDTH_CONDENSED;break;
- case PANGO_STRETCH_SEMI_CONDENSED: aInfo.m_eWidth = WIDTH_SEMI_CONDENSED;break;
- case PANGO_STRETCH_NORMAL: aInfo.m_eWidth = WIDTH_NORMAL;break;
- case PANGO_STRETCH_SEMI_EXPANDED: aInfo.m_eWidth = WIDTH_SEMI_EXPANDED;break;
- case PANGO_STRETCH_EXPANDED: aInfo.m_eWidth = WIDTH_EXPANDED;break;
- case PANGO_STRETCH_EXTRA_EXPANDED: aInfo.m_eWidth = WIDTH_EXTRA_EXPANDED;break;
- case PANGO_STRETCH_ULTRA_EXPANDED: aInfo.m_eWidth = WIDTH_ULTRA_EXPANDED;break;
- }
-
-#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "font name BEFORE system match: \"%s\"\n", aFamily.getStr() );
-#endif
-
- // match font to e.g. resolve "Sans"
- psp::PrintFontManager::get().matchFont( aInfo, rSettings.GetUILanguageTag().getLocale() );
-
-#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "font match %s, name AFTER: \"%s\"\n",
- aInfo.m_nID != 0 ? "succeeded" : "failed",
- OUStringToOString( aInfo.m_aFamilyName, RTL_TEXTENCODING_ISO_8859_1 ).getStr() );
-#endif
-
- int nPointHeight = 0;
- /*sal_Int32 nDispDPIY = GetDisplay()->GetResolution().B();
- static gboolean(*pAbso)(const PangoFontDescription*) =
- (gboolean(*)(const PangoFontDescription*))osl_getAsciiFunctionSymbol( GetSalData()->m_pPlugin, "pango_font_description_get_size_is_absolute" );
-
- if( pAbso && pAbso( font ) )
- nPointHeight = (nPangoHeight * 72 + nDispDPIY*PANGO_SCALE/2) / (nDispDPIY * PANGO_SCALE);
- else*/
- nPointHeight = nPangoHeight/PANGO_SCALE;
-
- vcl::Font aFont( aInfo.m_aFamilyName, Size( 0, nPointHeight ) );
- if( aInfo.m_eWeight != WEIGHT_DONTKNOW )
- aFont.SetWeight( aInfo.m_eWeight );
- if( aInfo.m_eWidth != WIDTH_DONTKNOW )
- aFont.SetWidthType( aInfo.m_eWidth );
- if( aInfo.m_eItalic != ITALIC_DONTKNOW )
- aFont.SetItalic( aInfo.m_eItalic );
- if( aInfo.m_ePitch != PITCH_DONTKNOW )
- aFont.SetPitch( aInfo.m_ePitch );
-
- aStyleSet.SetAppFont( aFont );
- aStyleSet.SetHelpFont( aFont );
- aStyleSet.SetMenuFont( aFont );
- aStyleSet.SetToolFont( aFont );
- aStyleSet.SetLabelFont( aFont );
- aStyleSet.SetInfoFont( aFont );
- aStyleSet.SetRadioCheckFont( aFont );
- aStyleSet.SetPushButtonFont( aFont );
- aStyleSet.SetFieldFont( aFont );
- aStyleSet.SetIconFont( aFont );
- aStyleSet.SetGroupFont( aFont );
-
- aFont.SetWeight( WEIGHT_BOLD );
- aStyleSet.SetTabFont( aFont ); //pull from notebook style + GTK_STYLE_REGION_TAB ?
- aStyleSet.SetTitleFont( aFont );
- aStyleSet.SetFloatTitleFont( aFont );
// get cursor blink time
gboolean blink = false;