diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2008-11-10 19:56:36 +0100 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2008-11-10 19:56:36 +0100 |
commit | fb551355dfb2f49d56cdaab8a55ed3cb00ec7dc8 (patch) | |
tree | cfeb5ea081e99b037b0f50ea3dfc51f166958828 /src/styleengine.cc | |
parent | b70459d1949191d86f3e420985c4b3dedc85f81a (diff) |
convert table code to new style handling
Diffstat (limited to 'src/styleengine.cc')
-rw-r--r-- | src/styleengine.cc | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/styleengine.cc b/src/styleengine.cc index 4b5f3f7a..bdd6affb 100644 --- a/src/styleengine.cc +++ b/src/styleengine.cc @@ -65,9 +65,11 @@ void StyleEngine::startElement (int tag, const char *id, const char *klass, /** * \brief set properties that were definded using (mostly deprecated) HTML - * attributes (e.g. bgColor). + * attributes (e.g. bgColor). */ void StyleEngine::setNonCssProperties (CssPropertyList *props) { + if (stack->getRef (stack->size () - 1)->style) + stack->getRef (stack->size () - 1)->style->unref (); style0 (props); // evaluate now, so caller can free props } @@ -93,6 +95,9 @@ void StyleEngine::endElement (int tag) { stack->setSize (stack->size () - 1); } +/** + * \brief Make changes to StyleAttrs attrs according to CssPropertyList props. + */ void StyleEngine::apply (StyleAttrs *attrs, CssPropertyList *props) { FontAttrs fontAttrs = *attrs->font; @@ -109,9 +114,18 @@ void StyleEngine::apply (StyleAttrs *attrs, CssPropertyList *props) { attrs->borderColor.bottom = Color::createSimple (layout, p->value.intVal); break; + case CssProperty::CSS_PROPERTY_BORDER_COLOR: + attrs->setBorderColor (Color::createSimple (layout, p->value.intVal)); + break; case CssProperty::CSS_PROPERTY_BORDER_BOTTOM_STYLE: attrs->borderStyle.bottom = (BorderStyle) p->value.intVal; break; + case CssProperty::CSS_PROPERTY_BORDER_STYLE: + attrs->setBorderStyle ((BorderStyle) p->value.intVal); + break; + case CssProperty::CSS_PROPERTY_BORDER_WIDTH: + attrs->borderWidth.setVal (p->value.intVal); + break; case CssProperty::CSS_PROPERTY_COLOR: attrs->color = Color::createSimple (layout, p->value.intVal); break; @@ -147,12 +161,21 @@ void StyleEngine::apply (StyleAttrs *attrs, CssPropertyList *props) { case CssProperty::CSS_PROPERTY_LIST_STYLE_TYPE: attrs->listStyleType = (ListStyleType) p->value.intVal; break; + case CssProperty::CSS_PROPERTY_PADDING: + attrs->padding.setVal (p->value.intVal); + break; case CssProperty::CSS_PROPERTY_TEXT_ALIGN: attrs->textAlign = (TextAlignType) p->value.intVal; break; case CssProperty::CSS_PROPERTY_TEXT_DECORATION: attrs->textDecoration |= p->value.intVal; break; + case CssProperty::CSS_PROPERTY_VERTICAL_ALIGN: + attrs->valign = (VAlignType) p->value.intVal; + break; + case CssProperty::CSS_PROPERTY_WIDTH: + attrs->width = p->value.intVal; + break; case CssProperty::PROPERTY_X_LINK: attrs->x_link = p->value.intVal; break; @@ -180,6 +203,8 @@ Style * StyleEngine::style0 (CssPropertyList *nonCssProperties) { // get previous style from the stack StyleAttrs attrs = *stack->getRef (stack->size () - 2)->style; + // reset values that are not inherited according to CSS + attrs.resetValues (); cssContext->apply (&props, this, tagStyleProps, nonCssProperties); |