00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "dom.h"
00023
00024 #include <QtXml/QDomAttr>
00025 #include <QtCore/QDebug>
00026
00027 using namespace KJSEmbed;
00028
00029 const KJS::ClassInfo DomNodeBinding::info = { "QDomNode", &ValueBinding::info, 0, 0 };
00030 DomNodeBinding::DomNodeBinding( KJS::ExecState *exec, const QDomNode &value )
00031 : ValueBinding(exec, "QDomNode", value )
00032 {
00033 StaticBinding::publish( exec, this, DomNode::methods() );
00034 }
00035
00036 namespace DomNodeNS
00037 {
00038 START_VALUE_METHOD( nodeType, QDomNode )
00039 result = KJS::jsNumber((int)value.nodeType());
00040 END_VALUE_METHOD
00041
00042 START_VALUE_METHOD( nodeName, QDomNode )
00043 result = KJS::jsString( value.nodeName());
00044 END_VALUE_METHOD
00045
00046 START_VALUE_METHOD( nodeValue, QDomNode )
00047 result = KJS::jsString( value.nodeValue());
00048 END_VALUE_METHOD
00049
00050 START_VALUE_METHOD( appendChild, QDomNode )
00051 QDomNode newNode = KJSEmbed::extractValue<QDomNode>( exec, args, 0);
00052 QDomNode node = value.appendChild(newNode);
00053 result = KJSEmbed::createValue(exec, "QDomNode", node);
00054 END_VALUE_METHOD
00055
00056 START_VALUE_METHOD( attributes, QDomNode )
00057 QDomNamedNodeMap map = value.attributes();
00058 result = KJSEmbed::createValue(exec, "QDomNamedNodeMap", map);
00059 END_VALUE_METHOD
00060
00061 START_VALUE_METHOD( childNodes, QDomNode )
00062 QDomNodeList nodes = value.childNodes();
00063 result = KJSEmbed::createValue(exec, "QDomNodeList", nodes);
00064 END_VALUE_METHOD
00065
00066 START_VALUE_METHOD( clear, QDomNode )
00067 value.clear();
00068 END_VALUE_METHOD
00069
00070 START_VALUE_METHOD( cloneNode, QDomNode )
00071 bool deep = KJSEmbed::extractBool( exec, args, 0, true);
00072 QDomNode node = value.cloneNode(deep);
00073 result = KJSEmbed::createValue(exec, "QDomNode", node);
00074 END_VALUE_METHOD
00075
00076 START_VALUE_METHOD( firstChild, QDomNode )
00077 QDomNode node = value.firstChild();
00078 result = KJSEmbed::createValue(exec, "QDomNode", node);
00079 END_VALUE_METHOD
00080
00081 START_VALUE_METHOD( firstChildElement, QDomNode )
00082 QString name = KJSEmbed::extractQString(exec, args, 0);
00083 QDomElement node = value.firstChildElement( name );
00084 result = KJSEmbed::createValue( exec, "QDomElement", node );
00085 END_VALUE_METHOD
00086
00087 START_VALUE_METHOD( hasAttributes, QDomNode )
00088 result = KJS::jsBoolean( value.hasAttributes() );
00089 END_VALUE_METHOD
00090
00091 START_VALUE_METHOD( hasChildNodes, QDomNode )
00092 result = KJS::jsBoolean( value.hasChildNodes() );
00093 END_VALUE_METHOD
00094
00095 START_VALUE_METHOD( insertBefore, QDomNode )
00096 QDomNode first = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00097 QDomNode second = KJSEmbed::extractValue<QDomNode>(exec, args, 1);
00098 QDomNode node = value.insertBefore( first, second );
00099 result = KJSEmbed::createValue(exec, "QDomNode", node );
00100 END_VALUE_METHOD
00101
00102 START_VALUE_METHOD( insertAfter, QDomNode )
00103 QDomNode first = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00104 QDomNode second = KJSEmbed::extractValue<QDomNode>(exec, args, 1);
00105 QDomNode node = value.insertAfter( first, second );
00106 result = KJSEmbed::createValue(exec, "QDomNode", node );
00107 END_VALUE_METHOD
00108
00109 START_VALUE_METHOD( isAttr, QDomNode )
00110 result = KJS::jsBoolean( value.isAttr() );
00111 END_VALUE_METHOD
00112
00113 START_VALUE_METHOD( isCDATASection, QDomNode )
00114 result = KJS::jsBoolean( value.isCDATASection() );
00115 END_VALUE_METHOD
00116
00117 START_VALUE_METHOD( isCharacterData, QDomNode )
00118 result = KJS::jsBoolean( value.isCharacterData() );
00119 END_VALUE_METHOD
00120
00121 START_VALUE_METHOD( isComment, QDomNode )
00122 result = KJS::jsBoolean( value.isComment() );
00123 END_VALUE_METHOD
00124
00125 START_VALUE_METHOD( isDocument, QDomNode )
00126 result = KJS::jsBoolean( value.isDocument() );
00127 END_VALUE_METHOD
00128
00129 START_VALUE_METHOD( isDocumentFragment, QDomNode )
00130 result = KJS::jsBoolean( value.isDocumentFragment() );
00131 END_VALUE_METHOD
00132
00133 START_VALUE_METHOD( isDocumentType, QDomNode )
00134 result = KJS::jsBoolean( value.isDocumentType() );
00135 END_VALUE_METHOD
00136
00137 START_VALUE_METHOD( isElement, QDomNode )
00138 result = KJS::jsBoolean( value.isElement() );
00139 END_VALUE_METHOD
00140
00141 START_VALUE_METHOD( isEntity, QDomNode )
00142 result = KJS::jsBoolean( value.isEntity() );
00143 END_VALUE_METHOD
00144
00145 START_VALUE_METHOD( isEntityReference, QDomNode )
00146 result = KJS::jsBoolean( value.isEntityReference() );
00147 END_VALUE_METHOD
00148
00149 START_VALUE_METHOD( isNotation, QDomNode )
00150 result = KJS::jsBoolean( value.isNotation() );
00151 END_VALUE_METHOD
00152
00153 START_VALUE_METHOD( isNull, QDomNode )
00154 result = KJS::jsBoolean( value.isNull() );
00155 END_VALUE_METHOD
00156
00157 START_VALUE_METHOD( isProcessingInstruction, QDomNode )
00158 result = KJS::jsBoolean( value.isProcessingInstruction() );
00159 END_VALUE_METHOD
00160
00161 START_VALUE_METHOD( isSupported, QDomNode )
00162 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00163 QString arg1 = KJSEmbed::extractQString(exec, args, 1);
00164 result = KJS::jsBoolean( value.isSupported( arg0, arg1 ) );
00165 END_VALUE_METHOD
00166
00167 START_VALUE_METHOD( isText, QDomNode )
00168 result = KJS::jsBoolean( value.isText() );
00169 END_VALUE_METHOD
00170
00171 START_VALUE_METHOD( lastChild, QDomNode )
00172 QDomNode node = value.lastChild();
00173 result = KJSEmbed::createValue(exec, "QDomNode", node );
00174 END_VALUE_METHOD
00175
00176 START_VALUE_METHOD( lastChildElement, QDomNode )
00177 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00178 QDomElement node = value.lastChildElement( arg0 );
00179 result = KJSEmbed::createValue(exec, "QDomElement", node );
00180 END_VALUE_METHOD
00181
00182 START_VALUE_METHOD( localName, QDomNode )
00183 result = KJS::jsString( value.localName() );
00184 END_VALUE_METHOD
00185
00186 START_VALUE_METHOD( namedItem, QDomNode )
00187 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00188 QDomNode node = value.namedItem( arg0 );
00189 result = KJSEmbed::createValue(exec, "QDomNode", node );
00190 END_VALUE_METHOD
00191
00192 START_VALUE_METHOD( namespaceURI, QDomNode )
00193 result = KJS::jsString( value.namespaceURI() );
00194 END_VALUE_METHOD
00195
00196 START_VALUE_METHOD( nextSibling, QDomNode )
00197 QDomNode node = value.nextSibling();
00198 result = KJSEmbed::createValue(exec, "QDomNode", node );
00199 END_VALUE_METHOD
00200
00201 START_VALUE_METHOD( nextSiblingElement, QDomNode )
00202 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00203 QDomElement node = value.nextSiblingElement( arg0 );
00204 result = KJSEmbed::createValue(exec, "QDomElement", node );
00205 END_VALUE_METHOD
00206
00207 START_VALUE_METHOD( normalize, QDomNode )
00208 value.normalize();
00209 END_VALUE_METHOD
00210
00211 START_VALUE_METHOD( ownerDocument, QDomNode )
00212 QDomDocument doc = value.ownerDocument();
00213 result = KJSEmbed::createValue( exec, "QDomDocument", doc);
00214 END_VALUE_METHOD
00215
00216 START_VALUE_METHOD( parentNode, QDomNode )
00217 QDomNode parent = value.parentNode();
00218 result = KJSEmbed::createValue(exec, "QDomNode", parent );
00219 END_VALUE_METHOD
00220
00221 START_VALUE_METHOD( prefix, QDomNode )
00222 result = KJS::jsString( value.prefix() );
00223 END_VALUE_METHOD
00224
00225 START_VALUE_METHOD( previousSibling, QDomNode )
00226 QDomNode node = value.previousSibling();
00227 result = KJSEmbed::createValue(exec, "QDomNode", node);
00228 END_VALUE_METHOD
00229
00230 START_VALUE_METHOD( previousSiblingElement, QDomNode )
00231 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00232 QDomNode node = value.previousSiblingElement( arg0 );
00233 result = KJSEmbed::createValue(exec, "QDomNode", node );
00234 END_VALUE_METHOD
00235
00236 START_VALUE_METHOD( removeChild, QDomNode )
00237 QDomNode arg0 = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00238 QDomNode node = value.removeChild( arg0 );
00239 result = KJSEmbed::createValue(exec, "QDomNode", node );
00240 END_VALUE_METHOD
00241
00242 START_VALUE_METHOD( replaceChild, QDomNode )
00243 QDomNode arg0 = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00244 QDomNode arg1 =KJSEmbed::extractValue<QDomNode>(exec, args, 1);
00245 QDomNode node = value.replaceChild(arg0,arg1);
00246 result = KJSEmbed::createValue(exec, "QDomNode", node );
00247 END_VALUE_METHOD
00248
00249 START_VALUE_METHOD( setPrefix, QDomNode )
00250 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00251 value.setPrefix(arg0);
00252 END_VALUE_METHOD
00253
00254 START_VALUE_METHOD( setNodeValue, QDomNode )
00255 QString arg0 = KJSEmbed::extractQString(exec, args, 0);
00256 value.setNodeValue(arg0);
00257 END_VALUE_METHOD
00258
00259 START_VALUE_METHOD( toAttr, QDomNode )
00260 QDomAttr attr = value.toAttr( );
00261 result = KJSEmbed::createValue(exec, "QDomAttr", attr );
00262 END_VALUE_METHOD
00263
00264 START_VALUE_METHOD( toElement, QDomNode )
00265 QDomElement elem = value.toElement( );
00266 result = KJSEmbed::createValue(exec, "QDomElement", elem );
00267 END_VALUE_METHOD
00268 }
00269
00270 START_METHOD_LUT( DomNode )
00271 {"appendChild", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::appendChild},
00272 {"attributes", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::attributes},
00273 {"childNodes", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::childNodes},
00274 {"clear", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::clear},
00275 {"cloneNode", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::cloneNode},
00276 {"firstChild", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::firstChild},
00277 {"firstChildElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::firstChildElement},
00278 {"hasAttributes", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::hasAttributes},
00279 {"hasChildNodes", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::hasChildNodes},
00280 {"insertBefore", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::insertBefore},
00281 {"insertAfter", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::insertAfter},
00282 {"isAttr", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isAttr},
00283 {"isCDATASection", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isCDATASection},
00284 {"isCharacterData", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isCharacterData},
00285 {"isComment", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isComment},
00286 {"isDocument", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isDocument},
00287 {"isDocumentFragment", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isDocumentFragment},
00288 {"isDocumentType", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isDocumentType},
00289 {"isElement", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isElement},
00290 {"isEntity", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isEntity},
00291 {"isEntityReference", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isEntityReference},
00292 {"isNotation", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isNotation},
00293 {"isNull", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isNull},
00294 {"isProcessingInstruction", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isProcessingInstruction},
00295 {"isSupported", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isSupported},
00296 {"isText", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::isText},
00297 {"lastChild", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::lastChild},
00298 {"lastChildElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::lastChildElement},
00299 {"localName", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::localName},
00300 {"namedItem", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::namedItem},
00301 {"namespaceURI", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::namespaceURI},
00302 {"nextSibling", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nextSibling},
00303 {"nextSiblingElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nextSiblingElement},
00304 {"nodeType", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nodeType},
00305 {"nodeName", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nodeName},
00306 {"nodeValue", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::nodeValue},
00307 {"normalize", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::normalize},
00308 {"ownerDocument", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::ownerDocument},
00309 {"parentNode", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::parentNode},
00310 {"prefix", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::prefix},
00311 {"previousSibling", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::previousSibling},
00312 {"previousSiblingElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::previousSiblingElement},
00313 {"removeChild", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::removeChild},
00314 {"replaceChild", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::replaceChild},
00315 {"setPrefix", 1, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::setPrefix},
00316 {"setNodeValue", 2, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::setNodeValue},
00317 {"toAttr", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::toAttr},
00318 {"toElement", 0, KJS::DontDelete|KJS::ReadOnly, &DomNodeNS::toElement}
00319 END_METHOD_LUT
00320
00321 START_ENUM_LUT( DomNode )
00322 {"ElementNode", QDomNode::ElementNode},
00323 {"AttributeNode", QDomNode::AttributeNode},
00324 {"TextNode", QDomNode::TextNode},
00325 {"CDATASectionNode", QDomNode::CDATASectionNode},
00326 {"EntityReferenceNode", QDomNode::EntityReferenceNode},
00327 {"EntityNode", QDomNode::EntityNode},
00328 {"ProcessingInstructionNode", QDomNode::ProcessingInstructionNode},
00329 {"CommentNode", QDomNode::CommentNode},
00330 {"DocumentNode", QDomNode::DocumentNode},
00331 {"DocumentTypeNode", QDomNode::DocumentTypeNode},
00332 {"DocumentFragmentNode", QDomNode::DocumentFragmentNode},
00333 {"NotationNode", QDomNode::NotationNode},
00334 {"BaseNode", QDomNode::BaseNode},
00335 {"CharacterDataNode", QDomNode::CharacterDataNode}
00336 END_ENUM_LUT
00337
00338 NO_STATICS( DomNode )
00339
00340 START_CTOR( DomNode, QDomNode, 0 )
00341 return new KJSEmbed::DomNodeBinding(exec, QDomNode( ) );
00342 END_CTOR
00343
00344 const KJS::ClassInfo DomDocumentBinding::info = { "QDomDocument", &ValueBinding::info, 0, 0 };
00345 DomDocumentBinding::DomDocumentBinding( KJS::ExecState *exec, const QDomDocument &value )
00346 : ValueBinding(exec, "QDomDocument", value )
00347 {
00348 StaticBinding::publish( exec, this, DomNode::methods() );
00349 StaticBinding::publish( exec, this, DomDocument::methods() );
00350 }
00351
00352 namespace DomDocumentNS
00353 {
00354 QString parserErrorTemplate = "XML Parse error '%1' at %2,%3";
00355
00356 START_VALUE_METHOD( setContent, QDomDocument )
00357 QString xml = KJSEmbed::extractQString( exec, args, 0);
00358 QString message;
00359 int row = 0;
00360 int col = 0;
00361 bool success = value.setContent(xml, &message, &row, &col );
00362 result = KJS::jsBoolean( success );
00363 if( !success )
00364 {
00365 KJS::throwError(exec, KJS::SyntaxError, parserErrorTemplate.arg(message).arg(row).arg(col) );
00366 }
00367 END_VALUE_METHOD
00368
00369 START_VALUE_METHOD( toString, QDomDocument )
00370 int indent = KJSEmbed::extractInt( exec, args, 0, 1);
00371 result = KJS::jsString(value.toString(indent));
00372 END_VALUE_METHOD
00373
00374 START_VALUE_METHOD( documentElement, QDomDocument )
00375 QDomElement elem = value.documentElement();
00376 result = KJSEmbed::createValue(exec, "QDomElement", elem);
00377 END_VALUE_METHOD
00378
00379 START_VALUE_METHOD( elementById, QDomDocument )
00380 QString id = KJSEmbed::extractQString(exec, args, 0);
00381 QDomElement elem = value.elementById(id);
00382 result = KJSEmbed::createValue(exec, "QDomElement", elem);
00383 END_VALUE_METHOD
00384
00385 START_VALUE_METHOD( createAttribute, QDomDocument )
00386 QString name = KJSEmbed::extractQString( exec, args, 0);
00387 QDomAttr attr = value.createAttribute( name );
00388 result = KJSEmbed::createValue(exec, "QDomAttr", attr);
00389 END_VALUE_METHOD
00390
00391 START_VALUE_METHOD( createAttributeNS, QDomDocument )
00392 QString nsURI = KJSEmbed::extractQString( exec, args, 0);
00393 QString qName = KJSEmbed::extractQString( exec, args, 1);
00394 QDomAttr attr = value.createAttributeNS( nsURI, qName );
00395 result = KJSEmbed::createValue(exec, "QDomAttr", attr);
00396 END_VALUE_METHOD
00397
00398 START_VALUE_METHOD( createCDATASection, QDomDocument )
00399 QString cdatatxt = KJSEmbed::extractQString( exec, args, 0);
00400 QDomCDATASection cdata = value.createCDATASection( cdatatxt );
00401 result = KJSEmbed::createValue(exec, "QDomCDATASection", cdata);
00402 END_VALUE_METHOD
00403
00404 START_VALUE_METHOD( createComment, QDomDocument )
00405 QString commenttxt = KJSEmbed::extractQString( exec, args, 0);
00406 QDomComment comment = value.createComment( commenttxt );
00407 result = KJSEmbed::createValue(exec, "QDomComment", comment);
00408 END_VALUE_METHOD
00409
00410 START_VALUE_METHOD( createDocumentFragment, QDomDocument )
00411 QDomDocumentFragment fragment = value.createDocumentFragment();
00412 result = KJSEmbed::createValue(exec, "QDomDocumentFragment", fragment);
00413 END_VALUE_METHOD
00414
00415 START_VALUE_METHOD( createElement, QDomDocument )
00416 QString tagName = KJSEmbed::extractQString( exec, args, 0);
00417 QDomElement elem = value.createElement( tagName );
00418 result = KJSEmbed::createValue(exec, "QDomElement", elem);
00419 END_VALUE_METHOD
00420
00421 START_VALUE_METHOD( createElementNS, QDomDocument )
00422 QString nsURI = KJSEmbed::extractQString( exec, args, 0);
00423 QString qName = KJSEmbed::extractQString( exec, args, 1);
00424 QDomElement elem = value.createElementNS( nsURI, qName );
00425 result = KJSEmbed::createValue(exec, "QDomElement", elem);
00426 END_VALUE_METHOD
00427
00428 START_VALUE_METHOD( createEntityReference, QDomDocument )
00429 QString name = KJSEmbed::extractQString( exec, args, 0);
00430 QDomEntityReference ref = value.createEntityReference( name );
00431 result = KJSEmbed::createValue(exec, "QDomEntityReference", ref);
00432 END_VALUE_METHOD
00433
00434 START_VALUE_METHOD( createProcessingInstruction, QDomDocument )
00435 QString target = KJSEmbed::extractQString( exec, args, 0);
00436 QString data = KJSEmbed::extractQString( exec, args, 1);
00437 QDomProcessingInstruction inst = value.createProcessingInstruction(target, data );
00438 result = KJSEmbed::createValue(exec, "QDomProcessingInstruction", inst);
00439 END_VALUE_METHOD
00440
00441 START_VALUE_METHOD( createTextNode, QDomDocument )
00442 QString texttext = KJSEmbed::extractQString( exec, args, 0);
00443 QDomText text = value.createTextNode( texttext );
00444 result = KJSEmbed::createValue(exec, "QDomText", text);
00445 END_VALUE_METHOD
00446
00447 START_VALUE_METHOD( importNode, QDomDocument )
00448 QDomNode import = KJSEmbed::extractValue<QDomNode>(exec, args, 0);
00449 bool deep = KJSEmbed::extractBool( exec, args, 1);
00450 QDomNode node = value.importNode( import, deep );
00451 result = KJSEmbed::createValue(exec, "QDomNode", node);
00452 END_VALUE_METHOD
00453
00454 }
00455
00456 START_METHOD_LUT( DomDocument )
00457 {"setContent", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::setContent},
00458 {"toString", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::toString},
00459 {"documentElement", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::documentElement},
00460 {"elementById", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::elementById},
00461 {"createAttribute", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createAttribute },
00462 {"createAttributeNS", 2, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createAttributeNS },
00463 {"createCDATASection", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createCDATASection},
00464 {"createComment", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createComment},
00465 {"createDocumentFragment", 0, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createDocumentFragment},
00466 {"createElement", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createElement},
00467 {"createElementNS", 2, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createElementNS},
00468 {"createEntityReference", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createEntityReference},
00469 {"createProcessingInstruction", 2, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createProcessingInstruction},
00470 {"createTextNode", 1, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::createTextNode},
00471 {"importNode", 2, KJS::DontDelete|KJS::ReadOnly, &DomDocumentNS::importNode}
00472 END_METHOD_LUT
00473
00474 NO_ENUMS( DomDocument )
00475 NO_STATICS( DomDocument )
00476
00477 START_CTOR( DomDocument, QDomDocument, 1 )
00478 QString name = KJSEmbed::extractQString( exec, args, 0);
00479 return new KJSEmbed::DomDocumentBinding(exec, QDomDocument(name) );
00480 END_CTOR
00481
00482 const KJS::ClassInfo DomElementBinding::info = { "QDomElement", &ValueBinding::info, 0, 0 };
00483 DomElementBinding::DomElementBinding( KJS::ExecState *exec, const QDomElement &value )
00484 : ValueBinding(exec, "QDomElement", value )
00485 {
00486 StaticBinding::publish( exec, this, DomNode::methods() );
00487 StaticBinding::publish( exec, this, DomElement::methods() );
00488 }
00489
00490 namespace DomElementNS {
00491 START_VALUE_METHOD( toString, QDomElement )
00492 result = KJS::jsString( value.text( ) );
00493 END_VALUE_METHOD
00494
00495 START_VALUE_METHOD( tagName, QDomElement )
00496 result = KJS::jsString( value.tagName( ) );
00497 END_VALUE_METHOD
00498
00499 START_VALUE_METHOD( setTagName, QDomElement )
00500 QString tag = KJSEmbed::extractQString(exec, args, 0);
00501 value.setTagName(tag);
00502 END_VALUE_METHOD
00503
00504 START_VALUE_METHOD( attribute, QDomElement )
00505 QString tag = KJSEmbed::extractQString(exec, args, 0);
00506 QString defaultValue = KJSEmbed::extractQString(exec, args, 1, QString());
00507 result = KJS::jsString( value.attribute(tag,defaultValue) );
00508 END_VALUE_METHOD
00509
00510 START_VALUE_METHOD( setAttribute, QDomElement )
00511 QString tag = KJSEmbed::extractQString(exec, args, 0);
00512 QString newValue = KJSEmbed::extractQString(exec, args, 1);
00513 value.setAttribute(tag,newValue);
00514 END_VALUE_METHOD
00515
00516 START_VALUE_METHOD( hasAttribute, QDomElement )
00517 QString attr = KJSEmbed::extractQString(exec, args, 0);
00518 result = KJS::jsBoolean( value.hasAttribute(attr) );
00519 END_VALUE_METHOD
00520
00521 START_VALUE_METHOD( removeAttribute, QDomElement )
00522 QString attr = KJSEmbed::extractQString(exec, args, 0);
00523 value.removeAttribute( attr );
00524 END_VALUE_METHOD
00525
00526 START_VALUE_METHOD( setAttributeNS, QDomElement )
00527 QString ns = KJSEmbed::extractQString(exec, args, 0);
00528 QString attr = KJSEmbed::extractQString(exec, args, 1);
00529 QString val = KJSEmbed::extractQString(exec, args, 3);
00530 value.setAttributeNS( ns, attr, val );
00531 END_VALUE_METHOD
00532
00533 START_VALUE_METHOD( attributeNS, QDomElement )
00534 QString nsURI = KJSEmbed::extractQString(exec, args, 0);
00535 QString localName = KJSEmbed::extractQString(exec, args, 1);
00536 QString defValue = KJSEmbed::extractQString( exec, args, 1, QString() );
00537 result = KJS::jsString( value.attributeNS( nsURI, localName, defValue ));
00538 END_VALUE_METHOD
00539
00540 START_VALUE_METHOD( hasAttributeNS, QDomElement )
00541 QString ns = KJSEmbed::extractQString(exec, args, 0);
00542 QString attr = KJSEmbed::extractQString(exec, args, 1);
00543 result = KJS::jsBoolean( value.hasAttributeNS(ns, attr) );
00544 END_VALUE_METHOD
00545
00546 START_VALUE_METHOD( removeAttributeNS, QDomElement )
00547 QString ns = KJSEmbed::extractQString(exec, args, 0);
00548 QString attr = KJSEmbed::extractQString(exec, args, 1);
00549 value.removeAttributeNS( ns, attr );
00550 END_VALUE_METHOD
00551
00552 START_VALUE_METHOD( elementsByTagName, QDomElement )
00553 QString name = KJSEmbed::extractQString(exec, args, 0);
00554 QDomNodeList nodes = value.elementsByTagName(name);
00555 result = KJSEmbed::createValue(exec, "QDomNodeList", nodes);
00556 END_VALUE_METHOD
00557
00558 START_VALUE_METHOD( elementsByTagNameNS, QDomElement )
00559 QString ns = KJSEmbed::extractQString(exec, args, 0);
00560 QString name = KJSEmbed::extractQString(exec, args, 1);
00561 QDomNodeList nodes = value.elementsByTagNameNS( ns, name );
00562 result = KJSEmbed::createValue(exec, "QDomNodeList", nodes);
00563 END_VALUE_METHOD
00564
00565 START_VALUE_METHOD( attributeNode, QDomElement )
00566 QString name = KJSEmbed::extractQString(exec, args, 0);
00567 QDomAttr attr = value.attributeNode( name );
00568 result = KJSEmbed::createValue(exec, "QDomAttr", attr);
00569 END_VALUE_METHOD
00570
00571 START_VALUE_METHOD( attributeNodeNS, QDomElement )
00572 QString ns = KJSEmbed::extractQString(exec, args, 0);
00573 QString name = KJSEmbed::extractQString(exec, args, 1);
00574 QDomAttr attr = value.attributeNodeNS( ns, name );
00575 result = KJSEmbed::createValue(exec, "QDomAttr", attr);
00576 END_VALUE_METHOD
00577
00578 START_VALUE_METHOD( removeAttributeNode, QDomElement )
00579 QDomAttr attr = KJSEmbed::extractValue<QDomAttr>( exec, args, 0);
00580 QDomAttr newAttr = value.removeAttributeNode( attr );
00581 result = KJSEmbed::createValue(exec, "QDomAttr", newAttr);
00582 END_VALUE_METHOD
00583
00584 START_VALUE_METHOD( setAttributeNode, QDomElement )
00585 QDomAttr attr = KJSEmbed::extractValue<QDomAttr>( exec, args, 0);
00586 QDomAttr newAttr = value.setAttributeNode( attr );
00587 result = KJSEmbed::createValue(exec, "QDomAttr", newAttr);
00588 END_VALUE_METHOD
00589
00590 START_VALUE_METHOD( setAttributeNodeNS, QDomElement )
00591 QDomAttr attr = KJSEmbed::extractValue<QDomAttr>( exec, args, 0);
00592 QDomAttr newAttr = value.setAttributeNodeNS( attr );
00593 result = KJSEmbed::createValue(exec, "QDomAttr", newAttr);
00594 END_VALUE_METHOD
00595 }
00596
00597 NO_ENUMS( DomElement )
00598 NO_STATICS( DomElement )
00599
00600 START_METHOD_LUT( DomElement )
00601 {"toString", 0, KJS::DontDelete|KJS::ReadOnly, &DomElementNS::toString},
00602 {"text", 0, KJS::DontDelete|KJS::ReadOnly, &DomElementNS::toString},
00603 {"tagName", 0, KJS::DontDelete|KJS::ReadOnly, &DomElementNS::tagName},
00604 {"setTagName", 1, KJS::DontDelete|KJS::ReadOnly, &