Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /* DocumentElement: The items we are collecting to be put into the Writer
3 : : * document: paragraph and spans of text, as well as section breaks.
4 : : *
5 : : * This Source Code Form is subject to the terms of the Mozilla Public
6 : : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : : *
9 : : * For further information visit http://libwpd.sourceforge.net
10 : : */
11 : :
12 : : #ifndef _DOCUMENTELEMENT_H
13 : : #define _DOCUMENTELEMENT_H
14 : : #include <libwpd/libwpd.h>
15 : : #include <libwpd/WPXProperty.h>
16 : : #include <libwpd/WPXString.h>
17 : : #include <vector>
18 : :
19 : : #include "OdfDocumentHandler.hxx"
20 : :
21 : 0 : class DocumentElement
22 : : {
23 : : public:
24 [ # # ]: 0 : virtual ~DocumentElement() {}
25 : : virtual void write(OdfDocumentHandler *pHandler) const = 0;
26 : 0 : virtual void print() const {}
27 : : };
28 : :
29 : : class TagElement : public DocumentElement
30 : : {
31 : : public:
32 [ # # ][ # # ]: 0 : virtual ~TagElement() {}
33 [ # # ]: 0 : TagElement(const WPXString &szTagName) : msTagName(szTagName) {}
34 : 0 : const WPXString &getTagName() const
35 : : {
36 : 0 : return msTagName;
37 : : }
38 : : virtual void print() const;
39 : : private:
40 : : WPXString msTagName;
41 : : };
42 : :
43 : : class TagOpenElement : public TagElement
44 : : {
45 : : public:
46 [ # # ]: 0 : TagOpenElement(const WPXString &szTagName) : TagElement(szTagName), maAttrList() {}
47 [ # # ][ # # ]: 0 : virtual ~TagOpenElement() {}
48 : : void addAttribute(const WPXString &szAttributeName, const WPXString &sAttributeValue);
49 : : virtual void write(OdfDocumentHandler *pHandler) const;
50 : : virtual void print () const;
51 : : private:
52 : : WPXPropertyList maAttrList;
53 : : };
54 : :
55 : : class TagCloseElement : public TagElement
56 : : {
57 : : public:
58 : 0 : TagCloseElement(const WPXString &szTagName) : TagElement(szTagName) {}
59 [ # # ]: 0 : virtual ~TagCloseElement() {}
60 : : virtual void write(OdfDocumentHandler *pHandler) const;
61 : : };
62 : :
63 : : class CharDataElement : public DocumentElement
64 : : {
65 : : public:
66 [ # # ]: 0 : CharDataElement(const WPXString &sData) : DocumentElement(), msData(sData) {}
67 [ # # ][ # # ]: 0 : virtual ~CharDataElement() {}
68 : : virtual void write(OdfDocumentHandler *pHandler) const;
69 : : private:
70 : : WPXString msData;
71 : : };
72 : :
73 : : class TextElement : public DocumentElement
74 : : {
75 : : public:
76 [ # # ]: 0 : TextElement(const WPXString &sTextBuf) : DocumentElement(), msTextBuf(sTextBuf, false) {}
77 [ # # ][ # # ]: 0 : virtual ~TextElement() {}
78 : : virtual void write(OdfDocumentHandler *pHandler) const;
79 : :
80 : : private:
81 : : WPXString msTextBuf;
82 : : };
83 : :
84 : : #endif
85 : :
86 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|