StarItem.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */
2
3 /* libstaroffice
4 * Version: MPL 2.0 / LGPLv2+
5 *
6 * The contents of this file are subject to the Mozilla Public License Version
7 * 2.0 (the "License"); you may not use this file except in compliance with
8 * the License or as specified alternatively below. You may obtain a copy of
9 * the License at http://www.mozilla.org/MPL/
10 *
11 * Software distributed under the License is distributed on an "AS IS" basis,
12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 * for the specific language governing rights and limitations under the
14 * License.
15 *
16 * Major Contributor(s):
17 * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
18 * Copyright (C) 2002,2004 Marc Maurer (uwog@uwog.net)
19 * Copyright (C) 2004-2006 Fridrich Strba (fridrich.strba@bluewin.ch)
20 * Copyright (C) 2006, 2007 Andrew Ziem
21 * Copyright (C) 2011, 2012 Alonso Laurent (alonso@loria.fr)
22 *
23 *
24 * All Rights Reserved.
25 *
26 * For minor contributions see the git repository.
27 *
28 * Alternatively, the contents of this file may be used under the terms of
29 * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
30 * in which case the provisions of the LGPLv2+ are applicable
31 * instead of those above.
32 */
33
34 /*
35 * StarPool to store some StarOffice items
36 *
37 */
38 #ifndef STAR_ITEM_HXX
39 # define STAR_ITEM_HXX
40
41 #include <map>
42 #include <vector>
43
44 #include <libstaroffice/STOFFDocument.hxx>
45
46 #include "STOFFDebug.hxx"
47
48 class StarAttribute;
49
53 class StarItem
54 {
55 public:
57 explicit StarItem(int which)
58 : m_attribute()
59 , m_which(which)
60 , m_surrogateId(0)
61 , m_localId(false)
62 {
63 }
65 StarItem(std::shared_ptr<StarAttribute> attribute, int which)
66 : m_attribute(attribute)
67 , m_which(which)
68 , m_surrogateId(0)
69 , m_localId(false)
70 {
71 }
73 std::shared_ptr<StarAttribute> m_attribute;
75 int m_which;
77 int m_surrogateId;
79 bool m_localId;
80 private:
81 StarItem(StarItem const &);
82 StarItem &operator=(StarItem const &);
83 };
84
87 class StarItemSet
88 {
89 public:
91 StarItemSet()
92 : m_style("")
93 , m_family(0)
94 , m_whichToItemMap()
95 {
96 }
98 bool empty() const
99 {
100 return m_whichToItemMap.empty();
101 }
103 bool add(std::shared_ptr<StarItem> item);
105 std::string printChild() const;
107 librevenge::RVNGString m_style;
109 int m_family;
111 std::map<int, std::shared_ptr<StarItem> > m_whichToItemMap;
112 };
113
115 class StarItemStyle
116 {
117 public:
119 enum FamilyStyle {
120 F_Char=1, F_Paragraph=2, F_Frame=4, F_Page=8, F_Pseudo=0x10, F_ALL=0xFE
121 };
123 StarItemStyle()
124 : m_family(0)
125 , m_mask(0)
126 , m_itemSet()
127 , m_helpId(0)
128 , m_outlineLevel(-1)
129 {
130 }
132 friend std::ostream &operator<<(std::ostream &o, StarItemStyle const &style);
134 librevenge::RVNGString m_names[4];
136 int m_family;
138 int m_mask;
140 StarItemSet m_itemSet;
142 unsigned m_helpId;
144 int m_outlineLevel;
145 };
146
147 #endif
148 // vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
StarItemSet::add
bool add(std::shared_ptr< StarItem > item)
try to add a item
Definition: StarItem.cxx:42
StarAttribute
virtual class used to store the different attribute
Definition: StarAttribute.hxx:62
StarItem::m_which
int m_which
the which id
Definition: StarItem.hxx:75
StarItemStyle::StarItemStyle
StarItemStyle()
constructor
Definition: StarItem.hxx:123
StarItemStyle::F_Frame
@ F_Frame
Definition: StarItem.hxx:120
STOFF_DEBUG_MSG
#define STOFF_DEBUG_MSG(M)
Definition: libstaroffice_internal.hxx:129
StarItemStyle::F_Paragraph
@ F_Paragraph
Definition: StarItem.hxx:120
StarItemSet::m_style
librevenge::RVNGString m_style
item set name
Definition: StarItem.hxx:107
StarItemSet::printChild
std::string printChild() const
debug function to print the child field
Definition: StarItem.cxx:52
StarItemStyle::F_ALL
@ F_ALL
Definition: StarItem.hxx:120
StarItem::m_attribute
std::shared_ptr< StarAttribute > m_attribute
the attribute if loaded
Definition: StarItem.hxx:73
StarItemStyle::m_itemSet
StarItemSet m_itemSet
the item list
Definition: StarItem.hxx:140
libstoff::DebugStream::str
static std::string str()
Definition: STOFFDebug.hxx:203
StarItemSet::m_family
int m_family
the family
Definition: StarItem.hxx:109
StarItemStyle::operator<<
friend std::ostream & operator<<(std::ostream &o, StarItemStyle const &style)
operator<<
Definition: StarItem.cxx:69
StarItem::m_surrogateId
int m_surrogateId
the surrogate id
Definition: StarItem.hxx:77
StarItem::StarItem
StarItem(std::shared_ptr< StarAttribute > attribute, int which)
constructor from attribute
Definition: StarItem.hxx:65
StarItemStyle::m_outlineLevel
int m_outlineLevel
the outline level
Definition: StarItem.hxx:144
StarItem
class to store an item: ie.
Definition: StarItem.hxx:53
StarItemStyle::m_mask
int m_mask
the mask
Definition: StarItem.hxx:138
StarItemStyle::F_Page
@ F_Page
Definition: StarItem.hxx:120
StarItemSet::StarItemSet
StarItemSet()
constructor
Definition: StarItem.hxx:91
libstoff::DebugStream
Definition: STOFFDebug.hxx:194
StarItem::operator=
StarItem & operator=(StarItem const &)
StarItemStyle::m_names
librevenge::RVNGString m_names[4]
the name, the parent name, the follow name, the help names
Definition: StarItem.hxx:134
StarItem::StarItem
StarItem(int which)
constructor
Definition: StarItem.hxx:57
STOFFDocument.hxx
StarItemStyle
brief class used to stored the style
Definition: StarItem.hxx:115
StarItem::m_localId
bool m_localId
true if which is local
Definition: StarItem.hxx:79
STOFFDebug.hxx
StarItemStyle::F_Pseudo
@ F_Pseudo
Definition: StarItem.hxx:120
StarItemSet::m_whichToItemMap
std::map< int, std::shared_ptr< StarItem > > m_whichToItemMap
the list of item
Definition: StarItem.hxx:111
StarItemSet
class to store a list of item
Definition: StarItem.hxx:87
StarItemStyle::FamilyStyle
FamilyStyle
the different family style
Definition: StarItem.hxx:119
operator<<
std::ostream & operator<<(std::ostream &o, StarItemStyle const &style)
Definition: StarItem.cxx:69
StarItemStyle::m_helpId
unsigned m_helpId
the help id
Definition: StarItem.hxx:142
StarAttribute.hxx
StarItem.hxx
StarItemSet::empty
bool empty() const
return true if the set is empty
Definition: StarItem.hxx:98
StarItemStyle::m_family
int m_family
the family
Definition: StarItem.hxx:136
StarItemStyle::F_Char
@ F_Char
Definition: StarItem.hxx:120