[balsa] Make new CSS parsing conditional on gtk >= 3.22
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] Make new CSS parsing conditional on gtk >= 3.22
- Date: Wed, 23 Nov 2016 23:21:34 +0000 (UTC)
commit 86e6ae018aa6c36a43ca280911ce0e99b22796b3
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Wed Nov 23 18:20:16 2016 -0500
Make new CSS parsing conditional on gtk >= 3.22
* libbalsa/misc.c (libbalsa_font_string_to_css): make new CSS
parsing conditional on gtk version 3.22.
ChangeLog | 5 +++
libbalsa/misc.c | 109 +++++++++++++++++++++++++------------------------------
2 files changed, 55 insertions(+), 59 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index f7852a1..7c2a075 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-11-23 Peter Bloomfield <pbloomfield bellsouth net>
+
+ * libbalsa/misc.c (libbalsa_font_string_to_css): make new CSS
+ parsing conditional on gtk version 3.22.
+
2016-11-22 Peter Bloomfield <pbloomfield bellsouth net>
Adapt to new recipient strings
diff --git a/libbalsa/misc.c b/libbalsa/misc.c
index 920369d..7f9ea7d 100644
--- a/libbalsa/misc.c
+++ b/libbalsa/misc.c
@@ -1371,8 +1371,14 @@ gchar *
libbalsa_font_string_to_css(const gchar * font_string,
const gchar * name)
{
+#if !GTK_CHECK_VERSION(3, 22,0)
+ g_return_val_if_fail(font_string != NULL, NULL);
+ g_return_val_if_fail(name != NULL, NULL);
+
+ return g_strconcat("#", name, " {font:", font_string, "}", NULL);
+#else /* !GTK_CHECK_VERSION(3, 22,0) */
PangoFontDescription *desc;
- guint mask;
+ PangoFontMask mask;
GString *string;
g_return_val_if_fail(font_string != NULL, NULL);
@@ -1389,79 +1395,64 @@ libbalsa_font_string_to_css(const gchar * font_string,
pango_font_description_get_family(desc));
}
if (mask & PANGO_FONT_MASK_STYLE) {
- const gchar *style = NULL;
-
- switch (pango_font_description_get_style(desc)) {
- case PANGO_STYLE_OBLIQUE:
- style = "oblique";
- break;
- case PANGO_STYLE_ITALIC:
- style = "italic";
- break;
- default:
- break;
- }
- if (style != NULL)
- g_string_append_printf(string, "font-style: %s;\n", style);
+ PangoStyle style; /* An enum with default values,
+ * so use it to index the array. */
+ static const gchar *styles[] = {
+ "normal",
+ "oblique",
+ "italic"
+ };
+
+ style = pango_font_description_get_style(desc);
+ g_string_append_printf(string, "font-style: %s;\n", styles[style]);
}
if (mask & PANGO_FONT_MASK_VARIANT) {
- if (pango_font_description_get_variant(desc) ==
- PANGO_VARIANT_SMALL_CAPS)
- g_string_append(string, "font-variant: small-caps;\n");
+ PangoVariant variant; /* An enum with default values,
+ * so use it to index the array. */
+ static const gchar *variants[] = {
+ "normal",
+ "small-caps"
+ };
+
+ variant = pango_font_description_get_variant(desc);
+ g_string_append_printf(string, "font-variant: %s;\n", variants[variant]);
}
if (mask & PANGO_FONT_MASK_WEIGHT) {
- PangoWeight weight;
+ PangoWeight weight; /* An enum with weight values, so use the value. */
weight = pango_font_description_get_weight(desc);
- if (weight != PANGO_WEIGHT_NORMAL)
- g_string_append_printf(string, " font-weight: %d;\n", weight);
+ g_string_append_printf(string, "font-weight: %d;\n", weight);
}
if (mask & PANGO_FONT_MASK_STRETCH) {
- const gchar *stretch = NULL;
-
- switch (pango_font_description_get_stretch(desc)) {
- case PANGO_STRETCH_ULTRA_CONDENSED:
- stretch = "ultra-condensed";
- break;
- case PANGO_STRETCH_EXTRA_CONDENSED:
- stretch = "extra-condensed";
- break;
- case PANGO_STRETCH_CONDENSED:
- stretch = "condensed";
- break;
- case PANGO_STRETCH_SEMI_CONDENSED:
- stretch = "semi-condensed";
- break;
- case PANGO_STRETCH_SEMI_EXPANDED:
- stretch = "semi-expanded";
- break;
- case PANGO_STRETCH_EXPANDED:
- stretch = "expanded";
- break;
- case PANGO_STRETCH_EXTRA_EXPANDED:
- stretch = "extra-expanded";
- break;
- case PANGO_STRETCH_ULTRA_EXPANDED:
- stretch = "ultra-expanded";
- break;
- default:
- break;
- }
- if (stretch != NULL)
- g_string_append_printf(string, "font-stretch: %s;\n", stretch);
+ PangoStretch stretch; /* An enum with default values,
+ * so use it to index the array. */
+ static const gchar *stretches[] = {
+ "ultra-condensed",
+ "extra-condensed",
+ "condensed",
+ "semi-condensed",
+ "normal",
+ "semi-expanded",
+ "expanded",
+ "extra-expanded",
+ "ultra-expanded"
+ };
+
+ stretch = pango_font_description_get_stretch(desc);
+ g_string_append_printf(string, "font-stretch: %s;\n", stretches[stretch]);
}
if (mask & PANGO_FONT_MASK_SIZE) {
- gint size;
+ gdouble size;
+ const gchar *units;
- size = pango_font_description_get_size(desc);
- if (!pango_font_description_get_size_is_absolute(desc))
- size *= gdk_screen_get_resolution(gdk_screen_get_default()) / 72;
- size = PANGO_PIXELS(size);
- g_string_append_printf(string, "font-size: %dpx;\n", size);
+ size = (gdouble) pango_font_description_get_size(desc) / PANGO_SCALE;
+ units = pango_font_description_get_size_is_absolute(desc) ? "px" : "pt";
+ g_string_append_printf(string, "font-size: %.1f%s;\n", size, units);
}
g_string_append_c(string, '}');
pango_font_description_free(desc);
return g_string_free(string, FALSE);
+#endif /* !GTK_CHECK_VERSION(3, 22,0) */
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]