diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-12-13 19:22:19 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-12-13 19:22:19 +0900 |
commit | 14d0fbe96c6abdb9da80e99953aec672f999948c (patch) | |
tree | d48726c1256a1a495b415570847f08ecf9e5ecdd /ksvg/impl/SVGEcma.cc | |
parent | db124e3167670efff59f6aef4bc0daff316dddf8 (diff) | |
download | tdegraphics-14d0fbe96c6abdb9da80e99953aec672f999948c.tar.gz tdegraphics-14d0fbe96c6abdb9da80e99953aec672f999948c.zip |
Renaming of files in preparation for code style tools.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'ksvg/impl/SVGEcma.cc')
-rw-r--r-- | ksvg/impl/SVGEcma.cc | 842 |
1 files changed, 0 insertions, 842 deletions
diff --git a/ksvg/impl/SVGEcma.cc b/ksvg/impl/SVGEcma.cc deleted file mode 100644 index 5036f591..00000000 --- a/ksvg/impl/SVGEcma.cc +++ /dev/null @@ -1,842 +0,0 @@ -/* - Copyright (C) 2002-2003 KSVG Team - This file is part of the KDE project - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include <typeinfo> - -#include <kdebug.h> - -#include <dom/dom_exception.h> - -#include "CanvasItem.h" -#include "KSVGCanvas.h" - -#include "SVGEcma.h" -#include "SVGShapeImpl.h" -#include "SVGHelperImpl.h" -#include "SVGDocumentImpl.h" -#include "SVGSVGElementImpl.h" - -using namespace KSVG; - -#include "SVGEcma.lut.h" -#include "ksvg_scriptinterpreter.h" -#include "ksvg_ecmaeventlistener.h" -#include "ksvg_window.h" -#include "ksvg_ecma.h" - -// SVGDOMNodeBridge - -/* -@namespace KSVG -@begin SVGDOMNodeBridge::s_hashTable 17 - nodeName SVGDOMNodeBridge::NodeName DontDelete|ReadOnly - nodeValue SVGDOMNodeBridge::NodeValue DontDelete - nodeType SVGDOMNodeBridge::NodeType DontDelete|ReadOnly - parentNode SVGDOMNodeBridge::ParentNode DontDelete|ReadOnly - childNodes SVGDOMNodeBridge::ChildNodes DontDelete|ReadOnly - firstChild SVGDOMNodeBridge::FirstChild DontDelete|ReadOnly - lastChild SVGDOMNodeBridge::LastChild DontDelete|ReadOnly - previousSibling SVGDOMNodeBridge::PreviousSibling DontDelete|ReadOnly - nextSibling SVGDOMNodeBridge::NextSibling DontDelete|ReadOnly - attributes SVGDOMNodeBridge::Attributes DontDelete|ReadOnly - namespaceURI SVGDOMNodeBridge::NamespaceURI DontDelete|ReadOnly - prefix SVGDOMNodeBridge::Prefix DontDelete - localName SVGDOMNodeBridge::LocalName DontDelete|ReadOnly - ownerDocument SVGDOMNodeBridge::OwnerDocument DontDelete|ReadOnly -@end -@namespace KSVG -@begin SVGDOMNodeBridgeProto::s_hashTable 29 - insertBefore SVGDOMNodeBridge::InsertBefore DontDelete|Function 2 - replaceChild SVGDOMNodeBridge::ReplaceChild DontDelete|Function 2 - removeChild SVGDOMNodeBridge::RemoveChild DontDelete|Function 1 - appendChild SVGDOMNodeBridge::AppendChild DontDelete|Function 1 - hasAttributes SVGDOMNodeBridge::HasAttributes DontDelete|Function 0 - hasChildNodes SVGDOMNodeBridge::HasChildNodes DontDelete|Function 0 - cloneNode SVGDOMNodeBridge::CloneNode DontDelete|Function 1 - normalize SVGDOMNodeBridge::Normalize DontDelete|Function 0 - isSupported SVGDOMNodeBridge::IsSupported DontDelete|Function 2 - addEventListener SVGDOMNodeBridge::AddEventListener DontDelete|Function 3 - removeEventListener SVGDOMNodeBridge::RemoveEventListener DontDelete|Function 3 - contains SVGDOMNodeBridge::Contains DontDelete|Function 1 - getNodeName SVGDOMNodeBridge::GetNodeName DontDelete|Function 0 - getNodeValue SVGDOMNodeBridge::GetNodeValue DontDelete|Function 0 - getNodeType SVGDOMNodeBridge::GetNodeType DontDelete|Function 0 - getParentNode SVGDOMNodeBridge::GetParentNode DontDelete|Function 0 - getChildNodes SVGDOMNodeBridge::GetChildNodes DontDelete|Function 0 - getFirstChild SVGDOMNodeBridge::GetFirstChild DontDelete|Function 0 - getLastChild SVGDOMNodeBridge::GetLastChild DontDelete|Function 0 - getPreviousSibling SVGDOMNodeBridge::GetPreviousSibling DontDelete|Function 0 - getNextSibling SVGDOMNodeBridge::GetNextSibling DontDelete|Function 0 - getAttributes SVGDOMNodeBridge::GetAttributes DontDelete|Function 0 - getNamespaceURI SVGDOMNodeBridge::GetNamespaceURI DontDelete|Function 0 - getPrefix SVGDOMNodeBridge::GetPrefix DontDelete|Function 0 - getLocalName SVGDOMNodeBridge::GetLocalName DontDelete|Function 0 - getOwnerDocument SVGDOMNodeBridge::GetOwnerDocument DontDelete|Function 0 -@end -*/ - -KSVG_IMPLEMENT_PROTOTYPE("DOMNode", SVGDOMNodeBridgeProto, SVGDOMNodeBridgeProtoFunc) - -Value SVGDOMNodeBridge::getValueProperty(ExecState *exec, int token) const -{ - switch(token) - { - case NodeName: - return getString(m_impl.nodeName()); - case NodeValue: - return getString(m_impl.nodeValue()); - case NodeType: - return Number(m_impl.nodeType()); - case ParentNode: - return getDOMNode(exec, m_impl.parentNode()); - case ChildNodes: - return (new SVGDOMNodeListBridge(m_impl.childNodes()))->cache(exec); - case FirstChild: - return getDOMNode(exec, m_impl.firstChild()); - case LastChild: - return getDOMNode(exec, m_impl.lastChild()); - case PreviousSibling: - return getDOMNode(exec, m_impl.previousSibling()); - case NextSibling: - return getDOMNode(exec, m_impl.nextSibling()); -// case Attributes: // TODO - case NamespaceURI: - return getString(m_impl.namespaceURI()); - case Prefix: - return getString(m_impl.prefix()); - case LocalName: - return getString(m_impl.localName()); - case OwnerDocument: - return getDOMNode(exec, m_impl.ownerDocument()); - default: - kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl; - return Undefined(); - } -} - -void SVGDOMNodeBridge::putValueProperty(ExecState *exec, int token, const Value &value, int) -{ - switch(token) - { - case NodeValue: - m_impl.setNodeValue(value.toString(exec).string()); - break; - case Prefix: - m_impl.setPrefix(value.toString(exec).string()); - break; - default: - kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl; - } -} - -// Special variantion to update the <text> element, -// triggered by one of the child nodes -void updateTextItem(ExecState *exec, const DOM::Node node) -{ - DOM::Node parent; - while(!(parent = node.parentNode()).isNull()) - { - DOM::DOMString name = parent.nodeName(); - if(name == "text" || name == "tspan" || name == "tref") - { - SVGHelperImpl::updateItem(exec, parent); - break; - } - } -} - -// Remove item from canvas -void removeItem(ExecState *exec, DOM::Node &node) -{ - // Get document - SVGDocumentImpl *doc = KSVG::Window::retrieveActive(exec)->doc(); - - // Update canvas - SVGShapeImpl *shape = dynamic_cast<SVGShapeImpl *>(doc->getElementFromHandle(node.handle())); - if(shape && shape->item()) - doc->canvas()->removeItem(shape->item()); -} - -// parseXML + getURL() need all these 5 functions to work properly -void correctHandles(SVGElementImpl *main, DOM::Node &node) -{ - DOM::Element old(node.handle()); - DOM::Element *replace = static_cast<DOM::Element *>(main->ownerDoc()->getElementFromHandle(node.handle())); - - if(replace && node.nodeType() == DOM::Node::ELEMENT_NODE) - *replace = old; - - if(node.hasChildNodes()) - { - for(DOM::Node iterate = node.firstChild(); !iterate.isNull(); iterate = iterate.nextSibling()) - correctHandles(main, iterate); - } -} - -void integrateTree(SVGElementImpl *main, DOM::Node &node, DOM::Node &newNode, SVGElementImpl *obj, SVGDocumentImpl *doc) -{ - if(!obj) - return; - - // Add to global element dicts - doc->addToElemDict(newNode.handle(), obj); - doc->addToElemDict(node.handle(), obj); - - if(node.hasChildNodes()) - { - DOM::Node iterate2 = newNode.firstChild(); - for(DOM::Node iterate = node.firstChild(); !iterate.isNull(); iterate = iterate.nextSibling()) - { - integrateTree(main, iterate, iterate2, obj->ownerDoc()->getElementFromHandle(iterate2.handle()), doc); - iterate2 = iterate2.nextSibling(); - } - } -} - -void correctDocument(SVGElementImpl *main, DOM::Node &node, SVGElementImpl *obj, SVGDocumentImpl *doc) -{ - if(!obj) - return; - - // Correct document - obj->setOwnerDoc(main->ownerDoc()); - - // Correct rootElement - if(!obj->ownerSVGElement()) - obj->setOwnerSVGElement(main->ownerSVGElement()); - - // Correct viewportElement - if(!obj->viewportElement()) - obj->setViewportElement(main->viewportElement()); - - // Properly (re-)register events in the current active document - obj->setupEventListeners(main->ownerDoc(), doc); - - if(node.hasChildNodes()) - { - for(DOM::Node iterate = node.firstChild(); !iterate.isNull(); iterate = iterate.nextSibling()) - correctDocument(main, iterate, doc->getElementFromHandle(iterate.handle()), doc); - } -} - -void registerAdditional(ExecState *exec, SVGDocumentImpl *doc, DOM::Node node) -{ - // Register ID in rootElement! - SVGElementImpl *resultElement = doc->getElementFromHandle(node.handle()); - if(resultElement && resultElement->hasAttribute("id")) - doc->rootElement()->addToIdMap(resultElement->getAttribute("id").string(), resultElement); - - if(node.hasChildNodes()) - { - for(DOM::Node iterate = node.firstChild(); !iterate.isNull(); iterate = iterate.nextSibling()) - registerAdditional(exec, doc, iterate); - } -} - -Value appendHelper(ExecState *exec, DOM::Node node, DOM::Node newNode) -{ - // This is quite tricky code by me (Niko) - // Don't even try to modify it. - if(!(node.ownerDocument() == newNode.ownerDocument())) - { - // Get document - SVGDocumentImpl *doc = KSVG::Window::retrieveActive(exec)->doc(); - - // Detect ownerDoc() of newNode - SVGDocumentImpl *newDoc = doc->getDocumentFromHandle(newNode.ownerDocument().handle()); - - // Get some SVGElementImpl's - SVGElementImpl *nodeElement = doc->getElementFromHandle(node.handle()); - SVGElementImpl *newNodeElement = newDoc->getElementFromHandle(newNode.handle()); - - // Import node into document - DOM::Node result = doc->importNode(newNode, true); - - // Associate the imported node 'result' with the - // 'newNodeElement' which belongs to 'newDoc' - integrateTree(nodeElement, result, newNode, newNodeElement, doc); - - // Correct handles in SVG* elements - correctHandles(nodeElement, result); - - // Correct ownerDoc() etc.. - correctDocument(nodeElement, newNode, newNodeElement, newDoc); - - // Register ID in global map - registerAdditional(exec, doc, result); - - // Recalc style - newNodeElement->setAttributes(); - - // Append + create + update element - Value retVal = getDOMNode(exec, node.appendChild(result)); - - doc->syncCachedMatrices(); - newNodeElement->createItem(doc->canvas()); - SVGHelperImpl::updateItem(exec, *newNodeElement); - - return retVal; - } - else - { - Value retVal = getDOMNode(exec, node.appendChild(newNode)); - - // Get document - SVGDocumentImpl *doc = KSVG::Window::retrieveActive(exec)->doc(); - doc->syncCachedMatrices(); - - // Get some SVGElementImpl's - SVGElementImpl *nodeElement = doc->getElementFromHandle(newNode.handle()); - // TODO : extra check needed to see if the new elements parent is already appended - // in the doc. Not really nice, should be some other way? (Rob) - if(nodeElement && !nodeElement->parentNode().parentNode().isNull()) - { - nodeElement->setAttributes(true); - nodeElement->createItem(); - SVGHelperImpl::updateItem(exec, newNode); - } - - return retVal; - } -} - -Value SVGDOMNodeBridgeProtoFunc::call(ExecState *exec, Object &thisObj, const List &args) -{ - KSVG_CHECK_THIS(SVGDOMNodeBridge) - DOM::Node node = obj->impl(); - - switch(id) - { - case SVGDOMNodeBridge::InsertBefore: - { - DOM::Node newChild = toNode(args[0]); - DOM::Node beforeChild = toNode(args[1]); - Value retVal = getDOMNode(exec, node.insertBefore(newChild, beforeChild)); - - // Get document - SVGDocumentImpl *doc = Window::retrieveActive(exec)->doc(); - - // Get some SVGElementImpl's - SVGShapeImpl *newShape = dynamic_cast<SVGShapeImpl *>(doc->getElementFromHandle(newChild.handle())); - SVGElementImpl *newElement = doc->getElementFromHandle(newChild.handle()); - SVGShapeImpl *beforeElement = dynamic_cast<SVGShapeImpl *>(doc->getElementFromHandle(beforeChild.handle())); - if(newShape && beforeElement && beforeElement->item()) - { - int z = beforeElement->item()->zIndex(); - newElement->createItem(); - doc->canvas()->insert(newShape->item(), z); - } - SVGHelperImpl::updateItem(exec, newChild); - - return retVal; - } - case SVGDOMNodeBridge::ReplaceChild: - { - DOM::Node newChild = toNode(args[0]); - Value retVal = getDOMNode(exec, node.replaceChild(newChild, toNode(args[1]))); - SVGHelperImpl::updateItem(exec, newChild); - return retVal; - } - case SVGDOMNodeBridge::RemoveChild: - { - DOM::Node remove = toNode(args[0]); - if(remove.isNull()) - return Undefined(); - - // New removeChild logic: - // - remove from DOM tree - // - delete element (also deletes it's child element's) - removeItem(exec, remove); - Value retVal = getDOMNode(exec, node.removeChild(remove)); - return retVal; - } - case SVGDOMNodeBridge::AppendChild: - return appendHelper(exec, node, toNode(args[0])); - case SVGDOMNodeBridge::HasAttributes: - { - SVGDocumentImpl *doc = Window::retrieveActive(exec)->doc(); - SVGElementImpl *element = doc->getElementFromHandle(node.handle()); - - if(!element) - return Undefined(); - - return Boolean(element->hasAttributes()); - } - case SVGDOMNodeBridge::HasChildNodes: - return Boolean(node.hasChildNodes()); - case SVGDOMNodeBridge::CloneNode: - { - SVGDocumentImpl *doc = Window::retrieveActive(exec)->doc(); - SVGElementImpl *element = doc->getElementFromHandle(node.handle()); - SVGElementImpl *newElement = element->cloneNode(args[0].toBoolean(exec)); - - return getDOMNode(exec, *newElement); - } - case SVGDOMNodeBridge::Normalize: - { - node.normalize(); - return Undefined(); - } - case SVGDOMNodeBridge::IsSupported: - return Boolean(node.isSupported(args[0].toString(exec).string(), args[1].toString(exec).string())); - case SVGDOMNodeBridge::AddEventListener: - { - SVGDocumentImpl *doc = Window::retrieveActive(exec)->doc(); - SVGElementImpl *element = doc->getElementFromHandle(node.handle()); - - if(element) - { - SVGEvent::EventId eventId = SVGEvent::typeToId(args[0].toString(exec).string()); - if(eventId != SVGEvent::UNKNOWN_EVENT) - element->setEventListener(eventId, new KSVGEcmaEventListener(Object::dynamicCast(args[1]), TQString(), doc->ecmaEngine())); - } - return Undefined(); - } - case SVGDOMNodeBridge::RemoveEventListener: - { - SVGDocumentImpl *doc = Window::retrieveActive(exec)->doc(); - SVGElementImpl *element = doc->getElementFromHandle(node.handle()); - - if(element) - { - SVGEvent::EventId eventId = SVGEvent::typeToId(args[0].toString(exec).string()); - if(eventId != SVGEvent::UNKNOWN_EVENT) - element->removeEventListener((int) eventId); - } - return Undefined(); - } -// case SVGDOMNodeBridge::Contains: // TODO - case SVGDOMNodeBridge::GetNodeName: - return getString(node.nodeName()); - case SVGDOMNodeBridge::GetNodeValue: - return getString(node.nodeValue()); - case SVGDOMNodeBridge::GetNodeType: - return Number(node.nodeType()); - case SVGDOMNodeBridge::GetParentNode: - return getDOMNode(exec, node.parentNode()); - case SVGDOMNodeBridge::GetChildNodes: - return (new SVGDOMNodeListBridge(node.childNodes()))->cache(exec); - case SVGDOMNodeBridge::GetFirstChild: - return getDOMNode(exec, node.firstChild()); - case SVGDOMNodeBridge::GetLastChild: - return getDOMNode(exec, node.lastChild()); - case SVGDOMNodeBridge::GetPreviousSibling: - return getDOMNode(exec, node.previousSibling()); - case SVGDOMNodeBridge::GetNextSibling: - return getDOMNode(exec, node.nextSibling()); -// case SVGDOMNodeBridge::GetAttributes: // TODO - case SVGDOMNodeBridge::GetNamespaceURI: - return getString(node.namespaceURI()); - case SVGDOMNodeBridge::GetPrefix: - return getString(node.prefix()); - case SVGDOMNodeBridge::GetLocalName: - return getString(node.localName()); - case SVGDOMNodeBridge::GetOwnerDocument: - return getDOMNode(exec, node.ownerDocument()); - default: - kdWarning() << "Unhandled function id in " << k_funcinfo << " : " << id << endl; - break; - } - - return Undefined(); -} - -// SVGDOMElementBridge - -/* -@namespace KSVG -@begin SVGDOMElementBridge::s_hashTable 2 - tagName SVGDOMElementBridge::TagName DontDelete|ReadOnly -@end -@namespace KSVG -@begin SVGDOMElementBridgeProto::s_hashTable 17 - getAttribute SVGDOMElementBridge::GetAttribute DontDelete|Function 1 - setAttribute SVGDOMElementBridge::SetAttribute DontDelete|Function 2 - removeAttribute SVGDOMElementBridge::RemoveAttribute DontDelete|Function 1 - getAttributeNode SVGDOMElementBridge::GetAttributeNode DontDelete|Function 1 - setAttributeNode SVGDOMElementBridge::SetAttributeNode DontDelete|Function 2 - removeAttributeNode SVGDOMElementBridge::RemoveAttributeNode DontDelete|Function 1 - getElementsByTagName SVGDOMElementBridge::GetElementsByTagName DontDelete|Function 1 - hasAttribute SVGDOMElementBridge::HasAttribute DontDelete|Function 1 - getAttributeNS SVGDOMElementBridge::GetAttributeNS DontDelete|Function 2 - setAttributeNS SVGDOMElementBridge::SetAttributeNS DontDelete|Function 3 - removeAttributeNS SVGDOMElementBridge::RemoveAttributeNS DontDelete|Function 2 - getAttributeNodeNS SVGDOMElementBridge::GetAttributeNodeNS DontDelete|Function 2 - setAttributeNodeNS SVGDOMElementBridge::SetAttributeNodeNS DontDelete|Function 1 - getElementByTagNameNS SVGDOMElementBridge::GetElementsByTagNameNS DontDelete|Function 2 - hasAttributeNS SVGDOMElementBridge::HasAttributeNS DontDelete|Function 2 -@end -*/ - -KSVG_IMPLEMENT_PROTOTYPE("DOMElement", SVGDOMElementBridgeProto, SVGDOMElementBridgeProtoFunc) - -Value SVGDOMElementBridge::getValueProperty(ExecState *, int token) const -{ - switch(token) - { - case TagName: - return getString(m_impl.tagName()); - default: - kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl; - return Undefined(); - } -} - -Value SVGDOMElementBridgeProtoFunc::call(ExecState *exec, Object &thisObj, const List &args) -{ - KSVG_CHECK_THIS(SVGDOMElementBridge) - DOM::Element elem = obj->impl(); - - switch(id) - { - case SVGDOMElementBridge::GetAttribute: - { - SVGDocumentImpl *doc = Window::retrieveActive(exec)->doc(); - SVGElementImpl *element = doc->getElementFromHandle(elem.handle()); - if(element) - return String(element->getAttribute(args[0].toString(exec).string())); - else - return Undefined(); - } - case SVGDOMElementBridge::SetAttribute: - { - SVGDocumentImpl *doc = Window::retrieveActive(exec)->doc(); - SVGElementImpl *element = doc->getElementFromHandle(elem.handle()); - if(element) - { - element->setAttribute(args[0].toString(exec).string(), args[1].toString(exec).string()); - element->setAttributeInternal(args[0].toString(exec).string(), args[1].toString(exec).string()); - - SVGHelperImpl::updateItem(exec, elem); - } - - return Undefined(); - } - case SVGDOMElementBridge::RemoveAttribute: - { - elem.removeAttribute(args[0].toString(exec).string()); - return Undefined(); - } - case SVGDOMElementBridge::GetAttributeNode: - return getDOMNode(exec, elem.getAttributeNode(args[0].toString(exec).string())); - case SVGDOMElementBridge::SetAttributeNode: // TODO: Correct? - return getDOMNode(exec, elem.setAttributeNode(toNode(args[0]))); - case SVGDOMElementBridge::RemoveAttributeNode: // TODO: Correct? - return getDOMNode(exec, elem.removeAttributeNode(toNode(args[0]))); - case SVGDOMElementBridge::GetElementsByTagName: - return (new SVGDOMNodeListBridge(elem.getElementsByTagName(args[0].toString(exec).string())))->cache(exec); - case SVGDOMElementBridge::GetAttributeNS: - { - // This just skips NS! (Rob) - SVGDocumentImpl *doc = Window::retrieveActive(exec)->doc(); - SVGElementImpl *element = doc->getElementFromHandle(elem.handle()); - if(element) - return String(element->getAttribute(args[1].toString(exec).string())); - else - return Undefined(); - } - case SVGDOMElementBridge::SetAttributeNS: - { - // For now, we strip the NS part (Rob) - DOM::DOMString attr = args[1].toString(exec).string(); - int pos = attr.string().find(':'); - if(pos > -1) - attr = attr.string().mid(pos + 1); - - SVGDocumentImpl *doc = Window::retrieveActive(exec)->doc(); - SVGElementImpl *element = doc->getElementFromHandle(elem.handle()); - if(element) - { - element->setAttribute(attr.string(), args[2].toString(exec).string()); - element->setAttributeInternal(attr.string(), args[2].toString(exec).string()); - - SVGHelperImpl::updateItem(exec, *element); - } - - return Undefined(); - } - case SVGDOMElementBridge::RemoveAttributeNS: - { - elem.removeAttributeNS(args[0].toString(exec).string(), args[1].toString(exec).string()); - return Undefined(); - } - case SVGDOMElementBridge::GetAttributeNodeNS: - return getDOMNode(exec, elem.getAttributeNodeNS(args[0].toString(exec).string(), args[1].toString(exec).string())); - case SVGDOMElementBridge::SetAttributeNodeNS: // TODO: Correct? - return getDOMNode(exec, elem.setAttributeNodeNS(toNode(args[0]))); - case SVGDOMElementBridge::GetElementsByTagNameNS: - return (new SVGDOMNodeListBridge(elem.getElementsByTagNameNS(args[0].toString(exec).string(), args[1].toString(exec).string())))->cache(exec); - case SVGDOMElementBridge::HasAttribute: - return Boolean(elem.hasAttribute(args[0].toString(exec).string())); - case SVGDOMElementBridge::HasAttributeNS: - return Boolean(elem.hasAttributeNS(args[0].toString(exec).string(), args[1].toString(exec).string())); - default: - kdWarning() << "Unhandled function id in " << k_funcinfo << " : " << id << endl; - break; - } - - return Undefined(); -} - - -// SVGDOMNodeListBridge - -/* -@namespace KSVG -@begin SVGDOMNodeListBridge::s_hashTable 2 - length SVGDOMNodeListBridge::Length DontDelete -@end -@namespace KSVG -@begin SVGDOMNodeListBridgeProto::s_hashTable 3 - getLength SVGDOMNodeListBridge::GetLength DontDelete|Function 0 - item SVGDOMNodeListBridge::Item DontDelete|Function 1 -@end -*/ - -KSVG_IMPLEMENT_PROTOTYPE("DOMNodeList", SVGDOMNodeListBridgeProto, SVGDOMNodeListBridgeProtoFunc) - -Value SVGDOMNodeListBridge::getValueProperty(ExecState *, int token) const -{ - switch(token) - { - case Length: - return Number(m_impl.length()); - default: - kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl; - return Undefined(); - } -} - -Value SVGDOMNodeListBridgeProtoFunc::call(ExecState *exec, Object &thisObj, const List &args) -{ - KSVG_CHECK_THIS(SVGDOMNodeListBridge) - DOM::NodeList nodeList = obj->impl(); - - switch(id) - { - case SVGDOMNodeListBridge::GetLength: - return Number(nodeList.length()); - case SVGDOMNodeListBridge::Item: - return getDOMNode(exec, nodeList.item((unsigned long)args[0].toNumber(exec))); - default: - kdWarning() << "Unhandled function id in " << k_funcinfo << " : " << id << endl; - break; - } - - return Undefined(); -} - -// SVGDOMCharacterDataBridge - -/* -@namespace KSVG -@begin SVGDOMCharacterDataBridge::s_hashTable 3 - data SVGDOMCharacterDataBridge::Data DontDelete - length SVGDOMCharacterDataBridge::Length DontDelete|ReadOnly -@end -@namespace KSVG -@begin SVGDOMCharacterDataBridgeProto::s_hashTable 11 - getData SVGDOMCharacterDataBridge::GetData DontDelete|Function 0 - setData SVGDOMCharacterDataBridge::SetData DontDelete|Function 1 - getLength SVGDOMCharacterDataBridge::GetLength DontDelete|Function 0 - substringData SVGDOMCharacterDataBridge::SubstringData DontDelete|Function 2 - appendData SVGDOMCharacterDataBridge::AppendData DontDelete|Function 1 - insertData SVGDOMCharacterDataBridge::InsertData DontDelete|Function 2 - deleteData SVGDOMCharacterDataBridge::DeleteData DontDelete|Function 2 - replaceData SVGDOMCharacterDataBridge::ReplaceData DontDelete|Function 2 -@end -*/ - -KSVG_IMPLEMENT_PROTOTYPE("DOMCharacterData", SVGDOMCharacterDataBridgeProto, SVGDOMCharacterDataBridgeProtoFunc) - -Value SVGDOMCharacterDataBridge::getValueProperty(ExecState *, int token) const -{ - switch(token) - { - case Data: - return String(m_impl.data()); - case Length: - return Number(m_impl.length()); - default: - kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl; - return Undefined(); - } -} - -void SVGDOMCharacterDataBridge::putValueProperty(ExecState *exec, int token, const Value &value, int) -{ - switch(token) - { - case Data: - m_impl.setData(value.toString(exec).string()); - updateTextItem(exec, m_impl); - break; - default: - kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl; - } -} - -Value SVGDOMCharacterDataBridgeProtoFunc::call(ExecState *exec, Object &thisObj, const List &args) -{ - KSVG_CHECK_THIS(SVGDOMCharacterDataBridge) - DOM::CharacterData node = obj->impl(); - - switch(id) - { - case SVGDOMCharacterDataBridge::GetData: - return String(node.data()); - case SVGDOMCharacterDataBridge::SetData: - node.setData(args[0].toString(exec).string()); - updateTextItem(exec, node); - return Undefined(); - case SVGDOMCharacterDataBridge::GetLength: - return Number(node.length()); - case SVGDOMCharacterDataBridge::SubstringData: - { - DOM::DOMString ret = node.substringData(args[0].toInteger(exec), args[1].toInteger(exec)); - updateTextItem(exec, node); - return String(ret); - } - case SVGDOMCharacterDataBridge::AppendData: - node.appendData(args[0].toString(exec).string()); - updateTextItem(exec, node); - return Undefined(); - case SVGDOMCharacterDataBridge::InsertData: - node.insertData(args[0].toInteger(exec), args[1].toString(exec).string()); - updateTextItem(exec, node); - return Undefined(); - case SVGDOMCharacterDataBridge::DeleteData: - node.deleteData(args[0].toInteger(exec), args[1].toInteger(exec)); - updateTextItem(exec, node); - return Undefined(); - case SVGDOMCharacterDataBridge::ReplaceData: - node.replaceData(args[0].toInteger(exec), args[1].toInteger(exec), args[2].toString(exec).string()); - updateTextItem(exec, node); - return Undefined(); - default: - kdWarning() << "Unhandled function id in " << k_funcinfo << " : " << id << endl; - break; - } - - return Undefined(); -} - -// SVGDOMTextBridge - -/* -@namespace KSVG -@begin SVGDOMTextBridge::s_hashTable 2 - dummy SVGDOMTextBridge::Dummy DontDelete|ReadOnly -@end -@namespace KSVG -@begin SVGDOMTextBridgeProto::s_hashTable 2 - splitText SVGDOMTextBridge::SplitText DontDelete|Function 1 -@end -*/ - -KSVG_IMPLEMENT_PROTOTYPE("DOMText", SVGDOMTextBridgeProto, SVGDOMTextBridgeProtoFunc) - -Value SVGDOMTextBridge::getValueProperty(ExecState *, int token) const -{ - switch(token) - { - default: - kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl; - return Undefined(); - } -} - -Value SVGDOMTextBridgeProtoFunc::call(ExecState *exec, Object &thisObj, const List &args) -{ - KSVG_CHECK_THIS(SVGDOMTextBridge) - DOM::Text node = obj->impl(); - - switch(id) - { - case SVGDOMTextBridge::SplitText: - return getDOMNode(exec, node.splitText(args[0].toInteger(exec))); - default: - kdWarning() << "Unhandled function id in " << k_funcinfo << " : " << id << endl; - break; - } - - return Undefined(); -} - -// SVGDOMDOMImplementationBridge - -/* -@namespace KSVG -@begin SVGDOMDOMImplementationBridge::s_hashTable 2 - dummy SVGDOMDOMImplementationBridge::Dummy DontDelete|ReadOnly -@end -@namespace KSVG -@begin SVGDOMDOMImplementationBridgeProto::s_hashTable 2 - hasFeature SVGDOMDOMImplementationBridge::HasFeature DontDelete|Function 2 -@end -*/ - -KSVG_IMPLEMENT_PROTOTYPE("DOMDOMImplementation", SVGDOMDOMImplementationBridgeProto, SVGDOMDOMImplementationBridgeProtoFunc) - -Value SVGDOMDOMImplementationBridge::getValueProperty(ExecState *, int token) const -{ - switch(token) - { - default: - kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl; - return Undefined(); - } -} - -Value SVGDOMDOMImplementationBridgeProtoFunc::call(ExecState *exec, Object &thisObj, const List &args) -{ - KSVG_CHECK_THIS(SVGDOMDOMImplementationBridge) - DOM::DOMImplementation node = obj->impl(); - - switch(id) - { - case SVGDOMDOMImplementationBridge::HasFeature: - return Boolean(node.hasFeature(args[0].toString(exec).string(), args[1].toString(exec).string())); - default: - kdWarning() << "Unhandled function id in " << k_funcinfo << " : " << id << endl; - break; - } - - return Undefined(); -} - -// SVGDOMDocumentFragmentBridge - -/* -@namespace KSVG -@begin SVGDOMDocumentFragmentBridge::s_hashTable 2 - dummy SVGDOMDocumentFragmentBridge::Dummy DontDelete|ReadOnly -@end -*/ - -Value SVGDOMDocumentFragmentBridge::getValueProperty(ExecState *, int token) const -{ - switch(token) - { - default: - kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl; - return Undefined(); - } -} |