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 _USRPREF_HXX
20 : #define _USRPREF_HXX
21 :
22 :
23 :
24 : #include <unotools/configitem.hxx>
25 : #include <fldupde.hxx>
26 : #include "viewopt.hxx"
27 : #include <tools/fldunit.hxx>
28 :
29 : class SwMasterUsrPref;
30 :
31 : class SwContentViewConfig : public utl::ConfigItem
32 : {
33 : SwMasterUsrPref& rParent;
34 : sal_Bool bWeb;
35 :
36 : com::sun::star::uno::Sequence<rtl::OUString> GetPropertyNames();
37 : public:
38 : SwContentViewConfig(sal_Bool bWeb, SwMasterUsrPref& rParent);
39 : ~SwContentViewConfig();
40 :
41 : // utl::ConfigItem
42 : virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString > &rPropertyNames );
43 : virtual void Commit();
44 :
45 : void Load();
46 0 : void SetModified(){ConfigItem::SetModified();}
47 : };
48 :
49 : class SwLayoutViewConfig : public utl::ConfigItem
50 : {
51 : SwMasterUsrPref& rParent;
52 : sal_Bool bWeb;
53 :
54 : com::sun::star::uno::Sequence<rtl::OUString> GetPropertyNames();
55 : public:
56 : SwLayoutViewConfig(sal_Bool bWeb, SwMasterUsrPref& rParent);
57 : ~SwLayoutViewConfig();
58 :
59 : virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
60 : virtual void Commit();
61 : void Load();
62 20 : void SetModified(){ConfigItem::SetModified();}
63 : };
64 :
65 : class SwGridConfig : public utl::ConfigItem
66 : {
67 : SwMasterUsrPref& rParent;
68 :
69 : com::sun::star::uno::Sequence<rtl::OUString> GetPropertyNames();
70 : public:
71 : SwGridConfig(sal_Bool bWeb, SwMasterUsrPref& rParent);
72 : ~SwGridConfig();
73 :
74 : virtual void Commit();
75 : virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
76 : void Load();
77 0 : void SetModified(){ConfigItem::SetModified();}
78 : };
79 :
80 : class SwCursorConfig : public utl::ConfigItem
81 : {
82 : SwMasterUsrPref& rParent;
83 :
84 : com::sun::star::uno::Sequence<rtl::OUString> GetPropertyNames();
85 : public:
86 : SwCursorConfig(SwMasterUsrPref& rParent);
87 : ~SwCursorConfig();
88 :
89 : virtual void Commit();
90 : virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
91 : void Load();
92 0 : void SetModified(){ConfigItem::SetModified();}
93 : };
94 :
95 : class SwWebColorConfig : public utl::ConfigItem
96 : {
97 : SwMasterUsrPref& rParent;
98 : com::sun::star::uno::Sequence<rtl::OUString> aPropNames;
99 :
100 : public:
101 : SwWebColorConfig(SwMasterUsrPref& rParent);
102 : ~SwWebColorConfig();
103 :
104 : virtual void Commit();
105 : virtual void Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
106 : void Load();
107 0 : void SetModified(){ConfigItem::SetModified();}
108 : };
109 :
110 : class SwMasterUsrPref : public SwViewOption
111 : {
112 : friend class SwContentViewConfig;
113 : friend class SwLayoutViewConfig;
114 : friend class SwGridConfig;
115 : friend class SwCursorConfig;
116 : friend class SwWebColorConfig;
117 :
118 : SwFldUpdateFlags eFldUpdateFlags; //udpate of fields and charts
119 : sal_Int32 nLinkUpdateMode;
120 : FieldUnit eUserMetric;
121 : FieldUnit eHScrollMetric;
122 : sal_Bool bIsHScrollMetricSet;
123 : FieldUnit eVScrollMetric;
124 : sal_Bool bIsVScrollMetricSet;
125 :
126 : sal_Int32 nDefTab; //default tab stop distance
127 :
128 : sal_Bool bIsSquaredPageMode; //default page mode for text grid
129 : sal_Bool bIsAlignMathObjectsToBaseline;
130 :
131 : SwContentViewConfig aContentConfig;
132 : SwLayoutViewConfig aLayoutConfig;
133 : SwGridConfig aGridConfig;
134 : SwCursorConfig aCursorConfig;
135 : SwWebColorConfig* pWebColorConfig;
136 :
137 : sal_Bool bApplyCharUnit; // apply_char_unit
138 : public:
139 : SwMasterUsrPref(sal_Bool bWeb);
140 : ~SwMasterUsrPref();
141 :
142 : void SetUsrPref(const SwViewOption &rCopy);
143 :
144 : void Commit()
145 : {
146 : aContentConfig.Commit();
147 : aLayoutConfig.Commit();
148 : aGridConfig.Commit();
149 : aCursorConfig.Commit();
150 : if(pWebColorConfig)
151 : pWebColorConfig->Commit();
152 : }
153 0 : void SetModified()
154 : {
155 0 : aContentConfig.SetModified();
156 0 : aLayoutConfig.SetModified();
157 0 : aGridConfig.SetModified();
158 0 : aCursorConfig.SetModified();
159 0 : if(pWebColorConfig)
160 0 : pWebColorConfig->SetModified();
161 0 : }
162 :
163 20 : void SetUpdateLinkMode(sal_Int32 nSet, sal_Bool bNoModify = sal_False)
164 : {
165 20 : nLinkUpdateMode = nSet;
166 20 : if(!bNoModify)
167 0 : aContentConfig.SetModified();
168 20 : }
169 249 : sal_Int32 GetUpdateLinkMode() const {return nLinkUpdateMode; }
170 :
171 20 : void SetUpdateFields(sal_Bool bSet, sal_Bool bNoModify = sal_False)
172 : {
173 20 : if(bSet && eFldUpdateFlags == AUTOUPD_OFF)
174 : {
175 10 : eFldUpdateFlags = AUTOUPD_FIELD_ONLY;
176 20 : if(!bNoModify)
177 0 : aContentConfig.SetModified();
178 : }
179 10 : else if(!bSet)
180 : {
181 0 : eFldUpdateFlags = AUTOUPD_OFF;
182 0 : if(!bNoModify)
183 0 : aContentConfig.SetModified();
184 : }
185 20 : };
186 0 : sal_Bool IsUpdateFields()const {return eFldUpdateFlags != AUTOUPD_OFF; }
187 :
188 106 : SwFldUpdateFlags GetFldUpdateFlags()const {return eFldUpdateFlags;}
189 0 : void SetFldUpdateFlags(SwFldUpdateFlags eSet, sal_Bool bNoModify = sal_False)
190 : {
191 0 : eFldUpdateFlags = eSet;
192 0 : if(!bNoModify)
193 0 : aContentConfig.SetModified();
194 0 : }
195 :
196 20 : void SetUpdateCharts(sal_Bool bSet, sal_Bool bNoModify = sal_False)
197 : {
198 20 : if(bSet)
199 : {
200 20 : eFldUpdateFlags = AUTOUPD_FIELD_AND_CHARTS;
201 20 : if(!bNoModify)
202 0 : aContentConfig.SetModified();
203 : }
204 0 : else if(eFldUpdateFlags == AUTOUPD_FIELD_AND_CHARTS)
205 : {
206 0 : eFldUpdateFlags = AUTOUPD_FIELD_ONLY;
207 0 : if(!bNoModify)
208 0 : aContentConfig.SetModified();
209 : }
210 20 : };
211 0 : sal_Bool IsUpdateCharts()const {return eFldUpdateFlags == AUTOUPD_FIELD_AND_CHARTS; }
212 :
213 8 : FieldUnit GetMetric() const { return eUserMetric;}
214 0 : void SetMetric(FieldUnit eSet, sal_Bool bNoModify = sal_False)
215 : {
216 0 : eUserMetric = eSet;
217 0 : if(!bNoModify)
218 0 : aLayoutConfig.SetModified();
219 0 : }
220 :
221 0 : sal_Bool IsHScrollMetric()const {return bIsHScrollMetricSet;}
222 236 : FieldUnit GetHScrollMetric() const { return bIsHScrollMetricSet ? eHScrollMetric : eUserMetric;}
223 0 : void SetHScrollMetric(FieldUnit eSet, sal_Bool bNoModify = sal_False)
224 : {
225 0 : eHScrollMetric = eSet; bIsHScrollMetricSet = sal_True;
226 0 : if(!bNoModify)
227 0 : aLayoutConfig.SetModified();
228 0 : }
229 :
230 0 : sal_Bool IsVScrollMetric()const {return bIsVScrollMetricSet;}
231 236 : FieldUnit GetVScrollMetric() const { return bIsVScrollMetricSet ? eVScrollMetric : eUserMetric;}
232 0 : void SetVScrollMetric(FieldUnit eSet, sal_Bool bNoModify = sal_False)
233 : {
234 0 : eVScrollMetric = eSet; bIsVScrollMetricSet = sal_True;
235 0 : if(!bNoModify)
236 0 : aLayoutConfig.SetModified();
237 0 : }
238 :
239 0 : sal_Bool IsApplyCharUnit() const
240 : {
241 0 : return bApplyCharUnit;
242 : }
243 10 : void SetApplyCharUnit(sal_Bool bSet, sal_Bool bNoModify = sal_False)
244 : {
245 10 : bApplyCharUnit = bSet;
246 10 : if(!bNoModify)
247 10 : aLayoutConfig.SetModified();
248 10 : }
249 :
250 257 : sal_Int32 GetDefTab() const { return nDefTab;}
251 10 : void SetDefTab( sal_Int32 nSet, sal_Bool bNoModify = sal_False )
252 : {
253 10 : nDefTab = nSet;
254 10 : if(!bNoModify)
255 0 : aLayoutConfig.SetModified();
256 10 : }
257 :
258 : //default page mode for text grid
259 257 : sal_Bool IsSquaredPageMode() const {return bIsSquaredPageMode;}
260 10 : void SetDefaultPageMode( sal_Bool bVal, sal_Bool bNoModify = sal_False )
261 : {
262 10 : bIsSquaredPageMode = bVal;
263 10 : if(!bNoModify)
264 0 : aLayoutConfig.SetModified();
265 10 : }
266 :
267 257 : sal_Bool IsAlignMathObjectsToBaseline() const { return bIsAlignMathObjectsToBaseline; }
268 10 : void SetAlignMathObjectsToBaseline( sal_Bool bVal, sal_Bool bNoModify = sal_False )
269 : {
270 10 : bIsAlignMathObjectsToBaseline = bVal;
271 10 : if(!bNoModify)
272 10 : aLayoutConfig.SetModified();
273 10 : }
274 : };
275 :
276 : #endif
277 :
278 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|