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 MWAWHeaderFooter(Type const type=UNDEF, Occurrence const occurrence=NEVER);
59 bool isDefined() const
60 {
61 return m_type != UNDEF;
62 }
64 void send(MWAWListener *listener) const;
66 bool operator==(MWAWHeaderFooter const &headerFooter) const;
68 bool operator!=(MWAWHeaderFooter const &headerFooter) const
69 {
70 return !operator==(headerFooter);
71 }
73 void insertPageNumberParagraph(MWAWListener *listener) const;
74
75public:
81 double m_height;
90};
91
92typedef shared_ptr<MWAWHeaderFooter> MWAWHeaderFooterPtr;
93
96{
97public:
103 };
104public:
106 MWAWPageSpan();
109
111 double getFormLength() const
112 {
113 return m_formLength;
114 }
116 double getFormWidth() const
117 {
118 return m_formWidth;
119 }
122 {
123 return m_formOrientation;
124 }
126 double getMarginLeft() const
127 {
128 return m_margins[libmwaw::Left];
129 }
131 double getMarginRight() const
132 {
134 }
136 double getMarginTop() const
137 {
138 return m_margins[libmwaw::Top];
139 }
141 double getMarginBottom() const
142 {
144 }
146 double getPageLength() const
147 {
149 }
151 double getPageWidth() const
152 {
154 }
157 {
158 return m_backgroundColor;
159 }
160 int getPageNumber() const
161 {
162 return m_pageNumber;
163 }
164 int getPageSpan() const
165 {
166 return m_pageSpan;
167 }
168
170 void setHeaderFooter(MWAWHeaderFooter const &headerFooter);
172 void setFormLength(const double formLength)
173 {
174 m_formLength = formLength;
175 }
177 void setFormWidth(const double formWidth)
178 {
179 m_formWidth = formWidth;
180 }
182 void setFormOrientation(const FormOrientation formOrientation)
183 {
184 m_formOrientation = formOrientation;
185 }
187 void setMarginLeft(const double marginLeft)
188 {
189 m_margins[libmwaw::Left] = (marginLeft >= 0) ? marginLeft : 0.01;
190 }
192 void setMarginRight(const double marginRight)
193 {
194 m_margins[libmwaw::Right] = (marginRight >= 0) ? marginRight : 0.01;
195 }
197 void setMarginTop(const double marginTop)
198 {
199 m_margins[libmwaw::Top] =(marginTop >= 0) ? marginTop : 0.01;
200 }
202 void setMarginBottom(const double marginBottom)
203 {
204 m_margins[libmwaw::Bottom] = (marginBottom >= 0) ? marginBottom : 0.01;
205 }
208 {
209 if (margin < 0.0) margin = 0.01;
210 if (wh&libmwaw::LeftBit)
211 m_margins[libmwaw::Left]=margin;
212 if (wh&libmwaw::RightBit)
214 if (wh&libmwaw::TopBit)
215 m_margins[libmwaw::Top]=margin;
216 if (wh&libmwaw::BottomBit)
218 }
220 void checkMargins();
222 void setPageName(librevenge::RVNGString const &name)
223 {
224 m_name=name;
225 }
227 bool hasPageName() const
228 {
229 return !m_name.empty();
230 }
232 librevenge::RVNGString const &getPageName() const
233 {
234 return m_name;
235 }
237 void setMasterPageName(librevenge::RVNGString const &name)
238 {
239 m_masterName=name;
240 }
242 bool hasMasterPageName() const
243 {
244 return !m_masterName.empty();
245 }
247 librevenge::RVNGString const &getMasterPageName() const
248 {
249 return m_masterName;
250 }
253 {
254 m_backgroundColor=color;
255 }
257 void setPageNumber(const int pageNumber)
258 {
259 m_pageNumber = pageNumber;
260 }
262 void setPageSpan(const int pageSpan)
263 {
264 m_pageSpan = pageSpan;
265 }
267 bool operator==(shared_ptr<MWAWPageSpan> const &pageSpan) const;
269 bool operator!=(shared_ptr<MWAWPageSpan> const &pageSpan) const
270 {
271 return !operator==(pageSpan);
272 }
273
274 // interface with MWAWListener
276 void getPageProperty(librevenge::RVNGPropertyList &pList, bool isPresentation=false) const;
278 void sendHeaderFooters(MWAWListener *listener) const;
280 void sendHeaderFooters(MWAWListener *listener, MWAWHeaderFooter::Occurrence occurrence) const;
281
282protected:
289private:
292 double m_margins[4];
294 librevenge::RVNGString m_name;
296 librevenge::RVNGString m_masterName;
302 std::vector<MWAWHeaderFooter> m_headerFooterList;
307};
308
309#endif
310// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
shared_ptr< MWAWHeaderFooter > MWAWHeaderFooterPtr
Definition: MWAWPageSpan.hxx:92
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:81
MWAWFont m_pageNumberFont
the page numbering font
Definition: MWAWPageSpan.hxx:87
bool operator==(MWAWHeaderFooter const &headerFooter) const
operator==
Definition: MWAWPageSpan.cxx:111
void insertPageNumberParagraph(MWAWListener *listener) const
insert a page number
Definition: MWAWPageSpan.cxx:174
Type
the header/footer type
Definition: MWAWPageSpan.hxx:48
@ UNDEF
Definition: MWAWPageSpan.hxx:48
@ FOOTER
Definition: MWAWPageSpan.hxx:48
@ HEADER
Definition: MWAWPageSpan.hxx:48
libmwaw::NumberingType m_pageNumberType
the page numbering type
Definition: MWAWPageSpan.hxx:85
bool isDefined() const
returns true if the header footer is defined
Definition: MWAWPageSpan.hxx:59
Occurrence m_occurrence
the actual occurrence
Definition: MWAWPageSpan.hxx:79
MWAWSubDocumentPtr m_subDocument
the document data
Definition: MWAWPageSpan.hxx:89
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
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:107
bool operator!=(MWAWHeaderFooter const &headerFooter) const
operator!=
Definition: MWAWPageSpan.hxx:68
void send(MWAWListener *listener) const
send to header to the listener
Definition: MWAWPageSpan.cxx:134
PageNumberPosition m_pageNumberPosition
the page number position ( or none)
Definition: MWAWPageSpan.hxx:83
MWAWHeaderFooter(Type const type=UNDEF, Occurrence const occurrence=NEVER)
constructor
Definition: MWAWPageSpan.cxx:100
Type m_type
the type header/footer
Definition: MWAWPageSpan.hxx:77
This class contains a virtual interface to all listener.
Definition: MWAWListener.hxx:50
A class which defines the page properties.
Definition: MWAWPageSpan.hxx:96
MWAWColor backgroundColor() const
returns the background color
Definition: MWAWPageSpan.hxx:156
void setPageSpan(const int pageSpan)
set the page span ( default 1)
Definition: MWAWPageSpan.hxx:262
void setMarginTop(const double marginTop)
set the page top margin
Definition: MWAWPageSpan.hxx:197
void setMarginBottom(const double marginBottom)
set the page bottom margin
Definition: MWAWPageSpan.hxx:202
bool containsHeaderFooter(MWAWHeaderFooter::Type type, MWAWHeaderFooter::Occurrence occurrence)
return true if we have a header footer in this position
Definition: MWAWPageSpan.cxx:384
bool hasMasterPageName() const
return true if the masterPage has a name
Definition: MWAWPageSpan.hxx:242
double getPageWidth() const
returns the page width (form width without margin )
Definition: MWAWPageSpan.hxx:151
void getPageProperty(librevenge::RVNGPropertyList &pList, bool isPresentation=false) const
add the page properties in pList
Definition: MWAWPageSpan.cxx:307
FormOrientation
the page orientation
Definition: MWAWPageSpan.hxx:99
@ LANDSCAPE
Definition: MWAWPageSpan.hxx:99
@ PORTRAIT
Definition: MWAWPageSpan.hxx:99
bool operator!=(shared_ptr< MWAWPageSpan > const &pageSpan) const
operator!=
Definition: MWAWPageSpan.hxx:269
bool hasPageName() const
return true if the page has a name
Definition: MWAWPageSpan.hxx:227
double m_margins[4]
the margins: libmwaw::Left, ...
Definition: MWAWPageSpan.hxx:292
PageNumberPosition
a fixed page number position
Definition: MWAWPageSpan.hxx:101
@ TopCenter
Definition: MWAWPageSpan.hxx:101
@ BottomRight
Definition: MWAWPageSpan.hxx:102
@ BottomLeft
Definition: MWAWPageSpan.hxx:102
@ BottomCenter
Definition: MWAWPageSpan.hxx:102
@ TopRight
Definition: MWAWPageSpan.hxx:101
@ None
Definition: MWAWPageSpan.hxx:101
@ TopLeft
Definition: MWAWPageSpan.hxx:101
int getPageNumber() const
Definition: MWAWPageSpan.hxx:160
int m_pageNumber
the page number ( or -1)
Definition: MWAWPageSpan.hxx:304
double getPageLength() const
returns the page length (form width without margin )
Definition: MWAWPageSpan.hxx:146
librevenge::RVNGString const & getMasterPageName() const
return the page master name
Definition: MWAWPageSpan.hxx:247
double getFormWidth() const
returns the page width
Definition: MWAWPageSpan.hxx:116
void setFormWidth(const double formWidth)
set the total page width
Definition: MWAWPageSpan.hxx:177
void setMarginRight(const double marginRight)
set the page right margin
Definition: MWAWPageSpan.hxx:192
double getMarginTop() const
returns the top margin
Definition: MWAWPageSpan.hxx:136
void setBackgroundColor(MWAWColor color=MWAWColor::white())
set the background color
Definition: MWAWPageSpan.hxx:252
void setMarginLeft(const double marginLeft)
set the page left margin
Definition: MWAWPageSpan.hxx:187
MWAWPageSpan()
constructor
Definition: MWAWPageSpan.cxx:208
int m_pageSpan
the number of page
Definition: MWAWPageSpan.hxx:306
double m_formWidth
the form width
Definition: MWAWPageSpan.hxx:290
double m_formLength
the form length
Definition: MWAWPageSpan.hxx:290
void setMasterPageName(librevenge::RVNGString const &name)
set the page master name
Definition: MWAWPageSpan.hxx:237
void setFormLength(const double formLength)
set the total page length
Definition: MWAWPageSpan.hxx:172
librevenge::RVNGString m_masterName
the page master name
Definition: MWAWPageSpan.hxx:296
double getMarginLeft() const
returns the left margin
Definition: MWAWPageSpan.hxx:126
void removeHeaderFooter(MWAWHeaderFooter::Type type, MWAWHeaderFooter::Occurrence occurrence)
remove a header footer
Definition: MWAWPageSpan.cxx:377
MWAWColor m_backgroundColor
the page background color: default white
Definition: MWAWPageSpan.hxx:300
void sendHeaderFooters(MWAWListener *listener) const
send the page's headers/footers if some exists
Definition: MWAWPageSpan.cxx:278
double getFormLength() const
returns the page length
Definition: MWAWPageSpan.hxx:111
bool operator==(shared_ptr< MWAWPageSpan > const &pageSpan) const
operator==
Definition: MWAWPageSpan.cxx:336
librevenge::RVNGString m_name
the page name
Definition: MWAWPageSpan.hxx:294
int getHeaderFooterPosition(MWAWHeaderFooter::Type type, MWAWHeaderFooter::Occurrence occurrence)
return the header footer positions in m_headerFooterList
Definition: MWAWPageSpan.cxx:391
void checkMargins()
check if the page margins are consistent with the page dimension, if not update them
Definition: MWAWPageSpan.cxx:266
FormOrientation m_formOrientation
the form orientation
Definition: MWAWPageSpan.hxx:298
void setMargins(double margin, int wh=libmwaw::LeftBit|libmwaw::RightBit|libmwaw::TopBit|libmwaw::BottomBit)
set all the margins
Definition: MWAWPageSpan.hxx:207
FormOrientation getFormOrientation() const
returns the page orientation
Definition: MWAWPageSpan.hxx:121
std::vector< MWAWHeaderFooter > m_headerFooterList
the list of header
Definition: MWAWPageSpan.hxx:302
~MWAWPageSpan()
destructor
Definition: MWAWPageSpan.cxx:219
int getPageSpan() const
Definition: MWAWPageSpan.hxx:164
double getMarginBottom() const
returns the bottom margin
Definition: MWAWPageSpan.hxx:141
void setPageName(librevenge::RVNGString const &name)
set the page name
Definition: MWAWPageSpan.hxx:222
void setHeaderFooter(MWAWHeaderFooter const &headerFooter)
add a header/footer on some page
Definition: MWAWPageSpan.cxx:223
librevenge::RVNGString const & getPageName() const
return the page name
Definition: MWAWPageSpan.hxx:232
void setFormOrientation(const FormOrientation formOrientation)
set the form orientation
Definition: MWAWPageSpan.hxx:182
double getMarginRight() const
returns the right margin
Definition: MWAWPageSpan.hxx:131
void setPageNumber(const int pageNumber)
set the page number
Definition: MWAWPageSpan.hxx:257
shared_ptr< MWAWSubDocument > MWAWSubDocumentPtr
a smart pointer of MWAWSubDocument
Definition: libmwaw_internal.hxx:517
@ LeftBit
Definition: libmwaw_internal.hxx:168
@ BottomBit
Definition: libmwaw_internal.hxx:168
@ TopBit
Definition: libmwaw_internal.hxx:168
@ RightBit
Definition: libmwaw_internal.hxx:168
NumberingType
Definition: libmwaw_internal.hxx:170
@ Top
Definition: libmwaw_internal.hxx:166
@ Bottom
Definition: libmwaw_internal.hxx:166
@ Left
Definition: libmwaw_internal.hxx:166
@ Right
Definition: libmwaw_internal.hxx:166
the class to store a color
Definition: libmwaw_internal.hxx:182
static MWAWColor white()
return the white color
Definition: libmwaw_internal.hxx:231

Generated on Wed Jan 19 2022 22:23:16 for libmwaw by doxygen 1.9.3