aboutsummaryrefslogtreecommitdiff
path: root/src/styleengine.cc
diff options
context:
space:
mode:
authorJohannes Hofmann <Johannes.Hofmann@gmx.de>2009-02-06 21:44:50 +0100
committerJohannes Hofmann <Johannes.Hofmann@gmx.de>2009-02-06 21:44:50 +0100
commit481f624e2592fc0967e94b84f1ce1d0f9e6ac9ce (patch)
tree3857258e4d3db797b829c32c31c143363c99f54a /src/styleengine.cc
parent17c9dc7f581ca55e931ce2987cb34bc505bf75d3 (diff)
support font-size enum values
Diffstat (limited to 'src/styleengine.cc')
-rw-r--r--src/styleengine.cc38
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;