SuperX-Kernmodul
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

182 lines
8.2 KiB

<!--
The 'lightWeight' attribute below is important for two reasons:
* It vastly improves performance
* There is a bug that Behaviors are not cached correctly, so without
this property the same HTC file will get called for every SVG element
on the page. The lightWeight property sidesteps this bug.
-->
<component lightWeight="true">
<!-- _Node properties -->
<property name="nodeName" get="_getNodeName" />
<property name="nodeType" get="_getNodeType" />
<property name="nodeValue" get="_getNodeValue"
put="_setNodeValue" />
<property name="localName" get="_getLocalName" />
<property name="prefix" get="_getPrefix" />
<property name="namespaceURI" get="_getNamespaceURI" />
<property name="childNodes" get="_getChildNodes" />
<property name="parentNode" get="_getParentNode" />
<property name="firstChild" get="_getFirstChild" />
<property name="lastChild" get="_getLastChild" />
<property name="previousSibling" get="_getPreviousSibling" />
<property name="nextSibling" get="_getNextSibling" />
<property name="textContent" get="_getTextContent"
put="_setTextContent" />
<property name="data" get="_getData" put="_setData" />
<property name="ownerDocument" get="_getOwnerDocument" />
<!-- Non-standard defacto properties -->
<!-- TODO: Implement -->
<!--
<property name="innerHTML"
get="_getInnerHTML" put="_setInnerHTML" />
-->
<!-- _Element properties -->
<property name="id" get="_getId" put="_setId" />
<!-- SVGSVGElement and SVGUseElement readonly props -->
<property name="x" get="_getX" />
<property name="y" get="_getY" />
<property name="width" get="_getWidth" />
<property name="height" get="_getHeight" />
<property name="currentScale" get="_getCurrentScale"
put="_setCurrentScale" />
<property name="currentTranslate" get="_getCurrentTranslate" />
<!-- A flag for someone to query whether a DOM node is one of our
own fake ones or a real browser native one. Useful for someone
to 'break' the abstraction if needed. -->
<property name="fake" value="true" />
<method name="getAttribute" />
<method name="getAttributeNS" />
<method name="setAttribute" />
<method name="setAttributeNS" />
<method name="appendChild" />
<method name="removeChild" />
<method name="replaceChild" />
<method name="insertBefore" />
<method name="hasChildNodes" />
<method name="hasAttributes" />
<method name="hasAttribute" />
<method name="hasAttributeNS" />
<method name="removeAttribute" />
<method name="removeAttributeNS" />
<method name="isSupported" />
<method name="addEventListener" />
<method name="removeEventListener" />
<method name="getScreenCTM" />
<method name="getCTM" />
<method name="createSVGPoint" />
<method name="createSVGRect" />
<method name="cloneNode" />
<method name="getElementsByTagNameNS" />
<method name="beginElement" />
<method name="endElement" />
<method name="beginElementAt" />
<method name="endElementAt" />
<defaults tabStop="false" contentEditable="false"
canHaveHTML="false" viewInheritStyle="true"
viewMasterTab="false" viewLinkContent="false"
style="display: block" />
</component>
<script type="text/javascript">
// there is a very strong correlation between the length of this script
// and performance, so we minimize size as much as possible
function getAttribute(n) { return this._fakeNode.getAttribute(n); }
function getAttributeNS(ns, l) { return this._fakeNode.getAttributeNS(ns, l); }
function setAttribute(n, v) { return this._fakeNode.setAttribute(n, v); }
function setAttributeNS(ns, qName, v) { return this._fakeNode.setAttributeNS(ns, qName, v); }
function appendChild(c) { return this._fakeNode.appendChild(c); }
function removeChild(c) { return this._fakeNode.removeChild(c); }
function replaceChild(n, o) { return this._fakeNode.replaceChild(n, o); }
function insertBefore(n, o) { return this._fakeNode.insertBefore(n, o); }
function hasChildNodes() { return this._fakeNode.hasChildNodes(); }
function hasAttributes() { return this._fakeNode.hasAttributes(); }
function hasAttribute(l) { return this._fakeNode.hasAttribute(l); }
function hasAttributeNS(ns, l) { return this._fakeNode.hasAttributeNS(ns, l); }
function removeAttribute(l) { return this._fakeNode.removeAttribute(l); }
function removeAttributeNS(ns, l) { return this._fakeNode.removeAttributeNS(ns, l); }
function isSupported(f, v) { return this._fakeNode.isSupported(f, v); }
function addEventListener(t, l, u) { return this._fakeNode.addEventListener(t, l, u); }
function removeEventListener(t, l, u) { return this._fakeNode.removeEventListener(t, l, u); }
function getScreenCTM() { return this._fakeNode.getScreenCTM(); }
function getCTM() { return this._fakeNode.getCTM(); }
function createSVGPoint() { return this._fakeNode.createSVGPoint(); }
function createSVGRect() { return this._fakeNode.createSVGRect(); }
function cloneNode(d) { return this._fakeNode.cloneNode(d); }
function getElementsByTagNameNS(n, l) { return this._fakeNode.getElementsByTagNameNS(n, l); }
function beginElement() { return this._fakeNode.beginElement(); }
function endElement() { return this._fakeNode.endElement(); }
function beginElementAt(o) { return this._fakeNode.beginElementAt(o); }
function endElementAt(o) { return this._fakeNode.endElementAt(o); }
function _getNodeName() { return this._fakeNode.nodeName; }
function _getNodeType() { return this._fakeNode.nodeType; }
function _getLocalName() { return this._fakeNode.localName; }
function _getPrefix() { return this._fakeNode.prefix; }
function _getNamespaceURI() { return this._fakeNode.namespaceURI; }
function _getChildNodes() { return this._fakeNode._getChildNodes(); }
function _getParentNode() { return this._fakeNode._getParentNode(); }
function _getFirstChild() { return this._fakeNode._getFirstChild(); }
function _getLastChild() { return this._fakeNode._getLastChild(); }
function _getPreviousSibling() { return this._fakeNode._getPreviousSibling(); }
function _getNextSibling() { return this._fakeNode._getNextSibling(); }
function _getNodeValue() { return this._fakeNode._nodeValue; }
function _setNodeValue(v) { return this._fakeNode._setNodeValue(v); }
function _getTextContent() { return this._fakeNode._getTextContent(); }
function _setTextContent(v) { return this._fakeNode._setTextContent(v); }
function _getData() { return this._fakeNode._getData(); }
function _setData(v) { return this._fakeNode._setData(v); }
function _getOwnerDocument() { return this._fakeNode.ownerDocument; }
function _getId() { return this._fakeNode._getId(); }
function _setId(v) { return this._fakeNode._setId(v); }
// TODO: Implement
/*
function _getInnerHTML() { return this._fakeNode._getInnerHTML(); }
function _setInnerHTML(v) { return this._fakeNode._setInnerHTML(v); }
*/
// SVGSVGElement and SVGUseElement only properties
function _getX() { return this._fakeNode._getX(); }
function _getY() { return this._fakeNode._getY(); }
function _getWidth() { return this._fakeNode._getWidth(); }
function _getHeight() { return this._fakeNode._getHeight(); }
function _getCurrentScale() { return this._fakeNode._getCurrentScale(); }
function _setCurrentScale(v) { return this._fakeNode._setCurrentScale(v); }
function _getCurrentTranslate() { return this._fakeNode._getCurrentTranslate(); }
</script>
<!-- IE has a bug where if a JScript portion is greater than 512 bytes,
the page will freeze during unload for a large period of time.
There are two workarounds to this:
* Abandon JScript and use VBScript instead, which doesn't have this
issue.
* Add an empty script block right after the JScript block that
is of type text/vbscript (!!!!)
We choose the second solution.
The bug is documented here:
http://www.pcreview.co.uk/forums/thread-727396.php
-->
<script type="text/vbscript"></script>