]> git.lyx.org Git - lyx.git/blob - src/ParagraphParameters.C
Fix crash when running lyx -dbg insets -e ...
[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::set_from_struct(ParameterStruct const & ps) 
75 {
76         // get new param from container with tmp as template
77         param = container.get(ps);
78 }
79
80
81 VSpace const & ParagraphParameters::spaceTop() const
82 {
83         return param->added_space_top;
84 }
85
86
87 void ParagraphParameters::spaceTop(VSpace const & vs)
88 {
89         ParameterStruct tmp(*param);
90         tmp.added_space_top = vs;
91         set_from_struct(tmp);
92 }
93
94
95 VSpace const & ParagraphParameters::spaceBottom() const
96 {
97         return param->added_space_bottom;
98 }
99
100
101 void ParagraphParameters::spaceBottom(VSpace const & vs)
102 {
103         ParameterStruct tmp(*param);
104         tmp.added_space_bottom = vs;
105         set_from_struct(tmp);
106 }
107
108
109 Spacing const & ParagraphParameters::spacing() const
110 {
111         return param->spacing;
112 }
113
114
115 void ParagraphParameters::spacing(Spacing const & s)
116 {
117         ParameterStruct tmp(*param);
118         tmp.spacing = s;
119         set_from_struct(tmp);
120 }
121
122
123 bool ParagraphParameters::noindent() const
124 {
125         return param->noindent;
126 }
127
128
129 void ParagraphParameters::noindent(bool ni)
130 {
131         ParameterStruct tmp(*param);
132         tmp.noindent = ni;
133         set_from_struct(tmp);
134 }
135
136
137 bool ParagraphParameters::lineTop() const
138 {
139         return param->line_top;
140 }
141
142
143 void ParagraphParameters::lineTop(bool lt)
144 {
145         ParameterStruct tmp(*param);
146         tmp.line_top = lt;
147         set_from_struct(tmp);
148 }
149
150
151 bool ParagraphParameters::lineBottom() const
152 {
153         return param->line_bottom;
154 }
155
156
157 void ParagraphParameters::lineBottom(bool lb)
158 {
159         ParameterStruct tmp(*param);
160         tmp.line_bottom = lb;
161         set_from_struct(tmp);
162 }
163
164
165 bool ParagraphParameters::pagebreakTop() const
166 {
167         return param->pagebreak_top;
168 }
169
170
171 void ParagraphParameters::pagebreakTop(bool pbt)
172 {
173         ParameterStruct tmp(*param);
174         tmp.pagebreak_top = pbt;
175         set_from_struct(tmp);
176 }
177
178
179 bool ParagraphParameters::pagebreakBottom() const
180 {
181         return param->pagebreak_bottom;
182 }
183
184
185 void ParagraphParameters::pagebreakBottom(bool pbb)
186 {
187         ParameterStruct tmp(*param);
188         tmp.pagebreak_bottom = pbb;
189         set_from_struct(tmp);
190 }
191
192
193 LyXAlignment ParagraphParameters::align() const
194 {
195         return param->align;
196 }
197
198
199 void ParagraphParameters::align(LyXAlignment la)
200 {
201         ParameterStruct tmp(*param);
202         tmp.align = la;
203         set_from_struct(tmp);
204 }
205
206
207 void ParagraphParameters::depth(depth_type d)
208 {
209         ParameterStruct tmp(*param);
210         tmp.depth = d;
211         set_from_struct(tmp);
212 }
213
214
215 bool ParagraphParameters::startOfAppendix() const
216 {
217         return param->start_of_appendix;
218 }
219
220
221 void ParagraphParameters::startOfAppendix(bool soa)
222 {
223         ParameterStruct tmp(*param);
224         tmp.start_of_appendix = soa;
225         set_from_struct(tmp);
226 }
227
228
229 bool ParagraphParameters::appendix() const
230 {
231         return param->appendix;
232 }
233
234
235 void ParagraphParameters::appendix(bool a)
236 {
237         ParameterStruct tmp(*param);
238         tmp.appendix = a;
239         set_from_struct(tmp);
240 }
241
242
243 string const & ParagraphParameters::labelString() const
244 {
245         return param->labelstring;
246 }
247
248
249 void ParagraphParameters::labelString(string const & ls)
250 {
251         ParameterStruct tmp(*param);
252         tmp.labelstring = ls;
253         set_from_struct(tmp);
254 }
255
256
257 string const & ParagraphParameters::labelWidthString() const
258 {
259         return param->labelwidthstring;
260 }
261
262
263 void ParagraphParameters::labelWidthString(string const & lws)
264 {
265         ParameterStruct tmp(*param);
266         tmp.labelwidthstring = lws;
267         set_from_struct(tmp);
268 }
269
270 #ifndef NO_PEXTRA_REALLY
271 int ParagraphParameters::pextraType() const
272 {
273         return param->pextra_type;
274 }
275
276
277 void ParagraphParameters::pextraType(int t)
278 {
279         ParameterStruct tmp(*param);
280         tmp.pextra_type = t;
281         set_from_struct(tmp);
282 }
283
284
285 string const & ParagraphParameters::pextraWidth() const
286 {
287         return param->pextra_width;
288 }
289
290
291 void ParagraphParameters::pextraWidth(string const & w)
292 {
293         ParameterStruct tmp(*param);
294         tmp.pextra_width = w;
295         set_from_struct(tmp);
296 }
297
298
299 string const & ParagraphParameters::pextraWidthp() const
300 {
301         return param->pextra_widthp;
302 }
303
304
305 void ParagraphParameters::pextraWidthp(string const & wp)
306 {
307         ParameterStruct tmp(*param);
308         tmp.pextra_widthp = wp;
309         set_from_struct(tmp);
310 }
311
312
313 int ParagraphParameters::pextraAlignment() const
314 {
315         return param->pextra_alignment;
316 }
317
318
319 void ParagraphParameters::pextraAlignment(int a)
320 {
321         ParameterStruct tmp(*param);
322         tmp.pextra_alignment = a;
323         set_from_struct(tmp);
324 }
325
326
327 bool ParagraphParameters::pextraHfill() const
328 {
329         return param->pextra_hfill;
330 }
331
332
333 void ParagraphParameters::pextraHfill(bool hf)
334 {
335         ParameterStruct tmp(*param);
336         tmp.pextra_hfill = hf;
337         set_from_struct(tmp);
338 }
339
340
341 bool ParagraphParameters::pextraStartMinipage() const
342 {
343         return param->pextra_start_minipage;
344 }
345
346
347 void ParagraphParameters::pextraStartMinipage(bool smp)
348 {
349         ParameterStruct tmp(*param);
350         tmp.pextra_start_minipage = smp;
351         set_from_struct(tmp);
352 }
353 #endif