diff options
author | Owen Taylor <otaylor@redhat.com> | 2004-12-14 23:33:26 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2004-12-14 23:33:26 +0000 |
commit | 51c48b557c6aeaa3dd457e6d034ecdab99a271d6 (patch) | |
tree | 82eb1a97d25e4c0cb3f04a12e40ccf548cc4e12f | |
parent | 325592919b30fe556c57adf10b6b2d12cfcad93d (diff) | |
download | pango-51c48b557c6aeaa3dd457e6d034ecdab99a271d6.tar.gz |
Add PANGO_WEIGHT_SEMIBOLD. (#86957, Lars Clausen)
Tue Dec 14 18:08:36 2004 Owen Taylor <otaylor@redhat.com>
* pango/pango-font.h: Add PANGO_WEIGHT_SEMIBOLD.
(#86957, Lars Clausen)
* pango/fonts.c: s/600/PANGO_WEIGHT_SEMIBOLD.
* pango/pangofc-fontmap.c (pango_fc_convert_weight_to_fc)
* pango/pangofc-fontmap.c (pango_fc_convert_weight_to_pango):
Handle PANGO_WEIGHT_SEMIBOLD, use additional weights added
in fontconfig-2.2.
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | ChangeLog.pre-1-10 | 12 | ||||
-rw-r--r-- | ChangeLog.pre-1-8 | 12 | ||||
-rw-r--r-- | pango/fonts.c | 2 | ||||
-rw-r--r-- | pango/pango-font.h | 1 | ||||
-rw-r--r-- | pango/pangofc-fontmap.c | 53 |
6 files changed, 85 insertions, 7 deletions
@@ -1,3 +1,15 @@ +Tue Dec 14 18:08:36 2004 Owen Taylor <otaylor@redhat.com> + + * pango/pango-font.h: Add PANGO_WEIGHT_SEMIBOLD. + (#86957, Lars Clausen) + + * pango/fonts.c: s/600/PANGO_WEIGHT_SEMIBOLD. + + * pango/pangofc-fontmap.c (pango_fc_convert_weight_to_fc) + * pango/pangofc-fontmap.c (pango_fc_convert_weight_to_pango): + Handle PANGO_WEIGHT_SEMIBOLD, use additional weights added + in fontconfig-2.2. + 2004-12-14 Dan Winship <danw@novell.com> * examples/Makefile.am (INCLUDES): add XFT_CFLAGS diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10 index 9b033451..8928d752 100644 --- a/ChangeLog.pre-1-10 +++ b/ChangeLog.pre-1-10 @@ -1,3 +1,15 @@ +Tue Dec 14 18:08:36 2004 Owen Taylor <otaylor@redhat.com> + + * pango/pango-font.h: Add PANGO_WEIGHT_SEMIBOLD. + (#86957, Lars Clausen) + + * pango/fonts.c: s/600/PANGO_WEIGHT_SEMIBOLD. + + * pango/pangofc-fontmap.c (pango_fc_convert_weight_to_fc) + * pango/pangofc-fontmap.c (pango_fc_convert_weight_to_pango): + Handle PANGO_WEIGHT_SEMIBOLD, use additional weights added + in fontconfig-2.2. + 2004-12-14 Dan Winship <danw@novell.com> * examples/Makefile.am (INCLUDES): add XFT_CFLAGS diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8 index 9b033451..8928d752 100644 --- a/ChangeLog.pre-1-8 +++ b/ChangeLog.pre-1-8 @@ -1,3 +1,15 @@ +Tue Dec 14 18:08:36 2004 Owen Taylor <otaylor@redhat.com> + + * pango/pango-font.h: Add PANGO_WEIGHT_SEMIBOLD. + (#86957, Lars Clausen) + + * pango/fonts.c: s/600/PANGO_WEIGHT_SEMIBOLD. + + * pango/pangofc-fontmap.c (pango_fc_convert_weight_to_fc) + * pango/pangofc-fontmap.c (pango_fc_convert_weight_to_pango): + Handle PANGO_WEIGHT_SEMIBOLD, use additional weights added + in fontconfig-2.2. + 2004-12-14 Dan Winship <danw@novell.com> * examples/Makefile.am (INCLUDES): add XFT_CFLAGS diff --git a/pango/fonts.c b/pango/fonts.c index e6692927..f39d65a1 100644 --- a/pango/fonts.c +++ b/pango/fonts.c @@ -729,7 +729,7 @@ static FieldMap weight_map[] = { { PANGO_WEIGHT_LIGHT, "Light" }, { PANGO_WEIGHT_NORMAL, NULL }, { 500, "Medium" }, - { 600, "Semi-Bold" }, + { PANGO_WEIGHT_SEMIBOLD, "Semi-Bold" }, { PANGO_WEIGHT_BOLD, "Bold" }, { PANGO_WEIGHT_ULTRABOLD, "Ultra-Bold" }, { PANGO_WEIGHT_HEAVY, "Heavy" } diff --git a/pango/pango-font.h b/pango/pango-font.h index ebe1fc87..53254301 100644 --- a/pango/pango-font.h +++ b/pango/pango-font.h @@ -55,6 +55,7 @@ typedef enum { PANGO_WEIGHT_ULTRALIGHT = 200, PANGO_WEIGHT_LIGHT = 300, PANGO_WEIGHT_NORMAL = 400, + PANGO_WEIGHT_SEMIBOLD = 600, PANGO_WEIGHT_BOLD = 700, PANGO_WEIGHT_ULTRABOLD = 800, PANGO_WEIGHT_HEAVY = 900 diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c index 8786e04a..0f7b67bb 100644 --- a/pango/pangofc-fontmap.c +++ b/pango/pangofc-fontmap.c @@ -513,16 +513,36 @@ pango_fc_font_map_list_families (PangoFontMap *fontmap, static int pango_fc_convert_weight_to_fc (PangoWeight pango_weight) { - if (pango_weight < (PANGO_WEIGHT_NORMAL + PANGO_WEIGHT_LIGHT) / 2) +#ifdef FC_WEIGHT_ULTRABOLD + /* fontconfig 2.1 only had light/medium/demibold/bold/black */ + if (pango_weight < (PANGO_WEIGHT_ULTRALIGHT + PANGO_WEIGHT_LIGHT) / 2) + return FC_WEIGHT_ULTRALIGHT; + else if (pango_weight < (PANGO_WEIGHT_LIGHT + PANGO_WEIGHT_NORMAL) / 2) return FC_WEIGHT_LIGHT; - else if (pango_weight < (PANGO_WEIGHT_NORMAL + 600) / 2) + else if (pango_weight < (PANGO_WEIGHT_NORMAL + 500 /* PANGO_WEIGHT_MEDIUM */) / 2) + return FC_WEIGHT_NORMAL; + else if (pango_weight < (500 /* PANGO_WEIGHT_MEDIUM */ + PANGO_WEIGHT_SEMIBOLD) / 2) return FC_WEIGHT_MEDIUM; - else if (pango_weight < (600 + PANGO_WEIGHT_BOLD) / 2) + else if (pango_weight < (PANGO_WEIGHT_SEMIBOLD + PANGO_WEIGHT_BOLD) / 2) return FC_WEIGHT_DEMIBOLD; else if (pango_weight < (PANGO_WEIGHT_BOLD + PANGO_WEIGHT_ULTRABOLD) / 2) return FC_WEIGHT_BOLD; + else if (pango_weight < (PANGO_WEIGHT_ULTRABOLD + PANGO_WEIGHT_HEAVY) / 2) + return FC_WEIGHT_ULTRABOLD; else return FC_WEIGHT_BLACK; +#else /* fontconfig < 2.2 */ + if (pango_weight < (PANGO_WEIGHT_LIGHT + PANGO_WEIGHT_NORMAL) / 2) + return FC_WEIGHT_LIGHT; + else if (pango_weight < (500 /* PANGO_WEIGHT_MEDIUM */ + PANGO_WEIGHT_SEMIBOLD) / 2) + return FC_WEIGHT_NORMAL; + else if (pango_weight < (PANGO_WEIGHT_SEMIBOLD + PANGO_WEIGHT_BOLD) / 2) + return FC_WEIGHT_DEMIBOLD; + else if (pango_weight < (PANGO_WEIGHT_BOLD + PANGO_WEIGHT_ULTRABOLD) / 2) + return FC_WEIGHT_BOLD; + else + return FC_WEIGHT_BLACK; +#endif } static int @@ -1149,18 +1169,39 @@ pango_fc_font_map_shutdown (PangoFcFontMap *fcfontmap) static PangoWeight pango_fc_convert_weight_to_pango (int fc_weight) { - if (fc_weight < FC_WEIGHT_LIGHT) +#ifdef FC_WEIGHT_ULTRABOLD + /* fontconfig 2.1 only had light/medium/demibold/bold/black */ + if (fc_weight < (FC_WEIGHT_ULTRALIGHT + FC_WEIGHT_LIGHT) / 2) return PANGO_WEIGHT_ULTRALIGHT; - else if (fc_weight < (FC_WEIGHT_LIGHT + FC_WEIGHT_MEDIUM) / 2) + else if (fc_weight < (FC_WEIGHT_LIGHT + FC_WEIGHT_REGULAR) / 2) + return PANGO_WEIGHT_LIGHT; + else if (fc_weight < (FC_WEIGHT_REGULAR + FC_WEIGHT_MEDIUM) / 2) + return PANGO_WEIGHT_NORMAL; + /* We group the 500/MEDIUM weight with normal to reduce confusion + * + * else if (fc_weight < (FC_WEIGHT_MEDIUM + FC_WEIGHT_DEMIBOLD) / 2) + * return 500; + */ + else if (fc_weight < (FC_WEIGHT_DEMIBOLD + FC_WEIGHT_BOLD) / 2) + return PANGO_WEIGHT_SEMIBOLD; + else if (fc_weight < (FC_WEIGHT_BOLD + FC_WEIGHT_ULTRABOLD) / 2) + return PANGO_WEIGHT_BOLD; + else if (fc_weight < (FC_WEIGHT_ULTRABOLD + FC_WEIGHT_BLACK) / 2) + return PANGO_WEIGHT_ULTRABOLD; + else + return PANGO_WEIGHT_HEAVY; +#else /* fontconfig < 2.2 */ + if (fc_weight < (FC_WEIGHT_LIGHT + FC_WEIGHT_MEDIUM) / 2) return PANGO_WEIGHT_LIGHT; else if (fc_weight < (FC_WEIGHT_MEDIUM + FC_WEIGHT_DEMIBOLD) / 2) return PANGO_WEIGHT_NORMAL; else if (fc_weight < (FC_WEIGHT_DEMIBOLD + FC_WEIGHT_BOLD) / 2) - return 600; + return PANGO_WEIGHT_SEMIBOLD; else if (fc_weight < (FC_WEIGHT_BOLD + FC_WEIGHT_BLACK) / 2) return PANGO_WEIGHT_BOLD; else return PANGO_WEIGHT_ULTRABOLD; +#endif } static PangoStyle |