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 void ParagraphParameters::depth(char d)
236 ParameterStruct tmp(*param);
238 set_from_struct(tmp);
242 bool ParagraphParameters::startOfAppendix() const
244 return param->start_of_appendix;
248 void ParagraphParameters::startOfAppendix(bool soa)
250 ParameterStruct tmp(*param);
251 tmp.start_of_appendix = soa;
252 set_from_struct(tmp);
256 bool ParagraphParameters::appendix() const
258 return param->appendix;
262 void ParagraphParameters::appendix(bool a)
264 ParameterStruct tmp(*param);
266 set_from_struct(tmp);
270 string const & ParagraphParameters::labelString() const
272 return param->labelstring;
276 void ParagraphParameters::labelString(string const & ls)
278 ParameterStruct tmp(*param);
279 tmp.labelstring = ls;
280 set_from_struct(tmp);
284 string const & ParagraphParameters::labelWidthString() const
286 return param->labelwidthstring;
290 void ParagraphParameters::labelWidthString(string const & lws)
292 ParameterStruct tmp(*param);
293 tmp.labelwidthstring = lws;
294 set_from_struct(tmp);
297 #ifndef NO_PEXTRA_REALLY
298 int ParagraphParameters::pextraType() const
300 return param->pextra_type;
304 void ParagraphParameters::pextraType(int t)
306 ParameterStruct tmp(*param);
308 set_from_struct(tmp);
312 string const & ParagraphParameters::pextraWidth() const
314 return param->pextra_width;
318 void ParagraphParameters::pextraWidth(string const & w)
320 ParameterStruct tmp(*param);
321 tmp.pextra_width = w;
322 set_from_struct(tmp);
326 string const & ParagraphParameters::pextraWidthp() const
328 return param->pextra_widthp;
332 void ParagraphParameters::pextraWidthp(string const & wp)
334 ParameterStruct tmp(*param);
335 tmp.pextra_widthp = wp;
336 set_from_struct(tmp);
340 int ParagraphParameters::pextraAlignment() const
342 return param->pextra_alignment;
346 void ParagraphParameters::pextraAlignment(int a)
348 ParameterStruct tmp(*param);
349 tmp.pextra_alignment = a;
350 set_from_struct(tmp);
354 bool ParagraphParameters::pextraHfill() const
356 return param->pextra_hfill;
360 void ParagraphParameters::pextraHfill(bool hf)
362 ParameterStruct tmp(*param);
363 tmp.pextra_hfill = hf;
364 set_from_struct(tmp);
368 bool ParagraphParameters::pextraStartMinipage() const
370 return param->pextra_start_minipage;
374 void ParagraphParameters::pextraStartMinipage(bool smp)
376 ParameterStruct tmp(*param);
377 tmp.pextra_start_minipage = smp;
378 set_from_struct(tmp);