]> git.lyx.org Git - lyx.git/blob - src/ParagraphParameters.C
8f73b952d166a15e6286e30bb1decefaf3ddf994
[lyx.git] / src / ParagraphParameters.C
1
2 #include <config.h>
3
4 #include "ParagraphParameters.h"
5 #include "ParameterStruct.h"
6
7 // Initialize static member var.
8 ShareContainer<ParameterStruct> ParagraphParameters::container;
9
10 ParagraphParameters::ParagraphParameters()
11 {
12         ParameterStruct tmp;
13         tmp.appendix = false;
14         tmp.align = LYX_ALIGN_BLOCK;
15
16         set_from_struct(tmp);
17 }
18
19
20 void ParagraphParameters::clear()
21 {
22         ParameterStruct tmp(*param);
23         tmp.line_top = false;
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;
31         tmp.depth = 0;
32         tmp.noindent = false;
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;
38         tmp.pextra_type = 0;
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;
45 #endif
46         set_from_struct(tmp);
47 }
48
49
50 bool ParagraphParameters::sameLayout(ParagraphParameters const & pp) const
51 {
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 &&
56
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 &&
68 #endif
69                 param->noindent == pp.param->noindent &&
70                 param->depth == pp.param->depth;
71 }
72
73
74 void ParagraphParameters::makeSame(ParagraphParameters const & pp)
75 {
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;
93 #endif
94         tmp.noindent = pp.param->noindent;
95         tmp.depth = pp.param->depth;
96
97         set_from_struct(tmp);
98 }
99
100
101 void ParagraphParameters::set_from_struct(ParameterStruct const & ps) 
102 {
103         // get new param from container with tmp as template
104         param = container.get(ps);
105 }
106
107
108 VSpace const & ParagraphParameters::spaceTop() const
109 {
110         return param->added_space_top;
111 }
112
113
114 void ParagraphParameters::spaceTop(VSpace const & vs)
115 {
116         ParameterStruct tmp(*param);
117         tmp.added_space_top = vs;
118         set_from_struct(tmp);
119 }
120
121
122 VSpace const & ParagraphParameters::spaceBottom() const
123 {
124         return param->added_space_bottom;
125 }
126
127
128 void ParagraphParameters::spaceBottom(VSpace const & vs)
129 {
130         ParameterStruct tmp(*param);
131         tmp.added_space_bottom = vs;
132         set_from_struct(tmp);
133 }
134
135
136 Spacing const & ParagraphParameters::spacing() const
137 {
138         return param->spacing;
139 }
140
141
142 void ParagraphParameters::spacing(Spacing const & s)
143 {
144         ParameterStruct tmp(*param);
145         tmp.spacing = s;
146         set_from_struct(tmp);
147 }
148
149
150 bool ParagraphParameters::noindent() const
151 {
152         return param->noindent;
153 }
154
155
156 void ParagraphParameters::noindent(bool ni)
157 {
158         ParameterStruct tmp(*param);
159         tmp.noindent = ni;
160         set_from_struct(tmp);
161 }
162
163
164 bool ParagraphParameters::lineTop() const
165 {
166         return param->line_top;
167 }
168
169
170 void ParagraphParameters::lineTop(bool lt)
171 {
172         ParameterStruct tmp(*param);
173         tmp.line_top = lt;
174         set_from_struct(tmp);
175 }
176
177
178 bool ParagraphParameters::lineBottom() const
179 {
180         return param->line_bottom;
181 }
182
183
184 void ParagraphParameters::lineBottom(bool lb)
185 {
186         ParameterStruct tmp(*param);
187         tmp.line_bottom = lb;
188         set_from_struct(tmp);
189 }
190
191
192 bool ParagraphParameters::pagebreakTop() const
193 {
194         return param->pagebreak_top;
195 }
196
197
198 void ParagraphParameters::pagebreakTop(bool pbt)
199 {
200         ParameterStruct tmp(*param);
201         tmp.pagebreak_top = pbt;
202         set_from_struct(tmp);
203 }
204
205
206 bool ParagraphParameters::pagebreakBottom() const
207 {
208         return param->pagebreak_bottom;
209 }
210
211
212 void ParagraphParameters::pagebreakBottom(bool pbb)
213 {
214         ParameterStruct tmp(*param);
215         tmp.pagebreak_bottom = pbb;
216         set_from_struct(tmp);
217 }
218
219
220 LyXAlignment ParagraphParameters::align() const
221 {
222         return param->align;
223 }
224
225
226 void ParagraphParameters::align(LyXAlignment la)
227 {
228         ParameterStruct tmp(*param);
229         tmp.align = la;
230         set_from_struct(tmp);
231 }
232
233
234 void ParagraphParameters::depth(char d)
235 {
236         ParameterStruct tmp(*param);
237         tmp.depth = d;
238         set_from_struct(tmp);
239 }
240
241
242 bool ParagraphParameters::startOfAppendix() const
243 {
244         return param->start_of_appendix;
245 }
246
247
248 void ParagraphParameters::startOfAppendix(bool soa)
249 {
250         ParameterStruct tmp(*param);
251         tmp.start_of_appendix = soa;
252         set_from_struct(tmp);
253 }
254
255
256 bool ParagraphParameters::appendix() const
257 {
258         return param->appendix;
259 }
260
261
262 void ParagraphParameters::appendix(bool a)
263 {
264         ParameterStruct tmp(*param);
265         tmp.appendix = a;
266         set_from_struct(tmp);
267 }
268
269
270 string const & ParagraphParameters::labelString() const
271 {
272         return param->labelstring;
273 }
274
275
276 void ParagraphParameters::labelString(string const & ls)
277 {
278         ParameterStruct tmp(*param);
279         tmp.labelstring = ls;
280         set_from_struct(tmp);
281 }
282
283
284 string const & ParagraphParameters::labelWidthString() const
285 {
286         return param->labelwidthstring;
287 }
288
289
290 void ParagraphParameters::labelWidthString(string const & lws)
291 {
292         ParameterStruct tmp(*param);
293         tmp.labelwidthstring = lws;
294         set_from_struct(tmp);
295 }
296
297 #ifndef NO_PEXTRA_REALLY
298 int ParagraphParameters::pextraType() const
299 {
300         return param->pextra_type;
301 }
302
303
304 void ParagraphParameters::pextraType(int t)
305 {
306         ParameterStruct tmp(*param);
307         tmp.pextra_type = t;
308         set_from_struct(tmp);
309 }
310
311
312 string const & ParagraphParameters::pextraWidth() const
313 {
314         return param->pextra_width;
315 }
316
317
318 void ParagraphParameters::pextraWidth(string const & w)
319 {
320         ParameterStruct tmp(*param);
321         tmp.pextra_width = w;
322         set_from_struct(tmp);
323 }
324
325
326 string const & ParagraphParameters::pextraWidthp() const
327 {
328         return param->pextra_widthp;
329 }
330
331
332 void ParagraphParameters::pextraWidthp(string const & wp)
333 {
334         ParameterStruct tmp(*param);
335         tmp.pextra_widthp = wp;
336         set_from_struct(tmp);
337 }
338
339
340 int ParagraphParameters::pextraAlignment() const
341 {
342         return param->pextra_alignment;
343 }
344
345
346 void ParagraphParameters::pextraAlignment(int a)
347 {
348         ParameterStruct tmp(*param);
349         tmp.pextra_alignment = a;
350         set_from_struct(tmp);
351 }
352
353
354 bool ParagraphParameters::pextraHfill() const
355 {
356         return param->pextra_hfill;
357 }
358
359
360 void ParagraphParameters::pextraHfill(bool hf)
361 {
362         ParameterStruct tmp(*param);
363         tmp.pextra_hfill = hf;
364         set_from_struct(tmp);
365 }
366
367
368 bool ParagraphParameters::pextraStartMinipage() const
369 {
370         return param->pextra_start_minipage;
371 }
372
373
374 void ParagraphParameters::pextraStartMinipage(bool smp)
375 {
376         ParameterStruct tmp(*param);
377         tmp.pextra_start_minipage = smp;
378         set_from_struct(tmp);
379 }
380 #endif