diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-02-06 21:44:50 +0100 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-02-06 21:44:50 +0100 |
commit | 481f624e2592fc0967e94b84f1ce1d0f9e6ac9ce (patch) | |
tree | 3857258e4d3db797b829c32c31c143363c99f54a /src/styleengine.cc | |
parent | 17c9dc7f581ca55e931ce2987cb34bc505bf75d3 (diff) |
support font-size enum values
Diffstat (limited to 'src/styleengine.cc')
-rw-r--r-- | src/styleengine.cc | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/src/styleengine.cc b/src/styleengine.cc index badacbae..92fe8179 100644 --- a/src/styleengine.cc +++ b/src/styleengine.cc @@ -186,8 +186,42 @@ void StyleEngine::apply (StyleAttrs *attrs, CssPropertyList *props) { break; case CSS_PROPERTY_FONT_SIZE: parentFont = stack->get (stack->size () - 2).style->font; - computeValue (&fontAttrs.size, p->value.intVal, parentFont, - parentFont->size); + if (p->type == CSS_TYPE_ENUM) { + switch (p->value.intVal) { + case CSS_FONT_SIZE_XX_SMALL: + fontAttrs.size = (int) (11.0 * prefs.font_factor + 0.5); + break; + case CSS_FONT_SIZE_X_SMALL: + fontAttrs.size = (int) (12.0 * prefs.font_factor + 0.5); + break; + case CSS_FONT_SIZE_SMALL: + fontAttrs.size = (int) (13.0 * prefs.font_factor + 0.5); + break; + case CSS_FONT_SIZE_MEDIUM: + fontAttrs.size = (int) (14.0 * prefs.font_factor + 0.5); + break; + case CSS_FONT_SIZE_LARGE: + fontAttrs.size = (int) (15.0 * prefs.font_factor + 0.5); + break; + case CSS_FONT_SIZE_X_LARGE: + fontAttrs.size = (int) (16.0 * prefs.font_factor + 0.5); + break; + case CSS_FONT_SIZE_XX_LARGE: + fontAttrs.size = (int) (17.0 * prefs.font_factor + 0.5); + break; + case CSS_FONT_SIZE_SMALLER: + fontAttrs.size -= (int) (1.0 * prefs.font_factor + 0.5); + break; + case CSS_FONT_SIZE_LARGER: + fontAttrs.size += (int) (1.0 * prefs.font_factor + 0.5); + break; + default: + assert(false); // invalid font-size enum + } + } else { + computeValue (&fontAttrs.size, p->value.intVal, parentFont, + parentFont->size); + } break; case CSS_PROPERTY_FONT_STYLE: fontAttrs.style = (FontStyle) p->value.intVal; |