Implement CSS3 support for multiple backgrounds. Also fix a bug with background...
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Nov 2004 01:18:23 +0000 (01:18 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 5 Nov 2004 01:18:23 +0000 (01:18 +0000)
commit403cd3b89ca984508eed0be5f9621389af4cd073
treeea432e92329c7df790a25e8062538c489396ec5f
parent9c5bd93b7fc2a1349548e0556410654eb69d4e43
Implement CSS3 support for multiple backgrounds.  Also fix a bug with background propagation so that it only
happens (from the <body> to the root) for HTML documents.  Fixed background-position to handle a mixture of
keyword and length values.

        Reviewed by darin

        * khtml/css/cssparser.cpp:
        (CSSParser::parseValue):
        (CSSParser::addBackgroundValue):
        (CSSParser::parseBackgroundShorthand):
        (CSSParser::parseBackgroundColor):
        (CSSParser::parseBackgroundImage):
        (CSSParser::parseBackgroundPositionXY):
        (CSSParser::parseBackgroundPosition):
        (CSSParser::parseBackgroundProperty):
        (CSSParser::parseColorFromValue):
        * khtml/css/cssparser.h:
        * khtml/css/cssstyleselector.cpp:
        (khtml::CSSStyleSelector::adjustRenderStyle):
        (khtml::CSSStyleSelector::applyProperty):
        (khtml::CSSStyleSelector::mapBackgroundAttachment):
        (khtml::CSSStyleSelector::mapBackgroundImage):
        (khtml::CSSStyleSelector::mapBackgroundRepeat):
        (khtml::CSSStyleSelector::mapBackgroundXPosition):
        (khtml::CSSStyleSelector::mapBackgroundYPosition):
        * khtml/css/cssstyleselector.h:
        * khtml/rendering/render_box.cpp:
        (RenderBox::paintRootBoxDecorations):
        (RenderBox::paintBoxDecorations):
        (RenderBox::paintBackgrounds):
        (RenderBox::paintBackground):
        (RenderBox::paintBackgroundExtended):
        * khtml/rendering/render_box.h:
        * khtml/rendering/render_form.cpp:
        (RenderFieldset::paintBoxDecorations):
        * khtml/rendering/render_line.cpp:
        (khtml::InlineFlowBox::paintBackgrounds):
        (khtml::InlineFlowBox::paintBackground):
        (khtml::InlineFlowBox::paintBackgroundAndBorder):
        * khtml/rendering/render_line.h:
        * khtml/rendering/render_object.cpp:
        (RenderObject::setStyle):
        (RenderObject::updateBackgroundImages):
        (RenderObject::getVerticalPosition):
        * khtml/rendering/render_object.h:
        (khtml::RenderObject::paintBackgroundExtended):
        * khtml/rendering/render_style.cpp:
        (m_next):
        (BackgroundLayer::BackgroundLayer):
        (BackgroundLayer::~BackgroundLayer):
        (BackgroundLayer::operator=):
        (BackgroundLayer::operator==):
        (BackgroundLayer::fillUnsetProperties):
        (BackgroundLayer::cullEmptyLayers):
        (StyleBackgroundData::StyleBackgroundData):
        (StyleBackgroundData::operator==):
        (RenderStyle::diff):
        (RenderStyle::adjustBackgroundLayers):
        * khtml/rendering/render_style.h:
        (khtml::OutlineValue::operator==):
        (khtml::OutlineValue::operator!=):
        (khtml::BackgroundLayer::backgroundImage):
        (khtml::BackgroundLayer::backgroundXPosition):
        (khtml::BackgroundLayer::backgroundYPosition):
        (khtml::BackgroundLayer::backgroundAttachment):
        (khtml::BackgroundLayer::backgroundRepeat):
        (khtml::BackgroundLayer::next):
        (khtml::BackgroundLayer::isBackgroundImageSet):
        (khtml::BackgroundLayer::isBackgroundXPositionSet):
        (khtml::BackgroundLayer::isBackgroundYPositionSet):
        (khtml::BackgroundLayer::isBackgroundAttachmentSet):
        (khtml::BackgroundLayer::isBackgroundRepeatSet):
        (khtml::BackgroundLayer::setBackgroundImage):
        (khtml::BackgroundLayer::setBackgroundXPosition):
        (khtml::BackgroundLayer::setBackgroundYPosition):
        (khtml::BackgroundLayer::setBackgroundAttachment):
        (khtml::BackgroundLayer::setBackgroundRepeat):
        (khtml::BackgroundLayer::clearBackgroundImage):
        (khtml::BackgroundLayer::clearBackgroundXPosition):
        (khtml::BackgroundLayer::clearBackgroundYPosition):
        (khtml::BackgroundLayer::clearBackgroundAttachment):
        (khtml::BackgroundLayer::clearBackgroundRepeat):
        (khtml::BackgroundLayer::setNext):
        (khtml::BackgroundLayer::operator!=):
        (khtml::BackgroundLayer::containsImage):
        (khtml::BackgroundLayer::hasImage):
        (khtml::BackgroundLayer::hasFixedImage):
        (khtml::RenderStyle::setBitDefaults):
        (khtml::RenderStyle::hasBackground):
        (khtml::RenderStyle::hasFixedBackgroundImage):
        (khtml::RenderStyle::outlineWidth):
        (khtml::RenderStyle::outlineStyle):
        (khtml::RenderStyle::outlineStyleIsAuto):
        (khtml::RenderStyle::outlineColor):
        (khtml::RenderStyle::backgroundColor):
        (khtml::RenderStyle::backgroundImage):
        (khtml::RenderStyle::backgroundRepeat):
        (khtml::RenderStyle::backgroundAttachment):
        (khtml::RenderStyle::backgroundXPosition):
        (khtml::RenderStyle::backgroundYPosition):
        (khtml::RenderStyle::accessBackgroundLayers):
        (khtml::RenderStyle::backgroundLayers):
        (khtml::RenderStyle::outlineOffset):
        (khtml::RenderStyle::resetOutline):
        (khtml::RenderStyle::setBackgroundColor):
        (khtml::RenderStyle::setOutlineWidth):
        (khtml::RenderStyle::setOutlineStyle):
        (khtml::RenderStyle::setOutlineColor):
        (khtml::RenderStyle::clearBackgroundLayers):
        (khtml::RenderStyle::inheritBackgroundLayers):
        (khtml::RenderStyle::setOutlineOffset):
        * khtml/rendering/render_table.cpp:
        (RenderTable::paintBoxDecorations):
        (RenderTableCell::paintBoxDecorations):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
15 files changed:
WebCore/ChangeLog-2005-08-23
WebCore/khtml/css/cssparser.cpp
WebCore/khtml/css/cssparser.h
WebCore/khtml/css/cssstyleselector.cpp
WebCore/khtml/css/cssstyleselector.h
WebCore/khtml/rendering/render_box.cpp
WebCore/khtml/rendering/render_box.h
WebCore/khtml/rendering/render_form.cpp
WebCore/khtml/rendering/render_line.cpp
WebCore/khtml/rendering/render_line.h
WebCore/khtml/rendering/render_object.cpp
WebCore/khtml/rendering/render_object.h
WebCore/khtml/rendering/render_style.cpp
WebCore/khtml/rendering/render_style.h
WebCore/khtml/rendering/render_table.cpp