]> git.lyx.org Git - lyx.git/blob - src/ParagraphParameters.C
Applied Angus patch to compile on DEC C++ and to avoid name clashes
[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 char ParagraphParameters::depth() const
235 {
236         return param->depth;
237 }
238
239
240 void ParagraphParameters::depth(char d)
241 {
242         ParameterStruct tmp(*param);
243         tmp.depth = d;
244         set_from_struct(tmp);
245 }
246
247
248 bool ParagraphParameters::startOfAppendix() const
249 {
250         return param->start_of_appendix;
251 }
252
253
254 void ParagraphParameters::startOfAppendix(bool soa)
255 {
256         ParameterStruct tmp(*param);
257         tmp.start_of_appendix = soa;
258         set_from_struct(tmp);
259 }
260
261
262 bool ParagraphParameters::appendix() const
263 {
264         return param->appendix;
265 }
266
267
268 void ParagraphParameters::appendix(bool a)
269 {
270         ParameterStruct tmp(*param);
271         tmp.appendix = a;
272         set_from_struct(tmp);
273 }
274
275
276 string const & ParagraphParameters::labelString() const
277 {
278         return param->labelstring;
279 }
280
281
282 void ParagraphParameters::labelString(string const & ls)
283 {
284         ParameterStruct tmp(*param);
285         tmp.labelstring = ls;
286         set_from_struct(tmp);
287 }
288
289
290 string const & ParagraphParameters::labelWidthString() const
291 {
292         return param->labelwidthstring;
293 }
294
295
296 void ParagraphParameters::labelWidthString(string const & lws)
297 {
298         ParameterStruct tmp(*param);
299         tmp.labelwidthstring = lws;
300         set_from_struct(tmp);
301 }
302
303 #ifndef NO_PEXTRA_REALLY
304 int ParagraphParameters::pextraType() const
305 {
306         return param->pextra_type;
307 }
308
309
310 void ParagraphParameters::pextraType(int t)
311 {
312         ParameterStruct tmp(*param);
313         tmp.pextra_type = t;
314         set_from_struct(tmp);
315 }
316
317
318 string const & ParagraphParameters::pextraWidth() const
319 {
320         return param->pextra_width;
321 }
322
323
324 void ParagraphParameters::pextraWidth(string const & w)
325 {
326         ParameterStruct tmp(*param);
327         tmp.pextra_width = w;
328         set_from_struct(tmp);
329 }
330
331
332 string const & ParagraphParameters::pextraWidthp() const
333 {
334         return param->pextra_widthp;
335 }
336
337
338 void ParagraphParameters::pextraWidthp(string const & wp)
339 {
340         ParameterStruct tmp(*param);
341         tmp.pextra_widthp = wp;
342         set_from_struct(tmp);
343 }
344
345
346 int ParagraphParameters::pextraAlignment() const
347 {
348         return param->pextra_alignment;
349 }
350
351
352 void ParagraphParameters::pextraAlignment(int a)
353 {
354         ParameterStruct tmp(*param);
355         tmp.pextra_alignment = a;
356         set_from_struct(tmp);
357 }
358
359
360 bool ParagraphParameters::pextraHfill() const
361 {
362         return param->pextra_hfill;
363 }
364
365
366 void ParagraphParameters::pextraHfill(bool hf)
367 {
368         ParameterStruct tmp(*param);
369         tmp.pextra_hfill = hf;
370         set_from_struct(tmp);
371 }
372
373
374 bool ParagraphParameters::pextraStartMinipage() const
375 {
376         return param->pextra_start_minipage;
377 }
378
379
380 void ParagraphParameters::pextraStartMinipage(bool smp)
381 {
382         ParameterStruct tmp(*param);
383         tmp.pextra_start_minipage = smp;
384         set_from_struct(tmp);
385 }
386 #endif