Reviewed by Tim H.
authorweinig <weinig@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 11 Oct 2006 03:46:36 +0000 (03:46 +0000)
committerweinig <weinig@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 11 Oct 2006 03:46:36 +0000 (03:46 +0000)
        Patch for http://bugs.webkit.org/show_bug.cgi?id=11248
        Even More auto-generated Objective-C DOM bindings changes

        - Auto-generate DOMSVGPathElement.

        - Auto-generate the internal interfaces even for classes that have
          custom internal implementations.  Change IDL property from ObjCNoInternal
          to ObjCCustomInternalImpl to indicate the change.

        - Add SVG classes to DOMNode and DOMEvent internal interfaces.

        - Add isSVGZoomEvent() method to Event class to match other Event subclasses
          and make DOM binding possible.

        - Assorted cleanups.

        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/objc/DOM.mm:
        (WebCore::addElementClass):
        (WebCore::createElementClassMap):
        (WebCore::elementClass):
        (-[DOMNode description]):
        (+[DOMNode _nodeWith:WebCore::]):
        (-[DOMNode addEventListener:listener:useCapture:]):
        (-[DOMNode removeEventListener:listener:useCapture:]):
        (-[DOMElement _NPObject]):
        (WebCore::ObjCEventListener::handleEvent):
        * bindings/objc/DOMEvents.mm:
        (+[DOMEvent _eventWith:WebCore::]):
        * bindings/objc/DOMInternal.h:
        * bindings/objc/DOMRGBColor.mm:
        (-[DOMRGBColor WebCore::]):
        * bindings/objc/DOMSVGPathSegInternal.h: Removed.
        * bindings/scripts/CodeGeneratorObjC.pm:
        * css/CSSRule.idl:
        * css/CSSValue.idl:
        * css/StyleSheet.idl:
        * dom/Event.cpp:
        (WebCore::Event::isSVGZoomEvent):
        * dom/Event.h:
        * dom/Event.idl:
        * dom/Node.idl:
        * ksvg2/events/SVGZoomEvent.cpp:
        (WebCore::SVGZoomEvent::isSVGZoomEvent):
        * ksvg2/events/SVGZoomEvent.h:
        * ksvg2/svg/SVGAnimatedAngle.idl:
        * ksvg2/svg/SVGCircleElement.idl:
        * ksvg2/svg/SVGClipPathElement.idl:
        * ksvg2/svg/SVGPathElement.idl:
        * ksvg2/svg/SVGPathSeg.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16982 268f45cc-cd09-0410-ab3c-d52691b4dbfc

23 files changed:
WebCore/ChangeLog
WebCore/DerivedSources.make
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bindings/objc/DOM.mm
WebCore/bindings/objc/DOMEvents.mm
WebCore/bindings/objc/DOMInternal.h
WebCore/bindings/objc/DOMRGBColor.mm
WebCore/bindings/objc/DOMSVGPathSegInternal.h [deleted file]
WebCore/bindings/scripts/CodeGeneratorObjC.pm
WebCore/css/CSSRule.idl
WebCore/css/CSSValue.idl
WebCore/css/StyleSheet.idl
WebCore/dom/Event.cpp
WebCore/dom/Event.h
WebCore/dom/Event.idl
WebCore/dom/Node.idl
WebCore/ksvg2/events/SVGZoomEvent.cpp
WebCore/ksvg2/events/SVGZoomEvent.h
WebCore/ksvg2/svg/SVGAnimatedAngle.idl
WebCore/ksvg2/svg/SVGCircleElement.idl
WebCore/ksvg2/svg/SVGClipPathElement.idl
WebCore/ksvg2/svg/SVGPathElement.idl
WebCore/ksvg2/svg/SVGPathSeg.idl

index ff20c5285469ad57706b84ea590c84ffd093f2a5..5e4f467a0ec57e3feca749bb0699e844a2dd3add 100644 (file)
@@ -1,3 +1,59 @@
+2006-10-10  Sam Weinig  <sam.weinig@gmail.com>
+
+        Reviewed by Tim H.
+
+        Patch for http://bugs.webkit.org/show_bug.cgi?id=11248
+        Even More auto-generated Objective-C DOM bindings changes
+
+        - Auto-generate DOMSVGPathElement.
+
+        - Auto-generate the internal interfaces even for classes that have
+          custom internal implementations.  Change IDL property from ObjCNoInternal
+          to ObjCCustomInternalImpl to indicate the change.
+
+        - Add SVG classes to DOMNode and DOMEvent internal interfaces.
+
+        - Add isSVGZoomEvent() method to Event class to match other Event subclasses
+          and make DOM binding possible.
+
+        - Assorted cleanups.
+
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/objc/DOM.mm:
+        (WebCore::addElementClass):
+        (WebCore::createElementClassMap):
+        (WebCore::elementClass):
+        (-[DOMNode description]):
+        (+[DOMNode _nodeWith:WebCore::]):
+        (-[DOMNode addEventListener:listener:useCapture:]):
+        (-[DOMNode removeEventListener:listener:useCapture:]):
+        (-[DOMElement _NPObject]):
+        (WebCore::ObjCEventListener::handleEvent):
+        * bindings/objc/DOMEvents.mm:
+        (+[DOMEvent _eventWith:WebCore::]):
+        * bindings/objc/DOMInternal.h:
+        * bindings/objc/DOMRGBColor.mm:
+        (-[DOMRGBColor WebCore::]):
+        * bindings/objc/DOMSVGPathSegInternal.h: Removed.
+        * bindings/scripts/CodeGeneratorObjC.pm:
+        * css/CSSRule.idl:
+        * css/CSSValue.idl:
+        * css/StyleSheet.idl:
+        * dom/Event.cpp:
+        (WebCore::Event::isSVGZoomEvent):
+        * dom/Event.h:
+        * dom/Event.idl:
+        * dom/Node.idl:
+        * ksvg2/events/SVGZoomEvent.cpp:
+        (WebCore::SVGZoomEvent::isSVGZoomEvent):
+        * ksvg2/events/SVGZoomEvent.h:
+        * ksvg2/svg/SVGAnimatedAngle.idl:
+        * ksvg2/svg/SVGCircleElement.idl:
+        * ksvg2/svg/SVGClipPathElement.idl:
+        * ksvg2/svg/SVGPathElement.idl:
+        * ksvg2/svg/SVGPathSeg.idl:
+
 2006-10-10  Oliver Hunt  <oliver@apple.com>
 
         rubber stamped by Anders.
index 0bc18683457edd36c26855fdddd8b16f4d728e75..ff5ac7e6c8fd9ca4c23695282b800c67f9c384b8 100644 (file)
@@ -43,6 +43,7 @@ VPATH = \
 ifeq ($(OS),MACOS)
 all : \
     DOMAbstractView.h \
+    DOMSVGPathElement.h \
     DOMAttr.h \
     DOMCDATASection.h \
     DOMCSSCharsetRule.h \
index 17f464cbdf20f9dd5a04480e3fe5cebf6910dc27..41371be18871f2232a438a322e88cc8a96421d68 100644 (file)
                85AF5C570ACDD1B6005269DE /* DOMSVGURIReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AF5C560ACDD1B6005269DE /* DOMSVGURIReference.h */; };
                85AFA8220AAF528A00E84305 /* DOMEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AFA8200AAF528A00E84305 /* DOMEvent.h */; };
                85AFA8230AAF528A00E84305 /* DOMEvent.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85AFA8210AAF528A00E84305 /* DOMEvent.mm */; };
+               85B498ED0ADB32FB00925CBB /* DOMCSSRuleInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85B498EC0ADB32FB00925CBB /* DOMCSSRuleInternal.h */; };
+               85B498F30ADB336A00925CBB /* DOMCSSValueInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85B498F20ADB336A00925CBB /* DOMCSSValueInternal.h */; };
+               85B498F50ADB337A00925CBB /* DOMEventInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85B498F40ADB337A00925CBB /* DOMEventInternal.h */; };
+               85B498FB0ADB340200925CBB /* DOMNodeInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85B498FA0ADB340200925CBB /* DOMNodeInternal.h */; };
+               85B498FF0ADB348100925CBB /* DOMStyleSheetInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85B498FE0ADB348100925CBB /* DOMStyleSheetInternal.h */; };
+               85B499010ADB34B300925CBB /* DOMSVGPathSegInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85B499000ADB34B300925CBB /* DOMSVGPathSegInternal.h */; };
+               85B4996B0ADB3FF500925CBB /* DOMSVGPathElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 85B499690ADB3FF500925CBB /* DOMSVGPathElement.h */; };
+               85B4996C0ADB3FF500925CBB /* DOMSVGPathElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85B4996A0ADB3FF500925CBB /* DOMSVGPathElement.mm */; };
+               85B499780ADB425E00925CBB /* DOMSVGPathElementInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85B499770ADB425E00925CBB /* DOMSVGPathElementInternal.h */; };
                85BA4CDD0AA6861B0088052D /* DOMHTMLButtonElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 85BA4CD50AA6861B0088052D /* DOMHTMLButtonElement.h */; };
                85BA4CDE0AA6861B0088052D /* DOMHTMLButtonElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85BA4CD60AA6861B0088052D /* DOMHTMLButtonElement.mm */; };
                85BA4CDF0AA6861B0088052D /* DOMHTMLFieldSetElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 85BA4CD70AA6861B0088052D /* DOMHTMLFieldSetElement.h */; };
                85CE1A9C0ADAC708003BBDEA /* DOMSVGSVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 85CE1A9A0ADAC708003BBDEA /* DOMSVGSVGElement.h */; };
                85CE1A9D0ADAC708003BBDEA /* DOMSVGSVGElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85CE1A9B0ADAC708003BBDEA /* DOMSVGSVGElement.mm */; };
                85CE1AA10ADAC752003BBDEA /* DOMSVGSVGElementInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85CE1AA00ADAC752003BBDEA /* DOMSVGSVGElementInternal.h */; };
-               85CE1AF30ADAD440003BBDEA /* DOMSVGPathSegInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85CE1AF20ADAD440003BBDEA /* DOMSVGPathSegInternal.h */; };
                85CE1B020ADADA96003BBDEA /* DOMSVGPathSegInternal.mm in Sources */ = {isa = PBXBuildFile; fileRef = 85CE1B010ADADA96003BBDEA /* DOMSVGPathSegInternal.mm */; };
                85D2AD680AB1A40A00C313EA /* DOMEventListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 85D2AD670AB1A40A00C313EA /* DOMEventListener.h */; };
                85D2AD6D0AB1A48200C313EA /* DOMEventListener.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 85D2AD670AB1A40A00C313EA /* DOMEventListener.h */; };
                85AFA7420AAF298400E84305 /* EventTarget.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = EventTarget.idl; sourceTree = "<group>"; };
                85AFA8200AAF528A00E84305 /* DOMEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMEvent.h; sourceTree = "<group>"; };
                85AFA8210AAF528A00E84305 /* DOMEvent.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMEvent.mm; sourceTree = "<group>"; };
+               85B498EC0ADB32FB00925CBB /* DOMCSSRuleInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMCSSRuleInternal.h; sourceTree = "<group>"; };
+               85B498F20ADB336A00925CBB /* DOMCSSValueInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMCSSValueInternal.h; sourceTree = "<group>"; };
+               85B498F40ADB337A00925CBB /* DOMEventInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMEventInternal.h; sourceTree = "<group>"; };
+               85B498FA0ADB340200925CBB /* DOMNodeInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMNodeInternal.h; sourceTree = "<group>"; };
+               85B498FE0ADB348100925CBB /* DOMStyleSheetInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMStyleSheetInternal.h; sourceTree = "<group>"; };
+               85B499000ADB34B300925CBB /* DOMSVGPathSegInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGPathSegInternal.h; sourceTree = "<group>"; };
+               85B499690ADB3FF500925CBB /* DOMSVGPathElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGPathElement.h; sourceTree = "<group>"; };
+               85B4996A0ADB3FF500925CBB /* DOMSVGPathElement.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGPathElement.mm; sourceTree = "<group>"; };
+               85B499770ADB425E00925CBB /* DOMSVGPathElementInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGPathElementInternal.h; sourceTree = "<group>"; };
                85BA4CD50AA6861B0088052D /* DOMHTMLButtonElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMHTMLButtonElement.h; sourceTree = "<group>"; };
                85BA4CD60AA6861B0088052D /* DOMHTMLButtonElement.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMHTMLButtonElement.mm; sourceTree = "<group>"; };
                85BA4CD70AA6861B0088052D /* DOMHTMLFieldSetElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMHTMLFieldSetElement.h; sourceTree = "<group>"; };
                85CE1A9A0ADAC708003BBDEA /* DOMSVGSVGElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGSVGElement.h; sourceTree = "<group>"; };
                85CE1A9B0ADAC708003BBDEA /* DOMSVGSVGElement.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGSVGElement.mm; sourceTree = "<group>"; };
                85CE1AA00ADAC752003BBDEA /* DOMSVGSVGElementInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGSVGElementInternal.h; sourceTree = "<group>"; };
-               85CE1AF20ADAD440003BBDEA /* DOMSVGPathSegInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGPathSegInternal.h; sourceTree = "<group>"; };
                85CE1B010ADADA96003BBDEA /* DOMSVGPathSegInternal.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGPathSegInternal.mm; sourceTree = "<group>"; };
                85D2AD670AB1A40A00C313EA /* DOMEventListener.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMEventListener.h; sourceTree = "<group>"; };
                85D389B00A991A7F00282145 /* DOMAttr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMAttr.h; sourceTree = "<group>"; };
                                851620EE0AD2FD880059A7DE /* DOMSVGNumber.mm */,
                                851620F00AD2FD880059A7DE /* DOMSVGPoint.mm */,
                                851620F20AD2FD890059A7DE /* DOMSVGRect.mm */,
-                               85CE1AF20ADAD440003BBDEA /* DOMSVGPathSegInternal.h */,
                                85CE1B010ADADA96003BBDEA /* DOMSVGPathSegInternal.mm */,
                        );
                        name = SVG;
                                85C239800AD5907D003533E7 /* DOMSVGNumberList.mm */,
                                85C9A3030AD7E94200FBFF1E /* DOMSVGPaint.h */,
                                85C9A3040AD7E94200FBFF1E /* DOMSVGPaint.mm */,
+                               85B499690ADB3FF500925CBB /* DOMSVGPathElement.h */,
+                               85B4996A0ADB3FF500925CBB /* DOMSVGPathElement.mm */,
                                854163610AC7180B0001E01B /* DOMSVGPathSeg.h */,
                                854163600AC7180B0001E01B /* DOMSVGPathSeg.mm */,
                                8501204D0ADABC9200267125 /* DOMSVGPathSegArcAbs.h */,
                                85909CD60ACC7A7E00DF01F1 /* DOMCSSMediaRuleInternal.h */,
                                85909CD70ACC7A7E00DF01F1 /* DOMCSSPageRuleInternal.h */,
                                85909D260ACC7D5500DF01F1 /* DOMCSSPrimitiveValueInternal.h */,
+                               85B498EC0ADB32FB00925CBB /* DOMCSSRuleInternal.h */,
                                85E711430AC5D5340053270F /* DOMCSSRuleListInternal.h */,
                                85E711440AC5D5340053270F /* DOMCSSStyleDeclarationInternal.h */,
                                85909CD90ACC7A7E00DF01F1 /* DOMCSSStyleRuleInternal.h */,
                                85909CDA0ACC7A7E00DF01F1 /* DOMCSSStyleSheetInternal.h */,
                                85909CDB0ACC7A7E00DF01F1 /* DOMCSSUnknownRuleInternal.h */,
+                               85B498F20ADB336A00925CBB /* DOMCSSValueInternal.h */,
                                85909D280ACC7D5500DF01F1 /* DOMCSSValueListInternal.h */,
                                85E711450AC5D5340053270F /* DOMDocumentFragmentInternal.h */,
                                85E711460AC5D5340053270F /* DOMDocumentInternal.h */,
                                85E711490AC5D5340053270F /* DOMElementInternal.h */,
                                85E7114A0AC5D5340053270F /* DOMEntityInternal.h */,
                                85E7114B0AC5D5340053270F /* DOMEntityReferenceInternal.h */,
+                               85B498F40ADB337A00925CBB /* DOMEventInternal.h */,
                                85E7114C0AC5D5340053270F /* DOMHTMLAnchorElementInternal.h */,
                                855247CD0AD850B80012093B /* DOMHTMLAppletElementInternal.h */,
                                85E7114D0AC5D5340053270F /* DOMHTMLAreaElementInternal.h */,
                                85989DC60ACC8BBD00A0BC51 /* DOMMouseEventInternal.h */,
                                85989DC70ACC8BBD00A0BC51 /* DOMMutationEventInternal.h */,
                                85E711830AC5D5350053270F /* DOMNamedNodeMapInternal.h */,
+                               85B498FA0ADB340200925CBB /* DOMNodeInternal.h */,
                                850B41C00AD9E7E700A6ED4F /* DOMNodeIteratorInternal.h */,
                                85E711840AC5D5350053270F /* DOMNodeListInternal.h */,
                                85E711850AC5D5350053270F /* DOMNotationInternal.h */,
                                85E711860AC5D5350053270F /* DOMProcessingInstructionInternal.h */,
                                8538F05A0AD722F1006A81D1 /* DOMRangeInternal.h */,
                                85E711870AC5D5350053270F /* DOMRectInternal.h */,
+                               85B498FE0ADB348100925CBB /* DOMStyleSheetInternal.h */,
                                85E711880AC5D5350053270F /* DOMStyleSheetListInternal.h */,
                                85ACEF850ACDD04A001214FF /* DOMSVGAElementInternal.h */,
                                854163960AC718680001E01B /* DOMSVGAngleInternal.h */,
                                8559F11E0AC9BF4100A3439C /* DOMSVGMetadataElementInternal.h */,
                                85C239830AD59098003533E7 /* DOMSVGNumberListInternal.h */,
                                85C9A3180AD7E9A400FBFF1E /* DOMSVGPaintInternal.h */,
+                               85B499770ADB425E00925CBB /* DOMSVGPathElementInternal.h */,
                                850120550ADABCD900267125 /* DOMSVGPathSegArcAbsInternal.h */,
                                850120560ADABCD900267125 /* DOMSVGPathSegArcRelInternal.h */,
                                85CE1A930ADAC66D003BBDEA /* DOMSVGPathSegClosePathInternal.h */,
                                85CE1A620ADAC4C5003BBDEA /* DOMSVGPathSegCurvetoQuadraticRelInternal.h */,
                                85CE1A630ADAC4C5003BBDEA /* DOMSVGPathSegCurvetoQuadraticSmoothAbsInternal.h */,
                                85CE1A640ADAC4C5003BBDEA /* DOMSVGPathSegCurvetoQuadraticSmoothRelInternal.h */,
+                               85B499000ADB34B300925CBB /* DOMSVGPathSegInternal.h */,
                                85CE1A650ADAC4C5003BBDEA /* DOMSVGPathSegLinetoAbsInternal.h */,
                                85CE1A660ADAC4C5003BBDEA /* DOMSVGPathSegLinetoHorizontalAbsInternal.h */,
                                85CE1A670ADAC4C5003BBDEA /* DOMSVGPathSegLinetoHorizontalRelInternal.h */,
                                85CE1A940ADAC66D003BBDEA /* DOMSVGPathSegClosePathInternal.h in Headers */,
                                85CE1A9C0ADAC708003BBDEA /* DOMSVGSVGElement.h in Headers */,
                                85CE1AA10ADAC752003BBDEA /* DOMSVGSVGElementInternal.h in Headers */,
-                               85CE1AF30ADAD440003BBDEA /* DOMSVGPathSegInternal.h in Headers */,
+                               85B498ED0ADB32FB00925CBB /* DOMCSSRuleInternal.h in Headers */,
+                               85B498F30ADB336A00925CBB /* DOMCSSValueInternal.h in Headers */,
+                               85B498F50ADB337A00925CBB /* DOMEventInternal.h in Headers */,
+                               85B498FB0ADB340200925CBB /* DOMNodeInternal.h in Headers */,
+                               85B498FF0ADB348100925CBB /* DOMStyleSheetInternal.h in Headers */,
+                               85B499010ADB34B300925CBB /* DOMSVGPathSegInternal.h in Headers */,
+                               85B4996B0ADB3FF500925CBB /* DOMSVGPathElement.h in Headers */,
+                               85B499780ADB425E00925CBB /* DOMSVGPathElementInternal.h in Headers */,
                                656D37320ADBA5DE00A4554D /* LoaderNSURLExtras.h in Headers */,
                                656D37340ADBA5DE00A4554D /* WebDataProtocol.h in Headers */,
                                656D37360ADBA5DE00A4554D /* WebDocumentLoader.h in Headers */,
                                85CE1A920ADAC650003BBDEA /* DOMSVGPathSegClosePath.mm in Sources */,
                                85CE1A9D0ADAC708003BBDEA /* DOMSVGSVGElement.mm in Sources */,
                                85CE1B020ADADA96003BBDEA /* DOMSVGPathSegInternal.mm in Sources */,
+                               85B4996C0ADB3FF500925CBB /* DOMSVGPathElement.mm in Sources */,
                                656D37330ADBA5DE00A4554D /* LoaderNSURLExtras.m in Sources */,
                                656D37350ADBA5DE00A4554D /* WebDataProtocol.mm in Sources */,
                                656D37370ADBA5DE00A4554D /* WebDocumentLoader.mm in Sources */,
index f08460dd04b61ab2ee91eb7b0852d1115df54c4d..07cf460f5d04be3ffae3f47e7adaf23957bfa139 100644 (file)
 #import <objc/objc-class.h>
 #import <wtf/HashMap.h>
 
-using namespace WebCore::HTMLNames;
+#ifdef SVG_SUPPORT
+#import "SVGDocument.h"
+#import "SVGElement.h"
+#import "SVGNames.h"
+#endif
 
-class ObjCEventListener : public WebCore::EventListener {
+namespace WebCore {
+
+class ObjCEventListener : public EventListener {
 public:
     static ObjCEventListener* find(id <DOMEventListener>);
     static ObjCEventListener* create(id <DOMEventListener>);
@@ -74,107 +80,176 @@ private:
     ObjCEventListener(id <DOMEventListener>);
     virtual ~ObjCEventListener();
 
-    virtual void handleEvent(WebCore::Event*, bool isWindowEvent);
+    virtual void handleEvent(Event*, bool isWindowEvent);
 
     id <DOMEventListener> m_listener;
 };
 
 typedef HashMap<id, ObjCEventListener*> ListenerMap;
-typedef HashMap<WebCore::AtomicStringImpl*, Class> ObjCClassMap;
-
-static ObjCClassMap* elementClassMap;
 static ListenerMap* listenerMap;
 
+} // namespace WebCore
+
 
 //------------------------------------------------------------------------------------------
 // DOMNode
 
-static void addElementClass(const WebCore::QualifiedName& tag, Class objCClass)
+namespace WebCore {
+
+typedef HashMap<const QualifiedName*, Class> ObjCClassMap;
+static ObjCClassMap* elementClassMap;
+
+static void addElementClass(const QualifiedName& tag, Class objCClass)
 {
-    elementClassMap->set(tag.localName().impl(), objCClass);
+    elementClassMap->set(&tag, objCClass);
 }
 
-static void createHTMLElementClassMap()
+static void createElementClassMap()
 {
     // Create the table.
     elementClassMap = new ObjCClassMap;
-    
-    // Populate it with HTML element classes.
-    addElementClass(aTag, [DOMHTMLAnchorElement class]);
-    addElementClass(appletTag, [DOMHTMLAppletElement class]);
-    addElementClass(areaTag, [DOMHTMLAreaElement class]);
-    addElementClass(baseTag, [DOMHTMLBaseElement class]);
-    addElementClass(basefontTag, [DOMHTMLBaseFontElement class]);
-    addElementClass(bodyTag, [DOMHTMLBodyElement class]);
-    addElementClass(brTag, [DOMHTMLBRElement class]);
-    addElementClass(buttonTag, [DOMHTMLButtonElement class]);
-    addElementClass(canvasTag, [DOMHTMLImageElement class]);
-    addElementClass(captionTag, [DOMHTMLTableCaptionElement class]);
-    addElementClass(colTag, [DOMHTMLTableColElement class]);
-    addElementClass(colgroupTag, [DOMHTMLTableColElement class]);
-    addElementClass(dirTag, [DOMHTMLDirectoryElement class]);
-    addElementClass(divTag, [DOMHTMLDivElement class]);
-    addElementClass(dlTag, [DOMHTMLDListElement class]);
-    addElementClass(fieldsetTag, [DOMHTMLFieldSetElement class]);
-    addElementClass(fontTag, [DOMHTMLFontElement class]);
-    addElementClass(formTag, [DOMHTMLFormElement class]);
-    addElementClass(frameTag, [DOMHTMLFrameElement class]);
-    addElementClass(framesetTag, [DOMHTMLFrameSetElement class]);
-    addElementClass(h1Tag, [DOMHTMLHeadingElement class]);
-    addElementClass(h2Tag, [DOMHTMLHeadingElement class]);
-    addElementClass(h3Tag, [DOMHTMLHeadingElement class]);
-    addElementClass(h4Tag, [DOMHTMLHeadingElement class]);
-    addElementClass(h5Tag, [DOMHTMLHeadingElement class]);
-    addElementClass(h6Tag, [DOMHTMLHeadingElement class]);
-    addElementClass(headTag, [DOMHTMLHeadElement class]);
-    addElementClass(hrTag, [DOMHTMLHRElement class]);
-    addElementClass(htmlTag, [DOMHTMLHtmlElement class]);
-    addElementClass(iframeTag, [DOMHTMLIFrameElement class]);
-    addElementClass(imgTag, [DOMHTMLImageElement class]);
-    addElementClass(inputTag, [DOMHTMLInputElement class]);
-    addElementClass(isindexTag, [DOMHTMLIsIndexElement class]);
-    addElementClass(labelTag, [DOMHTMLLabelElement class]);
-    addElementClass(legendTag, [DOMHTMLLegendElement class]);
-    addElementClass(liTag, [DOMHTMLLIElement class]);
-    addElementClass(linkTag, [DOMHTMLLinkElement class]);
-    addElementClass(listingTag, [DOMHTMLPreElement class]);
-    addElementClass(mapTag, [DOMHTMLMapElement class]);
-    addElementClass(menuTag, [DOMHTMLMenuElement class]);
-    addElementClass(metaTag, [DOMHTMLMetaElement class]);
-    addElementClass(objectTag, [DOMHTMLObjectElement class]);
-    addElementClass(olTag, [DOMHTMLOListElement class]);
-    addElementClass(optgroupTag, [DOMHTMLOptGroupElement class]);
-    addElementClass(optionTag, [DOMHTMLOptionElement class]);
-    addElementClass(pTag, [DOMHTMLParagraphElement class]);
-    addElementClass(paramTag, [DOMHTMLParamElement class]);
-    addElementClass(preTag, [DOMHTMLPreElement class]);
-    addElementClass(qTag, [DOMHTMLQuoteElement class]);
-    addElementClass(scriptTag, [DOMHTMLScriptElement class]);
-    addElementClass(selectTag, [DOMHTMLSelectElement class]);
-    addElementClass(styleTag, [DOMHTMLStyleElement class]);
-    addElementClass(tableTag, [DOMHTMLTableElement class]);
-    addElementClass(tbodyTag, [DOMHTMLTableSectionElement class]);
-    addElementClass(tdTag, [DOMHTMLTableCellElement class]);
-    addElementClass(textareaTag, [DOMHTMLTextAreaElement class]);
-    addElementClass(tfootTag, [DOMHTMLTableSectionElement class]);
-    addElementClass(theadTag, [DOMHTMLTableSectionElement class]);
-    addElementClass(titleTag, [DOMHTMLTitleElement class]);
-    addElementClass(trTag, [DOMHTMLTableRowElement class]);
-    addElementClass(ulTag, [DOMHTMLUListElement class]);
 
     // FIXME: Reflect marquee once the API has been determined.
-}
 
-static Class elementClass(const WebCore::AtomicString& tagName)
+    // Populate it with HTML and SVG element classes.
+    addElementClass(HTMLNames::aTag, [DOMHTMLAnchorElement class]);
+    addElementClass(HTMLNames::appletTag, [DOMHTMLAppletElement class]);
+    addElementClass(HTMLNames::areaTag, [DOMHTMLAreaElement class]);
+    addElementClass(HTMLNames::baseTag, [DOMHTMLBaseElement class]);
+    addElementClass(HTMLNames::basefontTag, [DOMHTMLBaseFontElement class]);
+    addElementClass(HTMLNames::bodyTag, [DOMHTMLBodyElement class]);
+    addElementClass(HTMLNames::brTag, [DOMHTMLBRElement class]);
+    addElementClass(HTMLNames::buttonTag, [DOMHTMLButtonElement class]);
+    addElementClass(HTMLNames::canvasTag, [DOMHTMLImageElement class]);
+    addElementClass(HTMLNames::captionTag, [DOMHTMLTableCaptionElement class]);
+    addElementClass(HTMLNames::colTag, [DOMHTMLTableColElement class]);
+    addElementClass(HTMLNames::colgroupTag, [DOMHTMLTableColElement class]);
+    addElementClass(HTMLNames::dirTag, [DOMHTMLDirectoryElement class]);
+    addElementClass(HTMLNames::divTag, [DOMHTMLDivElement class]);
+    addElementClass(HTMLNames::dlTag, [DOMHTMLDListElement class]);
+    addElementClass(HTMLNames::fieldsetTag, [DOMHTMLFieldSetElement class]);
+    addElementClass(HTMLNames::fontTag, [DOMHTMLFontElement class]);
+    addElementClass(HTMLNames::formTag, [DOMHTMLFormElement class]);
+    addElementClass(HTMLNames::frameTag, [DOMHTMLFrameElement class]);
+    addElementClass(HTMLNames::framesetTag, [DOMHTMLFrameSetElement class]);
+    addElementClass(HTMLNames::h1Tag, [DOMHTMLHeadingElement class]);
+    addElementClass(HTMLNames::h2Tag, [DOMHTMLHeadingElement class]);
+    addElementClass(HTMLNames::h3Tag, [DOMHTMLHeadingElement class]);
+    addElementClass(HTMLNames::h4Tag, [DOMHTMLHeadingElement class]);
+    addElementClass(HTMLNames::h5Tag, [DOMHTMLHeadingElement class]);
+    addElementClass(HTMLNames::h6Tag, [DOMHTMLHeadingElement class]);
+    addElementClass(HTMLNames::headTag, [DOMHTMLHeadElement class]);
+    addElementClass(HTMLNames::hrTag, [DOMHTMLHRElement class]);
+    addElementClass(HTMLNames::htmlTag, [DOMHTMLHtmlElement class]);
+    addElementClass(HTMLNames::iframeTag, [DOMHTMLIFrameElement class]);
+    addElementClass(HTMLNames::imgTag, [DOMHTMLImageElement class]);
+    addElementClass(HTMLNames::inputTag, [DOMHTMLInputElement class]);
+    addElementClass(HTMLNames::isindexTag, [DOMHTMLIsIndexElement class]);
+    addElementClass(HTMLNames::labelTag, [DOMHTMLLabelElement class]);
+    addElementClass(HTMLNames::legendTag, [DOMHTMLLegendElement class]);
+    addElementClass(HTMLNames::liTag, [DOMHTMLLIElement class]);
+    addElementClass(HTMLNames::linkTag, [DOMHTMLLinkElement class]);
+    addElementClass(HTMLNames::listingTag, [DOMHTMLPreElement class]);
+    addElementClass(HTMLNames::mapTag, [DOMHTMLMapElement class]);
+    addElementClass(HTMLNames::menuTag, [DOMHTMLMenuElement class]);
+    addElementClass(HTMLNames::metaTag, [DOMHTMLMetaElement class]);
+    addElementClass(HTMLNames::objectTag, [DOMHTMLObjectElement class]);
+    addElementClass(HTMLNames::olTag, [DOMHTMLOListElement class]);
+    addElementClass(HTMLNames::optgroupTag, [DOMHTMLOptGroupElement class]);
+    addElementClass(HTMLNames::optionTag, [DOMHTMLOptionElement class]);
+    addElementClass(HTMLNames::pTag, [DOMHTMLParagraphElement class]);
+    addElementClass(HTMLNames::paramTag, [DOMHTMLParamElement class]);
+    addElementClass(HTMLNames::preTag, [DOMHTMLPreElement class]);
+    addElementClass(HTMLNames::qTag, [DOMHTMLQuoteElement class]);
+    addElementClass(HTMLNames::scriptTag, [DOMHTMLScriptElement class]);
+    addElementClass(HTMLNames::selectTag, [DOMHTMLSelectElement class]);
+    addElementClass(HTMLNames::styleTag, [DOMHTMLStyleElement class]);
+    addElementClass(HTMLNames::tableTag, [DOMHTMLTableElement class]);
+    addElementClass(HTMLNames::tbodyTag, [DOMHTMLTableSectionElement class]);
+    addElementClass(HTMLNames::tdTag, [DOMHTMLTableCellElement class]);
+    addElementClass(HTMLNames::textareaTag, [DOMHTMLTextAreaElement class]);
+    addElementClass(HTMLNames::tfootTag, [DOMHTMLTableSectionElement class]);
+    addElementClass(HTMLNames::theadTag, [DOMHTMLTableSectionElement class]);
+    addElementClass(HTMLNames::titleTag, [DOMHTMLTitleElement class]);
+    addElementClass(HTMLNames::trTag, [DOMHTMLTableRowElement class]);
+    addElementClass(HTMLNames::ulTag, [DOMHTMLUListElement class]);
+
+#ifdef SVG_SUPPORT
+    addElementClass(SVGNames::aTag, [DOMSVGAElement class]);
+    addElementClass(SVGNames::animateTag, [DOMSVGAnimateElement class]);
+    addElementClass(SVGNames::animateColorTag, [DOMSVGAnimateColorElement class]);
+    addElementClass(SVGNames::animateTransformTag, [DOMSVGAnimateTransformElement class]);
+    addElementClass(SVGNames::circleTag, [DOMSVGCircleElement class]);
+    addElementClass(SVGNames::clipPathTag, [DOMSVGClipPathElement class]);
+    addElementClass(SVGNames::cursorTag, [DOMSVGCursorElement class]);
+    addElementClass(SVGNames::defsTag, [DOMSVGDefsElement class]);
+    addElementClass(SVGNames::descTag, [DOMSVGDescElement class]);
+    addElementClass(SVGNames::ellipseTag, [DOMSVGEllipseElement class]);
+    addElementClass(SVGNames::feBlendTag, [DOMSVGFEBlendElement class]);
+    addElementClass(SVGNames::feColorMatrixTag, [DOMSVGFEColorMatrixElement class]);
+    addElementClass(SVGNames::feComponentTransferTag, [DOMSVGFEComponentTransferElement class]);
+    addElementClass(SVGNames::feCompositeTag, [DOMSVGFECompositeElement class]);
+    addElementClass(SVGNames::feDiffuseLightingTag, [DOMSVGFEDiffuseLightingElement class]);
+    addElementClass(SVGNames::feDisplacementMapTag, [DOMSVGFEDisplacementMapElement class]);
+    addElementClass(SVGNames::feDistantLightTag, [DOMSVGFEDistantLightElement class]);
+    addElementClass(SVGNames::feFloodTag, [DOMSVGFEFloodElement class]);
+    addElementClass(SVGNames::feFuncATag, [DOMSVGFEFuncAElement class]);
+    addElementClass(SVGNames::feFuncBTag, [DOMSVGFEFuncBElement class]);
+    addElementClass(SVGNames::feFuncGTag, [DOMSVGFEFuncGElement class]);
+    addElementClass(SVGNames::feFuncRTag, [DOMSVGFEFuncRElement class]);
+    addElementClass(SVGNames::feGaussianBlurTag, [DOMSVGFEGaussianBlurElement class]);
+    addElementClass(SVGNames::feImageTag, [DOMSVGFEImageElement class]);
+    addElementClass(SVGNames::feMergeTag, [DOMSVGFEMergeElement class]);
+    addElementClass(SVGNames::feMergeNodeTag, [DOMSVGFEMergeNodeElement class]);
+    addElementClass(SVGNames::feOffsetTag, [DOMSVGFEOffsetElement class]);
+    addElementClass(SVGNames::fePointLightTag, [DOMSVGFEPointLightElement class]);
+    addElementClass(SVGNames::feSpecularLightingTag, [DOMSVGFESpecularLightingElement class]);
+    addElementClass(SVGNames::feSpotLightTag, [DOMSVGFESpotLightElement class]);
+    addElementClass(SVGNames::feTileTag, [DOMSVGFETileElement class]);
+    addElementClass(SVGNames::feTurbulenceTag, [DOMSVGFETurbulenceElement class]);
+    addElementClass(SVGNames::filterTag, [DOMSVGFilterElement class]);
+    addElementClass(SVGNames::foreignObjectTag, [DOMSVGForeignObjectElement class]);
+    addElementClass(SVGNames::gTag, [DOMSVGGElement class]);
+    addElementClass(SVGNames::imageTag, [DOMSVGImageElement class]);
+    addElementClass(SVGNames::lineTag, [DOMSVGLineElement class]);
+    addElementClass(SVGNames::linearGradientTag, [DOMSVGLinearGradientElement class]);
+    addElementClass(SVGNames::markerTag, [DOMSVGMarkerElement class]);
+    addElementClass(SVGNames::maskTag, [DOMSVGMaskElement class]);
+    addElementClass(SVGNames::metadataTag, [DOMSVGMetadataElement class]);
+    addElementClass(SVGNames::pathTag, [DOMSVGPathElement class]);
+    addElementClass(SVGNames::patternTag, [DOMSVGPatternElement class]);
+    addElementClass(SVGNames::polygonTag, [DOMSVGPolygonElement class]);
+    addElementClass(SVGNames::polylineTag, [DOMSVGPolylineElement class]);
+    addElementClass(SVGNames::radialGradientTag, [DOMSVGRadialGradientElement class]);
+    addElementClass(SVGNames::rectTag, [DOMSVGRectElement class]);
+    addElementClass(SVGNames::scriptTag, [DOMSVGScriptElement class]);
+    addElementClass(SVGNames::setTag, [DOMSVGSetElement class]);
+    addElementClass(SVGNames::stopTag, [DOMSVGStopElement class]);
+    addElementClass(SVGNames::styleTag, [DOMSVGStyleElement class]);
+    addElementClass(SVGNames::svgTag, [DOMSVGSVGElement class]);
+    addElementClass(SVGNames::switchTag, [DOMSVGSwitchElement class]);
+    addElementClass(SVGNames::symbolTag, [DOMSVGSymbolElement class]);
+    addElementClass(SVGNames::textTag, [DOMSVGTextElement class]);
+    addElementClass(SVGNames::titleTag, [DOMSVGTitleElement class]);
+    addElementClass(SVGNames::trefTag, [DOMSVGTRefElement class]);
+    addElementClass(SVGNames::tspanTag, [DOMSVGTSpanElement class]);
+    addElementClass(SVGNames::useTag, [DOMSVGUseElement class]);
+    addElementClass(SVGNames::viewTag, [DOMSVGViewElement class]);
+#endif
+}
+
+static Class elementClass(const QualifiedName& tag, Class defaultClass)
 {
     if (!elementClassMap)
-        createHTMLElementClassMap();
-    Class objcClass = elementClassMap->get(tagName.impl());
+        createElementClassMap();
+    Class objcClass = elementClassMap->get(&tag);
     if (!objcClass)
-        objcClass = [DOMHTMLElement class];
+        objcClass = defaultClass;
     return objcClass;
 }
 
+} // namespace WebCore
+
 @implementation DOMNode (WebCoreInternal)
 
 // FIXME: should this go in the main implementation?
@@ -182,7 +257,7 @@ static Class elementClass(const WebCore::AtomicString& tagName)
 {
     if (!_internal)
         return [NSString stringWithFormat:@"<%@: null>", [[self class] description], self];
-    
+
     NSString *value = [self nodeValue];
     if (value)
         return [NSString stringWithFormat:@"<%@ [%@]: %p '%@'>",
@@ -206,17 +281,21 @@ static Class elementClass(const WebCore::AtomicString& tagName)
 {
     if (!impl)
         return nil;
-    
+
     id cachedInstance;
     cachedInstance = WebCore::getDOMWrapper(impl);
     if (cachedInstance)
         return [[cachedInstance retain] autorelease];
-    
+
     Class wrapperClass = nil;
     switch (impl->nodeType()) {
         case WebCore::Node::ELEMENT_NODE:
             if (impl->isHTMLElement())
-                wrapperClass = elementClass(static_cast<WebCore::HTMLElement*>(impl)->localName());
+                wrapperClass = WebCore::elementClass(static_cast<WebCore::HTMLElement*>(impl)->tagQName(), [DOMHTMLElement class]);
+#ifdef SVG_SUPPORT
+            else if (impl->isSVGElement())
+                wrapperClass = WebCore::elementClass(static_cast<WebCore::SVGElement*>(impl)->tagQName(), [DOMSVGElement class]);
+#endif
             else
                 wrapperClass = [DOMElement class];
             break;
@@ -244,6 +323,10 @@ static Class elementClass(const WebCore::AtomicString& tagName)
         case WebCore::Node::DOCUMENT_NODE:
             if (static_cast<WebCore::Document*>(impl)->isHTMLDocument())
                 wrapperClass = [DOMHTMLDocument class];
+#ifdef SVG_SUPPORT
+            else if (static_cast<WebCore::Document*>(impl)->isSVGDocument())
+                wrapperClass = [DOMSVGDocument class];
+#endif
             else
                 wrapperClass = [DOMDocument class];
             break;
@@ -317,7 +400,7 @@ static Class elementClass(const WebCore::AtomicString& tagName)
     if (![self _node]->isEventTargetNode())
         WebCore::raiseDOMException(DOM_NOT_SUPPORTED_ERR);
     
-    WebCore::EventListener *wrapper = ObjCEventListener::create(listener);
+    WebCore::EventListener *wrapper = WebCore::ObjCEventListener::create(listener);
     WebCore::EventTargetNodeCast([self _node])->addEventListener(type, wrapper, useCapture);
     wrapper->deref();
 }
@@ -333,7 +416,7 @@ static Class elementClass(const WebCore::AtomicString& tagName)
     if (![self _node]->isEventTargetNode())
         WebCore::raiseDOMException(DOM_NOT_SUPPORTED_ERR);
 
-    if (WebCore::EventListener *wrapper = ObjCEventListener::find(listener))
+    if (WebCore::EventListener *wrapper = WebCore::ObjCEventListener::find(listener))
         WebCore::EventTargetNodeCast([self _node])->removeEventListener(type, wrapper, useCapture);
 }
 
@@ -412,7 +495,7 @@ static Class elementClass(const WebCore::AtomicString& tagName)
 - (void *)_NPObject
 {
     WebCore::Element* element = [self _element];
-    if (element->hasTagName(appletTag) || element->hasTagName(embedTag) || element->hasTagName(objectTag))
+    if (element->hasTagName(WebCore::HTMLNames::appletTag) || element->hasTagName(WebCore::HTMLNames::embedTag) || element->hasTagName(WebCore::HTMLNames::objectTag))
         return static_cast<WebCore::HTMLPlugInElement*>(element)->getNPObject();
     return 0;
 }
@@ -590,9 +673,12 @@ short ObjCNodeFilterCondition::acceptNode(WebCore::Node* node) const
 
 @end
 
+
 //------------------------------------------------------------------------------------------
 // ObjCEventListener
 
+namespace WebCore {
+
 ObjCEventListener* ObjCEventListener::find(id <DOMEventListener> listener)
 {
     if (ListenerMap* map = listenerMap)
@@ -626,7 +712,9 @@ ObjCEventListener::~ObjCEventListener()
     [m_listener release];
 }
 
-void ObjCEventListener::handleEvent(WebCore::Event* event, bool)
+void ObjCEventListener::handleEvent(Event* event, bool)
 {
     [m_listener handleEvent:[DOMEvent _eventWith:event]];
 }
+
+} // namespace WebCore
index 6e5f84bb6ac8b594c30687b1a58c923e6ede3c9e..a6c3927db905ff6fbee51f906b564bc00ed025ee 100644 (file)
 #import "DOMPrivate.h"
 #import "Document.h"
 #import "Event.h"
-#import "MouseEvent.h"
 #import "KeyboardEvent.h"
+#import "MouseEvent.h"
 #import "MutationEvent.h"
 #import "OverflowEvent.h"
 #import "UIEvent.h"
 
+#ifdef SVG_SUPPORT
+#import "DOMSVGZoomEvent.h"
+#import "SVGZoomEvent.h"
+#endif
+
 //------------------------------------------------------------------------------------------
 // DOMEvent
 
         wrapperClass = [DOMUIEvent class];
     else if (impl->isOverflowEvent())
         wrapperClass = [DOMOverflowEvent class];
+#ifdef SVG_SUPPORT
+    else if (impl->isSVGZoomEvent())
+        wrapperClass = [DOMSVGZoomEvent class];
+#endif
     else
         wrapperClass = [DOMEvent class];
 
index c78af9f1732aa8d311c1ecb79cc1fd9655b48b4a..51ddbcbaa9cd315b9ac62c8f500c18c4431890cd 100644 (file)
 #import "DOM.h"
 
 #import "Color.h"
-#import "DOMCSSRule.h"
-#import "DOMCSSValue.h"
-#import "DOMEvents.h"
-#import "DOMNode.h"
 #import "DOMObject.h"
 #import "DOMRGBColor.h"
-#import "DOMStyleSheet.h"
 
 #ifdef SVG_SUPPORT
 #import "DOMSVGNumber.h"
@@ -46,6 +41,7 @@
 #import "DOMXPathNSResolver.h"
 #endif // XPATH_SUPPORT
 
+
 // Auto-generated internal interfaces
 #import "DOMAbstractViewInternal.h"
 #import "DOMAttrInternal.h"
 #import "DOMCSSMediaRuleInternal.h"
 #import "DOMCSSPageRuleInternal.h"
 #import "DOMCSSPrimitiveValueInternal.h"
+#import "DOMCSSRuleInternal.h"
 #import "DOMCSSRuleListInternal.h"
 #import "DOMCSSStyleDeclarationInternal.h"
 #import "DOMCSSStyleRuleInternal.h"
 #import "DOMCSSStyleSheetInternal.h"
 #import "DOMCSSUnknownRuleInternal.h"
+#import "DOMCSSValueInternal.h"
 #import "DOMCSSValueListInternal.h"
 #import "DOMCharacterDataInternal.h"
 #import "DOMCommentInternal.h"
@@ -72,6 +70,7 @@
 #import "DOMElementInternal.h"
 #import "DOMEntityInternal.h"
 #import "DOMEntityReferenceInternal.h"
+#import "DOMEventInternal.h"
 #import "DOMHTMLAnchorElementInternal.h"
 #import "DOMHTMLAppletElementInternal.h"
 #import "DOMHTMLAreaElementInternal.h"
 #import "DOMMouseEventInternal.h"
 #import "DOMMutationEventInternal.h"
 #import "DOMNamedNodeMapInternal.h"
+#import "DOMNodeInternal.h"
 #import "DOMNodeIteratorInternal.h"
 #import "DOMNodeListInternal.h"
 #import "DOMNotationInternal.h"
 #import "DOMProcessingInstructionInternal.h"
 #import "DOMRangeInternal.h"
 #import "DOMRectInternal.h"
+#import "DOMStyleSheetInternal.h"
 #import "DOMStyleSheetListInternal.h"
 #import "DOMTextInternal.h"
 #import "DOMTreeWalkerInternal.h"
 #import "DOMSVGFESpotLightElementInternal.h"
 #import "DOMSVGFETileElementInternal.h"
 #import "DOMSVGFETurbulenceElementInternal.h"
-#import "DOMSVGFilterElement.h"
-#import "DOMSVGForeignObjectElement.h"
-#import "DOMSVGGElement.h"
-#import "DOMSVGGradientElement.h"
-#import "DOMSVGImageElement.h"
+#import "DOMSVGFilterElementInternal.h"
+#import "DOMSVGForeignObjectElementInternal.h"
+#import "DOMSVGGElementInternal.h"
+#import "DOMSVGGradientElementInternal.h"
+#import "DOMSVGImageElementInternal.h"
 #import "DOMSVGLengthInternal.h"
 #import "DOMSVGLengthListInternal.h"
-#import "DOMSVGLineElement.h"
-#import "DOMSVGLinearGradientElement.h"
-#import "DOMSVGMarkerElement.h"
-#import "DOMSVGMaskElement.h"
+#import "DOMSVGLineElementInternal.h"
+#import "DOMSVGLinearGradientElementInternal.h"
+#import "DOMSVGMarkerElementInternal.h"
+#import "DOMSVGMaskElementInternal.h"
 #import "DOMSVGMatrixInternal.h"
 #import "DOMSVGMetadataElementInternal.h"
 #import "DOMSVGNumberListInternal.h"
-#import "DOMSVGPaint.h"
+#import "DOMSVGPaintInternal.h"
+#import "DOMSVGPathElementInternal.h"
 #import "DOMSVGPathSegArcAbsInternal.h"
 #import "DOMSVGPathSegArcRelInternal.h"
 #import "DOMSVGPathSegClosePathInternal.h"
 #endif // XPATH_SUPPORT
 
 namespace WebCore {
-    class CSSRule;
-    class CSSValue;
-    class Event;
-    class Node;
     class NodeFilter;
-    class StyleSheet;
 
 #ifdef SVG_SUPPORT
     class FloatPoint;
@@ -293,39 +290,11 @@ namespace WebCore {
 - (id)_init;
 @end
 
-@interface DOMNode (WebCoreInternal)
-+ (DOMNode *)_nodeWith:(WebCore::Node *)impl;
-- (WebCore::Node *)_node;
-@end
-
 // CSS Internal Interfaces
 
-@interface DOMCSSRule (WebCoreInternal)
-+ (DOMCSSRule *)_CSSRuleWith:(WebCore::CSSRule *)impl;
-- (WebCore::CSSRule *)_CSSRule;
-@end
-
-@interface DOMCSSValue (WebCoreInternal)
-+ (DOMCSSValue *)_CSSValueWith:(WebCore::CSSValue *)impl;
-- (WebCore::CSSValue *)_CSSValue;
-@end
-
 @interface DOMRGBColor (WebCoreInternal)
 + (DOMRGBColor *)_RGBColorWithRGB:(WebCore::RGBA32)value;
-@end
-
-// StyleSheets Internal Interfaces
-
-@interface DOMStyleSheet (WebCoreInternal)
-+ (DOMStyleSheet *)_styleSheetWith:(WebCore::StyleSheet *)impl;
-- (WebCore::StyleSheet *)_styleSheet;
-@end
-
-// Events Internal Interfaces
-
-@interface DOMEvent (WebCoreInternal)
-+ (DOMEvent *)_eventWith:(WebCore::Event *)impl;
-- (WebCore::Event *)_event;
+- (WebCore::RGBA32)_RGBColor;
 @end
 
 // Traversal Internal Interfaces
index 0aab36c996c616efb5f31dadc91a1bcecfcd089f..7d9f17f2d519df3f94320b20833dc52dc93969d2 100644 (file)
@@ -127,6 +127,11 @@ void removeWrapperForRGB(WebCore::RGBA32 value)
 
 @implementation DOMRGBColor (WebCoreInternal)
 
+- (WebCore::RGBA32)_RGBColor
+{
+     return static_cast<WebCore::RGBA32>(reinterpret_cast<uintptr_t>(_internal));
+}
+
 - (id)_initWithRGB:(WebCore::RGBA32)value
 {
     [super _init];
diff --git a/WebCore/bindings/objc/DOMSVGPathSegInternal.h b/WebCore/bindings/objc/DOMSVGPathSegInternal.h
deleted file mode 100644 (file)
index 691a824..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
- * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-#import "DOMSVGPathSeg.h"
-
-namespace WebCore { class SVGPathSeg; }
-
-@interface DOMSVGPathSeg (WebCoreInternal)
-- (WebCore::SVGPathSeg *)_SVGPathSeg;
-+ (DOMSVGPathSeg *)_SVGPathSegWith:(WebCore::SVGPathSeg *)impl;
-@end
index 9c69005a4337caac8abfdb3b9b5cf82c2e572c2d..7fa82844831674d32c66b4225c87fba7062f57c6 100644 (file)
@@ -58,11 +58,20 @@ my %stringTypeHash = ("DOMString" => 1, "AtomicString" => 1);
 my %nativeObjCTypeHash = ("URL" => 1, "Color" => 1);
 my %nonPointerTypeHash = ("DOMTimeStamp" => 1, "CompareHow" => 1, "SVGPaintType" => 1);
 
-# FIXME: need to add the SVG base types to this hash.
-my %baseTypeHash = ("Node" => 1, "NodeList" => 1, "NamedNodeMap" => 1, "DOMImplementation" => 1,
+# FIXME: this should be replaced with a function that recurses up the tree
+# to find the actual base type.
+my %baseTypeHash = ("Object" => 1, "Node" => 1, "NodeList" => 1, "NamedNodeMap" => 1, "DOMImplementation" => 1,
                     "Event" => 1, "CSSRule" => 1, "CSSValue" => 1, "StyleSheet" => 1, "MediaList" => 1,
                     "Counter" => 1, "Rect" => 1, "RGBColor" => 1, "XPathExpression" => 1, "XPathResult" => 1,
-                    "NodeIterator" => 1, "TreeWalker" => 1, "AbstractView" => 1, "SVGPathSeg" => 1);
+                    "NodeIterator" => 1, "TreeWalker" => 1, "AbstractView" => 1,
+                    "SVGAngle" => 1, "SVGAnimatedAngle" => 1, "SVGAnimatedBoolean" => 1, "SVGAnimatedEnumeration" => 1,
+                    "SVGAnimatedInteger" => 1, "SVGAnimatedLength" => 1, "SVGAnimatedLengthList" => 1,
+                    "SVGAnimatedNumber" => 1, "SVGAnimatedNumberList" => 1, "SVGAnimatedPoints" => 1,
+                    "SVGAnimatedPreserveAspectRatio" => 1, "SVGAnimatedRect" => 1, "SVGAnimatedString" => 1,
+                    "SVGAnimatedTransformList" => 1, "SVGLength" => 1, "SVGLengthList" => 1, "SVGMatrix" => 1,
+                    "SVGNumber" => 1, "SVGNumberList" => 1, "SVGPathSeg" => 1, "SVGPathSegList" => 1, "SVGPoint" => 1,
+                    "SVGPointList" => 1, "SVGPreserveAspectRatio" => 1, "SVGRect" => 1, "SVGRenderingIntent" => 1,
+                    "SVGStringList" => 1, "SVGTransform" => 1, "SVGTransformList" => 1, "SVGUnitTypes" => 1);
 
 # Constants
 my $buildingForTigerOrEarlier = 1 if $ENV{"MACOSX_DEPLOYMENT_TARGET"} and $ENV{"MACOSX_DEPLOYMENT_TARGET"} <= 10.4;
@@ -1205,42 +1214,59 @@ sub GenerateImplementation
         push(@implContent, "\@end\n");
     }
 
-    unless ($dataNode->extendedAttributes->{ObjCNoInternal}) {
+
+    # Generate internal interfaces
+
+    # - Type-Getter
+    # - (WebCore::FooBar *)_fooBar for implementation class FooBar
+    my $typeGetterName = GetObjCTypeGetterName($interfaceName);
+    my $typeGetterSig = "- ($implClassNameWithNamespace *)$typeGetterName";
+
+    my @ivarsToRetain = ();
+    my $ivarsToInit = "";
+    my $typeMakerSigAddition = "";
+    if (@ivars > 0) {
+        my @ivarsInitSig = ();
+        my @ivarsInitCall = ();
+        foreach $attribute (@ivars) {
+            my $name = $attribute->signature->name;
+            my $memberName = "m_" . $name;
+            my $varName = "in" . $name;
+            my $type = GetObjCType($attribute->signature->type);
+            push(@ivarsInitSig, "$name:($type)$varName");
+            push(@ivarsInitCall, "$name:$varName");
+            push(@ivarsToRetain, "    $memberName = [$varName retain];\n");
+        }
+        $ivarsToInit = " " . join(" ", @ivarsInitCall);
+        $typeMakerSigAddition = " " . join(" ", @ivarsInitSig);
+    }
+
+    # - Type-Maker
+    my $typeMakerName = GetObjCTypeMaker($interfaceName);
+    my $typeMakerSig = "+ ($className *)$typeMakerName:($implClassNameWithNamespace *)impl" . $typeMakerSigAddition;
+
+    # Generate interface definitions. 
+    @intenalHeaderContent = split("\r", $implementationLicenceTemplate);
+    push(@intenalHeaderContent, "\n#import \"$className.h\"\n");
+    if ($codeGenerator->IsSVGAnimatedType($interfaceName)) {
+        push(@intenalHeaderContent, "#import \"SVGAnimatedTemplate.h\"\n\n");
+    } else {
+        push(@intenalHeaderContent, "\nnamespace WebCore { class $implClassName; }\n\n");
+    }
+    push(@intenalHeaderContent, "\@interface $className (WebCoreInternal)\n");
+    push(@intenalHeaderContent, $typeGetterSig . ";\n");
+    push(@intenalHeaderContent, $typeMakerSig . ";\n");
+    push(@intenalHeaderContent, "\@end\n");
+
+    unless ($dataNode->extendedAttributes->{ObjCCustomInternalImpl}) {
         # - BEGIN WebCoreInternal category @implementation
         push(@implContent, "\n\@implementation $className (WebCoreInternal)\n\n");
 
-        # - Type-Getter
-        # - (WebCore::FooBar *)_fooBar for implementation class FooBar
-        my $typeGetterName = GetObjCTypeGetterName($interfaceName);
-        my $typeGetterSig = "- ($implClassNameWithNamespace *)$typeGetterName";
         push(@implContent, "$typeGetterSig\n");
         push(@implContent, "{\n");
         push(@implContent, "    return IMPL;\n");
         push(@implContent, "}\n\n");
 
-        my @ivarsToRetain = ();
-        my $ivarsToInit = "";
-        my $typeMakerSigAddition = "";
-        if (@ivars > 0) {
-            my @ivarsInitSig = ();
-            my @ivarsInitCall = ();
-            foreach $attribute (@ivars) {
-                my $name = $attribute->signature->name;
-                my $memberName = "m_" . $name;
-                my $varName = "in" . $name;
-                my $type = GetObjCType($attribute->signature->type);
-                push(@ivarsInitSig, "$name:($type)$varName");
-                push(@ivarsInitCall, "$name:$varName");
-                push(@ivarsToRetain, "    $memberName = [$varName retain];\n");
-            }
-            $ivarsToInit = " " . join(" ", @ivarsInitCall);
-            $typeMakerSigAddition = " " . join(" ", @ivarsInitSig);
-        }
-
-        # - Type-Maker
-        my $typeMakerName = GetObjCTypeMaker($interfaceName);
-        my $typeMakerSig = "+ ($className *)$typeMakerName:($implClassNameWithNamespace *)impl" . $typeMakerSigAddition;
-
         if ($parentImplClassName eq "Object") {        
             # - (id)_initWithFooBar:(WebCore::FooBar *)impl for implementation class FooBar
             my $initWithImplName = "_initWith" . $implClassName;
@@ -1280,19 +1306,6 @@ sub GenerateImplementation
 
         # END WebCoreInternal category
         push(@implContent, "\@end\n");
-
-        # Generate interface definitions. 
-        @intenalHeaderContent = split("\r", $implementationLicenceTemplate);
-        push(@intenalHeaderContent, "\n#import \"$className.h\"\n");
-        if ($codeGenerator->IsSVGAnimatedType($interfaceName)) {
-            push(@intenalHeaderContent, "#import \"SVGAnimatedTemplate.h\"\n\n");
-        } else {
-            push(@intenalHeaderContent, "\nnamespace WebCore { class $implClassName; }\n\n");
-        }
-        push(@intenalHeaderContent, "\@interface $className (WebCoreInternal)\n");
-        push(@intenalHeaderContent, $typeGetterSig . ";\n");
-        push(@intenalHeaderContent, $typeMakerSig . ";\n");
-        push(@intenalHeaderContent, "\@end\n");
     }
 
     # - End the ifdef conditional if necessary
index bb4ce5c2a2d675eaff0fd429a19f395cbb9a1afd..b0092ee4102e928c4a9b13951254e678da5fc998 100644 (file)
@@ -21,7 +21,7 @@
 module css {
 
     // Introduced in DOM Level 2:
-    interface [LegacyParent=KJS::DOMCSSRule, GenerateConstructor, ObjCNoInternal] CSSRule {
+    interface [LegacyParent=KJS::DOMCSSRule, GenerateConstructor, ObjCCustomInternalImpl] CSSRule {
 
         // RuleType
         const unsigned short UNKNOWN_RULE = 0;
index ce5c4370b107d3300aaa6db30d11a1463a80b2df..db36c8afc1b537601d8ca2fa4be659541f46471b 100644 (file)
@@ -20,7 +20,7 @@
 
 module css {
 
-    interface [LegacyParent=KJS::DOMCSSValue, GenerateConstructor, ObjCNoInternal] CSSValue {
+    interface [LegacyParent=KJS::DOMCSSValue, GenerateConstructor, ObjCCustomInternalImpl] CSSValue {
 
         // UnitTypes
         const unsigned short CSS_INHERIT         = 0;
index 3fa705415abdda069512a21eb5c4caca337f0669..fcd1b626de6ee718656302e84735cc6ce733beae 100644 (file)
@@ -21,7 +21,7 @@
 module stylesheets {
 
     // Introduced in DOM Level 2:
-    interface [ObjCNoInternal] StyleSheet {
+    interface [ObjCCustomInternalImpl] StyleSheet {
         readonly attribute DOMString        type;
                  attribute boolean          disabled;
         readonly attribute Node             ownerNode;
index 3dc57972e53ca38805e59d66287f6a7be278a235..2fd1b608a33ce8fe91047d2a0224cc35dbe87978 100644 (file)
@@ -116,6 +116,14 @@ bool Event::isOverflowEvent() const
     return false;
 }
 
+#ifdef SVG_SUPPORT
+bool Event::isSVGZoomEvent() const
+{
+    return false;
+}
+#endif
+
+
 bool Event::storesResultAsString() const
 {
     return false;
index 7971b2aa09494d45e0fd73d33ed69fd602d9d677..23cc8e411c76f5ab8c0068b7c94425e59d9a1fc9 100644 (file)
@@ -99,6 +99,9 @@ namespace WebCore {
         virtual bool isWheelEvent() const;
         virtual bool isBeforeTextInsertedEvent() const;
         virtual bool isOverflowEvent() const;
+#ifdef SVG_SUPPORT
+        virtual bool isSVGZoomEvent() const;
+#endif
         
         bool propagationStopped() const { return m_propagationStopped; }
         bool defaultPrevented() const { return m_defaultPrevented; }
index 941f77bcce1660f5b0454708ee6f95b4ebf2279f..ebfc1357f472d26d08a6bdf9dedde9c02aa06787 100644 (file)
@@ -21,7 +21,7 @@
 module events {
 
     // Introduced in DOM Level 2:
-    interface [LegacyParent=KJS::DOMEvent, GenerateConstructor, ObjCNoInternal] Event {
+    interface [LegacyParent=KJS::DOMEvent, GenerateConstructor, ObjCCustomInternalImpl] Event {
 
         // DOM PhaseType
         const unsigned short CAPTURING_PHASE     = 1;
index 59929c53ab34eddf77cfb149e8e1209cdf1e125e..ca1ff97bc6319b3c032d15bb9c378ad04f9230a1 100644 (file)
@@ -20,7 +20,7 @@
 
 module core {
 
-    interface [LegacyParent=KJS::DOMNode, GenerateConstructor, ObjCNoInternal] Node {        
+    interface [LegacyParent=KJS::DOMNode, GenerateConstructor, ObjCCustomInternalImpl] Node {        
         // NodeType
         const unsigned short      ELEMENT_NODE                   = 1;
         const unsigned short      ATTRIBUTE_NODE                 = 2;
index 312335e61bac4ced4db6d9a3218491a972e9b707..a10c10df9bfc37cea17a98332ac354072530b044 100644 (file)
@@ -1,6 +1,7 @@
 /*
     Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
-                  2004, 2005 Rob Buis <buis@kde.org>
+    Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+    Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
 
     This file is part of the KDE project
 
@@ -24,7 +25,7 @@
 #ifdef SVG_SUPPORT
 #include "SVGZoomEvent.h"
 
-using namespace WebCore;
+namespace WebCore {
 
 SVGZoomEvent::SVGZoomEvent()
     : m_newScale(0.0)
@@ -71,6 +72,13 @@ FloatPoint SVGZoomEvent::newTranslate() const
     return m_newTranslate;
 }
 
-// vim:ts=4:noet
+bool SVGZoomEvent::isSVGZoomEvent() const
+{
+    return true;
+}
+
+} // namespace WebCore
+
 #endif // SVG_SUPPORT
 
+// vim:ts=4:noet
index 04017f23b068e2249696f385785eaa7d5645fba4..62dd68721216ae9f5793389cf6c64f352651c2ba 100644 (file)
@@ -1,6 +1,7 @@
 /*
     Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
-                  2004, 2005 Rob Buis <buis@kde.org>
+    Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
+    Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
                   
     This file is part of the KDE project
 
@@ -47,6 +48,8 @@ namespace WebCore {
 
         FloatPoint newTranslate() const;
 
+        virtual bool isSVGZoomEvent() const;
+
     private:
         float m_newScale;
         float m_previousScale;
index 26db039aec92773f058ca0da73cd0fdc176389b6..c400c1960e0e5d07be81a07116416fa95cebb4d3 100644 (file)
@@ -23,7 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-module svg{
+module svg {
 
     interface [Conditional=SVG] SVGAnimatedAngle {
         readonly attribute SVGAngle baseVal;
index 9ab3b209f970a6783a39f24ccb33e19625cd8d27..a6cb2b2b87145d69e9c09d78fee2a4490108532a 100644 (file)
@@ -1,4 +1,5 @@
 /*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
  * Copyright (C) 2006 Apple Computer, Inc.
  *
  * Redistribution and use in source and binary forms, with or without
 
 module svg {
 
-    interface [Conditional=SVG] SVGCircleElement : SVGElement
-                                                 , SVGTests
-                                                 , SVGLangSpace
-                                                 , SVGExternalResourcesRequired
-                                                 , SVGStylable
-                                                 , SVGTransformable {
+    interface [Conditional=SVG] SVGCircleElement : SVGElement,
+                                                   SVGTests,
+                                                   SVGLangSpace,
+                                                   SVGExternalResourcesRequired,
+                                                   SVGStylable,
+                                                   SVGTransformable {
         readonly attribute SVGAnimatedLength cx;
         readonly attribute SVGAnimatedLength cy;
         readonly attribute SVGAnimatedLength r;
index 3f7707c3904b145912c3f6b47e0fe48848d668a5..40eca87178a63e7e4dc4b82c79cd41a3e53ab8f7 100644 (file)
@@ -1,4 +1,5 @@
 /*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
  * Copyright (C) 2006 Apple Computer, Inc.
  *
  * Redistribution and use in source and binary forms, with or without
 
 module svg {
 
-    interface [Conditional=SVG] SVGClipPathElement : SVGElement
-                                                   , SVGTests
-                                                   , SVGLangSpace
-                                                   , SVGExternalResourcesRequired
-                                                   , SVGStylable
-                                                   , SVGTransformable
-                                                 /*, SVGUnitTypes*/ { 
+    interface [Conditional=SVG] SVGClipPathElement : SVGElement,
+                                                     SVGTests,
+                                                     SVGLangSpace,
+                                                     SVGExternalResourcesRequired,
+                                                     SVGStylable,
+                                                     SVGTransformable
+                                                  /* SVGUnitTypes */ { 
         readonly attribute SVGAnimatedEnumeration clipPathUnits;
     };
 
index 9e770d93b9f03e898ab46f799fe2d4e50d342bec..d66df1dd6d448e64f8db7b67fbb2ca68076a3171 100644 (file)
@@ -1,4 +1,5 @@
 /*
+ * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
  * Copyright (C) 2006 Apple Computer, Inc.
  *
  * Redistribution and use in source and binary forms, with or without
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-module svg
-{
-  interface [Conditional=SVG] SVGPathElement : 
-                SVGElement,
-                SVGTests,
-                SVGLangSpace,
-                SVGExternalResourcesRequired,
-                SVGStylable,
-                SVGTransformable,
-                SVGAnimatedPathData { 
-    readonly attribute SVGAnimatedNumber pathLength;
-    float         getTotalLength (  );
-    SVGPoint      getPointAtLength ( in float distance );
-    unsigned long getPathSegAtLength ( in float distance );
-    SVGPathSegClosePath    createSVGPathSegClosePath (  );
-    SVGPathSegMovetoAbs    createSVGPathSegMovetoAbs ( in float x, in float y );
-    SVGPathSegMovetoRel    createSVGPathSegMovetoRel ( in float x, in float y );
-    SVGPathSegLinetoAbs    createSVGPathSegLinetoAbs ( in float x, in float y );
-    SVGPathSegLinetoRel    createSVGPathSegLinetoRel ( in float x, in float y );
-    SVGPathSegCurvetoCubicAbs    createSVGPathSegCurvetoCubicAbs ( in float x, in float y, in float x1, in float y1, in float x2, in float y2 );
-    SVGPathSegCurvetoCubicRel    createSVGPathSegCurvetoCubicRel ( in float x, in float y, in float x1, in float y1, in float x2, in float y2 );
-    SVGPathSegCurvetoQuadraticAbs    createSVGPathSegCurvetoQuadraticAbs ( in float x, in float y, in float x1, in float y1 );
-    SVGPathSegCurvetoQuadraticRel    createSVGPathSegCurvetoQuadraticRel ( in float x, in float y, in float x1, in float y1 );
-    SVGPathSegArcAbs    createSVGPathSegArcAbs ( in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag );
-    SVGPathSegArcRel    createSVGPathSegArcRel ( in float x, in float y, in float r1, in float r2, in float angle, in boolean largeArcFlag, in boolean sweepFlag );
-    SVGPathSegLinetoHorizontalAbs    createSVGPathSegLinetoHorizontalAbs ( in float x );
-    SVGPathSegLinetoHorizontalRel    createSVGPathSegLinetoHorizontalRel ( in float x );
-    SVGPathSegLinetoVerticalAbs    createSVGPathSegLinetoVerticalAbs ( in float y );
-    SVGPathSegLinetoVerticalRel    createSVGPathSegLinetoVerticalRel ( in float y );
-    SVGPathSegCurvetoCubicSmoothAbs    createSVGPathSegCurvetoCubicSmoothAbs ( in float x, in float y, in float x2, in float y2 );
-    SVGPathSegCurvetoCubicSmoothRel    createSVGPathSegCurvetoCubicSmoothRel ( in float x, in float y, in float x2, in float y2 );
-    SVGPathSegCurvetoQuadraticSmoothAbs    createSVGPathSegCurvetoQuadraticSmoothAbs ( in float x, in float y );
-    SVGPathSegCurvetoQuadraticSmoothRel    createSVGPathSegCurvetoQuadraticSmoothRel ( in float x, in float y );
-};
-
-};
+module svg {
+
+    interface [Conditional=SVG] SVGPathElement : SVGElement,
+                                                 SVGTests,
+                                                 SVGLangSpace,
+                                                 SVGExternalResourcesRequired,
+                                                 SVGStylable,
+                                                 SVGTransformable,
+                                                 SVGAnimatedPathData {
+        readonly attribute SVGAnimatedNumber pathLength;
+
+        float getTotalLength();
+        SVGPoint getPointAtLength(in float distance);
+        unsigned long getPathSegAtLength(in float distance);
+
+        SVGPathSegClosePath createSVGPathSegClosePath();
+
+        SVGPathSegMovetoAbs createSVGPathSegMovetoAbs(in float x, 
+                                                      in float y);
+        SVGPathSegMovetoRel createSVGPathSegMovetoRel(in float x, 
+                                                      in float y);
+
+        SVGPathSegLinetoAbs createSVGPathSegLinetoAbs(in float x, 
+                                                      in float y);
+        SVGPathSegLinetoRel createSVGPathSegLinetoRel(in float x, 
+                                                      in float y);
+
+        SVGPathSegCurvetoCubicAbs createSVGPathSegCurvetoCubicAbs(in float x, 
+                                                                  in float y, 
+                                                                  in float x1, 
+                                                                  in float y1, 
+                                                                  in float x2, 
+                                                                  in float y2);
+        SVGPathSegCurvetoCubicRel createSVGPathSegCurvetoCubicRel(in float x, 
+                                                                  in float y, 
+                                                                  in float x1, 
+                                                                  in float y1, 
+                                                                  in float x2, 
+                                                                  in float y2);
+
+        SVGPathSegCurvetoQuadraticAbs createSVGPathSegCurvetoQuadraticAbs(in float x, 
+                                                                          in float y, 
+                                                                          in float x1, 
+                                                                          in float y1);
+        SVGPathSegCurvetoQuadraticRel createSVGPathSegCurvetoQuadraticRel(in float x, 
+                                                                          in float y, 
+                                                                          in float x1, 
+                                                                          in float y1);
+
+        SVGPathSegArcAbs createSVGPathSegArcAbs(in float x, 
+                                                in float y, 
+                                                in float r1, 
+                                                in float r2, 
+                                                in float angle, 
+                                                in boolean largeArcFlag, 
+                                                in boolean sweepFlag);
+        SVGPathSegArcRel createSVGPathSegArcRel(in float x, 
+                                                in float y, 
+                                                in float r1, 
+                                                in float r2, 
+                                                in float angle, 
+                                                in boolean largeArcFlag, 
+                                                in boolean sweepFlag);
+
+        SVGPathSegLinetoHorizontalAbs createSVGPathSegLinetoHorizontalAbs(in float x);
+        SVGPathSegLinetoHorizontalRel createSVGPathSegLinetoHorizontalRel(in float x);
+
+        SVGPathSegLinetoVerticalAbs createSVGPathSegLinetoVerticalAbs(in float y);
+        SVGPathSegLinetoVerticalRel createSVGPathSegLinetoVerticalRel(in float y);
+
+        SVGPathSegCurvetoCubicSmoothAbs createSVGPathSegCurvetoCubicSmoothAbs(in float x, 
+                                                                              in float y, 
+                                                                              in float x2, 
+                                                                              in float y2);
+        SVGPathSegCurvetoCubicSmoothRel createSVGPathSegCurvetoCubicSmoothRel(in float x, 
+                                                                              in float y, 
+                                                                              in float x2, 
+                                                                              in float y2);
+
+        SVGPathSegCurvetoQuadraticSmoothAbs createSVGPathSegCurvetoQuadraticSmoothAbs(in float x, 
+                                                                                      in float y);
+        SVGPathSegCurvetoQuadraticSmoothRel createSVGPathSegCurvetoQuadraticSmoothRel(in float x, 
+                                                                                      in float y);
+    };
+
+}
index 8583f9ea0253bc63f2ec81bc04838b63148fe56e..30767505264cf51311513151b70c91d9fdb5d8f7 100644 (file)
@@ -26,7 +26,7 @@
 
 module svg {
 
-    interface [Conditional=SVG, GenerateConstructor, ObjCNoInternal] SVGPathSeg {
+    interface [Conditional=SVG, GenerateConstructor, ObjCCustomInternalImpl] SVGPathSeg {
         // Path Segment Types
         const unsigned short PATHSEG_UNKNOWN                      = 0;
         const unsigned short PATHSEG_CLOSEPATH                    = 1;