5 #pragma implementation "ParameterStruct.h"
8 #include "ParagraphParameters.h"
9 #include "ParameterStruct.h"
11 // Initialize static member var.
12 ShareContainer<ParameterStruct> ParagraphParameters::container;
14 ParagraphParameters::ParagraphParameters()
21 void ParagraphParameters::clear()
23 ParameterStruct tmp(*param);
25 tmp.line_bottom = false;
26 tmp.pagebreak_top = false;
27 tmp.pagebreak_bottom = false;
28 tmp.added_space_top = VSpace(VSpace::NONE);
29 tmp.added_space_bottom = VSpace(VSpace::NONE);
30 tmp.spacing.set(Spacing::Default);
31 tmp.align = LYX_ALIGN_LAYOUT;
34 tmp.labelstring.erase();
35 tmp.labelwidthstring.erase();
36 tmp.start_of_appendix = false;
37 #ifndef NO_PEXTRA_REALLY
38 //tmp.pextra_type = PEXTRA_NONE;
40 tmp.pextra_width.erase();
41 tmp.pextra_widthp.erase();
42 //tmp.pextra_alignment = MINIPAGE_ALIGN_TOP;
43 tmp.pextra_alignment = 0;
44 tmp.pextra_hfill = false;
45 tmp.pextra_start_minipage = false;
51 bool ParagraphParameters::sameLayout(ParagraphParameters const & pp) const
53 return param->align == pp.param->align &&
54 param->line_bottom == pp.param->line_bottom &&
55 param->pagebreak_bottom == pp.param->pagebreak_bottom &&
56 param->added_space_bottom == pp.param->added_space_bottom &&
58 param->line_top == pp.param->line_top &&
59 param->pagebreak_top == pp.param->pagebreak_top &&
60 param->added_space_top == pp.param->added_space_top &&
61 param->spacing == pp.param->spacing &&
62 #ifndef NO_PEXTRA_REALLY
63 param->pextra_type == pp.param->pextra_type &&
64 param->pextra_width == pp.param->pextra_width &&
65 param->pextra_widthp == pp.param->pextra_widthp &&
66 param->pextra_alignment == pp.param->pextra_alignment &&
67 param->pextra_hfill == pp.param->pextra_hfill &&
68 param->pextra_start_minipage == pp.param->pextra_start_minipage &&
70 param->noindent == pp.param->noindent &&
71 param->depth == pp.param->depth;
75 void ParagraphParameters::set_from_struct(ParameterStruct const & ps)
77 // get new param from container with tmp as template
78 param = container.get(ps);
82 VSpace const & ParagraphParameters::spaceTop() const
84 return param->added_space_top;
88 void ParagraphParameters::spaceTop(VSpace const & vs)
90 ParameterStruct tmp(*param);
91 tmp.added_space_top = vs;
96 VSpace const & ParagraphParameters::spaceBottom() const
98 return param->added_space_bottom;
102 void ParagraphParameters::spaceBottom(VSpace const & vs)
104 ParameterStruct tmp(*param);
105 tmp.added_space_bottom = vs;
106 set_from_struct(tmp);
110 Spacing const & ParagraphParameters::spacing() const
112 return param->spacing;
116 void ParagraphParameters::spacing(Spacing const & s)
118 ParameterStruct tmp(*param);
120 set_from_struct(tmp);
124 bool ParagraphParameters::noindent() const
126 return param->noindent;
130 void ParagraphParameters::noindent(bool ni)
132 ParameterStruct tmp(*param);
134 set_from_struct(tmp);
138 bool ParagraphParameters::lineTop() const
140 return param->line_top;
144 void ParagraphParameters::lineTop(bool lt)
146 ParameterStruct tmp(*param);
148 set_from_struct(tmp);
152 bool ParagraphParameters::lineBottom() const
154 return param->line_bottom;
158 void ParagraphParameters::lineBottom(bool lb)
160 ParameterStruct tmp(*param);
161 tmp.line_bottom = lb;
162 set_from_struct(tmp);
166 bool ParagraphParameters::pagebreakTop() const
168 return param->pagebreak_top;
172 void ParagraphParameters::pagebreakTop(bool pbt)
174 ParameterStruct tmp(*param);
175 tmp.pagebreak_top = pbt;
176 set_from_struct(tmp);
180 bool ParagraphParameters::pagebreakBottom() const
182 return param->pagebreak_bottom;
186 void ParagraphParameters::pagebreakBottom(bool pbb)
188 ParameterStruct tmp(*param);
189 tmp.pagebreak_bottom = pbb;
190 set_from_struct(tmp);
194 LyXAlignment ParagraphParameters::align() const
200 void ParagraphParameters::align(LyXAlignment la)
202 ParameterStruct tmp(*param);
204 set_from_struct(tmp);
208 void ParagraphParameters::depth(depth_type d)
210 ParameterStruct tmp(*param);
212 set_from_struct(tmp);
216 bool ParagraphParameters::startOfAppendix() const
218 return param->start_of_appendix;
222 void ParagraphParameters::startOfAppendix(bool soa)
224 ParameterStruct tmp(*param);
225 tmp.start_of_appendix = soa;
226 set_from_struct(tmp);
230 bool ParagraphParameters::appendix() const
232 return param->appendix;
236 void ParagraphParameters::appendix(bool a)
238 ParameterStruct tmp(*param);
240 set_from_struct(tmp);
244 string const & ParagraphParameters::labelString() const
246 return param->labelstring;
250 void ParagraphParameters::labelString(string const & ls)
252 ParameterStruct tmp(*param);
253 tmp.labelstring = ls;
254 set_from_struct(tmp);
258 string const & ParagraphParameters::labelWidthString() const
260 return param->labelwidthstring;
264 void ParagraphParameters::labelWidthString(string const & lws)
266 ParameterStruct tmp(*param);
267 tmp.labelwidthstring = lws;
268 set_from_struct(tmp);
271 #ifndef NO_PEXTRA_REALLY
272 int ParagraphParameters::pextraType() const
274 return param->pextra_type;
278 void ParagraphParameters::pextraType(int t)
280 ParameterStruct tmp(*param);
282 set_from_struct(tmp);
286 string const & ParagraphParameters::pextraWidth() const
288 return param->pextra_width;
292 void ParagraphParameters::pextraWidth(string const & w)
294 ParameterStruct tmp(*param);
295 tmp.pextra_width = w;
296 set_from_struct(tmp);
300 string const & ParagraphParameters::pextraWidthp() const
302 return param->pextra_widthp;
306 void ParagraphParameters::pextraWidthp(string const & wp)
308 ParameterStruct tmp(*param);
309 tmp.pextra_widthp = wp;
310 set_from_struct(tmp);
314 int ParagraphParameters::pextraAlignment() const
316 return param->pextra_alignment;
320 void ParagraphParameters::pextraAlignment(int a)
322 ParameterStruct tmp(*param);
323 tmp.pextra_alignment = a;
324 set_from_struct(tmp);
328 bool ParagraphParameters::pextraHfill() const
330 return param->pextra_hfill;
334 void ParagraphParameters::pextraHfill(bool hf)
336 ParameterStruct tmp(*param);
337 tmp.pextra_hfill = hf;
338 set_from_struct(tmp);
342 bool ParagraphParameters::pextraStartMinipage() const
344 return param->pextra_start_minipage;
348 void ParagraphParameters::pextraStartMinipage(bool smp)
350 ParameterStruct tmp(*param);
351 tmp.pextra_start_minipage = smp;
352 set_from_struct(tmp);