Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 : #ifndef INCLUDED_SW_SOURCE_UIBASE_INC_USRPREF_HXX
20 : #define INCLUDED_SW_SOURCE_UIBASE_INC_USRPREF_HXX
21 :
22 : #include <unotools/configitem.hxx>
23 : #include <fldupde.hxx>
24 : #include "viewopt.hxx"
25 : #include <tools/fldunit.hxx>
26 :
27 : class SwMasterUsrPref;
28 :
29 : class SwContentViewConfig : public utl::ConfigItem
30 : {
31 : private:
32 : SwMasterUsrPref& rParent;
33 : bool bWeb;
34 :
35 : com::sun::star::uno::Sequence<OUString> GetPropertyNames();
36 :
37 : virtual void ImplCommit() SAL_OVERRIDE;
38 :
39 : public:
40 : SwContentViewConfig(bool bWeb, SwMasterUsrPref& rParent);
41 : virtual ~SwContentViewConfig();
42 :
43 : // utl::ConfigItem
44 : virtual void Notify( const com::sun::star::uno::Sequence< OUString > &rPropertyNames ) SAL_OVERRIDE;
45 :
46 : void Load();
47 0 : void SetModified(){ConfigItem::SetModified();}
48 : };
49 :
50 : class SwLayoutViewConfig : public utl::ConfigItem
51 : {
52 : private:
53 : SwMasterUsrPref& rParent;
54 : bool bWeb;
55 :
56 : com::sun::star::uno::Sequence<OUString> GetPropertyNames();
57 :
58 : virtual void ImplCommit() SAL_OVERRIDE;
59 :
60 : public:
61 : SwLayoutViewConfig(bool bWeb, SwMasterUsrPref& rParent);
62 : virtual ~SwLayoutViewConfig();
63 :
64 : virtual void Notify( const ::com::sun::star::uno::Sequence< OUString >& aPropertyNames ) SAL_OVERRIDE;
65 : void Load();
66 121 : void SetModified(){ConfigItem::SetModified();}
67 : };
68 :
69 : class SwGridConfig : public utl::ConfigItem
70 : {
71 : private:
72 : SwMasterUsrPref& rParent;
73 :
74 : static com::sun::star::uno::Sequence<OUString> GetPropertyNames();
75 :
76 : virtual void ImplCommit() SAL_OVERRIDE;
77 :
78 : public:
79 : SwGridConfig(bool bWeb, SwMasterUsrPref& rParent);
80 : virtual ~SwGridConfig();
81 :
82 : virtual void Notify( const ::com::sun::star::uno::Sequence< OUString >& aPropertyNames ) SAL_OVERRIDE;
83 : void Load();
84 0 : void SetModified(){ConfigItem::SetModified();}
85 : };
86 :
87 : class SwCursorConfig : public utl::ConfigItem
88 : {
89 : private:
90 : SwMasterUsrPref& rParent;
91 :
92 : static com::sun::star::uno::Sequence<OUString> GetPropertyNames();
93 :
94 : virtual void ImplCommit() SAL_OVERRIDE;
95 :
96 : public:
97 : SwCursorConfig(SwMasterUsrPref& rParent);
98 : virtual ~SwCursorConfig();
99 :
100 : virtual void Notify( const ::com::sun::star::uno::Sequence< OUString >& aPropertyNames ) SAL_OVERRIDE;
101 : void Load();
102 0 : void SetModified(){ConfigItem::SetModified();}
103 : };
104 :
105 : class SwWebColorConfig : public utl::ConfigItem
106 : {
107 : private:
108 : SwMasterUsrPref& rParent;
109 : com::sun::star::uno::Sequence<OUString> aPropNames;
110 :
111 : virtual void ImplCommit() SAL_OVERRIDE;
112 :
113 : public:
114 : SwWebColorConfig(SwMasterUsrPref& rParent);
115 : virtual ~SwWebColorConfig();
116 :
117 : virtual void Notify( const ::com::sun::star::uno::Sequence< OUString >& aPropertyNames ) SAL_OVERRIDE;
118 : void Load();
119 0 : void SetModified(){ConfigItem::SetModified();}
120 : };
121 :
122 : class SwMasterUsrPref : public SwViewOption
123 : {
124 : friend class SwContentViewConfig;
125 : friend class SwLayoutViewConfig;
126 : friend class SwGridConfig;
127 : friend class SwCursorConfig;
128 : friend class SwWebColorConfig;
129 :
130 : SwFieldUpdateFlags eFieldUpdateFlags; //update of fields and charts
131 : sal_Int32 nLinkUpdateMode;
132 : FieldUnit eUserMetric;
133 : FieldUnit eHScrollMetric;
134 : bool bIsHScrollMetricSet;
135 : FieldUnit eVScrollMetric;
136 : bool bIsVScrollMetricSet;
137 :
138 : sal_Int32 nDefTab; //default tab stop distance
139 :
140 : bool bIsSquaredPageMode; //default page mode for text grid
141 : bool bIsAlignMathObjectsToBaseline;
142 :
143 : SwContentViewConfig aContentConfig;
144 : SwLayoutViewConfig aLayoutConfig;
145 : SwGridConfig aGridConfig;
146 : SwCursorConfig aCursorConfig;
147 : SwWebColorConfig* pWebColorConfig;
148 :
149 : bool bApplyCharUnit; // apply_char_unit
150 : public:
151 : SwMasterUsrPref(bool bWeb);
152 : ~SwMasterUsrPref();
153 :
154 : void SetUsrPref(const SwViewOption &rCopy);
155 :
156 : void Commit()
157 : {
158 : aContentConfig.Commit();
159 : aLayoutConfig.Commit();
160 : aGridConfig.Commit();
161 : aCursorConfig.Commit();
162 : if(pWebColorConfig)
163 : pWebColorConfig->Commit();
164 : }
165 0 : void SetModified()
166 : {
167 0 : aContentConfig.SetModified();
168 0 : aLayoutConfig.SetModified();
169 0 : aGridConfig.SetModified();
170 0 : aCursorConfig.SetModified();
171 0 : if(pWebColorConfig)
172 0 : pWebColorConfig->SetModified();
173 0 : }
174 :
175 116 : void SetUpdateLinkMode(sal_Int32 nSet, bool bNoModify = false)
176 : {
177 116 : nLinkUpdateMode = nSet;
178 116 : if(!bNoModify)
179 0 : aContentConfig.SetModified();
180 116 : }
181 2165 : sal_Int32 GetUpdateLinkMode() const {return nLinkUpdateMode; }
182 :
183 116 : void SetUpdateFields(bool bSet, bool bNoModify = false)
184 : {
185 116 : if(bSet && eFieldUpdateFlags == AUTOUPD_OFF)
186 : {
187 58 : eFieldUpdateFlags = AUTOUPD_FIELD_ONLY;
188 116 : if(!bNoModify)
189 0 : aContentConfig.SetModified();
190 : }
191 58 : else if(!bSet)
192 : {
193 0 : eFieldUpdateFlags = AUTOUPD_OFF;
194 0 : if(!bNoModify)
195 0 : aContentConfig.SetModified();
196 : }
197 116 : };
198 0 : bool IsUpdateFields()const {return eFieldUpdateFlags != AUTOUPD_OFF; }
199 :
200 5623 : SwFieldUpdateFlags GetFieldUpdateFlags()const {return eFieldUpdateFlags;}
201 0 : void SetFieldUpdateFlags(SwFieldUpdateFlags eSet, bool bNoModify = false)
202 : {
203 0 : eFieldUpdateFlags = eSet;
204 0 : if(!bNoModify)
205 0 : aContentConfig.SetModified();
206 0 : }
207 :
208 116 : void SetUpdateCharts(bool bSet, bool bNoModify = false)
209 : {
210 116 : if(bSet)
211 : {
212 116 : eFieldUpdateFlags = AUTOUPD_FIELD_AND_CHARTS;
213 116 : if(!bNoModify)
214 0 : aContentConfig.SetModified();
215 : }
216 0 : else if(eFieldUpdateFlags == AUTOUPD_FIELD_AND_CHARTS)
217 : {
218 0 : eFieldUpdateFlags = AUTOUPD_FIELD_ONLY;
219 0 : if(!bNoModify)
220 0 : aContentConfig.SetModified();
221 : }
222 116 : };
223 0 : bool IsUpdateCharts()const {return eFieldUpdateFlags == AUTOUPD_FIELD_AND_CHARTS; }
224 :
225 1082 : FieldUnit GetMetric() const { return eUserMetric;}
226 12 : void SetMetric(FieldUnit eSet, bool bNoModify = false)
227 : {
228 12 : eUserMetric = eSet;
229 12 : if(!bNoModify)
230 4 : aLayoutConfig.SetModified();
231 12 : }
232 :
233 0 : bool IsHScrollMetric()const {return bIsHScrollMetricSet;}
234 2761 : FieldUnit GetHScrollMetric() const { return bIsHScrollMetricSet ? eHScrollMetric : eUserMetric;}
235 0 : void SetHScrollMetric(FieldUnit eSet, bool bNoModify = false)
236 : {
237 0 : eHScrollMetric = eSet; bIsHScrollMetricSet = true;
238 0 : if(!bNoModify)
239 0 : aLayoutConfig.SetModified();
240 0 : }
241 :
242 0 : bool IsVScrollMetric()const {return bIsVScrollMetricSet;}
243 2761 : FieldUnit GetVScrollMetric() const { return bIsVScrollMetricSet ? eVScrollMetric : eUserMetric;}
244 0 : void SetVScrollMetric(FieldUnit eSet, bool bNoModify = false)
245 : {
246 0 : eVScrollMetric = eSet; bIsVScrollMetricSet = true;
247 0 : if(!bNoModify)
248 0 : aLayoutConfig.SetModified();
249 0 : }
250 :
251 57 : bool IsApplyCharUnit() const
252 : {
253 57 : return bApplyCharUnit;
254 : }
255 58 : void SetApplyCharUnit(bool bSet, bool bNoModify = false)
256 : {
257 58 : bApplyCharUnit = bSet;
258 58 : if(!bNoModify)
259 58 : aLayoutConfig.SetModified();
260 58 : }
261 :
262 2722 : sal_Int32 GetDefTab() const { return nDefTab;}
263 58 : void SetDefTab( sal_Int32 nSet, bool bNoModify = false )
264 : {
265 58 : nDefTab = nSet;
266 58 : if(!bNoModify)
267 0 : aLayoutConfig.SetModified();
268 58 : }
269 :
270 : //default page mode for text grid
271 2722 : bool IsSquaredPageMode() const {return bIsSquaredPageMode;}
272 58 : void SetDefaultPageMode( bool bVal, bool bNoModify = false )
273 : {
274 58 : bIsSquaredPageMode = bVal;
275 58 : if(!bNoModify)
276 0 : aLayoutConfig.SetModified();
277 58 : }
278 :
279 2725 : bool IsAlignMathObjectsToBaseline() const { return bIsAlignMathObjectsToBaseline; }
280 59 : void SetAlignMathObjectsToBaseline( bool bVal, bool bNoModify = false )
281 : {
282 59 : bIsAlignMathObjectsToBaseline = bVal;
283 59 : if(!bNoModify)
284 59 : aLayoutConfig.SetModified();
285 59 : }
286 : };
287 :
288 : #endif
289 :
290 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|