mirror of
https://github.com/labwc/labwc.git
synced 2025-11-02 09:01:47 -05:00
Add support for all Pango font weight options
This commit is contained in:
parent
44295c0c13
commit
6a810ad762
3 changed files with 72 additions and 4 deletions
|
|
@ -12,7 +12,17 @@ enum font_slant {
|
||||||
|
|
||||||
enum font_weight {
|
enum font_weight {
|
||||||
FONT_WEIGHT_NORMAL = 0,
|
FONT_WEIGHT_NORMAL = 0,
|
||||||
FONT_WEIGHT_BOLD
|
FONT_WEIGHT_THIN,
|
||||||
|
FONT_WEIGHT_ULTRALIGHT,
|
||||||
|
FONT_WEIGHT_LIGHT,
|
||||||
|
FONT_WEIGHT_SEMILIGHT,
|
||||||
|
FONT_WEIGHT_BOOK,
|
||||||
|
FONT_WEIGHT_MEDIUM,
|
||||||
|
FONT_WEIGHT_SEMIBOLD,
|
||||||
|
FONT_WEIGHT_BOLD,
|
||||||
|
FONT_WEIGHT_ULTRABOLD,
|
||||||
|
FONT_WEIGHT_HEAVY,
|
||||||
|
FONT_WEIGHT_ULTRAHEAVY
|
||||||
};
|
};
|
||||||
|
|
||||||
struct font {
|
struct font {
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,43 @@ font_to_pango_desc(struct font *font)
|
||||||
if (font->slant == FONT_SLANT_OBLIQUE) {
|
if (font->slant == FONT_SLANT_OBLIQUE) {
|
||||||
pango_font_description_set_style(desc, PANGO_STYLE_OBLIQUE);
|
pango_font_description_set_style(desc, PANGO_STYLE_OBLIQUE);
|
||||||
}
|
}
|
||||||
if (font->weight == FONT_WEIGHT_BOLD) {
|
switch (font->weight) {
|
||||||
|
case FONT_WEIGHT_THIN:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_THIN);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_ULTRALIGHT:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRALIGHT);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_LIGHT:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_LIGHT);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_SEMILIGHT:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_SEMILIGHT);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_BOOK:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_BOOK);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_NORMAL:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_NORMAL);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_MEDIUM:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_MEDIUM);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_SEMIBOLD:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_SEMIBOLD);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_BOLD:
|
||||||
pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD);
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_ULTRABOLD:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRABOLD);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_HEAVY:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_HEAVY);
|
||||||
|
break;
|
||||||
|
case FONT_WEIGHT_ULTRAHEAVY:
|
||||||
|
pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRAHEAVY);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return desc;
|
return desc;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -862,8 +862,31 @@ set_font_attr(struct font *font, const char *nodename, const char *content)
|
||||||
font->slant = FONT_SLANT_NORMAL;
|
font->slant = FONT_SLANT_NORMAL;
|
||||||
}
|
}
|
||||||
} else if (!strcmp(nodename, "weight")) {
|
} else if (!strcmp(nodename, "weight")) {
|
||||||
font->weight = !strcasecmp(content, "bold") ?
|
if (!strcasecmp(content, "thin")) {
|
||||||
FONT_WEIGHT_BOLD : FONT_WEIGHT_NORMAL;
|
font->weight = FONT_WEIGHT_THIN;
|
||||||
|
} else if (!strcasecmp(content, "ultralight")) {
|
||||||
|
font->weight = FONT_WEIGHT_ULTRALIGHT;
|
||||||
|
} else if (!strcasecmp(content, "light")) {
|
||||||
|
font->weight = FONT_WEIGHT_LIGHT;
|
||||||
|
} else if (!strcasecmp(content, "semilight")) {
|
||||||
|
font->weight = FONT_WEIGHT_SEMILIGHT;
|
||||||
|
} else if (!strcasecmp(content, "book")) {
|
||||||
|
font->weight = FONT_WEIGHT_BOOK;
|
||||||
|
} else if (!strcasecmp(content, "medium")) {
|
||||||
|
font->weight = FONT_WEIGHT_MEDIUM;
|
||||||
|
} else if (!strcasecmp(content, "semibold")) {
|
||||||
|
font->weight = FONT_WEIGHT_SEMIBOLD;
|
||||||
|
} else if (!strcasecmp(content, "bold")) {
|
||||||
|
font->weight = FONT_WEIGHT_BOLD;
|
||||||
|
} else if (!strcasecmp(content, "ultrabold")) {
|
||||||
|
font->weight = FONT_WEIGHT_ULTRABOLD;
|
||||||
|
} else if (!strcasecmp(content, "heavy")) {
|
||||||
|
font->weight = FONT_WEIGHT_HEAVY;
|
||||||
|
} else if (!strcasecmp(content, "ultraheavy")) {
|
||||||
|
font->weight = FONT_WEIGHT_ULTRAHEAVY;
|
||||||
|
} else {
|
||||||
|
font->weight = FONT_WEIGHT_NORMAL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue