4 #include "ParagraphParameters.h"
5 #include "ParameterStruct.h"
7 // Initialize static member var.
8 ShareContainer<ParameterStruct> ParagraphParameters::container;
10 ParagraphParameters::ParagraphParameters()
14 tmp.align = LYX_ALIGN_BLOCK;
20 void ParagraphParameters::clear()
22 ParameterStruct tmp(*param);
24 tmp.line_bottom = false;
25 tmp.pagebreak_top = false;
26 tmp.pagebreak_bottom = false;
27 tmp.added_space_top = VSpace(VSpace::NONE);
28 tmp.added_space_bottom = VSpace(VSpace::NONE);
29 tmp.spacing.set(Spacing::Default);
30 tmp.align = LYX_ALIGN_LAYOUT;
33 tmp.labelstring.erase();
34 tmp.labelwidthstring.erase();
35 tmp.start_of_appendix = false;
36 #ifndef NO_PEXTRA_REALLY
37 //tmp.pextra_type = PEXTRA_NONE;
39 tmp.pextra_width.erase();
40 tmp.pextra_widthp.erase();
41 //tmp.pextra_alignment = MINIPAGE_ALIGN_TOP;
42 tmp.pextra_alignment = 0;
43 tmp.pextra_hfill = false;
44 tmp.pextra_start_minipage = false;
50 bool ParagraphParameters::sameLayout(ParagraphParameters const & pp) const
52 return param->align == pp.param->align &&
53 param->line_bottom == pp.param->line_bottom &&
54 param->pagebreak_bottom == pp.param->pagebreak_bottom &&
55 param->added_space_bottom == pp.param->added_space_bottom &&
57 param->line_top == pp.param->line_top &&
58 param->pagebreak_top == pp.param->pagebreak_top &&
59 param->added_space_top == pp.param->added_space_top &&
60 #ifndef NO_PEXTRA_REALLY
61 param->spacing == pp.param->spacing &&
62 param->pextra_type == pp.param->pextra_type &&
63 param->pextra_width == pp.param->pextra_width &&
64 param->pextra_widthp == pp.param->pextra_widthp &&
65 param->pextra_alignment == pp.param->pextra_alignment &&
66 param->pextra_hfill == pp.param->pextra_hfill &&
67 param->pextra_start_minipage == pp.param->pextra_start_minipage &&
69 param->noindent == pp.param->noindent &&
70 param->depth == pp.param->depth;
74 void ParagraphParameters::makeSame(ParagraphParameters const & pp)
76 ParameterStruct tmp(*param);
77 tmp.align = pp.param->align;
78 // tmp.labelwidthstring = pp.params.labelwidthstring;
79 tmp.line_bottom = pp.param->line_bottom;
80 tmp.pagebreak_bottom = pp.param->pagebreak_bottom;
81 tmp.added_space_bottom = pp.param->added_space_bottom;
82 tmp.line_top = pp.param->line_top;
83 tmp.pagebreak_top = pp.param->pagebreak_top;
84 tmp.added_space_top = pp.param->added_space_top;
85 tmp.spacing = pp.param->spacing;
86 #ifndef NO_PEXTRA_REALLY
87 tmp.pextra_type = pp.param->pextra_type;
88 tmp.pextra_width = pp.param->pextra_width;
89 tmp.pextra_widthp = pp.param->pextra_widthp;
90 tmp.pextra_alignment = pp.param->pextra_alignment;
91 tmp.pextra_hfill = pp.param->pextra_hfill;
92 tmp.pextra_start_minipage = pp.param->pextra_start_minipage;
94 tmp.noindent = pp.param->noindent;
95 tmp.depth = pp.param->depth;
101 void ParagraphParameters::set_from_struct(ParameterStruct const & ps)
103 // get new param from container with tmp as template
104 param = container.get(ps);
108 VSpace const & ParagraphParameters::spaceTop() const
110 return param->added_space_top;
114 void ParagraphParameters::spaceTop(VSpace const & vs)
116 ParameterStruct tmp(*param);
117 tmp.added_space_top = vs;
118 set_from_struct(tmp);
122 VSpace const & ParagraphParameters::spaceBottom() const
124 return param->added_space_bottom;
128 void ParagraphParameters::spaceBottom(VSpace const & vs)
130 ParameterStruct tmp(*param);
131 tmp.added_space_bottom = vs;
132 set_from_struct(tmp);
136 Spacing const & ParagraphParameters::spacing() const
138 return param->spacing;
142 void ParagraphParameters::spacing(Spacing const & s)
144 ParameterStruct tmp(*param);
146 set_from_struct(tmp);
150 bool ParagraphParameters::noindent() const
152 return param->noindent;
156 void ParagraphParameters::noindent(bool ni)
158 ParameterStruct tmp(*param);
160 set_from_struct(tmp);
164 bool ParagraphParameters::lineTop() const
166 return param->line_top;
170 void ParagraphParameters::lineTop(bool lt)
172 ParameterStruct tmp(*param);
174 set_from_struct(tmp);
178 bool ParagraphParameters::lineBottom() const
180 return param->line_bottom;
184 void ParagraphParameters::lineBottom(bool lb)
186 ParameterStruct tmp(*param);
187 tmp.line_bottom = lb;
188 set_from_struct(tmp);
192 bool ParagraphParameters::pagebreakTop() const
194 return param->pagebreak_top;
198 void ParagraphParameters::pagebreakTop(bool pbt)
200 ParameterStruct tmp(*param);
201 tmp.pagebreak_top = pbt;
202 set_from_struct(tmp);
206 bool ParagraphParameters::pagebreakBottom() const
208 return param->pagebreak_bottom;
212 void ParagraphParameters::pagebreakBottom(bool pbb)
214 ParameterStruct tmp(*param);
215 tmp.pagebreak_bottom = pbb;
216 set_from_struct(tmp);
220 LyXAlignment ParagraphParameters::align() const
226 void ParagraphParameters::align(LyXAlignment la)
228 ParameterStruct tmp(*param);
230 set_from_struct(tmp);
234 char ParagraphParameters::depth() const
240 void ParagraphParameters::depth(char d)
242 ParameterStruct tmp(*param);
244 set_from_struct(tmp);
248 bool ParagraphParameters::startOfAppendix() const
250 return param->start_of_appendix;
254 void ParagraphParameters::startOfAppendix(bool soa)
256 ParameterStruct tmp(*param);
257 tmp.start_of_appendix = soa;
258 set_from_struct(tmp);
262 bool ParagraphParameters::appendix() const
264 return param->appendix;
268 void ParagraphParameters::appendix(bool a)
270 ParameterStruct tmp(*param);
272 set_from_struct(tmp);
276 string const & ParagraphParameters::labelString() const
278 return param->labelstring;
282 void ParagraphParameters::labelString(string const & ls)
284 ParameterStruct tmp(*param);
285 tmp.labelstring = ls;
286 set_from_struct(tmp);
290 string const & ParagraphParameters::labelWidthString() const
292 return param->labelwidthstring;
296 void ParagraphParameters::labelWidthString(string const & lws)
298 ParameterStruct tmp(*param);
299 tmp.labelwidthstring = lws;
300 set_from_struct(tmp);
303 #ifndef NO_PEXTRA_REALLY
304 int ParagraphParameters::pextraType() const
306 return param->pextra_type;
310 void ParagraphParameters::pextraType(int t)
312 ParameterStruct tmp(*param);
314 set_from_struct(tmp);
318 string const & ParagraphParameters::pextraWidth() const
320 return param->pextra_width;
324 void ParagraphParameters::pextraWidth(string const & w)
326 ParameterStruct tmp(*param);
327 tmp.pextra_width = w;
328 set_from_struct(tmp);
332 string const & ParagraphParameters::pextraWidthp() const
334 return param->pextra_widthp;
338 void ParagraphParameters::pextraWidthp(string const & wp)
340 ParameterStruct tmp(*param);
341 tmp.pextra_widthp = wp;
342 set_from_struct(tmp);
346 int ParagraphParameters::pextraAlignment() const
348 return param->pextra_alignment;
352 void ParagraphParameters::pextraAlignment(int a)
354 ParameterStruct tmp(*param);
355 tmp.pextra_alignment = a;
356 set_from_struct(tmp);
360 bool ParagraphParameters::pextraHfill() const
362 return param->pextra_hfill;
366 void ParagraphParameters::pextraHfill(bool hf)
368 ParameterStruct tmp(*param);
369 tmp.pextra_hfill = hf;
370 set_from_struct(tmp);
374 bool ParagraphParameters::pextraStartMinipage() const
376 return param->pextra_start_minipage;
380 void ParagraphParameters::pextraStartMinipage(bool smp)
382 ParameterStruct tmp(*param);
383 tmp.pextra_start_minipage = smp;
384 set_from_struct(tmp);