From 6a1420c22bb1365bac94cc979053b558ba328796 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 25 Jul 2014 18:24:32 -0400 Subject: Add PANGO_WEIGHT_SEMILIGHT Part of Bug 733764 - Support more / free font weights --- pango/fonts.c | 2 ++ pango/pango-font.h | 2 ++ pango/pangofc-fontmap.c | 4 +++- pango/pangofc-private.h | 6 ++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/pango/fonts.c b/pango/fonts.c index 4a72d327..d92a9033 100644 --- a/pango/fonts.c +++ b/pango/fonts.c @@ -871,6 +871,8 @@ static const FieldMap weight_map[] = { { PANGO_WEIGHT_ULTRALIGHT, "Ultra-Light" }, { PANGO_WEIGHT_ULTRALIGHT, "Extra-Light" }, { PANGO_WEIGHT_LIGHT, "Light" }, + { PANGO_WEIGHT_SEMILIGHT, "Semi-Light" }, + { PANGO_WEIGHT_SEMILIGHT, "Demi-Light" }, { PANGO_WEIGHT_BOOK, "Book" }, { PANGO_WEIGHT_NORMAL, "" }, { PANGO_WEIGHT_NORMAL, "Regular" }, diff --git a/pango/pango-font.h b/pango/pango-font.h index cd306f11..45b04471 100644 --- a/pango/pango-font.h +++ b/pango/pango-font.h @@ -81,6 +81,7 @@ typedef enum { * @PANGO_WEIGHT_THIN: the thin weight (= 100; Since: 1.24) * @PANGO_WEIGHT_ULTRALIGHT: the ultralight weight (= 200) * @PANGO_WEIGHT_LIGHT: the light weight (= 300) + * @PANGO_WEIGHT_SEMILIGHT: the semilight weight (= 350; Since: 1.36.7) * @PANGO_WEIGHT_BOOK: the book weight (= 380; Since: 1.24) * @PANGO_WEIGHT_NORMAL: the default weight (= 400) * @PANGO_WEIGHT_MEDIUM: the normal weight (= 500; Since: 1.24) @@ -97,6 +98,7 @@ typedef enum { PANGO_WEIGHT_THIN = 100, PANGO_WEIGHT_ULTRALIGHT = 200, PANGO_WEIGHT_LIGHT = 300, + PANGO_WEIGHT_SEMILIGHT = 350, PANGO_WEIGHT_BOOK = 380, PANGO_WEIGHT_NORMAL = 400, PANGO_WEIGHT_MEDIUM = 500, diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c index a4053f71..06ddca0d 100644 --- a/pango/pangofc-fontmap.c +++ b/pango/pangofc-fontmap.c @@ -2063,7 +2063,9 @@ pango_fc_convert_weight_to_pango (int fc_weight) return PANGO_WEIGHT_THIN; else if (fc_weight <= (FC_WEIGHT_EXTRALIGHT + FC_WEIGHT_LIGHT) / 2) return PANGO_WEIGHT_ULTRALIGHT; - else if (fc_weight <= (FC_WEIGHT_LIGHT + FC_WEIGHT_BOOK) / 2) + else if (fc_weight <= (FC_WEIGHT_LIGHT + FC_WEIGHT_DEMILIGHT) / 2) + return PANGO_WEIGHT_SEMILIGHT; + else if (fc_weight <= (FC_WEIGHT_DEMILIGHT + FC_WEIGHT_BOOK) / 2) return PANGO_WEIGHT_LIGHT; else if (fc_weight <= (FC_WEIGHT_BOOK + FC_WEIGHT_REGULAR) / 2) return PANGO_WEIGHT_BOOK; diff --git a/pango/pangofc-private.h b/pango/pangofc-private.h index 7945962e..32045670 100644 --- a/pango/pangofc-private.h +++ b/pango/pangofc-private.h @@ -28,6 +28,12 @@ G_BEGIN_DECLS +#ifndef FC_WEIGHT_DEMILIGHT +#define FC_WEIGHT_DEMILIGHT 55 +#define FC_WEIGHT_SEMILIGHT FC_WEIGHT_DEMILIGHT +#endif + + typedef struct _PangoFcMetricsInfo PangoFcMetricsInfo; struct _PangoFcMetricsInfo -- cgit v1.2.1