]> git.lyx.org Git - lyx.git/blob - src/ParagraphParameters.C
Collapse all those LFUN_XYZ_APPLY to a single LFUN_INSET_APPLY.
[lyx.git] / src / ParagraphParameters.C
1 #include <config.h>
2
3 #include "ParagraphParameters.h"
4 #include "ParameterStruct.h"
5
6 // Initialize static member var.
7 ShareContainer<ParameterStruct> ParagraphParameters::container;
8
9 ParagraphParameters::ParagraphParameters()
10 {
11         ParameterStruct tmp;
12         set_from_struct(tmp);
13 }
14
15
16 void ParagraphParameters::clear()
17 {
18         ParameterStruct tmp(*param);
19         tmp.line_top = false;
20         tmp.line_bottom = false;
21         tmp.pagebreak_top = false;
22         tmp.pagebreak_bottom = false;
23         tmp.added_space_top = VSpace(VSpace::NONE);
24         tmp.added_space_bottom = VSpace(VSpace::NONE);
25         tmp.spacing.set(Spacing::Default);
26         tmp.align = LYX_ALIGN_LAYOUT;
27         tmp.depth = 0;
28         tmp.noindent = false;
29         tmp.labelstring.erase();
30         tmp.labelwidthstring.erase();
31         tmp.start_of_appendix = false;
32         set_from_struct(tmp);
33 }
34
35
36 bool ParagraphParameters::sameLayout(ParagraphParameters const & pp) const
37 {
38         return param->align == pp.param->align &&
39                 param->line_bottom == pp.param->line_bottom &&
40                 param->pagebreak_bottom == pp.param->pagebreak_bottom &&
41                 param->added_space_bottom == pp.param->added_space_bottom &&
42
43                 param->line_top == pp.param->line_top &&
44                 param->pagebreak_top == pp.param->pagebreak_top &&
45                 param->added_space_top == pp.param->added_space_top &&
46                 param->spacing == pp.param->spacing &&
47                 param->noindent == pp.param->noindent &&
48                 param->depth == pp.param->depth;
49 }
50
51
52 void ParagraphParameters::set_from_struct(ParameterStruct const & ps)
53 {
54         // get new param from container with tmp as template
55         param = container.get(ps);
56 }
57
58
59 VSpace const & ParagraphParameters::spaceTop() const
60 {
61         return param->added_space_top;
62 }
63
64
65 void ParagraphParameters::spaceTop(VSpace const & vs)
66 {
67         ParameterStruct tmp(*param);
68         tmp.added_space_top = vs;
69         set_from_struct(tmp);
70 }
71
72
73 VSpace const & ParagraphParameters::spaceBottom() const
74 {
75         return param->added_space_bottom;
76 }
77
78
79 void ParagraphParameters::spaceBottom(VSpace const & vs)
80 {
81         ParameterStruct tmp(*param);
82         tmp.added_space_bottom = vs;
83         set_from_struct(tmp);
84 }
85
86
87 Spacing const & ParagraphParameters::spacing() const
88 {
89         return param->spacing;
90 }
91
92
93 void ParagraphParameters::spacing(Spacing const & s)
94 {
95         ParameterStruct tmp(*param);
96         tmp.spacing = s;
97         set_from_struct(tmp);
98 }
99
100
101 bool ParagraphParameters::noindent() const
102 {
103         return param->noindent;
104 }
105
106
107 void ParagraphParameters::noindent(bool ni)
108 {
109         ParameterStruct tmp(*param);
110         tmp.noindent = ni;
111         set_from_struct(tmp);
112 }
113
114
115 bool ParagraphParameters::lineTop() const
116 {
117         return param->line_top;
118 }
119
120
121 void ParagraphParameters::lineTop(bool lt)
122 {
123         ParameterStruct tmp(*param);
124         tmp.line_top = lt;
125         set_from_struct(tmp);
126 }
127
128
129 bool ParagraphParameters::lineBottom() const
130 {
131         return param->line_bottom;
132 }
133
134
135 void ParagraphParameters::lineBottom(bool lb)
136 {
137         ParameterStruct tmp(*param);
138         tmp.line_bottom = lb;
139         set_from_struct(tmp);
140 }
141
142
143 bool ParagraphParameters::pagebreakTop() const
144 {
145         return param->pagebreak_top;
146 }
147
148
149 void ParagraphParameters::pagebreakTop(bool pbt)
150 {
151         ParameterStruct tmp(*param);
152         tmp.pagebreak_top = pbt;
153         set_from_struct(tmp);
154 }
155
156
157 bool ParagraphParameters::pagebreakBottom() const
158 {
159         return param->pagebreak_bottom;
160 }
161
162
163 void ParagraphParameters::pagebreakBottom(bool pbb)
164 {
165         ParameterStruct tmp(*param);
166         tmp.pagebreak_bottom = pbb;
167         set_from_struct(tmp);
168 }
169
170
171 LyXAlignment ParagraphParameters::align() const
172 {
173         return param->align;
174 }
175
176
177 void ParagraphParameters::align(LyXAlignment la)
178 {
179         ParameterStruct tmp(*param);
180         tmp.align = la;
181         set_from_struct(tmp);
182 }
183
184
185 void ParagraphParameters::depth(depth_type d)
186 {
187         ParameterStruct tmp(*param);
188         tmp.depth = d;
189         set_from_struct(tmp);
190 }
191
192
193 bool ParagraphParameters::startOfAppendix() const
194 {
195         return param->start_of_appendix;
196 }
197
198
199 void ParagraphParameters::startOfAppendix(bool soa)
200 {
201         ParameterStruct tmp(*param);
202         tmp.start_of_appendix = soa;
203         set_from_struct(tmp);
204 }
205
206
207 bool ParagraphParameters::appendix() const
208 {
209         return param->appendix;
210 }
211
212
213 void ParagraphParameters::appendix(bool a)
214 {
215         ParameterStruct tmp(*param);
216         tmp.appendix = a;
217         set_from_struct(tmp);
218 }
219
220
221 string const & ParagraphParameters::labelString() const
222 {
223         return param->labelstring;
224 }
225
226
227 void ParagraphParameters::labelString(string const & ls)
228 {
229         ParameterStruct tmp(*param);
230         tmp.labelstring = ls;
231         set_from_struct(tmp);
232 }
233
234
235 string const & ParagraphParameters::labelWidthString() const
236 {
237         return param->labelwidthstring;
238 }
239
240
241 void ParagraphParameters::labelWidthString(string const & lws)
242 {
243         ParameterStruct tmp(*param);
244         tmp.labelwidthstring = lws;
245         set_from_struct(tmp);
246 }
247
248
249
250 LyXLength const & ParagraphParameters::leftIndent() const
251 {
252         return param->leftindent;
253 }
254
255
256 void ParagraphParameters::leftIndent(LyXLength const & li)
257 {
258         ParameterStruct tmp(*param);
259         tmp.leftindent = li;
260         set_from_struct(tmp);
261 }