WPSList.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2 /* libwps
3  * Version: MPL 2.0 / LGPLv2.1+
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  * Major Contributor(s):
10  * Copyright (C) 2009, 2011 Alonso Laurent (alonso@loria.fr)
11  * Copyright (C) 2006, 2007 Andrew Ziem
12  * Copyright (C) 2004-2006 Fridrich Strba (fridrich.strba@bluewin.ch)
13  * Copyright (C) 2004 Marc Maurer (uwog@uwog.net)
14  * Copyright (C) 2003-2005 William Lachance (william.lachance@sympatico.ca)
15  *
16  * For minor contributions see the git repository.
17  *
18  * Alternatively, the contents of this file may be used under the terms
19  * of the GNU Lesser General Public License Version 2.1 or later
20  * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
21  * applicable instead of those above.
22  *
23  * For further information visit http://libwps.sourceforge.net
24  */
25 
26 #ifndef WPS_LIST_H
27 # define WPS_LIST_H
28 
29 #include <iostream>
30 #include <vector>
31 
32 #include <librevenge/librevenge.h>
33 #include "libwps_internal.h"
34 
36 class WPSList
37 {
38 public:
40  struct Level
41  {
42 
45  : m_labelIndent(0.0)
46  , m_labelWidth(0.0)
47  , m_startValue(-1)
48  , m_type(libwps::NONE)
49  , m_prefix("")
50  , m_suffix("")
51  , m_bullet("")
52  , m_sendToInterface(false) { }
53 
55  bool isDefault() const
56  {
57  return m_type ==libwps::NONE;
58  }
60  bool isNumeric() const
61  {
63  }
65  void addTo(librevenge::RVNGPropertyList &propList, int startVal) const;
66 
68  bool isSendToInterface() const
69  {
70  return m_sendToInterface;
71  }
73  void resetSendToInterface() const
74  {
75  m_sendToInterface = false;
76  }
77 
79  int getStartValue() const
80  {
81  return m_startValue <= -1 ? 1 : m_startValue;
82  }
83 
85  int cmp(Level const &levl) const;
86 
88  int cmpType(Level const &levl) const;
89 
91  friend std::ostream &operator<<(std::ostream &o, Level const &ft);
92 
93  double m_labelIndent ;
94  double m_labelWidth ;
99  librevenge::RVNGString m_prefix ,
102 
103  protected:
105  mutable bool m_sendToInterface;
106  };
107 
110  : m_levels()
111  , m_actLevel(-1)
112  , m_actualIndices()
113  , m_nextIndices()
114  , m_id(-1)
115  , m_previousId(-1) {}
116 
118  int getId() const
119  {
120  return m_id;
121  }
122 
127  int getPreviousId() const
128  {
129  return m_previousId;
130  }
131 
133  void setId(int newId);
134 
136  int numLevels() const
137  {
138  return int(m_levels.size());
139  }
141  void set(int levl, Level const &level);
142 
144  void setLevel(int levl) const;
146  void openElement() const;
148  void closeElement() const {}
149 
151  bool isNumeric(int levl) const;
152 
154  bool mustSendLevel(int level) const;
155 
157  void addLevelTo(int level, librevenge::RVNGPropertyList &propList) const;
158 
159 protected:
160  std::vector<Level> m_levels;
161 
162  mutable int m_actLevel;
163  mutable std::vector<int> m_actualIndices, m_nextIndices;
164  mutable int m_id, m_previousId;
165 };
166 
167 #endif
168 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
libwps::numberingTypeToString
std::string numberingTypeToString(NumberingType type)
Definition: libwps_internal.cpp:357
WPSList::Level::Level
Level()
basic constructor
Definition: WPSList.h:44
libwps::UPPERCASE_ROMAN
@ UPPERCASE_ROMAN
Definition: libwps_internal.h:246
WPSList::numLevels
int numLevels() const
returns the number of level
Definition: WPSList.h:136
WPSList::isNumeric
bool isNumeric(int levl) const
returns true is a level is numeric
Definition: WPSList.cpp:224
WPSList::Level::operator<<
friend std::ostream & operator<<(std::ostream &o, Level const &ft)
operator<<
Definition: WPSList.cpp:95
WPSList::Level::isNumeric
bool isNumeric() const
returns true if the list is decimal, alpha or roman
Definition: WPSList.h:60
WPSList::m_previousId
int m_previousId
Definition: WPSList.h:164
libwps
Definition: libwps_internal.cpp:39
libwps::BULLET
@ BULLET
Definition: libwps_internal.h:246
WPSList::closeElement
void closeElement() const
close the list element
Definition: WPSList.h:148
WPSList::m_nextIndices
std::vector< int > m_nextIndices
Definition: WPSList.h:163
WPSList::Level::isDefault
bool isDefault() const
returns true if the level type was not set
Definition: WPSList.h:55
WPSList::openElement
void openElement() const
open the list element
Definition: WPSList.cpp:213
WPSList.h
WPSList::Level::resetSendToInterface
void resetSendToInterface() const
reset the sendToInterface flag
Definition: WPSList.h:73
WPSList::getId
int getId() const
returns the list id
Definition: WPSList.h:118
libwps::ARABIC
@ ARABIC
Definition: libwps_internal.h:246
libwps::NumberingType
NumberingType
Definition: libwps_internal.h:246
WPSList::Level::addTo
void addTo(librevenge::RVNGPropertyList &propList, int startVal) const
add the information of this level in the propList
Definition: WPSList.cpp:33
operator<<
std::ostream & operator<<(std::ostream &o, WPSList::Level const &ft)
Definition: WPSList.cpp:95
WPSList::Level::m_type
libwps::NumberingType m_type
the type of the level
Definition: WPSList.h:98
WPSList::addLevelTo
void addLevelTo(int level, librevenge::RVNGPropertyList &propList) const
add level definition to propList
Definition: WPSList.cpp:156
WPSList::m_id
int m_id
Definition: WPSList.h:164
WPSList::getPreviousId
int getPreviousId() const
returns the previous list id
Definition: WPSList.h:127
WPS_DEBUG_MSG
#define WPS_DEBUG_MSG(M)
Definition: libwps_internal.h:134
libwps::LOWERCASE_ROMAN
@ LOWERCASE_ROMAN
Definition: libwps_internal.h:246
WPSList::Level::isSendToInterface
bool isSendToInterface() const
returns true, if addTo has been called
Definition: WPSList.h:68
WPSList::Level::m_sendToInterface
bool m_sendToInterface
true if it is already send to librevenge::RVNGTextInterface
Definition: WPSList.h:105
libwps::UPPERCASE
@ UPPERCASE
Definition: libwps_internal.h:246
WPSList::Level::getStartValue
int getStartValue() const
returns the start value (if set) or 1
Definition: WPSList.h:79
WPSList::setId
void setId(int newId)
set the list id
Definition: WPSList.cpp:134
WPSList::set
void set(int levl, Level const &level)
sets a level
Definition: WPSList.cpp:176
WPSList::m_actualIndices
std::vector< int > m_actualIndices
Definition: WPSList.h:163
WPSList::m_levels
std::vector< Level > m_levels
Definition: WPSList.h:160
WPSList::Level::m_prefix
librevenge::RVNGString m_prefix
string which preceedes the number if we have an ordered level
Definition: WPSList.h:99
WPSList::Level::m_labelWidth
double m_labelWidth
the list width
Definition: WPSList.h:94
WPSList::setLevel
void setLevel(int levl) const
set the list level
Definition: WPSList.cpp:198
WPSList::Level::m_bullet
librevenge::RVNGString m_bullet
the bullet if we have an bullet level
Definition: WPSList.h:101
WPSList::Level
small structure to keep information about a level
Definition: WPSList.h:41
WPSList
a small structure used to store the informations about a list
Definition: WPSList.h:37
WPSList::Level::m_startValue
int m_startValue
the actual value (if this is an ordered level )
Definition: WPSList.h:96
libwps::LOWERCASE
@ LOWERCASE
Definition: libwps_internal.h:246
libwps_internal.h
WPSList::m_actLevel
int m_actLevel
Definition: WPSList.h:162
WPSList::Level::m_labelIndent
double m_labelIndent
the list indent
Definition: WPSList.h:93
libwps::NONE
@ NONE
Definition: libwps_internal.h:246
WPSList::Level::cmp
int cmp(Level const &levl) const
full comparison function
Definition: WPSList.cpp:80
WPSList::WPSList
WPSList()
default constructor
Definition: WPSList.h:109
WPSList::Level::cmpType
int cmpType(Level const &levl) const
type comparison function
Definition: WPSList.cpp:67
WPSList::mustSendLevel
bool mustSendLevel(int level) const
returns true of the level must be send to the document interface
Definition: WPSList.cpp:143
WPSList::Level::m_suffix
librevenge::RVNGString m_suffix
string which follows the number if we have an ordered level
Definition: WPSList.h:100

Generated on Wed Dec 11 2024 08:55:45 for libwps by doxygen 1.8.20