00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
#ifndef _DOM_Document_h_
00030
#define _DOM_Document_h_
00031
00032
#include <dom/dom_node.h>
00033
#include <dom/css_stylesheet.h>
00034
00035
class KHTMLView;
00036
class KHTMLPart;
00037
00038
namespace DOM {
00039
00040
class DOMString;
00041
class DocumentType;
00042
class NodeList;
00043
class CDATASection;
00044
class Comment;
00045
class DocumentFragment;
00046
class Text;
00047
class DOMImplementation;
00048
class Element;
00049
class Attr;
00050
class EntityReference;
00051
class ProcessingInstruction;
00052
class DocumentImpl;
00053
class Range;
00054
class NodeIterator;
00055
class TreeWalker;
00056
class NodeFilter;
00057
class DOMImplementationImpl;
00058
class DocumentTypeImpl;
00059
class Event;
00060
class AbstractView;
00061
class CSSStyleDeclaration;
00062
class HTMLElementImpl;
00063
class HTMLFrameElement;
00064
class HTMLElementImpl;
00065
class HTMLIFrameElement;
00066
class HTMLObjectElement;
00067
class HTMLDocument;
00068
00077 class KHTML_EXPORT DOMImplementation
00078 {
00079
friend class Document;
00080
public:
00081 DOMImplementation();
00082 DOMImplementation(
const DOMImplementation &other);
00083
00084 DOMImplementation & operator = (
const DOMImplementation &other);
00085 ~DOMImplementation();
00086
00103
bool hasFeature (
const DOMString &feature,
const DOMString &version );
00104
00130
DocumentType createDocumentType (
const DOMString &qualifiedName,
00131
const DOMString &publicId,
00132
const DOMString &systemId );
00133
00164
Document createDocument (
const DOMString &namespaceURI,
00165
const DOMString &qualifiedName,
00166
const DocumentType &doctype );
00167
00182 DOMImplementation getInterface(
const DOMString &feature)
const;
00183
00200
CSSStyleSheet createCSSStyleSheet(
const DOMString &title,
const DOMString &media);
00201
00217
HTMLDocument createHTMLDocument(
const DOMString& title);
00218
00223 DOMImplementationImpl *handle()
const;
00224
bool isNull()
const;
00225
00226
protected:
00227 DOMImplementation(DOMImplementationImpl *i);
00228 DOMImplementationImpl *impl;
00229 };
00230
00245 class KHTML_EXPORT Document :
public Node
00246 {
00247
friend class ::KHTMLView;
00248
friend class ::KHTMLPart;
00249
friend class AbstractView;
00250
friend class DOMImplementation;
00251
friend class HTMLFrameElement;
00252
friend class HTMLIFrameElement;
00253
friend class HTMLObjectElement;
00254
00255
public:
00256 Document();
00261 Document(
bool);
00262 Document(
const Document &other);
00263 Document(
const Node &other) :
Node()
00264 {(*this)=other;}
00265
00266 Document & operator = (
const Node &other);
00267 Document & operator = (
const Document &other);
00268
00269 ~Document();
00270
00280
DocumentType doctype()
const;
00281
00288 DOMImplementation implementation()
const;
00289
00296
Element documentElement()
const;
00297
00316
Element createElement (
const DOMString &tagName );
00317
00336
Element createElementNS(
const DOMString &namespaceURI,
00337
const DOMString &qualifiedName );
00338
00345
DocumentFragment createDocumentFragment ( );
00346
00355
Text createTextNode (
const DOMString &data );
00356
00366
Comment createComment (
const DOMString &data );
00367
00381
CDATASection createCDATASection (
const DOMString &data );
00382
00401
ProcessingInstruction createProcessingInstruction (
const DOMString &target,
00402
const DOMString &data );
00403
00418
Attr createAttribute (
const DOMString &name );
00419
00448
Attr createAttributeNS(
const DOMString &namespaceURI,
00449
const DOMString &qualifiedName );
00450
00466
EntityReference createEntityReference (
const DOMString &name );
00467
00481
Element getElementById (
const DOMString &elementId )
const;
00482
00498
NodeList getElementsByTagName (
const DOMString &tagname );
00499
00516
NodeList getElementsByTagNameNS(
const DOMString &namespaceURI,
00517
const DOMString &localName );
00518
00612
Node importNode(
const Node & importedNode,
bool deep );
00613
00618
bool isHTMLDocument()
const;
00619
00631 Range createRange();
00632
00660
NodeIterator createNodeIterator(
Node root,
unsigned long whatToShow,
00661
NodeFilter filter,
00662
bool entityReferenceExpansion);
00663
00694
TreeWalker createTreeWalker(
Node root,
unsigned long whatToShow,
00695
NodeFilter filter,
00696
bool entityReferenceExpansion);
00697
00725
Event createEvent(
const DOMString &eventType);
00726
00733
AbstractView defaultView()
const;
00734
00745
StyleSheetList styleSheets()
const;
00746
00752
DOMString preferredStylesheetSet();
00753
DOMString selectedStylesheetSet();
00754
void setSelectedStylesheetSet(
const DOMString& aString);
00755
00771
void addStyleSheet(
const StyleSheet &sheet);
00772
00786
void removeStyleSheet(
const StyleSheet &sheet);
00787
00791
KHTMLView *view()
const;
00792
00807
CSSStyleDeclaration getOverrideStyle(
const Element &elt,
00808
const DOMString &pseudoElt);
00809
00819
bool async()
const;
00820
00831
void setAsync(
bool );
00832
00833
00843
void abort();
00844
00881
void load(
const DOMString &uri );
00882
00902
void loadXML(
const DOMString &source );
00903
00913
bool designMode()
const;
00914
00922
void setDesignMode(
bool enable);
00923
00929
DOMString completeURL(
const DOMString& url);
00930
00931
DOMString toString()
const;
00932
00939
void updateRendering();
00940
00941 Document( DocumentImpl *i);
00942
protected:
00943
00944
friend class Node;
00945 };
00946
00947
class DocumentFragmentImpl;
00948
00991 class KHTML_EXPORT DocumentFragment :
public Node
00992 {
00993
friend class Document;
00994
friend class HTMLElementImpl;
00995
friend class Range;
00996
00997
public:
00998 DocumentFragment();
00999 DocumentFragment(
const DocumentFragment &other);
01000 DocumentFragment(
const Node &other) :
Node()
01001 {(*this)=other;}
01002
01003 DocumentFragment & operator = (
const Node &other);
01004 DocumentFragment & operator = (
const DocumentFragment &other);
01005
01006 ~DocumentFragment();
01007
01008
protected:
01009 DocumentFragment(DocumentFragmentImpl *i);
01010 };
01011
01012
class NamedNodeMap;
01013
class DOMString;
01014
01028 class KHTML_EXPORT DocumentType :
public Node
01029 {
01030
friend class Document;
01031
friend class DOMImplementation;
01032
public:
01033 DocumentType();
01034 DocumentType(
const DocumentType &other);
01035
01036 DocumentType(
const Node &other) :
Node()
01037 {(*this)=other;}
01038 DocumentType & operator = (
const Node &other);
01039 DocumentType & operator = (
const DocumentType &other);
01040
01041 ~DocumentType();
01042
01048
DOMString name()
const;
01049
01064
NamedNodeMap entities()
const;
01065
01075
NamedNodeMap notations()
const;
01076
01082
DOMString publicId()
const;
01083
01089
DOMString systemId()
const;
01090
01100
DOMString internalSubset()
const;
01101
01102
protected:
01103 DocumentType(DocumentTypeImpl *impl);
01104 };
01105
01106 }
01107
#endif