ffed488b7e9dc42b820c29b630257af2328c3f20
[WebKit-https.git] / WebCore / khtml / html / html_blockimpl.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  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public License
18  * along with this library; see the file COPYING.LIB.  If not, write to
19  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20  * Boston, MA 02111-1307, USA.
21  *
22  */
23
24 // -------------------------------------------------------------------------
25 #ifndef HTML_BLOCKIMPL_H
26 #define HTML_BLOCKIMPL_H
27
28 #include "html_elementimpl.h"
29 #include "dtd.h"
30
31 namespace DOM {
32
33 class DOMString;
34
35 // -------------------------------------------------------------------------
36
37 class HTMLBlockquoteElementImpl : public HTMLElementImpl
38 {
39 public:
40     HTMLBlockquoteElementImpl(DocumentPtr *doc);
41     ~HTMLBlockquoteElementImpl();
42
43     virtual NodeImpl::Id id() const;
44 };
45
46 // -------------------------------------------------------------------------
47
48 class DOMString;
49
50 class HTMLDivElementImpl : public HTMLElementImpl
51 {
52 public:
53     HTMLDivElementImpl(DocumentPtr *doc);
54     ~HTMLDivElementImpl();
55
56     virtual NodeImpl::Id id() const;
57     
58     virtual bool mapToEntry(NodeImpl::Id attr, MappedAttributeEntry& result) const;
59     virtual void parseHTMLAttribute(HTMLAttributeImpl *token);
60 };
61
62 // -------------------------------------------------------------------------
63
64 class HTMLHRElementImpl : public HTMLElementImpl
65 {
66 public:
67     HTMLHRElementImpl(DocumentPtr *doc);
68     ~HTMLHRElementImpl();
69
70     virtual NodeImpl::Id id() const;
71     
72     virtual bool mapToEntry(NodeImpl::Id attr, MappedAttributeEntry& result) const;
73     virtual void parseHTMLAttribute(HTMLAttributeImpl *);
74 };
75
76 // -------------------------------------------------------------------------
77
78 class HTMLHeadingElementImpl : public HTMLGenericElementImpl
79 {
80 public:
81     HTMLHeadingElementImpl(DocumentPtr *doc, ushort _tagid);
82 };
83
84 // -------------------------------------------------------------------------
85
86 /*
87  * were not using HTMLElementImpl as parent class, since a
88  * paragraph should be able to flow around aligned objects. Thus
89  * a <p> element has to be inline, and is rendered by
90  * HTMLBlockImpl::calcParagraph
91  */
92 class HTMLParagraphElementImpl : public HTMLElementImpl
93 {
94 public:
95     HTMLParagraphElementImpl(DocumentPtr *doc);
96
97     virtual bool mapToEntry(NodeImpl::Id attr, MappedAttributeEntry& result) const;
98     virtual void parseHTMLAttribute(HTMLAttributeImpl *attr);
99     
100     virtual NodeImpl::Id id() const;
101 };
102
103 // -------------------------------------------------------------------------
104
105 class HTMLPreElementImpl : public HTMLGenericElementImpl
106 {
107 public:
108     HTMLPreElementImpl(DocumentPtr *doc, ushort _tagid);
109
110     long width() const;
111     void setWidth( long w );
112 };
113
114 // -------------------------------------------------------------------------
115
116 class HTMLMarqueeElementImpl : public HTMLElementImpl
117 {
118 public:
119     HTMLMarqueeElementImpl(DocumentPtr *doc);
120
121     virtual NodeImpl::Id id() const;
122     
123     virtual bool mapToEntry(NodeImpl::Id attr, MappedAttributeEntry& result) const;
124     virtual void parseHTMLAttribute(HTMLAttributeImpl *token);
125
126     int minimumDelay() const { return m_minimumDelay; }
127     
128 private:
129     int m_minimumDelay;
130 };
131
132 // -------------------------------------------------------------------------
133
134 class HTMLLayerElementImpl : public HTMLDivElementImpl
135 {
136 public:
137     HTMLLayerElementImpl( DocumentPtr *doc );
138     ~HTMLLayerElementImpl();
139
140     virtual NodeImpl::Id id() const;
141
142     bool fixed;
143 };
144
145 }; //namespace
146 #endif