xref: /aoo4110/main/sw/source/ui/config/usrpref.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski #include <tools/stream.hxx>
29*b1cdbd2cSJim Jagielski #include <unotools/syslocale.hxx>
30*b1cdbd2cSJim Jagielski 
31*b1cdbd2cSJim Jagielski #include "swtypes.hxx"
32*b1cdbd2cSJim Jagielski #include "hintids.hxx"
33*b1cdbd2cSJim Jagielski #include "uitool.hxx"
34*b1cdbd2cSJim Jagielski #include "usrpref.hxx"
35*b1cdbd2cSJim Jagielski #include "crstate.hxx"
36*b1cdbd2cSJim Jagielski #include <linguistic/lngprops.hxx>
37*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp>
38*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Any.hxx>
39*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Sequence.hxx>
40*b1cdbd2cSJim Jagielski #include <unotools/localedatawrapper.hxx>
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski #include <unomid.h>
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski using namespace utl;
45*b1cdbd2cSJim Jagielski using namespace rtl;
46*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
47*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno;
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski 
SetUsrPref(const SwViewOption & rCopy)50*b1cdbd2cSJim Jagielski void SwMasterUsrPref::SetUsrPref(const SwViewOption &rCopy)
51*b1cdbd2cSJim Jagielski {
52*b1cdbd2cSJim Jagielski 	*((SwViewOption*)this) = rCopy;
53*b1cdbd2cSJim Jagielski }
54*b1cdbd2cSJim Jagielski 
SwMasterUsrPref(sal_Bool bWeb)55*b1cdbd2cSJim Jagielski SwMasterUsrPref::SwMasterUsrPref(sal_Bool bWeb) :
56*b1cdbd2cSJim Jagielski     eFldUpdateFlags(AUTOUPD_OFF),
57*b1cdbd2cSJim Jagielski     nLinkUpdateMode(0),
58*b1cdbd2cSJim Jagielski     bIsHScrollMetricSet(sal_False),
59*b1cdbd2cSJim Jagielski     bIsVScrollMetricSet(sal_False),
60*b1cdbd2cSJim Jagielski     nDefTab( MM50 * 4 ),
61*b1cdbd2cSJim Jagielski     bIsSquaredPageMode(sal_False),
62*b1cdbd2cSJim Jagielski     aContentConfig(bWeb, *this),
63*b1cdbd2cSJim Jagielski     aLayoutConfig(bWeb, *this),
64*b1cdbd2cSJim Jagielski     aGridConfig(bWeb, *this),
65*b1cdbd2cSJim Jagielski     aCursorConfig(*this),
66*b1cdbd2cSJim Jagielski     pWebColorConfig(bWeb ? new SwWebColorConfig(*this) : 0)
67*b1cdbd2cSJim Jagielski {
68*b1cdbd2cSJim Jagielski     MeasurementSystem eSystem = SvtSysLocale().GetLocaleData().getMeasurementSystemEnum();
69*b1cdbd2cSJim Jagielski     eUserMetric = MEASURE_METRIC == eSystem ? FUNIT_CM : FUNIT_INCH;
70*b1cdbd2cSJim Jagielski     eHScrollMetric = eUserMetric;
71*b1cdbd2cSJim Jagielski     eVScrollMetric = eUserMetric;
72*b1cdbd2cSJim Jagielski 
73*b1cdbd2cSJim Jagielski     aContentConfig.Load();
74*b1cdbd2cSJim Jagielski 	aLayoutConfig.Load();
75*b1cdbd2cSJim Jagielski 	aGridConfig.Load();
76*b1cdbd2cSJim Jagielski 	aCursorConfig.Load();
77*b1cdbd2cSJim Jagielski 	if(pWebColorConfig)
78*b1cdbd2cSJim Jagielski 		pWebColorConfig->Load();
79*b1cdbd2cSJim Jagielski }
80*b1cdbd2cSJim Jagielski /* -----------------------------13.02.01 09:48--------------------------------
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
~SwMasterUsrPref()83*b1cdbd2cSJim Jagielski SwMasterUsrPref::~SwMasterUsrPref()
84*b1cdbd2cSJim Jagielski {
85*b1cdbd2cSJim Jagielski 	delete pWebColorConfig;
86*b1cdbd2cSJim Jagielski }
87*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:32---------------------------------------------------
88*b1cdbd2cSJim Jagielski 
89*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
GetPropertyNames()90*b1cdbd2cSJim Jagielski Sequence<OUString> SwContentViewConfig::GetPropertyNames()
91*b1cdbd2cSJim Jagielski {
92*b1cdbd2cSJim Jagielski 	static const char* aPropNames[] =
93*b1cdbd2cSJim Jagielski 	{
94*b1cdbd2cSJim Jagielski 		"Display/GraphicObject",   					// 	0
95*b1cdbd2cSJim Jagielski 		"Display/Table",							//  1
96*b1cdbd2cSJim Jagielski 		"Display/DrawingControl",  					//  2
97*b1cdbd2cSJim Jagielski 		"Display/FieldCode",	   					//  3
98*b1cdbd2cSJim Jagielski 		"Display/Note",								//  4
99*b1cdbd2cSJim Jagielski         "Display/ShowContentTips",                      //  5
100*b1cdbd2cSJim Jagielski         "NonprintingCharacter/MetaCharacters",     //   6
101*b1cdbd2cSJim Jagielski         "NonprintingCharacter/ParagraphEnd",        //  7
102*b1cdbd2cSJim Jagielski         "NonprintingCharacter/OptionalHyphen",      //  8
103*b1cdbd2cSJim Jagielski         "NonprintingCharacter/Space",               //  9
104*b1cdbd2cSJim Jagielski         "NonprintingCharacter/Break",               // 10
105*b1cdbd2cSJim Jagielski         "NonprintingCharacter/ProtectedSpace",      // 11
106*b1cdbd2cSJim Jagielski             "NonprintingCharacter/Tab",             // 12 //not in Writer/Web
107*b1cdbd2cSJim Jagielski             "NonprintingCharacter/HiddenText",      // 13
108*b1cdbd2cSJim Jagielski             "NonprintingCharacter/HiddenParagraph", // 14
109*b1cdbd2cSJim Jagielski             "NonprintingCharacter/HiddenCharacter",      // 15
110*b1cdbd2cSJim Jagielski             "Update/Link",                          // 16
111*b1cdbd2cSJim Jagielski             "Update/Field",                         // 17
112*b1cdbd2cSJim Jagielski             "Update/Chart"                          // 18
113*b1cdbd2cSJim Jagielski 
114*b1cdbd2cSJim Jagielski 
115*b1cdbd2cSJim Jagielski 	};
116*b1cdbd2cSJim Jagielski     const int nCount = bWeb ? 12 : 19;
117*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames(nCount);
118*b1cdbd2cSJim Jagielski 	OUString* pNames = aNames.getArray();
119*b1cdbd2cSJim Jagielski 	for(int i = 0; i < nCount; i++)
120*b1cdbd2cSJim Jagielski 	{
121*b1cdbd2cSJim Jagielski 		pNames[i] = OUString::createFromAscii(aPropNames[i]);
122*b1cdbd2cSJim Jagielski 	}
123*b1cdbd2cSJim Jagielski 	return aNames;
124*b1cdbd2cSJim Jagielski }
125*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:33---------------------------------------------------
126*b1cdbd2cSJim Jagielski 
127*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
SwContentViewConfig(sal_Bool bIsWeb,SwMasterUsrPref & rPar)128*b1cdbd2cSJim Jagielski SwContentViewConfig::SwContentViewConfig(sal_Bool bIsWeb, SwMasterUsrPref& rPar) :
129*b1cdbd2cSJim Jagielski     ConfigItem(bIsWeb ? C2U("Office.WriterWeb/Content") :  C2U("Office.Writer/Content")),
130*b1cdbd2cSJim Jagielski 	rParent(rPar),
131*b1cdbd2cSJim Jagielski 	bWeb(bIsWeb)
132*b1cdbd2cSJim Jagielski {
133*b1cdbd2cSJim Jagielski 	Load();
134*b1cdbd2cSJim Jagielski     EnableNotification( GetPropertyNames() );
135*b1cdbd2cSJim Jagielski }
136*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:33---------------------------------------------------
137*b1cdbd2cSJim Jagielski 
138*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
~SwContentViewConfig()139*b1cdbd2cSJim Jagielski SwContentViewConfig::~SwContentViewConfig()
140*b1cdbd2cSJim Jagielski {
141*b1cdbd2cSJim Jagielski }
142*b1cdbd2cSJim Jagielski /*-- 09.02.07 09:55:33---------------------------------------------------
143*b1cdbd2cSJim Jagielski 
144*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
Notify(const Sequence<OUString> &)145*b1cdbd2cSJim Jagielski void SwContentViewConfig::Notify( const Sequence< OUString > & /*rPropertyNames*/ )
146*b1cdbd2cSJim Jagielski {
147*b1cdbd2cSJim Jagielski     Load();
148*b1cdbd2cSJim Jagielski }
149*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:33---------------------------------------------------
150*b1cdbd2cSJim Jagielski 
151*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
Commit()152*b1cdbd2cSJim Jagielski void SwContentViewConfig::Commit()
153*b1cdbd2cSJim Jagielski {
154*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames = GetPropertyNames();
155*b1cdbd2cSJim Jagielski 
156*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues(aNames.getLength());
157*b1cdbd2cSJim Jagielski 	Any* pValues = aValues.getArray();
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski 	for(int nProp = 0; nProp < aNames.getLength(); nProp++)
160*b1cdbd2cSJim Jagielski 	{
161*b1cdbd2cSJim Jagielski 		sal_Bool bVal = sal_False;
162*b1cdbd2cSJim Jagielski 		switch(nProp)
163*b1cdbd2cSJim Jagielski 		{
164*b1cdbd2cSJim Jagielski 			case  0: bVal = rParent.IsGraphic();	break;// "Display/GraphicObject",
165*b1cdbd2cSJim Jagielski 			case  1: bVal = rParent.IsTable();	break;// "Display/Table",
166*b1cdbd2cSJim Jagielski 			case  2: bVal = rParent.IsDraw();    	break;// "Display/DrawingControl",
167*b1cdbd2cSJim Jagielski 			case  3: bVal = rParent.IsFldName(); 	break;// "Display/FieldCode",
168*b1cdbd2cSJim Jagielski 			case  4: bVal = rParent.IsPostIts(); 	break;// "Display/Note",
169*b1cdbd2cSJim Jagielski             case  5: bVal = rParent.IsShowContentTips(); break; // "Display/ShowContentTips"
170*b1cdbd2cSJim Jagielski             case  6: bVal = rParent.IsViewMetaChars(); break; //"NonprintingCharacter/MetaCharacters"
171*b1cdbd2cSJim Jagielski             case  7: bVal = rParent.IsParagraph(sal_True); break;// "NonprintingCharacter/ParagraphEnd",
172*b1cdbd2cSJim Jagielski             case  8: bVal = rParent.IsSoftHyph(); break;// "NonprintingCharacter/OptionalHyphen",
173*b1cdbd2cSJim Jagielski             case  9: bVal = rParent.IsBlank(sal_True);  break;// "NonprintingCharacter/Space",
174*b1cdbd2cSJim Jagielski             case 10: bVal = rParent.IsLineBreak(sal_True);break;// "NonprintingCharacter/Break",
175*b1cdbd2cSJim Jagielski             case 11: bVal = rParent.IsHardBlank(); break;// "NonprintingCharacter/ProtectedSpace",
176*b1cdbd2cSJim Jagielski             case 12: bVal = rParent.IsTab(sal_True);        break;// "NonprintingCharacter/Tab",
177*b1cdbd2cSJim Jagielski             case 13: bVal = rParent.IsShowHiddenField(); break;// "NonprintingCharacter/Fields: HiddenText",
178*b1cdbd2cSJim Jagielski             case 14: bVal = rParent.IsShowHiddenPara(); break;// "NonprintingCharacter/Fields: HiddenParagraph",
179*b1cdbd2cSJim Jagielski             case 15: bVal = rParent.IsShowHiddenChar(sal_True);    break;// "NonprintingCharacter/HiddenCharacter",
180*b1cdbd2cSJim Jagielski             case 16: pValues[nProp] <<= rParent.GetUpdateLinkMode();    break;// "Update/Link",
181*b1cdbd2cSJim Jagielski             case 17: bVal = rParent.IsUpdateFields(); break;// "Update/Field",
182*b1cdbd2cSJim Jagielski             case 18: bVal = rParent.IsUpdateCharts(); break;// "Update/Chart"
183*b1cdbd2cSJim Jagielski         }
184*b1cdbd2cSJim Jagielski         if(nProp != 16)
185*b1cdbd2cSJim Jagielski 			pValues[nProp].setValue(&bVal, ::getBooleanCppuType());
186*b1cdbd2cSJim Jagielski 	}
187*b1cdbd2cSJim Jagielski 	PutProperties(aNames, aValues);
188*b1cdbd2cSJim Jagielski }
189*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:34---------------------------------------------------
190*b1cdbd2cSJim Jagielski 
191*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
Load()192*b1cdbd2cSJim Jagielski void SwContentViewConfig::Load()
193*b1cdbd2cSJim Jagielski {
194*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames = GetPropertyNames();
195*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues = GetProperties(aNames);
196*b1cdbd2cSJim Jagielski 	const Any* pValues = aValues.getConstArray();
197*b1cdbd2cSJim Jagielski 	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed");
198*b1cdbd2cSJim Jagielski 	if(aValues.getLength() == aNames.getLength())
199*b1cdbd2cSJim Jagielski 	{
200*b1cdbd2cSJim Jagielski 		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
201*b1cdbd2cSJim Jagielski 		{
202*b1cdbd2cSJim Jagielski 			if(pValues[nProp].hasValue())
203*b1cdbd2cSJim Jagielski 			{
204*b1cdbd2cSJim Jagielski                 sal_Bool bSet = nProp != 16 ? *(sal_Bool*)pValues[nProp].getValue() : sal_False;
205*b1cdbd2cSJim Jagielski 				switch(nProp)
206*b1cdbd2cSJim Jagielski 				{
207*b1cdbd2cSJim Jagielski 					case  0: rParent.SetGraphic(bSet);	break;// "Display/GraphicObject",
208*b1cdbd2cSJim Jagielski 					case  1: rParent.SetTable(bSet);	break;// "Display/Table",
209*b1cdbd2cSJim Jagielski 					case  2: rParent.SetDraw(bSet);    	break;// "Display/DrawingControl",
210*b1cdbd2cSJim Jagielski 					case  3: rParent.SetFldName(bSet); 	break;// "Display/FieldCode",
211*b1cdbd2cSJim Jagielski 					case  4: rParent.SetPostIts(bSet); 	break;// "Display/Note",
212*b1cdbd2cSJim Jagielski                     case  5: rParent.SetShowContentTips(bSet);  break;// "Display/ShowContentTips",
213*b1cdbd2cSJim Jagielski                     case  6: rParent.SetViewMetaChars(bSet); break; //"NonprintingCharacter/MetaCharacters"
214*b1cdbd2cSJim Jagielski                     case  7: rParent.SetParagraph(bSet); break;// "NonprintingCharacter/ParagraphEnd",
215*b1cdbd2cSJim Jagielski                     case  8: rParent.SetSoftHyph(bSet); break;// "NonprintingCharacter/OptionalHyphen",
216*b1cdbd2cSJim Jagielski                     case  9: rParent.SetBlank(bSet);    break;// "NonprintingCharacter/Space",
217*b1cdbd2cSJim Jagielski                     case 10: rParent.SetLineBreak(bSet);break;// "NonprintingCharacter/Break",
218*b1cdbd2cSJim Jagielski                     case 11: rParent.SetHardBlank(bSet); break;// "NonprintingCharacter/ProtectedSpace",
219*b1cdbd2cSJim Jagielski                     case 12: rParent.SetTab(bSet);      break;// "NonprintingCharacter/Tab",
220*b1cdbd2cSJim Jagielski                     case 13: rParent.SetShowHiddenField(bSet);   break;// "NonprintingCharacter/Fields: HiddenText",
221*b1cdbd2cSJim Jagielski                     case 14: rParent.SetShowHiddenPara(bSet); break;// "NonprintingCharacter/Fields: HiddenParagraph",
222*b1cdbd2cSJim Jagielski                     case 15: rParent.SetShowHiddenChar(bSet); break;// "NonprintingCharacter/HiddenCharacter",
223*b1cdbd2cSJim Jagielski                     case 16:
224*b1cdbd2cSJim Jagielski                     {
225*b1cdbd2cSJim Jagielski 						sal_Int32 nSet = 0;
226*b1cdbd2cSJim Jagielski 						pValues[nProp] >>= nSet;
227*b1cdbd2cSJim Jagielski                         rParent.SetUpdateLinkMode(nSet, sal_True);
228*b1cdbd2cSJim Jagielski 					}
229*b1cdbd2cSJim Jagielski 					break;// "Update/Link",
230*b1cdbd2cSJim Jagielski                     case 17: rParent.SetUpdateFields(bSet, sal_True); break;// "Update/Field",
231*b1cdbd2cSJim Jagielski                     case 18: rParent.SetUpdateCharts(bSet, sal_True); break;// "Update/Chart"
232*b1cdbd2cSJim Jagielski 				}
233*b1cdbd2cSJim Jagielski 			}
234*b1cdbd2cSJim Jagielski 		}
235*b1cdbd2cSJim Jagielski 	}
236*b1cdbd2cSJim Jagielski }
237*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:34---------------------------------------------------
238*b1cdbd2cSJim Jagielski 
239*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
GetPropertyNames()240*b1cdbd2cSJim Jagielski Sequence<OUString> SwLayoutViewConfig::GetPropertyNames()
241*b1cdbd2cSJim Jagielski {
242*b1cdbd2cSJim Jagielski 	static const char* aPropNames[] =
243*b1cdbd2cSJim Jagielski 	{
244*b1cdbd2cSJim Jagielski         "Line/Guide",                           // 0
245*b1cdbd2cSJim Jagielski         "Line/SimpleControlPoint",              // 1
246*b1cdbd2cSJim Jagielski         "Line/LargeControlPoint",               // 2
247*b1cdbd2cSJim Jagielski         "Window/HorizontalScroll",              // 3
248*b1cdbd2cSJim Jagielski         "Window/VerticalScroll",                // 4
249*b1cdbd2cSJim Jagielski         "Window/ShowRulers",                    // 5
250*b1cdbd2cSJim Jagielski         "Window/HorizontalRuler",               // 6
251*b1cdbd2cSJim Jagielski         "Window/VerticalRuler",                 // 7
252*b1cdbd2cSJim Jagielski         "Window/HorizontalRulerUnit",           // 8
253*b1cdbd2cSJim Jagielski         "Window/VerticalRulerUnit",             // 9
254*b1cdbd2cSJim Jagielski         "Window/SmoothScroll",                  //10
255*b1cdbd2cSJim Jagielski         "Zoom/Value",                           //11
256*b1cdbd2cSJim Jagielski         "Zoom/Type",                            //12
257*b1cdbd2cSJim Jagielski         "Other/IsAlignMathObjectsToBaseline",   //13
258*b1cdbd2cSJim Jagielski         "Other/MeasureUnit",                    //14
259*b1cdbd2cSJim Jagielski         // below properties are not available in WriterWeb
260*b1cdbd2cSJim Jagielski         "Other/TabStop",                        //15
261*b1cdbd2cSJim Jagielski         "Window/IsVerticalRulerRight",          //16
262*b1cdbd2cSJim Jagielski         "ViewLayout/Columns",                   //17
263*b1cdbd2cSJim Jagielski         "ViewLayout/BookMode",                  //18
264*b1cdbd2cSJim Jagielski         "Other/IsSquaredPageMode",              //19
265*b1cdbd2cSJim Jagielski         "Window/ShowScrollBarTips"              //20
266*b1cdbd2cSJim Jagielski     };
267*b1cdbd2cSJim Jagielski     const int nCount = bWeb ? 15 : 21;
268*b1cdbd2cSJim Jagielski     Sequence<OUString> aNames(nCount);
269*b1cdbd2cSJim Jagielski 	OUString* pNames = aNames.getArray();
270*b1cdbd2cSJim Jagielski 	for(int i = 0; i < nCount; i++)
271*b1cdbd2cSJim Jagielski 	{
272*b1cdbd2cSJim Jagielski 		pNames[i] = OUString::createFromAscii(aPropNames[i]);
273*b1cdbd2cSJim Jagielski 	}
274*b1cdbd2cSJim Jagielski 	return aNames;
275*b1cdbd2cSJim Jagielski }
276*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:34---------------------------------------------------
277*b1cdbd2cSJim Jagielski 
278*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
SwLayoutViewConfig(sal_Bool bIsWeb,SwMasterUsrPref & rPar)279*b1cdbd2cSJim Jagielski SwLayoutViewConfig::SwLayoutViewConfig(sal_Bool bIsWeb, SwMasterUsrPref& rPar) :
280*b1cdbd2cSJim Jagielski     ConfigItem(bIsWeb ? C2U("Office.WriterWeb/Layout") :  C2U("Office.Writer/Layout"),
281*b1cdbd2cSJim Jagielski         CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE),
282*b1cdbd2cSJim Jagielski 	rParent(rPar),
283*b1cdbd2cSJim Jagielski 	bWeb(bIsWeb)
284*b1cdbd2cSJim Jagielski {
285*b1cdbd2cSJim Jagielski }
286*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:35---------------------------------------------------
287*b1cdbd2cSJim Jagielski 
288*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
~SwLayoutViewConfig()289*b1cdbd2cSJim Jagielski SwLayoutViewConfig::~SwLayoutViewConfig()
290*b1cdbd2cSJim Jagielski {
291*b1cdbd2cSJim Jagielski }
292*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:36---------------------------------------------------
293*b1cdbd2cSJim Jagielski 
294*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
Commit()295*b1cdbd2cSJim Jagielski void SwLayoutViewConfig::Commit()
296*b1cdbd2cSJim Jagielski {
297*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames = GetPropertyNames();
298*b1cdbd2cSJim Jagielski 
299*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues(aNames.getLength());
300*b1cdbd2cSJim Jagielski 	Any* pValues = aValues.getArray();
301*b1cdbd2cSJim Jagielski 
302*b1cdbd2cSJim Jagielski 	for(int nProp = 0; nProp < aNames.getLength(); nProp++)
303*b1cdbd2cSJim Jagielski 	{
304*b1cdbd2cSJim Jagielski         Any &rVal = pValues[nProp];
305*b1cdbd2cSJim Jagielski 		switch(nProp)
306*b1cdbd2cSJim Jagielski 		{
307*b1cdbd2cSJim Jagielski             case  0: rVal <<= (sal_Bool) rParent.IsCrossHair(); break;              // "Line/Guide",
308*b1cdbd2cSJim Jagielski             case  1: rVal <<= (sal_Bool) rParent.IsSolidMarkHdl(); break;           // "Line/SimpleControlPoint",
309*b1cdbd2cSJim Jagielski             case  2: rVal <<= (sal_Bool) rParent.IsBigMarkHdl(); break;             // "Line/LargeControlPoint",
310*b1cdbd2cSJim Jagielski             case  3: rVal <<= (sal_Bool) rParent.IsViewHScrollBar(); break;         // "Window/HorizontalScroll",
311*b1cdbd2cSJim Jagielski             case  4: rVal <<= (sal_Bool) rParent.IsViewVScrollBar(); break;         // "Window/VerticalScroll",
312*b1cdbd2cSJim Jagielski             case  5: rVal <<= (sal_Bool) rParent.IsViewAnyRuler(); break;           // "Window/ShowRulers"
313*b1cdbd2cSJim Jagielski             // #i14593# use IsView*Ruler(sal_True) instead of IsView*Ruler()
314*b1cdbd2cSJim Jagielski             // this preserves the single ruler states even if "Window/ShowRulers" is off
315*b1cdbd2cSJim Jagielski             case  6: rVal <<= (sal_Bool) rParent.IsViewHRuler(sal_True); break;         // "Window/HorizontalRuler",
316*b1cdbd2cSJim Jagielski             case  7: rVal <<= (sal_Bool) rParent.IsViewVRuler(sal_True); break;         // "Window/VerticalRuler",
317*b1cdbd2cSJim Jagielski             case  8:
318*b1cdbd2cSJim Jagielski                 if(rParent.bIsHScrollMetricSet)
319*b1cdbd2cSJim Jagielski                     rVal <<= (sal_Int32)rParent.eHScrollMetric;                     // "Window/HorizontalRulerUnit"
320*b1cdbd2cSJim Jagielski             break;
321*b1cdbd2cSJim Jagielski             case  9:
322*b1cdbd2cSJim Jagielski                 if(rParent.bIsVScrollMetricSet)
323*b1cdbd2cSJim Jagielski                     rVal <<= (sal_Int32)rParent.eVScrollMetric;                     // "Window/VerticalRulerUnit"
324*b1cdbd2cSJim Jagielski             break;
325*b1cdbd2cSJim Jagielski             case 10: rVal <<= (sal_Bool) rParent.IsSmoothScroll(); break;           // "Window/SmoothScroll",
326*b1cdbd2cSJim Jagielski             case 11: rVal <<= (sal_Int32)rParent.GetZoom(); break;                  // "Zoom/Value",
327*b1cdbd2cSJim Jagielski             case 12: rVal <<= (sal_Int32)rParent.GetZoomType(); break;              // "Zoom/Type",
328*b1cdbd2cSJim Jagielski             case 13: rVal <<= (sal_Bool) rParent.IsAlignMathObjectsToBaseline(); break;      // "Other/IsAlignMathObjectsToBaseline"
329*b1cdbd2cSJim Jagielski             case 14: rVal <<= (sal_Int32)rParent.GetMetric(); break;                // "Other/MeasureUnit",
330*b1cdbd2cSJim Jagielski             case 15: rVal <<= static_cast<sal_Int32>(TWIP_TO_MM100(rParent.GetDefTab())); break;// "Other/TabStop",
331*b1cdbd2cSJim Jagielski             case 16: rVal <<= (sal_Bool) rParent.IsVRulerRight(); break;            // "Window/IsVerticalRulerRight",
332*b1cdbd2cSJim Jagielski             case 17: rVal <<= (sal_Int32)rParent.GetViewLayoutColumns(); break;     // "ViewLayout/Columns",
333*b1cdbd2cSJim Jagielski             case 18: rVal <<= (sal_Bool) rParent.IsViewLayoutBookMode(); break;     // "ViewLayout/BookMode",
334*b1cdbd2cSJim Jagielski             case 19: rVal <<= (sal_Bool) rParent.IsSquaredPageMode(); break;        // "Other/IsSquaredPageMode",
335*b1cdbd2cSJim Jagielski             case 20: rVal <<= (sal_Bool) rParent.IsShowScrollBarTips(); break;      // "Window/ShowScrollBarTips",
336*b1cdbd2cSJim Jagielski         }
337*b1cdbd2cSJim Jagielski 	}
338*b1cdbd2cSJim Jagielski 	PutProperties(aNames, aValues);
339*b1cdbd2cSJim Jagielski }
340*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:36---------------------------------------------------
341*b1cdbd2cSJim Jagielski 
342*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
Load()343*b1cdbd2cSJim Jagielski void SwLayoutViewConfig::Load()
344*b1cdbd2cSJim Jagielski {
345*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames = GetPropertyNames();
346*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues = GetProperties(aNames);
347*b1cdbd2cSJim Jagielski 	const Any* pValues = aValues.getConstArray();
348*b1cdbd2cSJim Jagielski 	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed");
349*b1cdbd2cSJim Jagielski 	if(aValues.getLength() == aNames.getLength())
350*b1cdbd2cSJim Jagielski 	{
351*b1cdbd2cSJim Jagielski 		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
352*b1cdbd2cSJim Jagielski 		{
353*b1cdbd2cSJim Jagielski 			if(pValues[nProp].hasValue())
354*b1cdbd2cSJim Jagielski 			{
355*b1cdbd2cSJim Jagielski                 sal_Int32   nInt32Val   = 0;
356*b1cdbd2cSJim Jagielski                 sal_Bool    bSet        = sal_False;
357*b1cdbd2cSJim Jagielski                 pValues[nProp] >>= nInt32Val;
358*b1cdbd2cSJim Jagielski                 pValues[nProp] >>= bSet;
359*b1cdbd2cSJim Jagielski 
360*b1cdbd2cSJim Jagielski                 switch(nProp)
361*b1cdbd2cSJim Jagielski 				{
362*b1cdbd2cSJim Jagielski                     case  0: rParent.SetCrossHair(bSet); break;// "Line/Guide",
363*b1cdbd2cSJim Jagielski                     case  1: rParent.SetSolidMarkHdl(bSet); break;// "Line/SimpleControlPoint",
364*b1cdbd2cSJim Jagielski                     case  2: rParent.SetBigMarkHdl(bSet); break;// "Line/LargeControlPoint",
365*b1cdbd2cSJim Jagielski                     case  3: rParent.SetViewHScrollBar(bSet); break;// "Window/HorizontalScroll",
366*b1cdbd2cSJim Jagielski                     case  4: rParent.SetViewVScrollBar(bSet); break;// "Window/VerticalScroll",
367*b1cdbd2cSJim Jagielski                     case  5: rParent.SetViewAnyRuler(bSet);break; // "Window/ShowRulers"
368*b1cdbd2cSJim Jagielski                     case  6: rParent.SetViewHRuler(bSet); break;// "Window/HorizontalRuler",
369*b1cdbd2cSJim Jagielski                     case  7: rParent.SetViewVRuler(bSet); break;// "Window/VerticalRuler",
370*b1cdbd2cSJim Jagielski                     case  8:
371*b1cdbd2cSJim Jagielski                     {
372*b1cdbd2cSJim Jagielski                         rParent.bIsHScrollMetricSet = sal_True;
373*b1cdbd2cSJim Jagielski                         rParent.eHScrollMetric = ((FieldUnit)nInt32Val);  // "Window/HorizontalRulerUnit"
374*b1cdbd2cSJim Jagielski                     }
375*b1cdbd2cSJim Jagielski                     break;
376*b1cdbd2cSJim Jagielski                     case  9:
377*b1cdbd2cSJim Jagielski                     {
378*b1cdbd2cSJim Jagielski                         rParent.bIsVScrollMetricSet = sal_True;
379*b1cdbd2cSJim Jagielski                         rParent.eVScrollMetric = ((FieldUnit)nInt32Val); // "Window/VerticalRulerUnit"
380*b1cdbd2cSJim Jagielski                     }
381*b1cdbd2cSJim Jagielski                     break;
382*b1cdbd2cSJim Jagielski                     case 10: rParent.SetSmoothScroll(bSet); break;// "Window/SmoothScroll",
383*b1cdbd2cSJim Jagielski                     case 11: rParent.SetZoom( static_cast< sal_uInt16 >(nInt32Val) ); break;// "Zoom/Value",
384*b1cdbd2cSJim Jagielski                     case 12: rParent.SetZoomType( static_cast< SvxZoomType >(nInt32Val) ); break;// "Zoom/Type",
385*b1cdbd2cSJim Jagielski                     case 13: rParent.SetAlignMathObjectsToBaseline(bSet); break;// "Other/IsAlignMathObjectsToBaseline"
386*b1cdbd2cSJim Jagielski                     case 14: rParent.SetMetric((FieldUnit)nInt32Val, sal_True); break;// "Other/MeasureUnit",
387*b1cdbd2cSJim Jagielski                     case 15: rParent.SetDefTab(MM100_TO_TWIP(nInt32Val), sal_True); break;// "Other/TabStop",
388*b1cdbd2cSJim Jagielski                     case 16: rParent.SetVRulerRight(bSet); break;// "Window/IsVerticalRulerRight",
389*b1cdbd2cSJim Jagielski                     case 17: rParent.SetViewLayoutColumns( static_cast<sal_uInt16>(nInt32Val) ); break;// "ViewLayout/Columns",
390*b1cdbd2cSJim Jagielski                     case 18: rParent.SetViewLayoutBookMode(bSet); break;// "ViewLayout/BookMode",
391*b1cdbd2cSJim Jagielski                     case 19: rParent.SetDefaultPageMode(bSet,sal_True); break;// "Other/IsSquaredPageMode",
392*b1cdbd2cSJim Jagielski                     case 20: rParent.SetShowScrollBarTips(bSet); break;// "Window/ShowScrollBarTips",
393*b1cdbd2cSJim Jagielski                 }
394*b1cdbd2cSJim Jagielski 			}
395*b1cdbd2cSJim Jagielski 		}
396*b1cdbd2cSJim Jagielski 	}
397*b1cdbd2cSJim Jagielski }
398*b1cdbd2cSJim Jagielski 
Notify(const::com::sun::star::uno::Sequence<rtl::OUString> &)399*b1cdbd2cSJim Jagielski void SwLayoutViewConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
400*b1cdbd2cSJim Jagielski 
401*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
402*b1cdbd2cSJim Jagielski 
403*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
GetPropertyNames()404*b1cdbd2cSJim Jagielski Sequence<OUString> SwGridConfig::GetPropertyNames()
405*b1cdbd2cSJim Jagielski {
406*b1cdbd2cSJim Jagielski 	static const char* aPropNames[] =
407*b1cdbd2cSJim Jagielski 	{
408*b1cdbd2cSJim Jagielski 		"Option/SnapToGrid",			// 0
409*b1cdbd2cSJim Jagielski 		"Option/VisibleGrid",			// 1
410*b1cdbd2cSJim Jagielski 		"Option/Synchronize",			// 2
411*b1cdbd2cSJim Jagielski 		"Resolution/XAxis",				// 3
412*b1cdbd2cSJim Jagielski 		"Resolution/YAxis",				// 4
413*b1cdbd2cSJim Jagielski 		"Subdivision/XAxis",			// 5
414*b1cdbd2cSJim Jagielski 		"Subdivision/YAxis"				// 6
415*b1cdbd2cSJim Jagielski 	};
416*b1cdbd2cSJim Jagielski 	const int nCount = 7;
417*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames(nCount);
418*b1cdbd2cSJim Jagielski 	OUString* pNames = aNames.getArray();
419*b1cdbd2cSJim Jagielski 	for(int i = 0; i < nCount; i++)
420*b1cdbd2cSJim Jagielski 	{
421*b1cdbd2cSJim Jagielski 		pNames[i] = OUString::createFromAscii(aPropNames[i]);
422*b1cdbd2cSJim Jagielski 	}
423*b1cdbd2cSJim Jagielski 	return aNames;
424*b1cdbd2cSJim Jagielski }
425*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
426*b1cdbd2cSJim Jagielski 
427*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
SwGridConfig(sal_Bool bIsWeb,SwMasterUsrPref & rPar)428*b1cdbd2cSJim Jagielski SwGridConfig::SwGridConfig(sal_Bool bIsWeb, SwMasterUsrPref& rPar) :
429*b1cdbd2cSJim Jagielski     ConfigItem(bIsWeb ? C2U("Office.WriterWeb/Grid") :  C2U("Office.Writer/Grid"),
430*b1cdbd2cSJim Jagielski         CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE),
431*b1cdbd2cSJim Jagielski 	rParent(rPar),
432*b1cdbd2cSJim Jagielski 	bWeb(bIsWeb)
433*b1cdbd2cSJim Jagielski {
434*b1cdbd2cSJim Jagielski }
435*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
436*b1cdbd2cSJim Jagielski 
437*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
~SwGridConfig()438*b1cdbd2cSJim Jagielski SwGridConfig::~SwGridConfig()
439*b1cdbd2cSJim Jagielski {
440*b1cdbd2cSJim Jagielski }
441*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
442*b1cdbd2cSJim Jagielski 
443*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
Commit()444*b1cdbd2cSJim Jagielski void SwGridConfig::Commit()
445*b1cdbd2cSJim Jagielski {
446*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames = GetPropertyNames();
447*b1cdbd2cSJim Jagielski 
448*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues(aNames.getLength());
449*b1cdbd2cSJim Jagielski 	Any* pValues = aValues.getArray();
450*b1cdbd2cSJim Jagielski 
451*b1cdbd2cSJim Jagielski 	for(int nProp = 0; nProp < aNames.getLength(); nProp++)
452*b1cdbd2cSJim Jagielski 	{
453*b1cdbd2cSJim Jagielski 		sal_Bool bSet;
454*b1cdbd2cSJim Jagielski 		switch(nProp)
455*b1cdbd2cSJim Jagielski 		{
456*b1cdbd2cSJim Jagielski 			case  0: bSet = rParent.IsSnap(); break;// 		"Option/SnapToGrid",
457*b1cdbd2cSJim Jagielski 			case  1: bSet = rParent.IsGridVisible(); break;//"Option/VisibleGrid",
458*b1cdbd2cSJim Jagielski 			case  2: bSet = rParent.IsSynchronize(); break;//  "Option/Synchronize",
459*b1cdbd2cSJim Jagielski 			case  3: pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100(rParent.GetSnapSize().Width()); break;//      "Resolution/XAxis",
460*b1cdbd2cSJim Jagielski 			case  4: pValues[nProp] <<= (sal_Int32)TWIP_TO_MM100(rParent.GetSnapSize().Height()); break;//      "Resolution/YAxis",
461*b1cdbd2cSJim Jagielski 			case  5: pValues[nProp] <<= (sal_Int16)rParent.GetDivisionX(); break;//   "Subdivision/XAxis",
462*b1cdbd2cSJim Jagielski 			case  6: pValues[nProp] <<= (sal_Int16)rParent.GetDivisionY(); break;//   "Subdivision/YAxis"
463*b1cdbd2cSJim Jagielski 		}
464*b1cdbd2cSJim Jagielski 		if(nProp < 3)
465*b1cdbd2cSJim Jagielski   			pValues[nProp].setValue(&bSet, ::getBooleanCppuType());
466*b1cdbd2cSJim Jagielski 	}
467*b1cdbd2cSJim Jagielski 	PutProperties(aNames, aValues);
468*b1cdbd2cSJim Jagielski }
469*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
470*b1cdbd2cSJim Jagielski 
471*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
Load()472*b1cdbd2cSJim Jagielski void SwGridConfig::Load()
473*b1cdbd2cSJim Jagielski {
474*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames = GetPropertyNames();
475*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues = GetProperties(aNames);
476*b1cdbd2cSJim Jagielski 	const Any* pValues = aValues.getConstArray();
477*b1cdbd2cSJim Jagielski 	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed");
478*b1cdbd2cSJim Jagielski 	if(aValues.getLength() == aNames.getLength())
479*b1cdbd2cSJim Jagielski 	{
480*b1cdbd2cSJim Jagielski 		Size aSnap(rParent.GetSnapSize());
481*b1cdbd2cSJim Jagielski 		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
482*b1cdbd2cSJim Jagielski 		{
483*b1cdbd2cSJim Jagielski 			if(pValues[nProp].hasValue())
484*b1cdbd2cSJim Jagielski 			{
485*b1cdbd2cSJim Jagielski 				sal_Bool bSet = nProp < 3 ? *(sal_Bool*)pValues[nProp].getValue() : sal_False;
486*b1cdbd2cSJim Jagielski                 sal_Int32 nSet = 0;
487*b1cdbd2cSJim Jagielski 				if(nProp >= 3)
488*b1cdbd2cSJim Jagielski 					pValues[nProp] >>= nSet;
489*b1cdbd2cSJim Jagielski 				switch(nProp)
490*b1cdbd2cSJim Jagielski 				{
491*b1cdbd2cSJim Jagielski 					case  0: rParent.SetSnap(bSet); break;// 		"Option/SnapToGrid",
492*b1cdbd2cSJim Jagielski 					case  1: rParent.SetGridVisible(bSet); break;//"Option/VisibleGrid",
493*b1cdbd2cSJim Jagielski 					case  2: rParent.SetSynchronize(bSet); break;//  "Option/Synchronize",
494*b1cdbd2cSJim Jagielski 					case  3: aSnap.Width() = MM100_TO_TWIP(nSet); break;//      "Resolution/XAxis",
495*b1cdbd2cSJim Jagielski 					case  4: aSnap.Height() = MM100_TO_TWIP(nSet); break;//      "Resolution/YAxis",
496*b1cdbd2cSJim Jagielski                     case  5: rParent.SetDivisionX((short)nSet); break;//   "Subdivision/XAxis",
497*b1cdbd2cSJim Jagielski                     case  6: rParent.SetDivisionY((short)nSet); break;//   "Subdivision/YAxis"
498*b1cdbd2cSJim Jagielski 				}
499*b1cdbd2cSJim Jagielski 			}
500*b1cdbd2cSJim Jagielski 		}
501*b1cdbd2cSJim Jagielski 		rParent.SetSnapSize(aSnap);
502*b1cdbd2cSJim Jagielski 	}
503*b1cdbd2cSJim Jagielski }
504*b1cdbd2cSJim Jagielski 
Notify(const::com::sun::star::uno::Sequence<rtl::OUString> &)505*b1cdbd2cSJim Jagielski void SwGridConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
506*b1cdbd2cSJim Jagielski 
507*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
508*b1cdbd2cSJim Jagielski 
509*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
GetPropertyNames()510*b1cdbd2cSJim Jagielski Sequence<OUString> SwCursorConfig::GetPropertyNames()
511*b1cdbd2cSJim Jagielski {
512*b1cdbd2cSJim Jagielski 	static const char* aPropNames[] =
513*b1cdbd2cSJim Jagielski 	{
514*b1cdbd2cSJim Jagielski 		"DirectCursor/UseDirectCursor",	// 0
515*b1cdbd2cSJim Jagielski 		"DirectCursor/Insert",			// 1
516*b1cdbd2cSJim Jagielski         "Option/ProtectedArea"          // 2
517*b1cdbd2cSJim Jagielski 	};
518*b1cdbd2cSJim Jagielski     const int nCount = 3;
519*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames(nCount);
520*b1cdbd2cSJim Jagielski 	OUString* pNames = aNames.getArray();
521*b1cdbd2cSJim Jagielski 	for(int i = 0; i < nCount; i++)
522*b1cdbd2cSJim Jagielski 		pNames[i] = C2U(aPropNames[i]);
523*b1cdbd2cSJim Jagielski 	return aNames;
524*b1cdbd2cSJim Jagielski }
525*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
526*b1cdbd2cSJim Jagielski 
527*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
SwCursorConfig(SwMasterUsrPref & rPar)528*b1cdbd2cSJim Jagielski SwCursorConfig::SwCursorConfig(SwMasterUsrPref& rPar) :
529*b1cdbd2cSJim Jagielski     ConfigItem(C2U("Office.Writer/Cursor"),
530*b1cdbd2cSJim Jagielski         CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE),
531*b1cdbd2cSJim Jagielski 	rParent(rPar)
532*b1cdbd2cSJim Jagielski {
533*b1cdbd2cSJim Jagielski }
534*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
535*b1cdbd2cSJim Jagielski 
536*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
~SwCursorConfig()537*b1cdbd2cSJim Jagielski SwCursorConfig::~SwCursorConfig()
538*b1cdbd2cSJim Jagielski {
539*b1cdbd2cSJim Jagielski }
540*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
541*b1cdbd2cSJim Jagielski 
542*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
Commit()543*b1cdbd2cSJim Jagielski void SwCursorConfig::Commit()
544*b1cdbd2cSJim Jagielski {
545*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames = GetPropertyNames();
546*b1cdbd2cSJim Jagielski 
547*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues(aNames.getLength());
548*b1cdbd2cSJim Jagielski 	Any* pValues = aValues.getArray();
549*b1cdbd2cSJim Jagielski 
550*b1cdbd2cSJim Jagielski 	for(int nProp = 0; nProp < aNames.getLength(); nProp++)
551*b1cdbd2cSJim Jagielski 	{
552*b1cdbd2cSJim Jagielski 		sal_Bool bSet;
553*b1cdbd2cSJim Jagielski 		switch(nProp)
554*b1cdbd2cSJim Jagielski 		{
555*b1cdbd2cSJim Jagielski 			case  0: bSet = rParent.IsShadowCursor(); 		break;//  "DirectCursor/UseDirectCursor",
556*b1cdbd2cSJim Jagielski 			case  1: pValues[nProp] <<= (sal_Int32)rParent.GetShdwCrsrFillMode(); 	break;//  "DirectCursor/Insert",
557*b1cdbd2cSJim Jagielski             case  2: bSet = rParent.IsCursorInProtectedArea(); break;// "Option/ProtectedArea"
558*b1cdbd2cSJim Jagielski 		}
559*b1cdbd2cSJim Jagielski         if(nProp != 1 )
560*b1cdbd2cSJim Jagielski   			pValues[nProp].setValue(&bSet, ::getBooleanCppuType());
561*b1cdbd2cSJim Jagielski 	}
562*b1cdbd2cSJim Jagielski 	PutProperties(aNames, aValues);
563*b1cdbd2cSJim Jagielski }
564*b1cdbd2cSJim Jagielski /* -----------------------------19.01.01 13:07--------------------------------
565*b1cdbd2cSJim Jagielski 
566*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
Load()567*b1cdbd2cSJim Jagielski void SwCursorConfig::Load()
568*b1cdbd2cSJim Jagielski {
569*b1cdbd2cSJim Jagielski 	Sequence<OUString> aNames = GetPropertyNames();
570*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues = GetProperties(aNames);
571*b1cdbd2cSJim Jagielski 	const Any* pValues = aValues.getConstArray();
572*b1cdbd2cSJim Jagielski 	DBG_ASSERT(aValues.getLength() == aNames.getLength(), "GetProperties failed");
573*b1cdbd2cSJim Jagielski 	if(aValues.getLength() == aNames.getLength())
574*b1cdbd2cSJim Jagielski 	{
575*b1cdbd2cSJim Jagielski 
576*b1cdbd2cSJim Jagielski 		for(int nProp = 0; nProp < aNames.getLength(); nProp++)
577*b1cdbd2cSJim Jagielski 		{
578*b1cdbd2cSJim Jagielski 			if(pValues[nProp].hasValue())
579*b1cdbd2cSJim Jagielski 			{
580*b1cdbd2cSJim Jagielski                 sal_Bool bSet = sal_False;
581*b1cdbd2cSJim Jagielski                 sal_Int32 nSet = 0;
582*b1cdbd2cSJim Jagielski                 if(nProp != 1 )
583*b1cdbd2cSJim Jagielski 					bSet = *(sal_Bool*)pValues[nProp].getValue();
584*b1cdbd2cSJim Jagielski 				else
585*b1cdbd2cSJim Jagielski 					pValues[nProp] >>= nSet;
586*b1cdbd2cSJim Jagielski 				switch(nProp)
587*b1cdbd2cSJim Jagielski 				{
588*b1cdbd2cSJim Jagielski 					case  0: rParent.SetShadowCursor(bSet); 		break;//  "DirectCursor/UseDirectCursor",
589*b1cdbd2cSJim Jagielski                     case  1: rParent.SetShdwCrsrFillMode((sal_uInt8)nSet); break;//  "DirectCursor/Insert",
590*b1cdbd2cSJim Jagielski                     case  2: rParent.SetCursorInProtectedArea(bSet); break;// "Option/ProtectedArea"
591*b1cdbd2cSJim Jagielski 				}
592*b1cdbd2cSJim Jagielski 			}
593*b1cdbd2cSJim Jagielski 		}
594*b1cdbd2cSJim Jagielski 
595*b1cdbd2cSJim Jagielski 	}
596*b1cdbd2cSJim Jagielski }
597*b1cdbd2cSJim Jagielski 
Notify(const::com::sun::star::uno::Sequence<rtl::OUString> &)598*b1cdbd2cSJim Jagielski void SwCursorConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
599*b1cdbd2cSJim Jagielski 
600*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:33---------------------------------------------------
601*b1cdbd2cSJim Jagielski 
602*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
SwWebColorConfig(SwMasterUsrPref & rPar)603*b1cdbd2cSJim Jagielski SwWebColorConfig::SwWebColorConfig(SwMasterUsrPref& rPar) :
604*b1cdbd2cSJim Jagielski     ConfigItem(C2U("Office.WriterWeb/Background"),
605*b1cdbd2cSJim Jagielski         CONFIG_MODE_DELAYED_UPDATE|CONFIG_MODE_RELEASE_TREE),
606*b1cdbd2cSJim Jagielski 	rParent(rPar),
607*b1cdbd2cSJim Jagielski 	aPropNames(1)
608*b1cdbd2cSJim Jagielski {
609*b1cdbd2cSJim Jagielski 	aPropNames.getArray()[0] = C2U("Color");
610*b1cdbd2cSJim Jagielski }
611*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:33---------------------------------------------------
612*b1cdbd2cSJim Jagielski 
613*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
~SwWebColorConfig()614*b1cdbd2cSJim Jagielski SwWebColorConfig::~SwWebColorConfig()
615*b1cdbd2cSJim Jagielski {
616*b1cdbd2cSJim Jagielski }
617*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:33---------------------------------------------------
618*b1cdbd2cSJim Jagielski 
619*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
Commit()620*b1cdbd2cSJim Jagielski void SwWebColorConfig::Commit()
621*b1cdbd2cSJim Jagielski {
622*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues(aPropNames.getLength());
623*b1cdbd2cSJim Jagielski 	Any* pValues = aValues.getArray();
624*b1cdbd2cSJim Jagielski 	for(int nProp = 0; nProp < aPropNames.getLength(); nProp++)
625*b1cdbd2cSJim Jagielski 	{
626*b1cdbd2cSJim Jagielski 		switch(nProp)
627*b1cdbd2cSJim Jagielski 		{
628*b1cdbd2cSJim Jagielski 			case  0: pValues[nProp] <<= (sal_Int32)rParent.GetRetoucheColor().GetColor();	break;// "Color",
629*b1cdbd2cSJim Jagielski 		}
630*b1cdbd2cSJim Jagielski 	}
631*b1cdbd2cSJim Jagielski 	PutProperties(aPropNames, aValues);
632*b1cdbd2cSJim Jagielski }
633*b1cdbd2cSJim Jagielski 
Notify(const::com::sun::star::uno::Sequence<rtl::OUString> &)634*b1cdbd2cSJim Jagielski void SwWebColorConfig::Notify( const ::com::sun::star::uno::Sequence< rtl::OUString >& ) {}
635*b1cdbd2cSJim Jagielski 
636*b1cdbd2cSJim Jagielski /*-- 28.09.00 09:55:34---------------------------------------------------
637*b1cdbd2cSJim Jagielski 
638*b1cdbd2cSJim Jagielski   -----------------------------------------------------------------------*/
Load()639*b1cdbd2cSJim Jagielski void SwWebColorConfig::Load()
640*b1cdbd2cSJim Jagielski {
641*b1cdbd2cSJim Jagielski 	Sequence<Any> aValues = GetProperties(aPropNames);
642*b1cdbd2cSJim Jagielski 	const Any* pValues = aValues.getConstArray();
643*b1cdbd2cSJim Jagielski 	DBG_ASSERT(aValues.getLength() == aPropNames.getLength(), "GetProperties failed");
644*b1cdbd2cSJim Jagielski 	if(aValues.getLength() == aPropNames.getLength())
645*b1cdbd2cSJim Jagielski 	{
646*b1cdbd2cSJim Jagielski 		for(int nProp = 0; nProp < aPropNames.getLength(); nProp++)
647*b1cdbd2cSJim Jagielski 		{
648*b1cdbd2cSJim Jagielski 			if(pValues[nProp].hasValue())
649*b1cdbd2cSJim Jagielski 			{
650*b1cdbd2cSJim Jagielski 				switch(nProp)
651*b1cdbd2cSJim Jagielski 				{
652*b1cdbd2cSJim Jagielski 					case  0:
653*b1cdbd2cSJim Jagielski 						sal_Int32 nSet = 0;
654*b1cdbd2cSJim Jagielski 						pValues[nProp] >>= nSet; rParent.SetRetoucheColor(nSet);
655*b1cdbd2cSJim Jagielski 					break;// "Color",
656*b1cdbd2cSJim Jagielski 				}
657*b1cdbd2cSJim Jagielski 			}
658*b1cdbd2cSJim Jagielski 		}
659*b1cdbd2cSJim Jagielski 	}
660*b1cdbd2cSJim Jagielski }
661*b1cdbd2cSJim Jagielski 
662*b1cdbd2cSJim Jagielski 
663