diff options
author | Matthias Clasen <mclasen@redhat.com> | 2017-09-18 07:34:46 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2017-09-18 14:26:57 -0400 |
commit | b99cb70299e9a5148556540dc584ea5535241a6e (patch) | |
tree | 138b145292f1ab42e8cd29b6eb9ee16490c121ef /gtk/gtkcssstyle.c | |
parent | 8525afc4081e88ba4e58c7a9f90f8721d2478590 (diff) | |
download | gtk+-b99cb70299e9a5148556540dc584ea5535241a6e.tar.gz |
css: Implement font-variant-numeric
This gets translated to the corresponding OpenType features.
Diffstat (limited to 'gtk/gtkcssstyle.c')
-rw-r--r-- | gtk/gtkcssstyle.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gtk/gtkcssstyle.c b/gtk/gtkcssstyle.c index 8b35f0e5ce..33960349d8 100644 --- a/gtk/gtkcssstyle.c +++ b/gtk/gtkcssstyle.c @@ -229,6 +229,7 @@ gtk_css_style_get_pango_attributes (GtkCssStyle *style) GtkCssValue *ligatures; GtkCssValue *position; GtkCssValue *caps; + GtkCssValue *numeric; GString *s; int i; @@ -345,6 +346,29 @@ gtk_css_style_get_pango_attributes (GtkCssStyle *style) g_string_append (s, "titl 1"); } + numeric = gtk_css_style_get_value (style, GTK_CSS_PROPERTY_FONT_VARIANT_NUMERIC); + for (i = 0; i < _gtk_css_array_value_get_n_values (numeric); i++) + { + GtkCssValue *value = _gtk_css_array_value_get_nth (numeric, i); + if (s->len > 0) g_string_append (s, ", "); + if (strcmp (_gtk_css_ident_value_get (value), "lining-nums") == 0) + g_string_append (s, "lnum 1"); + else if (strcmp (_gtk_css_ident_value_get (value), "oldstyle-nums") == 0) + g_string_append (s, "onum 1"); + else if (strcmp (_gtk_css_ident_value_get (value), "proportional-nums") == 0) + g_string_append (s, "pnum 1"); + else if (strcmp (_gtk_css_ident_value_get (value), "tabular-nums") == 0) + g_string_append (s, "tnum 1"); + else if (strcmp (_gtk_css_ident_value_get (value), "diagonal-fractions") == 0) + g_string_append (s, "frac 1"); + else if (strcmp (_gtk_css_ident_value_get (value), "stacked-fractions") == 0) + g_string_append (s, "afrc 1"); + else if (strcmp (_gtk_css_ident_value_get (value), "ordinal") == 0) + g_string_append (s, "ordn 1"); + else if (strcmp (_gtk_css_ident_value_get (value), "slashed-zero") == 0) + g_string_append (s, "zero 1"); + } + attrs = add_pango_attr (attrs, pango_attr_font_features_new (s->str)); g_string_free (s, TRUE); |