1/*
2 * This file is part of the DOM implementation for KDE.
3 *
4 * Copyright 1999 Lars Knoll (knoll@kde.org)
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
15 *
16 * You should have received a copy of the GNU Library General Public License
17 * along with this library; see the file COPYING.LIB. If not, write to
18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
20 *
21 * This file includes excerpts from the Document Object Model (DOM)
22 * Level 1 Specification (Recommendation)
23 * http://www.w3.org/TR/REC-DOM-Level-1/
24 * Copyright © World Wide Web Consortium , (Massachusetts Institute of
25 * Technology , Institut National de Recherche en Informatique et en
26 * Automatique , Keio University ). All Rights Reserved.
27 *
28 */
29#ifndef HTML_LIST_H
30#define HTML_LIST_H
31
32#include <khtml_export.h>
33#include <dom/html_element.h>
34
35namespace DOM {
36
37class HTMLDListElementImpl;
38class HTMLUListElementImpl;
39class HTMLOListElementImpl;
40class HTMLDirectoryElementImpl;
41class HTMLMenuElementImpl;
42class HTMLLIElementImpl;
43
44class DOMString;
45
46/**
47 * Definition list. See the <a
48 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#edef-DL">
49 * DL element definition </a> in HTML 4.0.
50 *
51 */
52class KHTML_EXPORT HTMLDListElement : public HTMLElement
53{
54public:
55 HTMLDListElement();
56 HTMLDListElement(const HTMLDListElement &other);
57 HTMLDListElement(const Node &other) : HTMLElement()
58 {(*this)=other;}
59protected:
60 HTMLDListElement(HTMLDListElementImpl *impl);
61public:
62
63 HTMLDListElement & operator = (const HTMLDListElement &other);
64 HTMLDListElement & operator = (const Node &other);
65
66 ~HTMLDListElement();
67
68 /**
69 * Reduce spacing between list items. See the <a
70 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-compact">
71 * compact attribute definition </a> in HTML 4.0. This attribute
72 * is deprecated in HTML 4.0.
73 *
74 */
75 bool compact() const;
76
77 /**
78 * see compact
79 */
80 void setCompact( bool );
81};
82
83// --------------------------------------------------------------------------
84
85/**
86 * Directory list. See the <a
87 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#edef-DIR">
88 * DIR element definition </a> in HTML 4.0. This element is deprecated
89 * in HTML 4.0.
90 *
91 */
92class KHTML_EXPORT HTMLDirectoryElement : public HTMLElement
93{
94public:
95 HTMLDirectoryElement();
96 HTMLDirectoryElement(const HTMLDirectoryElement &other);
97 HTMLDirectoryElement(const Node &other) : HTMLElement()
98 {(*this)=other;}
99protected:
100 HTMLDirectoryElement(HTMLDirectoryElementImpl *impl);
101public:
102
103 HTMLDirectoryElement & operator = (const HTMLDirectoryElement &other);
104 HTMLDirectoryElement & operator = (const Node &other);
105
106 ~HTMLDirectoryElement();
107
108 /**
109 * Reduce spacing between list items. See the <a
110 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-compact">
111 * compact attribute definition </a> in HTML 4.0. This attribute
112 * is deprecated in HTML 4.0.
113 *
114 */
115 bool compact() const;
116
117 /**
118 * see compact
119 */
120 void setCompact( bool );
121};
122
123// --------------------------------------------------------------------------
124
125/**
126 * List item. See the <a
127 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#edef-LI">
128 * LI element definition </a> in HTML 4.0.
129 *
130 */
131class KHTML_EXPORT HTMLLIElement : public HTMLElement
132{
133public:
134 HTMLLIElement();
135 HTMLLIElement(const HTMLLIElement &other);
136 HTMLLIElement(const Node &other) : HTMLElement()
137 {(*this)=other;}
138
139protected:
140 HTMLLIElement(HTMLLIElementImpl *impl);
141public:
142
143 HTMLLIElement & operator = (const HTMLLIElement &other);
144 HTMLLIElement & operator = (const Node &other);
145
146 ~HTMLLIElement();
147
148 /**
149 * List item bullet style. See the <a
150 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-type-LI">
151 * type attribute definition </a> in HTML 4.0. This attribute is
152 * deprecated in HTML 4.0.
153 *
154 */
155 DOMString type() const;
156
157 /**
158 * see type
159 */
160 void setType( const DOMString & );
161
162 /**
163 * Reset sequence number when used in \c OL See the <a
164 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-value-LI">
165 * value attribute definition </a> in HTML 4.0. This attribute is
166 * deprecated in HTML 4.0.
167 *
168 */
169 long value() const;
170
171 /**
172 * see value
173 */
174 void setValue( long );
175};
176
177// --------------------------------------------------------------------------
178
179/**
180 * Menu list. See the <a
181 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#edef-MENU">
182 * MENU element definition </a> in HTML 4.0. This element is
183 * deprecated in HTML 4.0.
184 *
185 */
186class KHTML_EXPORT HTMLMenuElement : public HTMLElement
187{
188public:
189 HTMLMenuElement();
190 HTMLMenuElement(const HTMLMenuElement &other);
191 HTMLMenuElement(const Node &other) : HTMLElement()
192 {(*this)=other;}
193
194protected:
195 HTMLMenuElement(HTMLMenuElementImpl *impl);
196public:
197
198 HTMLMenuElement & operator = (const HTMLMenuElement &other);
199 HTMLMenuElement & operator = (const Node &other);
200
201 ~HTMLMenuElement();
202
203 /**
204 * Reduce spacing between list items. See the <a
205 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-compact">
206 * compact attribute definition </a> in HTML 4.0. This attribute
207 * is deprecated in HTML 4.0.
208 *
209 */
210 bool compact() const;
211
212 /**
213 * see compact
214 */
215 void setCompact( bool );
216};
217
218// --------------------------------------------------------------------------
219
220/**
221 * Ordered list. See the <a
222 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#edef-OL">
223 * OL element definition </a> in HTML 4.0.
224 *
225 */
226class KHTML_EXPORT HTMLOListElement : public HTMLElement
227{
228public:
229 HTMLOListElement();
230 HTMLOListElement(const HTMLOListElement &other);
231 HTMLOListElement(const Node &other) : HTMLElement()
232 {(*this)=other;}
233protected:
234 HTMLOListElement(HTMLOListElementImpl *impl);
235public:
236
237 HTMLOListElement & operator = (const HTMLOListElement &other);
238 HTMLOListElement & operator = (const Node &other);
239
240 ~HTMLOListElement();
241
242 /**
243 * Reduce spacing between list items. See the <a
244 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-compact">
245 * compact attribute definition </a> in HTML 4.0. This attribute
246 * is deprecated in HTML 4.0.
247 *
248 */
249 bool compact() const;
250
251 /**
252 * see compact
253 */
254 void setCompact( bool );
255
256 /**
257 * Starting sequence number. See the <a
258 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-start">
259 * start attribute definition </a> in HTML 4.0. This attribute is
260 * deprecated in HTML 4.0.
261 *
262 */
263 long start() const;
264
265 /**
266 * see start
267 */
268 void setStart( long );
269
270 /**
271 * Numbering style. See the <a
272 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-type-OL">
273 * type attribute definition </a> in HTML 4.0. This attribute is
274 * deprecated in HTML 4.0.
275 *
276 */
277 DOMString type() const;
278
279 /**
280 * see type
281 */
282 void setType( const DOMString & );
283};
284
285// --------------------------------------------------------------------------
286
287
288/**
289 * Unordered list. See the <a
290 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#edef-UL">
291 * UL element definition </a> in HTML 4.0.
292 *
293 */
294class KHTML_EXPORT HTMLUListElement : public HTMLElement
295{
296public:
297 HTMLUListElement();
298 HTMLUListElement(const HTMLUListElement &other);
299 HTMLUListElement(const Node &other) : HTMLElement()
300 {(*this)=other;}
301protected:
302 HTMLUListElement(HTMLUListElementImpl *impl);
303public:
304
305 HTMLUListElement & operator = (const HTMLUListElement &other);
306 HTMLUListElement & operator = (const Node &other);
307
308 ~HTMLUListElement();
309
310 /**
311 * Reduce spacing between list items. See the <a
312 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-compact">
313 * compact attribute definition </a> in HTML 4.0. This attribute
314 * is deprecated in HTML 4.0.
315 *
316 */
317 bool compact() const;
318
319 /**
320 * see compact
321 */
322 void setCompact( bool );
323
324 /**
325 * Bullet style. See the <a
326 * href="http://www.w3.org/TR/REC-html40/struct/lists.html#adef-type-UL">
327 * type attribute definition </a> in HTML 4.0. This attribute is
328 * deprecated in HTML 4.0.
329 *
330 */
331 DOMString type() const;
332
333 /**
334 * see type
335 */
336 void setType( const DOMString & );
337};
338
339} //namespace
340
341#endif
342