MWAWPageSpan.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/* libmwaw
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#ifndef MWAWPAGESPAN_H
35#define MWAWPAGESPAN_H
36
37#include <vector>
38
39#include "libmwaw_internal.hxx"
40
41#include "MWAWFont.hxx"
42
45{
46public:
48 enum Type { HEADER, FOOTER, UNDEF };
53
55 explicit MWAWHeaderFooter(Type const type=UNDEF, Occurrence const occurrence=NEVER);
62 bool isDefined() const
63 {
64 return m_type != UNDEF;
65 }
67 void send(MWAWListener *listener) const;
69 bool operator==(MWAWHeaderFooter const &headerFooter) const;
71 bool operator!=(MWAWHeaderFooter const &headerFooter) const
72 {
73 return !operator==(headerFooter);
74 }
76 void insertPageNumberParagraph(MWAWListener *listener) const;
77
78public:
84 double m_height;
93};
94
95typedef std::shared_ptr<MWAWHeaderFooter> MWAWHeaderFooterPtr;
96
99{
100public:
106 };
107public:
109 MWAWPageSpan();
110 MWAWPageSpan(MWAWPageSpan const &)=default;
115
117 double getFormLength() const
118 {
119 return m_formLength;
120 }
122 double getFormWidth() const
123 {
124 return m_formWidth;
125 }
128 {
129 return m_formOrientation;
130 }
132 double getMarginLeft() const
133 {
134 return m_margins[libmwaw::Left];
135 }
137 double getMarginRight() const
138 {
140 }
142 double getMarginTop() const
143 {
144 return m_margins[libmwaw::Top];
145 }
147 double getMarginBottom() const
148 {
150 }
152 double getPageLength() const
153 {
155 }
157 double getPageWidth() const
158 {
160 }
163 {
164 return m_backgroundColor;
165 }
166 int getPageNumber() const
167 {
168 return m_pageNumber;
169 }
170 int getPageSpan() const
171 {
172 return m_pageSpan;
173 }
174
176 void setHeaderFooter(MWAWHeaderFooter const &headerFooter);
178 void setFormLength(const double formLength)
179 {
180 m_formLength = formLength;
181 }
183 void setFormWidth(const double formWidth)
184 {
185 m_formWidth = formWidth;
186 }
188 void setFormOrientation(const FormOrientation formOrientation)
189 {
190 m_formOrientation = formOrientation;
191 }
193 void setMarginLeft(const double marginLeft)
194 {
195 m_margins[libmwaw::Left] = (marginLeft >= 0) ? marginLeft : 0.01;
196 }
198 void setMarginRight(const double marginRight)
199 {
200 m_margins[libmwaw::Right] = (marginRight >= 0) ? marginRight : 0.01;
201 }
203 void setMarginTop(const double marginTop)
204 {
205 m_margins[libmwaw::Top] =(marginTop >= 0) ? marginTop : 0.01;
206 }
208 void setMarginBottom(const double marginBottom)
209 {
210 m_margins[libmwaw::Bottom] = (marginBottom >= 0) ? marginBottom : 0.01;
211 }
214 {
215 if (margin < 0.0) margin = 0.01;
216 if (wh&libmwaw::LeftBit)
217 m_margins[libmwaw::Left]=margin;
218 if (wh&libmwaw::RightBit)
220 if (wh&libmwaw::TopBit)
221 m_margins[libmwaw::Top]=margin;
222 if (wh&libmwaw::BottomBit)
224 }
226 void checkMargins();
228 void setPageName(librevenge::RVNGString const &name)
229 {
230 m_name=name;
231 }
233 bool hasPageName() const
234 {
235 return !m_name.empty();
236 }
238 librevenge::RVNGString const &getPageName() const
239 {
240 return m_name;
241 }
243 void setMasterPageName(librevenge::RVNGString const &name)
244 {
245 m_masterName=name;
246 }
248 bool hasMasterPageName() const
249 {
250 return !m_masterName.empty();
251 }
253 librevenge::RVNGString const &getMasterPageName() const
254 {
255 return m_masterName;
256 }
259 {
260 m_backgroundColor=color;
261 }
263 void setPageNumber(const int pageNumber)
264 {
265 m_pageNumber = pageNumber;
266 }
268 void setPageSpan(const int pageSpan)
269 {
270 m_pageSpan = pageSpan;
271 }
273 bool operator==(std::shared_ptr<MWAWPageSpan> const &pageSpan) const;
275 bool operator!=(std::shared_ptr<MWAWPageSpan> const &pageSpan) const
276 {
277 return !operator==(pageSpan);
278 }
279
280 // interface with MWAWListener
282 void getPageProperty(librevenge::RVNGPropertyList &pList, bool isPresentation=false) const;
284 void sendHeaderFooters(MWAWListener *listener) const;
286 void sendHeaderFooters(MWAWListener *listener, MWAWHeaderFooter::Occurrence occurrence) const;
287
288protected:
295private:
298 double m_margins[4];
300 librevenge::RVNGString m_name;
302 librevenge::RVNGString m_masterName;
308 std::vector<MWAWHeaderFooter> m_headerFooterList;
313};
314
315#endif
316// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
std::shared_ptr< MWAWHeaderFooter > MWAWHeaderFooterPtr
Definition: MWAWPageSpan.hxx:95
Class to store font.
Definition: MWAWFont.hxx:44
a class which stores the header/footer data
Definition: MWAWPageSpan.hxx:45
double m_height
the height ( if known )
Definition: MWAWPageSpan.hxx:84
MWAWFont m_pageNumberFont
the page numbering font
Definition: MWAWPageSpan.hxx:90
bool operator==(MWAWHeaderFooter const &headerFooter) const
operator==
Definition: MWAWPageSpan.cxx:112
void insertPageNumberParagraph(MWAWListener *listener) const
insert a page number
Definition: MWAWPageSpan.cxx:175
Type
the header/footer type
Definition: MWAWPageSpan.hxx:48
@ UNDEF
Definition: MWAWPageSpan.hxx:48
@ FOOTER
Definition: MWAWPageSpan.hxx:48
@ HEADER
Definition: MWAWPageSpan.hxx:48
MWAWHeaderFooter & operator=(MWAWHeaderFooter &&)=default
libmwaw::NumberingType m_pageNumberType
the page numbering type
Definition: MWAWPageSpan.hxx:88
bool isDefined() const
returns true if the header footer is defined
Definition: MWAWPageSpan.hxx:62
MWAWHeaderFooter(MWAWHeaderFooter const &)=default
Occurrence m_occurrence
the actual occurrence
Definition: MWAWPageSpan.hxx:82
MWAWSubDocumentPtr m_subDocument
the document data
Definition: MWAWPageSpan.hxx:92
Occurrence
the header/footer occurrence in the file
Definition: MWAWPageSpan.hxx:50
@ ALL
Definition: MWAWPageSpan.hxx:50
@ ODD
Definition: MWAWPageSpan.hxx:50
@ EVEN
Definition: MWAWPageSpan.hxx:50
@ NEVER
Definition: MWAWPageSpan.hxx:50
MWAWHeaderFooter & operator=(MWAWHeaderFooter const &)=default
PageNumberPosition
a fixed page number position
Definition: MWAWPageSpan.hxx:52
@ BottomRight
Definition: MWAWPageSpan.hxx:52
@ TopRight
Definition: MWAWPageSpan.hxx:52
@ TopLeft
Definition: MWAWPageSpan.hxx:52
@ None
Definition: MWAWPageSpan.hxx:52
@ BottomLeft
Definition: MWAWPageSpan.hxx:52
@ BottomCenter
Definition: MWAWPageSpan.hxx:52
@ TopCenter
Definition: MWAWPageSpan.hxx:52
~MWAWHeaderFooter()
destructor
Definition: MWAWPageSpan.cxx:108
bool operator!=(MWAWHeaderFooter const &headerFooter) const
operator!=
Definition: MWAWPageSpan.hxx:71
void send(MWAWListener *listener) const
send to header to the listener
Definition: MWAWPageSpan.cxx:135
PageNumberPosition m_pageNumberPosition
the page number position ( or none)
Definition: MWAWPageSpan.hxx:86
Type m_type
the type header/footer
Definition: MWAWPageSpan.hxx:80
This class contains a virtual interface to all listener.
Definition: MWAWListener.hxx:50
A class which defines the page properties.
Definition: MWAWPageSpan.hxx:99
MWAWColor backgroundColor() const
returns the background color
Definition: MWAWPageSpan.hxx:162
void setPageSpan(const int pageSpan)
set the page span ( default 1)
Definition: MWAWPageSpan.hxx:268
void setMarginTop(const double marginTop)
set the page top margin
Definition: MWAWPageSpan.hxx:203
void setMarginBottom(const double marginBottom)
set the page bottom margin
Definition: MWAWPageSpan.hxx:208
bool containsHeaderFooter(MWAWHeaderFooter::Type type, MWAWHeaderFooter::Occurrence occurrence)
return true if we have a header footer in this position
Definition: MWAWPageSpan.cxx:387
bool hasMasterPageName() const
return true if the masterPage has a name
Definition: MWAWPageSpan.hxx:248
double getPageWidth() const
returns the page width (form width without margin )
Definition: MWAWPageSpan.hxx:157
void getPageProperty(librevenge::RVNGPropertyList &pList, bool isPresentation=false) const
add the page properties in pList
Definition: MWAWPageSpan.cxx:310
MWAWPageSpan & operator=(MWAWPageSpan const &)=default
bool operator==(std::shared_ptr< MWAWPageSpan > const &pageSpan) const
operator==
Definition: MWAWPageSpan.cxx:339
FormOrientation
the page orientation
Definition: MWAWPageSpan.hxx:102
@ LANDSCAPE
Definition: MWAWPageSpan.hxx:102
@ PORTRAIT
Definition: MWAWPageSpan.hxx:102
bool hasPageName() const
return true if the page has a name
Definition: MWAWPageSpan.hxx:233
MWAWPageSpan(MWAWPageSpan const &)=default
double m_margins[4]
the margins: libmwaw::Left, ...
Definition: MWAWPageSpan.hxx:298
PageNumberPosition
a fixed page number position
Definition: MWAWPageSpan.hxx:104
@ TopCenter
Definition: MWAWPageSpan.hxx:104
@ BottomRight
Definition: MWAWPageSpan.hxx:105
@ BottomLeft
Definition: MWAWPageSpan.hxx:105
@ BottomCenter
Definition: MWAWPageSpan.hxx:105
@ TopRight
Definition: MWAWPageSpan.hxx:104
@ None
Definition: MWAWPageSpan.hxx:104
@ TopLeft
Definition: MWAWPageSpan.hxx:104
int getPageNumber() const
Definition: MWAWPageSpan.hxx:166
int m_pageNumber
the page number ( or -1)
Definition: MWAWPageSpan.hxx:310
double getPageLength() const
returns the page length (form width without margin )
Definition: MWAWPageSpan.hxx:152
librevenge::RVNGString const & getMasterPageName() const
return the page master name
Definition: MWAWPageSpan.hxx:253
double getFormWidth() const
returns the page width
Definition: MWAWPageSpan.hxx:122
void setFormWidth(const double formWidth)
set the total page width
Definition: MWAWPageSpan.hxx:183
void setMarginRight(const double marginRight)
set the page right margin
Definition: MWAWPageSpan.hxx:198
double getMarginTop() const
returns the top margin
Definition: MWAWPageSpan.hxx:142
void setBackgroundColor(MWAWColor color=MWAWColor::white())
set the background color
Definition: MWAWPageSpan.hxx:258
void setMarginLeft(const double marginLeft)
set the page left margin
Definition: MWAWPageSpan.hxx:193
MWAWPageSpan()
constructor
Definition: MWAWPageSpan.cxx:209
int m_pageSpan
the number of page
Definition: MWAWPageSpan.hxx:312
double m_formWidth
the form width
Definition: MWAWPageSpan.hxx:296
double m_formLength
the form length
Definition: MWAWPageSpan.hxx:296
void setMasterPageName(librevenge::RVNGString const &name)
set the page master name
Definition: MWAWPageSpan.hxx:243
void setFormLength(const double formLength)
set the total page length
Definition: MWAWPageSpan.hxx:178
librevenge::RVNGString m_masterName
the page master name
Definition: MWAWPageSpan.hxx:302
double getMarginLeft() const
returns the left margin
Definition: MWAWPageSpan.hxx:132
void removeHeaderFooter(MWAWHeaderFooter::Type type, MWAWHeaderFooter::Occurrence occurrence)
remove a header footer
Definition: MWAWPageSpan.cxx:380
MWAWColor m_backgroundColor
the page background color: default white
Definition: MWAWPageSpan.hxx:306
void sendHeaderFooters(MWAWListener *listener) const
send the page's headers/footers if some exists
Definition: MWAWPageSpan.cxx:283
double getFormLength() const
returns the page length
Definition: MWAWPageSpan.hxx:117
librevenge::RVNGString m_name
the page name
Definition: MWAWPageSpan.hxx:300
int getHeaderFooterPosition(MWAWHeaderFooter::Type type, MWAWHeaderFooter::Occurrence occurrence)
return the header footer positions in m_headerFooterList
Definition: MWAWPageSpan.cxx:394
void checkMargins()
check if the page margins are consistent with the page dimension, if not update them
Definition: MWAWPageSpan.cxx:271
FormOrientation m_formOrientation
the form orientation
Definition: MWAWPageSpan.hxx:304
void setMargins(double margin, int wh=libmwaw::LeftBit|libmwaw::RightBit|libmwaw::TopBit|libmwaw::BottomBit)
set all the margins
Definition: MWAWPageSpan.hxx:213
FormOrientation getFormOrientation() const
returns the page orientation
Definition: MWAWPageSpan.hxx:127
std::vector< MWAWHeaderFooter > m_headerFooterList
the list of header
Definition: MWAWPageSpan.hxx:308
bool operator!=(std::shared_ptr< MWAWPageSpan > const &pageSpan) const
operator!=
Definition: MWAWPageSpan.hxx:275
~MWAWPageSpan()
destructor
Definition: MWAWPageSpan.cxx:223
MWAWPageSpan & operator=(MWAWPageSpan &&)=default
int getPageSpan() const
Definition: MWAWPageSpan.hxx:170
double getMarginBottom() const
returns the bottom margin
Definition: MWAWPageSpan.hxx:147
void setPageName(librevenge::RVNGString const &name)
set the page name
Definition: MWAWPageSpan.hxx:228
void setHeaderFooter(MWAWHeaderFooter const &headerFooter)
add a header/footer on some page
Definition: MWAWPageSpan.cxx:227
librevenge::RVNGString const & getPageName() const
return the page name
Definition: MWAWPageSpan.hxx:238
void setFormOrientation(const FormOrientation formOrientation)
set the form orientation
Definition: MWAWPageSpan.hxx:188
double getMarginRight() const
returns the right margin
Definition: MWAWPageSpan.hxx:137
void setPageNumber(const int pageNumber)
set the page number
Definition: MWAWPageSpan.hxx:263
std::shared_ptr< MWAWSubDocument > MWAWSubDocumentPtr
a smart pointer of MWAWSubDocument
Definition: libmwaw_internal.hxx:565
@ LeftBit
Definition: libmwaw_internal.hxx:178
@ BottomBit
Definition: libmwaw_internal.hxx:178
@ TopBit
Definition: libmwaw_internal.hxx:178
@ RightBit
Definition: libmwaw_internal.hxx:178
NumberingType
Definition: libmwaw_internal.hxx:180
@ Top
Definition: libmwaw_internal.hxx:176
@ Bottom
Definition: libmwaw_internal.hxx:176
@ Left
Definition: libmwaw_internal.hxx:176
@ Right
Definition: libmwaw_internal.hxx:176
the class to store a color
Definition: libmwaw_internal.hxx:192
static MWAWColor white()
return the white color
Definition: libmwaw_internal.hxx:250

Generated on Wed May 3 2023 07:18:29 for libmwaw by doxygen 1.9.6