00001
00022
00023
00024
#include "html_document.h"
00025
#include "css/csshelper.h"
00026
#include "dom/html_misc.h"
00027
#include "dom/dom_exception.h"
00028
#include "xml/dom_textimpl.h"
00029
#include "html/html_documentimpl.h"
00030
#include "html/html_miscimpl.h"
00031
#include "misc/htmlhashes.h"
00032
00033
using namespace DOM;
00034
00035 HTMLDocument::HTMLDocument() :
Document(false)
00036 {
00037 impl = DOMImplementationImpl::instance()->createHTMLDocument();
00038 impl->ref();
00039
00040 }
00041
00042 HTMLDocument::HTMLDocument(
KHTMLView *parent)
00043 :
Document(false)
00044 {
00045 impl = DOMImplementationImpl::instance()->createHTMLDocument(parent);
00046 impl->ref();
00047 }
00048
00049 HTMLDocument::HTMLDocument(
const HTMLDocument &other) :
Document(other)
00050 {
00051 }
00052
00053 HTMLDocument::HTMLDocument(HTMLDocumentImpl *impl) :
Document(impl)
00054 {
00055 }
00056
00057
HTMLDocument &HTMLDocument::operator = (
const Node &other)
00058 {
00059
if(other.
nodeType() != DOCUMENT_NODE) {
00060
if ( impl ) impl->deref();
00061 impl = 0;
00062 }
else {
00063 DocumentImpl *d = static_cast<DocumentImpl *>(other.
handle());
00064
if(!d->isHTMLDocument()) {
00065
if ( impl ) impl->deref();
00066 impl = 0;
00067 }
else {
00068 Node::operator =(other);
00069 }
00070 }
00071
return *
this;
00072 }
00073
00074
HTMLDocument &HTMLDocument::operator = (
const HTMLDocument &other)
00075 {
00076 Document::operator =(other);
00077
return *
this;
00078 }
00079
00080 HTMLDocument::~HTMLDocument()
00081 {
00082 }
00083
00084 DOMString HTMLDocument::title()
const
00085
{
00086
if(!impl)
return DOMString();
00087
return static_cast<HTMLDocumentImpl *>(impl)->title();
00088 }
00089
00090 void HTMLDocument::setTitle(
const DOMString &value )
00091 {
00092
if (impl)
00093 static_cast<HTMLDocumentImpl *>(impl)->setTitle(value);
00094 }
00095
00096 DOMString HTMLDocument::referrer()
const
00097
{
00098
if(!impl)
return DOMString();
00099
return ((HTMLDocumentImpl *)impl)->referrer();
00100 }
00101
00102 DOMString HTMLDocument::completeURL(
const DOMString& str)
const
00103
{
00104
if(!impl)
return str;
00105
DOMString parsed = khtml::parseURL(str);
00106
return ((HTMLDocumentImpl *)impl)->completeURL(parsed.
string());
00107 }
00108
00109 DOMString HTMLDocument::domain()
const
00110
{
00111
if(!impl)
return DOMString();
00112
return ((HTMLDocumentImpl *)impl)->domain();
00113 }
00114
00115 DOMString HTMLDocument::lastModified()
const
00116
{
00117
if(!impl)
return DOMString();
00118
return ((HTMLDocumentImpl *)impl)->lastModified();
00119 }
00120
00121 DOMString HTMLDocument::URL()
const
00122
{
00123
if(!impl)
return DOMString();
00124
return ((HTMLDocumentImpl *)impl)->URL().url();
00125 }
00126
00127 HTMLElement HTMLDocument::body()
const
00128
{
00129
if(!impl)
return 0;
00130
return ((HTMLDocumentImpl *)impl)->body();
00131 }
00132
00133 void HTMLDocument::setBody(
const HTMLElement &_body)
00134 {
00135
if (!impl)
return;
00136
int exceptioncode = 0;
00137 ((HTMLDocumentImpl *)impl)->setBody(static_cast<HTMLElementImpl *>(_body.
handle()), exceptioncode);
00138
if ( exceptioncode )
00139
throw DOMException( exceptioncode );
00140
return;
00141 }
00142
00143 HTMLCollection HTMLDocument::images()
const
00144
{
00145
if(!impl)
return HTMLCollection();
00146
return HTMLCollection(impl, HTMLCollectionImpl::DOC_IMAGES);
00147 }
00148
00149 HTMLCollection HTMLDocument::applets()
const
00150
{
00151
if(!impl)
return HTMLCollection();
00152
return HTMLCollection(impl, HTMLCollectionImpl::DOC_APPLETS);
00153 }
00154
00155 HTMLCollection HTMLDocument::links()
const
00156
{
00157
if(!impl)
return HTMLCollection();
00158
return HTMLCollection(impl, HTMLCollectionImpl::DOC_LINKS);
00159 }
00160
00161 HTMLCollection HTMLDocument::forms()
const
00162
{
00163
if(!impl)
return HTMLCollection();
00164
return HTMLCollection(impl, HTMLCollectionImpl::DOC_FORMS);
00165 }
00166
00167 HTMLCollection HTMLDocument::anchors()
const
00168
{
00169
if(!impl)
return HTMLCollection();
00170
return HTMLCollection(impl, HTMLCollectionImpl::DOC_ANCHORS);
00171 }
00172
00173 HTMLCollection HTMLDocument::all()
const
00174
{
00175
if(!impl)
return HTMLCollection();
00176
return HTMLCollection(impl, HTMLCollectionImpl::DOC_ALL);
00177 }
00178
00179 DOMString HTMLDocument::cookie()
const
00180
{
00181
if (!impl)
return DOMString();
00182
return ((HTMLDocumentImpl *)impl)->cookie();
00183 }
00184
00185 void HTMLDocument::setCookie(
const DOMString & value )
00186 {
00187
if (impl)
00188 ((HTMLDocumentImpl *)impl)->setCookie(value);
00189
00190 }
00191
00192 void HTMLDocument::open( )
00193 {
00194
if(impl)
00195 ((HTMLDocumentImpl *)impl)->open( );
00196 }
00197
00198 void HTMLDocument::close( )
00199 {
00200
if(impl)
00201 ((HTMLDocumentImpl *)impl)->close( );
00202 }
00203
00204 void HTMLDocument::write(
const DOMString &text )
00205 {
00206
if(impl)
00207 ((HTMLDocumentImpl *)impl)->write( text );
00208 }
00209
00210 void HTMLDocument::writeln(
const DOMString &text )
00211 {
00212
if(impl)
00213 ((HTMLDocumentImpl *)impl)->writeln( text );
00214 }
00215
00216 NodeList HTMLDocument::getElementsByName(
const DOMString &elementName )
00217 {
00218
if(!impl)
return 0;
00219
return new NameNodeListImpl(impl, elementName);
00220 }
00221