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()
22 void ParagraphParameters::clear()
24 ParameterStruct tmp(*param);
26 tmp.line_bottom = false;
27 tmp.pagebreak_top = false;
28 tmp.pagebreak_bottom = false;
29 tmp.added_space_top = VSpace(VSpace::NONE);
30 tmp.added_space_bottom = VSpace(VSpace::NONE);
31 tmp.spacing.set(Spacing::Default);
32 tmp.align = LYX_ALIGN_LAYOUT;
35 tmp.labelstring.erase();
36 tmp.labelwidthstring.erase();
37 tmp.start_of_appendix = false;
38 #ifndef NO_PEXTRA_REALLY
39 //tmp.pextra_type = PEXTRA_NONE;
41 tmp.pextra_width.erase();
42 tmp.pextra_widthp.erase();
43 //tmp.pextra_alignment = MINIPAGE_ALIGN_TOP;
44 tmp.pextra_alignment = 0;
45 tmp.pextra_hfill = false;
46 tmp.pextra_start_minipage = false;
52 bool ParagraphParameters::sameLayout(ParagraphParameters const & pp) const
54 return param->align == pp.param->align &&
55 param->line_bottom == pp.param->line_bottom &&
56 param->pagebreak_bottom == pp.param->pagebreak_bottom &&
57 param->added_space_bottom == pp.param->added_space_bottom &&
59 param->line_top == pp.param->line_top &&
60 param->pagebreak_top == pp.param->pagebreak_top &&
61 param->added_space_top == pp.param->added_space_top &&
62 param->spacing == pp.param->spacing &&
63 #ifndef NO_PEXTRA_REALLY
64 param->pextra_type == pp.param->pextra_type &&
65 param->pextra_width == pp.param->pextra_width &&
66 param->pextra_widthp == pp.param->pextra_widthp &&
67 param->pextra_alignment == pp.param->pextra_alignment &&
68 param->pextra_hfill == pp.param->pextra_hfill &&
69 param->pextra_start_minipage == pp.param->pextra_start_minipage &&
71 param->noindent == pp.param->noindent &&
72 param->depth == pp.param->depth;
76 void ParagraphParameters::set_from_struct(ParameterStruct const & ps)
78 // get new param from container with tmp as template
79 param = container.get(ps);
83 VSpace const & ParagraphParameters::spaceTop() const
85 return param->added_space_top;
89 void ParagraphParameters::spaceTop(VSpace const & vs)
91 ParameterStruct tmp(*param);
92 tmp.added_space_top = vs;
97 VSpace const & ParagraphParameters::spaceBottom() const
99 return param->added_space_bottom;
103 void ParagraphParameters::spaceBottom(VSpace const & vs)
105 ParameterStruct tmp(*param);
106 tmp.added_space_bottom = vs;
107 set_from_struct(tmp);
111 Spacing const & ParagraphParameters::spacing() const
113 return param->spacing;
117 void ParagraphParameters::spacing(Spacing const & s)
119 ParameterStruct tmp(*param);
121 set_from_struct(tmp);
125 bool ParagraphParameters::noindent() const
127 return param->noindent;
131 void ParagraphParameters::noindent(bool ni)
133 ParameterStruct tmp(*param);
135 set_from_struct(tmp);
139 bool ParagraphParameters::lineTop() const
141 return param->line_top;
145 void ParagraphParameters::lineTop(bool lt)
147 ParameterStruct tmp(*param);
149 set_from_struct(tmp);
153 bool ParagraphParameters::lineBottom() const
155 return param->line_bottom;
159 void ParagraphParameters::lineBottom(bool lb)
161 ParameterStruct tmp(*param);
162 tmp.line_bottom = lb;
163 set_from_struct(tmp);
167 bool ParagraphParameters::pagebreakTop() const
169 return param->pagebreak_top;
173 void ParagraphParameters::pagebreakTop(bool pbt)
175 ParameterStruct tmp(*param);
176 tmp.pagebreak_top = pbt;
177 set_from_struct(tmp);
181 bool ParagraphParameters::pagebreakBottom() const
183 return param->pagebreak_bottom;
187 void ParagraphParameters::pagebreakBottom(bool pbb)
189 ParameterStruct tmp(*param);
190 tmp.pagebreak_bottom = pbb;
191 set_from_struct(tmp);
195 LyXAlignment ParagraphParameters::align() const
201 void ParagraphParameters::align(LyXAlignment la)
203 ParameterStruct tmp(*param);
205 set_from_struct(tmp);
209 void ParagraphParameters::depth(depth_type d)
211 ParameterStruct tmp(*param);
213 set_from_struct(tmp);
217 bool ParagraphParameters::startOfAppendix() const
219 return param->start_of_appendix;
223 void ParagraphParameters::startOfAppendix(bool soa)
225 ParameterStruct tmp(*param);
226 tmp.start_of_appendix = soa;
227 set_from_struct(tmp);
231 bool ParagraphParameters::appendix() const
233 return param->appendix;
237 void ParagraphParameters::appendix(bool a)
239 ParameterStruct tmp(*param);
241 set_from_struct(tmp);
245 string const & ParagraphParameters::labelString() const
247 return param->labelstring;
251 void ParagraphParameters::labelString(string const & ls)
253 ParameterStruct tmp(*param);
254 tmp.labelstring = ls;
255 set_from_struct(tmp);
259 string const & ParagraphParameters::labelWidthString() const
261 return param->labelwidthstring;
265 void ParagraphParameters::labelWidthString(string const & lws)
267 ParameterStruct tmp(*param);
268 tmp.labelwidthstring = lws;
269 set_from_struct(tmp);
272 #ifndef NO_PEXTRA_REALLY
273 int ParagraphParameters::pextraType() const
275 return param->pextra_type;
279 void ParagraphParameters::pextraType(int t)
281 ParameterStruct tmp(*param);
283 set_from_struct(tmp);
287 string const & ParagraphParameters::pextraWidth() const
289 return param->pextra_width;
293 void ParagraphParameters::pextraWidth(string const & w)
295 ParameterStruct tmp(*param);
296 tmp.pextra_width = w;
297 set_from_struct(tmp);
301 string const & ParagraphParameters::pextraWidthp() const
303 return param->pextra_widthp;
307 void ParagraphParameters::pextraWidthp(string const & wp)
309 ParameterStruct tmp(*param);
310 tmp.pextra_widthp = wp;
311 set_from_struct(tmp);
315 int ParagraphParameters::pextraAlignment() const
317 return param->pextra_alignment;
321 void ParagraphParameters::pextraAlignment(int a)
323 ParameterStruct tmp(*param);
324 tmp.pextra_alignment = a;
325 set_from_struct(tmp);
329 bool ParagraphParameters::pextraHfill() const
331 return param->pextra_hfill;
335 void ParagraphParameters::pextraHfill(bool hf)
337 ParameterStruct tmp(*param);
338 tmp.pextra_hfill = hf;
339 set_from_struct(tmp);
343 bool ParagraphParameters::pextraStartMinipage() const
345 return param->pextra_start_minipage;
349 void ParagraphParameters::pextraStartMinipage(bool smp)
351 ParameterStruct tmp(*param);
352 tmp.pextra_start_minipage = smp;
353 set_from_struct(tmp);