From: Mikael Magnusson Date: Tue, 29 Apr 2008 14:56:31 +0000 (+0200) Subject: Allow to use a pango font description string. X-Git-Url: http://git.openbox.org/?p=mikachu%2Fopenbox.git;a=commitdiff_plain;h=7fa5eac9e5ec7e84f13b792d9ffe71298d770b0e Allow to use a pango font description string. --- diff --git a/obrender/font.c b/obrender/font.c index 0f56a55..47606ae 100644 --- a/obrender/font.c +++ b/obrender/font.c @@ -60,6 +60,15 @@ static void measure_font(const RrInstance *inst, RrFont *f) } +void RrFontDescriptionFromString(RrFont *font, gchar *description) +{ + PangoFontDescription *desc; + desc = pango_font_description_from_string(description); + pango_font_description_merge(font->font_desc, desc, TRUE); + pango_font_description_free(desc); + pango_layout_set_font_description(font->layout, font->font_desc); +} + RrFont *RrFontOpen(const RrInstance *inst, const gchar *name, gint size, RrFontWeight weight, RrFontSlant slant) { diff --git a/obrender/render.h b/obrender/render.h index f125847..b75310b 100644 --- a/obrender/render.h +++ b/obrender/render.h @@ -397,6 +397,8 @@ RrSize *RrFontMeasureString (const RrFont *f, const gchar *str, gboolean flow, gint maxwidth); gint RrFontHeight (const RrFont *f, gint shadow_offset_y); gint RrFontMaxCharWidth (const RrFont *f); +/*! Select a font from a pango description string */ +void RrFontDescriptionFromString(RrFont *font, gchar *description); /* Paint into the appearance. The old pixmap is returned (if there was one). It is the responsibility of the caller to call XFreePixmap on the return when diff --git a/openbox/config.c b/openbox/config.c index 92c4fe0..a7f796f 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -785,6 +785,12 @@ static void parse_theme(xmlNodePtr node, gpointer d) *font = RrFontOpen(ob_rr_inst, name, size, weight, slant); g_free(name); + + if ((fnode = obt_xml_find_node(n->children, "description"))) { + gchar *s = obt_xml_node_string(fnode); + RrFontDescriptionFromString(*font, s); + g_free(s); + } } }