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);
273 LyXLength const & ParagraphParameters::leftIndent() const
275 return param->leftindent;
279 void ParagraphParameters::leftIndent(LyXLength const & li)
281 ParameterStruct tmp(*param);
283 set_from_struct(tmp);
286 #ifndef NO_PEXTRA_REALLY
287 int ParagraphParameters::pextraType() const
289 return param->pextra_type;
293 void ParagraphParameters::pextraType(int t)
295 ParameterStruct tmp(*param);
297 set_from_struct(tmp);
301 string const & ParagraphParameters::pextraWidth() const
303 return param->pextra_width;
307 void ParagraphParameters::pextraWidth(string const & w)
309 ParameterStruct tmp(*param);
310 tmp.pextra_width = w;
311 set_from_struct(tmp);
315 string const & ParagraphParameters::pextraWidthp() const
317 return param->pextra_widthp;
321 void ParagraphParameters::pextraWidthp(string const & wp)
323 ParameterStruct tmp(*param);
324 tmp.pextra_widthp = wp;
325 set_from_struct(tmp);
329 int ParagraphParameters::pextraAlignment() const
331 return param->pextra_alignment;
335 void ParagraphParameters::pextraAlignment(int a)
337 ParameterStruct tmp(*param);
338 tmp.pextra_alignment = a;
339 set_from_struct(tmp);
343 bool ParagraphParameters::pextraHfill() const
345 return param->pextra_hfill;
349 void ParagraphParameters::pextraHfill(bool hf)
351 ParameterStruct tmp(*param);
352 tmp.pextra_hfill = hf;
353 set_from_struct(tmp);
357 bool ParagraphParameters::pextraStartMinipage() const
359 return param->pextra_start_minipage;
363 void ParagraphParameters::pextraStartMinipage(bool smp)
365 ParameterStruct tmp(*param);
366 tmp.pextra_start_minipage = smp;
367 set_from_struct(tmp);