6 #pragma implementation "ParameterStruct.h"
9 #include "ParagraphParameters.h"
10 #include "ParameterStruct.h"
12 // Initialize static member var.
13 ShareContainer<ParameterStruct> ParagraphParameters::container;
15 ParagraphParameters::ParagraphParameters()
20 tmp.align = LYX_ALIGN_BLOCK;
26 void ParagraphParameters::clear()
28 ParameterStruct tmp(*param);
30 tmp.line_bottom = false;
31 tmp.pagebreak_top = false;
32 tmp.pagebreak_bottom = false;
33 tmp.added_space_top = VSpace(VSpace::NONE);
34 tmp.added_space_bottom = VSpace(VSpace::NONE);
35 tmp.spacing.set(Spacing::Default);
36 tmp.align = LYX_ALIGN_LAYOUT;
39 tmp.labelstring.erase();
40 tmp.labelwidthstring.erase();
41 tmp.start_of_appendix = false;
42 #ifndef NO_PEXTRA_REALLY
43 //tmp.pextra_type = PEXTRA_NONE;
45 tmp.pextra_width.erase();
46 tmp.pextra_widthp.erase();
47 //tmp.pextra_alignment = MINIPAGE_ALIGN_TOP;
48 tmp.pextra_alignment = 0;
49 tmp.pextra_hfill = false;
50 tmp.pextra_start_minipage = false;
56 bool ParagraphParameters::sameLayout(ParagraphParameters const & pp) const
58 return param->align == pp.param->align &&
59 param->line_bottom == pp.param->line_bottom &&
60 param->pagebreak_bottom == pp.param->pagebreak_bottom &&
61 param->added_space_bottom == pp.param->added_space_bottom &&
63 param->line_top == pp.param->line_top &&
64 param->pagebreak_top == pp.param->pagebreak_top &&
65 param->added_space_top == pp.param->added_space_top &&
66 param->spacing == pp.param->spacing &&
67 #ifndef NO_PEXTRA_REALLY
68 param->pextra_type == pp.param->pextra_type &&
69 param->pextra_width == pp.param->pextra_width &&
70 param->pextra_widthp == pp.param->pextra_widthp &&
71 param->pextra_alignment == pp.param->pextra_alignment &&
72 param->pextra_hfill == pp.param->pextra_hfill &&
73 param->pextra_start_minipage == pp.param->pextra_start_minipage &&
75 param->noindent == pp.param->noindent &&
76 param->depth == pp.param->depth;
80 void ParagraphParameters::set_from_struct(ParameterStruct const & ps)
82 // get new param from container with tmp as template
83 param = container.get(ps);
87 VSpace const & ParagraphParameters::spaceTop() const
89 return param->added_space_top;
93 void ParagraphParameters::spaceTop(VSpace const & vs)
95 ParameterStruct tmp(*param);
96 tmp.added_space_top = vs;
101 VSpace const & ParagraphParameters::spaceBottom() const
103 return param->added_space_bottom;
107 void ParagraphParameters::spaceBottom(VSpace const & vs)
109 ParameterStruct tmp(*param);
110 tmp.added_space_bottom = vs;
111 set_from_struct(tmp);
115 Spacing const & ParagraphParameters::spacing() const
117 return param->spacing;
121 void ParagraphParameters::spacing(Spacing const & s)
123 ParameterStruct tmp(*param);
125 set_from_struct(tmp);
129 bool ParagraphParameters::noindent() const
131 return param->noindent;
135 void ParagraphParameters::noindent(bool ni)
137 ParameterStruct tmp(*param);
139 set_from_struct(tmp);
143 bool ParagraphParameters::lineTop() const
145 return param->line_top;
149 void ParagraphParameters::lineTop(bool lt)
151 ParameterStruct tmp(*param);
153 set_from_struct(tmp);
157 bool ParagraphParameters::lineBottom() const
159 return param->line_bottom;
163 void ParagraphParameters::lineBottom(bool lb)
165 ParameterStruct tmp(*param);
166 tmp.line_bottom = lb;
167 set_from_struct(tmp);
171 bool ParagraphParameters::pagebreakTop() const
173 return param->pagebreak_top;
177 void ParagraphParameters::pagebreakTop(bool pbt)
179 ParameterStruct tmp(*param);
180 tmp.pagebreak_top = pbt;
181 set_from_struct(tmp);
185 bool ParagraphParameters::pagebreakBottom() const
187 return param->pagebreak_bottom;
191 void ParagraphParameters::pagebreakBottom(bool pbb)
193 ParameterStruct tmp(*param);
194 tmp.pagebreak_bottom = pbb;
195 set_from_struct(tmp);
199 LyXAlignment ParagraphParameters::align() const
205 void ParagraphParameters::align(LyXAlignment la)
207 ParameterStruct tmp(*param);
209 set_from_struct(tmp);
213 void ParagraphParameters::depth(depth_type d)
215 ParameterStruct tmp(*param);
217 set_from_struct(tmp);
221 bool ParagraphParameters::startOfAppendix() const
223 return param->start_of_appendix;
227 void ParagraphParameters::startOfAppendix(bool soa)
229 ParameterStruct tmp(*param);
230 tmp.start_of_appendix = soa;
231 set_from_struct(tmp);
235 bool ParagraphParameters::appendix() const
237 return param->appendix;
241 void ParagraphParameters::appendix(bool a)
243 ParameterStruct tmp(*param);
245 set_from_struct(tmp);
249 string const & ParagraphParameters::labelString() const
251 return param->labelstring;
255 void ParagraphParameters::labelString(string const & ls)
257 ParameterStruct tmp(*param);
258 tmp.labelstring = ls;
259 set_from_struct(tmp);
263 string const & ParagraphParameters::labelWidthString() const
265 return param->labelwidthstring;
269 void ParagraphParameters::labelWidthString(string const & lws)
271 ParameterStruct tmp(*param);
272 tmp.labelwidthstring = lws;
273 set_from_struct(tmp);
276 #ifndef NO_PEXTRA_REALLY
277 int ParagraphParameters::pextraType() const
279 return param->pextra_type;
283 void ParagraphParameters::pextraType(int t)
285 ParameterStruct tmp(*param);
287 set_from_struct(tmp);
291 string const & ParagraphParameters::pextraWidth() const
293 return param->pextra_width;
297 void ParagraphParameters::pextraWidth(string const & w)
299 ParameterStruct tmp(*param);
300 tmp.pextra_width = w;
301 set_from_struct(tmp);
305 string const & ParagraphParameters::pextraWidthp() const
307 return param->pextra_widthp;
311 void ParagraphParameters::pextraWidthp(string const & wp)
313 ParameterStruct tmp(*param);
314 tmp.pextra_widthp = wp;
315 set_from_struct(tmp);
319 int ParagraphParameters::pextraAlignment() const
321 return param->pextra_alignment;
325 void ParagraphParameters::pextraAlignment(int a)
327 ParameterStruct tmp(*param);
328 tmp.pextra_alignment = a;
329 set_from_struct(tmp);
333 bool ParagraphParameters::pextraHfill() const
335 return param->pextra_hfill;
339 void ParagraphParameters::pextraHfill(bool hf)
341 ParameterStruct tmp(*param);
342 tmp.pextra_hfill = hf;
343 set_from_struct(tmp);
347 bool ParagraphParameters::pextraStartMinipage() const
349 return param->pextra_start_minipage;
353 void ParagraphParameters::pextraStartMinipage(bool smp)
355 ParameterStruct tmp(*param);
356 tmp.pextra_start_minipage = smp;
357 set_from_struct(tmp);