2006-01-14 Eric Seidel <eseidel@apple.com>
authoreseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 15 Jan 2006 05:43:30 +0000 (05:43 +0000)
committereseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 15 Jan 2006 05:43:30 +0000 (05:43 +0000)
commit5fe57820643b8101fa0572e848ba9e3d40f74d69
tree61de705456b2d8dc5ceb4aa91aa44261ef51ad24
parent1af52b789b393a88b4efd27b70fb1569dcb608c1
2006-01-14  Eric Seidel  <eseidel@apple.com>

        Reviewed by darin.

        Implement basic <foreignObject> support:
        http://bugzilla.opendarwin.org/show_bug.cgi?id=5974
        Also fixed <image> to support clip, filter and mask
        Updated <text> to support hit testing and clip, filter, mask

        * WebCore.xcodeproj/project.pbxproj: added files.
        * kcanvas/RenderForeignObject.cpp: Added.
        (RenderForeignObject::RenderForeignObject):
        (RenderForeignObject::translationForAttributes):
        (RenderForeignObject::paint):
        (RenderForeignObject::nodeAtPoint):
        * kcanvas/RenderForeignObject.h: Added.
        (RenderForeignObject::renderName): added.
        (RenderForeignObject::localTransform): added.
        (RenderForeignObject::setLocalTransform): added.
        * kcanvas/RenderSVGImage.cpp:
        (RenderSVGImage::paint): added filter, clip mask support
        * kcanvas/RenderSVGImage.h:
        (KSVG::RenderSVGImage::localTransform): added.
        (KSVG::RenderSVGImage::setLocalTransform): added.
        * kcanvas/RenderSVGText.cpp:
        (RenderSVGText::translationTopToBaseline): return qmatrix
        (RenderSVGText::translationForAttributes): return qmatrix
        (RenderSVGText::paint): added filter, clip, mask support
        (RenderSVGText::nodeAtPoint): added.
        * kcanvas/RenderSVGText.h:
        (RenderSVGText::localTransform): added.
        (RenderSVGText::setLocalTransform): added.
        * khtml/rendering/render_object.h:
        (khtml::RenderObject::setLocalTransform): added assert(0)
        * ksvg2/css/svg.css: added foreignObject display: block
        * ksvg2/svg/SVGForeignObjectElementImpl.cpp: Added.
        (KSVG::SVGForeignObjectElementImpl::SVGForeignObjectElementImpl):
        (KSVG::SVGForeignObjectElementImpl::~SVGForeignObjectElementImpl):
        (KSVG::SVGForeignObjectElementImpl::x):
        (KSVG::SVGForeignObjectElementImpl::y):
        (KSVG::SVGForeignObjectElementImpl::width):
        (KSVG::SVGForeignObjectElementImpl::height):
        (KSVG::SVGForeignObjectElementImpl::parseMappedAttribute):
        (KSVG::SVGForeignObjectElementImpl::createRenderer):
        (KSVG::SVGForeignObjectElementImpl::childShouldCreateRenderer):
        * ksvg2/svg/SVGForeignObjectElementImpl.h: Added.
        (KSVG::SVGForeignObjectElementImpl::isValid): added
        (KSVG::SVGForeignObjectElementImpl::rendererIsNeeded): added
        * ksvg2/svg/SVGImageElementImpl.cpp:
        (SVGImageElementImpl::attach): fixed static_cast
        * ksvg2/svg/SVGLocatableImpl.cpp:
        (SVGLocatableImpl::nearestViewportElement): foreignObject support
        (SVGLocatableImpl::farthestViewportElement): foreignObject support
        * ksvg2/svg/svgtags.in: added foreignObject
        * kwq/KWQWMatrix.cpp:
        (QWMatrix::isInvertible): fixed

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@12103 268f45cc-cd09-0410-ab3c-d52691b4dbfc
37 files changed:
LayoutTests/ChangeLog
LayoutTests/svg/W3C-SVG-1.1/filters-light-01-f-expected.checksum
LayoutTests/svg/W3C-SVG-1.1/filters-light-01-f-expected.png
LayoutTests/svg/custom/foreign-object-skew-expected.checksum [new file with mode: 0644]
LayoutTests/svg/custom/foreign-object-skew-expected.png [new file with mode: 0644]
LayoutTests/svg/custom/foreign-object-skew-expected.txt [new file with mode: 0644]
LayoutTests/svg/custom/foreign-object-skew.svg [new file with mode: 0644]
LayoutTests/svg/custom/image-with-transform-clip-filter-expected.checksum [new file with mode: 0644]
LayoutTests/svg/custom/image-with-transform-clip-filter-expected.png [new file with mode: 0644]
LayoutTests/svg/custom/image-with-transform-clip-filter-expected.txt [new file with mode: 0644]
LayoutTests/svg/custom/image-with-transform-clip-filter.svg [new file with mode: 0644]
LayoutTests/svg/custom/resources/green-checker.png [new file with mode: 0644]
LayoutTests/svg/custom/resources/red-checker.png [new file with mode: 0644]
LayoutTests/svg/custom/text-clip-expected.checksum [new file with mode: 0644]
LayoutTests/svg/custom/text-clip-expected.png [new file with mode: 0644]
LayoutTests/svg/custom/text-clip-expected.txt [new file with mode: 0644]
LayoutTests/svg/custom/text-clip.svg [new file with mode: 0644]
LayoutTests/svg/custom/text-filter-expected.checksum [new file with mode: 0644]
LayoutTests/svg/custom/text-filter-expected.png [new file with mode: 0644]
LayoutTests/svg/custom/text-filter-expected.txt [new file with mode: 0644]
LayoutTests/svg/custom/text-filter.svg [new file with mode: 0644]
WebCore/ChangeLog
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/kcanvas/RenderForeignObject.cpp [new file with mode: 0644]
WebCore/kcanvas/RenderForeignObject.h [new file with mode: 0644]
WebCore/kcanvas/RenderSVGImage.cpp
WebCore/kcanvas/RenderSVGImage.h
WebCore/kcanvas/RenderSVGText.cpp
WebCore/kcanvas/RenderSVGText.h
WebCore/khtml/rendering/render_object.h
WebCore/ksvg2/css/svg.css
WebCore/ksvg2/svg/SVGForeignObjectElementImpl.cpp [new file with mode: 0644]
WebCore/ksvg2/svg/SVGForeignObjectElementImpl.h [new file with mode: 0644]
WebCore/ksvg2/svg/SVGImageElementImpl.cpp
WebCore/ksvg2/svg/SVGLocatableImpl.cpp
WebCore/ksvg2/svg/svgtags.in
WebCore/kwq/KWQWMatrix.cpp