WebCore:
[WebKit-https.git] / WebCore / html / HTMLDocument.h
1 /*
2  * This file is part of the DOM implementation for KDE.
3  *
4  * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
5  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
6  * Copyright (C) 2004, 2006 Apple Computer, Inc.
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Library General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Library General Public License for more details.
17  *
18  * You should have received a copy of the GNU Library General Public License
19  * along with this library; see the file COPYING.LIB.  If not, write to
20  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21  * Boston, MA 02111-1307, USA.
22  *
23  */
24
25 #ifndef HTMLDocument_h
26 #define HTMLDocument_h
27
28 #include "CachedResourceClient.h"
29 #include "Document.h"
30 #include "HTMLCollection.h"
31
32 namespace WebCore {
33
34 class FrameView;
35 class HTMLElement;
36
37 class HTMLDocument : public Document, public CachedResourceClient
38 {
39 public:
40     HTMLDocument(DOMImplementation*, FrameView* = 0);
41     ~HTMLDocument();
42
43     virtual bool isHTMLDocument() const { return true; }
44
45     String lastModified() const;
46     String cookie() const;
47     void setCookie(const String&);
48
49     void setBody(HTMLElement*, ExceptionCode&);
50
51     virtual Tokenizer* createTokenizer();
52
53     virtual bool childAllowed(Node*);
54
55     virtual PassRefPtr<Element> createElement(const String& tagName, ExceptionCode&);
56
57     virtual void determineParseMode(const String&);
58
59     void addNamedItem(const String& name);
60     void removeNamedItem(const String& name);
61     bool hasNamedItem(const String& name);
62
63     void addDocExtraNamedItem(const String& name);
64     void removeDocExtraNamedItem(const String& name);
65     bool hasDocExtraNamedItem(const String& name);
66
67     typedef HashMap<StringImpl*, int> NameCountMap;
68     
69 protected:
70     HTMLElement* bodyElement;
71     HTMLElement* htmlElement;
72
73 private:
74     NameCountMap namedItemCounts;
75     NameCountMap docExtraNamedItemCounts;
76 };
77
78 } // namespace
79
80 #endif