1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22 // MARKER(update_precomp.py): autogen include statement, do not remove
23 #include "precompiled_sw.hxx"
24
25 #include <swtypes.hxx>
26 #include <tools/debug.hxx>
27 #include <unomod.hxx>
28 #include <unomid.h>
29 #include <unoprnms.hxx>
30 #include <unomap.hxx>
31 #include <prtopt.hxx>
32 #include <tools/shl.hxx>
33 #include <swmodule.hxx>
34 #include <view.hxx>
35 #include <docsh.hxx>
36 #include <wrtsh.hxx>
37 #include <viewopt.hxx>
38 #include <vos/mutex.hxx>
39 #include <vcl/svapp.hxx>
40 #include <com/sun/star/text/NotePrintMode.hpp>
41 #include <doc.hxx>
42 #include <comphelper/TypeGeneration.hxx>
43 #include <com/sun/star/beans/PropertyAttribute.hpp>
44 #include <com/sun/star/view/DocumentZoomType.hpp>
45 #include <comphelper/ChainablePropertySetInfo.hxx>
46 #include <edtwin.hxx>
47 #include <rtl/ustrbuf.hxx>
48 #include <tools/urlobj.hxx>
49
50 using namespace ::com::sun::star;
51 using namespace ::com::sun::star::uno;
52 using namespace ::com::sun::star::beans;
53 using namespace ::com::sun::star::lang;
54 using namespace ::comphelper;
55 using ::rtl::OUString;
56 using ::rtl::OUStringBuffer;
57
58 enum SwViewSettingsPropertyHandles
59 {
60 HANDLE_VIEWSET_ANNOTATIONS,
61 HANDLE_VIEWSET_BREAKS,
62 HANDLE_VIEWSET_DRAWINGS,
63 HANDLE_VIEWSET_FIELD_COMMANDS,
64 HANDLE_VIEWSET_FOOTNOTE_BACKGROUND,
65 HANDLE_VIEWSET_GRAPHICS,
66 HANDLE_VIEWSET_HIDDEN_CHARACTERS,
67 HANDLE_VIEWSET_HIDDEN_PARAGRAPHS,
68 HANDLE_VIEWSET_HIDDEN_TEXT,
69 HANDLE_VIEWSET_HRULER,
70 HANDLE_VIEWSET_HSCROLL,
71 HANDLE_VIEWSET_INDEX_MARK_BACKGROUND,
72 HANDLE_VIEWSET_NONPRINTING_CHARACTERS,
73 HANDLE_VIEWSET_ONLINE_LAYOUT,
74 HANDLE_VIEWSET_PARA_BREAKS,
75 HANDLE_VIEWSET_PROTECTED_SPACES,
76 HANDLE_VIEWSET_SOFT_HYPHENS,
77 HANDLE_VIEWSET_SPACES,
78 HANDLE_VIEWSET_TABLE_BOUNDARIES,
79 HANDLE_VIEWSET_TABLES,
80 HANDLE_VIEWSET_TABSTOPS,
81 HANDLE_VIEWSET_TEXT_BOUNDARIES,
82 HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND,
83 HANDLE_VIEWSET_VRULER,
84 HANDLE_VIEWSET_VSCROLL,
85 HANDLE_VIEWSET_SMOOTH_SCROLLING,
86 HANDLE_VIEWSET_SOLID_MARK_HANDLES,
87 HANDLE_VIEWSET_ZOOM_TYPE,
88 HANDLE_VIEWSET_ZOOM,
89 HANDLE_VIEWSET_SHOW_CONTENT_TIPS,
90 HANDLE_VIEWSET_HELP_URL,
91 HANDLE_VIEWSET_VRULER_RIGHT,
92 HANDLE_VIEWSET_SHOW_RULER,
93 HANDLE_VIEWSET_IS_RASTER_VISIBLE,
94 HANDLE_VIEWSET_IS_SNAP_TO_RASTER,
95 HANDLE_VIEWSET_RASTER_RESOLUTION_X,
96 HANDLE_VIEWSET_RASTER_RESOLUTION_Y,
97 HANDLE_VIEWSET_RASTER_SUBDIVISION_X,
98 HANDLE_VIEWSET_RASTER_SUBDIVISION_Y,
99 HANDLE_VIEWSET_HORI_RULER_METRIC,
100 HANDLE_VIEWSET_VERT_RULER_METRIC,
101 HANDLE_VIEWSET_SCROLLBAR_TIPS
102 };
103 enum SwPrintSettingsPropertyHandles
104 {
105 HANDLE_PRINTSET_ANNOTATION_MODE,
106 HANDLE_PRINTSET_BLACK_FONTS,
107 HANDLE_PRINTSET_CONTROLS,
108 HANDLE_PRINTSET_DRAWINGS,
109 HANDLE_PRINTSET_GRAPHICS,
110 HANDLE_PRINTSET_LEFT_PAGES,
111 HANDLE_PRINTSET_PAGE_BACKGROUND,
112 HANDLE_PRINTSET_PROSPECT,
113 HANDLE_PRINTSET_REVERSED,
114 HANDLE_PRINTSET_RIGHT_PAGES,
115 HANDLE_PRINTSET_FAX_NAME,
116 HANDLE_PRINTSET_PAPER_FROM_SETUP,
117 HANDLE_PRINTSET_TABLES,
118 HANDLE_PRINTSET_SINGLE_JOBS,
119 HANDLE_PRINTSET_EMPTY_PAGES,
120 HANDLE_PRINTSET_PROSPECT_RTL,
121 HANDLE_PRINTSET_PLACEHOLDER,
122 HANDLE_PRINTSET_HIDDEN_TEXT
123 };
124
lcl_createViewSettingsInfo()125 static ChainablePropertySetInfo * lcl_createViewSettingsInfo()
126 {
127 static PropertyInfo aViewSettingsMap_Impl[] =
128 {
129 { RTL_CONSTASCII_STRINGPARAM ( "HelpURL" ), HANDLE_VIEWSET_HELP_URL , CPPUTYPE_OUSTRING, PROPERTY_NONE, 0},
130 { RTL_CONSTASCII_STRINGPARAM ( "HorizontalRulerMetric"),HANDLE_VIEWSET_HORI_RULER_METRIC , CPPUTYPE_INT32, PROPERTY_NONE, 0},
131 { RTL_CONSTASCII_STRINGPARAM ( "IsRasterVisible"), HANDLE_VIEWSET_IS_RASTER_VISIBLE, CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
132 { RTL_CONSTASCII_STRINGPARAM ( "IsSnapToRaster"), HANDLE_VIEWSET_IS_SNAP_TO_RASTER, CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
133 { RTL_CONSTASCII_STRINGPARAM ( "IsVertRulerRightAligned"),HANDLE_VIEWSET_VRULER_RIGHT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
134 { RTL_CONSTASCII_STRINGPARAM ( "ShowContentTips" ), HANDLE_VIEWSET_SHOW_CONTENT_TIPS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
135 { RTL_CONSTASCII_STRINGPARAM ( "RasterResolutionX"), HANDLE_VIEWSET_RASTER_RESOLUTION_X, CPPUTYPE_INT32, PROPERTY_NONE, 0},
136 { RTL_CONSTASCII_STRINGPARAM ( "RasterResolutionY"), HANDLE_VIEWSET_RASTER_RESOLUTION_Y, CPPUTYPE_INT32, PROPERTY_NONE, 0},
137 { RTL_CONSTASCII_STRINGPARAM ( "RasterSubdivisionX"), HANDLE_VIEWSET_RASTER_SUBDIVISION_X, CPPUTYPE_INT32, PROPERTY_NONE, 0},
138 { RTL_CONSTASCII_STRINGPARAM ( "RasterSubdivisionY"), HANDLE_VIEWSET_RASTER_SUBDIVISION_Y, CPPUTYPE_INT32, PROPERTY_NONE, 0},
139 { RTL_CONSTASCII_STRINGPARAM ( "ShowAnnotations" ), HANDLE_VIEWSET_ANNOTATIONS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
140 { RTL_CONSTASCII_STRINGPARAM ( "ShowBreaks"), HANDLE_VIEWSET_BREAKS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
141 { RTL_CONSTASCII_STRINGPARAM ( "ShowDrawings"), HANDLE_VIEWSET_DRAWINGS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
142 { RTL_CONSTASCII_STRINGPARAM ( "ShowFieldCommands"), HANDLE_VIEWSET_FIELD_COMMANDS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
143 { RTL_CONSTASCII_STRINGPARAM ( "ShowFootnoteBackground"),HANDLE_VIEWSET_FOOTNOTE_BACKGROUND , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
144 { RTL_CONSTASCII_STRINGPARAM ( "ShowGraphics"), HANDLE_VIEWSET_GRAPHICS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
145 { RTL_CONSTASCII_STRINGPARAM ( "ShowHiddenCharacters"), HANDLE_VIEWSET_HIDDEN_CHARACTERS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
146 { RTL_CONSTASCII_STRINGPARAM ( "ShowHiddenParagraphs"), HANDLE_VIEWSET_HIDDEN_PARAGRAPHS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
147 { RTL_CONSTASCII_STRINGPARAM ( "ShowHiddenText"), HANDLE_VIEWSET_HIDDEN_TEXT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
148 { RTL_CONSTASCII_STRINGPARAM ( "ShowHoriRuler"), HANDLE_VIEWSET_HRULER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
149 { RTL_CONSTASCII_STRINGPARAM ( "ShowHoriScrollBar"), HANDLE_VIEWSET_HSCROLL , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
150 { RTL_CONSTASCII_STRINGPARAM ( "ShowIndexMarkBackground"),HANDLE_VIEWSET_INDEX_MARK_BACKGROUND, CPPUTYPE_BOOLEAN,PROPERTY_NONE, 0},
151 { RTL_CONSTASCII_STRINGPARAM ( "ShowNonprintingCharacters"),HANDLE_VIEWSET_NONPRINTING_CHARACTERS, CPPUTYPE_BOOLEAN,PROPERTY_NONE, 0},
152 { RTL_CONSTASCII_STRINGPARAM ( "ShowOnlineLayout"), HANDLE_VIEWSET_ONLINE_LAYOUT , CPPUTYPE_BOOLEAN, PropertyAttribute::MAYBEVOID, 0},
153 { RTL_CONSTASCII_STRINGPARAM ( "ShowParaBreaks"), HANDLE_VIEWSET_PARA_BREAKS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
154 { RTL_CONSTASCII_STRINGPARAM ( "ShowProtectedSpaces"), HANDLE_VIEWSET_PROTECTED_SPACES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
155 { RTL_CONSTASCII_STRINGPARAM ( "ShowRulers"), HANDLE_VIEWSET_SHOW_RULER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
156 { RTL_CONSTASCII_STRINGPARAM ( "ShowScrollBarTips"), HANDLE_VIEWSET_SCROLLBAR_TIPS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
157 { RTL_CONSTASCII_STRINGPARAM ( "ShowSoftHyphens"), HANDLE_VIEWSET_SOFT_HYPHENS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
158 { RTL_CONSTASCII_STRINGPARAM ( "ShowSpaces"), HANDLE_VIEWSET_SPACES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
159 { RTL_CONSTASCII_STRINGPARAM ( "ShowTableBoundaries"), HANDLE_VIEWSET_TABLE_BOUNDARIES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
160 { RTL_CONSTASCII_STRINGPARAM ( "ShowTables"), HANDLE_VIEWSET_TABLES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
161 { RTL_CONSTASCII_STRINGPARAM ( "ShowTabstops"), HANDLE_VIEWSET_TABSTOPS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
162 { RTL_CONSTASCII_STRINGPARAM ( "ShowTextBoundaries"), HANDLE_VIEWSET_TEXT_BOUNDARIES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
163 { RTL_CONSTASCII_STRINGPARAM ( "ShowTextFieldBackground"),HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND, CPPUTYPE_BOOLEAN,PROPERTY_NONE, 0},
164 { RTL_CONSTASCII_STRINGPARAM ( "ShowVertRuler"), HANDLE_VIEWSET_VRULER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
165 { RTL_CONSTASCII_STRINGPARAM ( "ShowVertScrollBar"), HANDLE_VIEWSET_VSCROLL , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
166 { RTL_CONSTASCII_STRINGPARAM ( "SmoothScrolling"), HANDLE_VIEWSET_SMOOTH_SCROLLING , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
167 { RTL_CONSTASCII_STRINGPARAM ( "SolidMarkHandles"), HANDLE_VIEWSET_SOLID_MARK_HANDLES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
168 { RTL_CONSTASCII_STRINGPARAM ( "VerticalRulerMetric"), HANDLE_VIEWSET_VERT_RULER_METRIC , CPPUTYPE_INT32, PROPERTY_NONE, 0},
169 { RTL_CONSTASCII_STRINGPARAM ( "ZoomType"), HANDLE_VIEWSET_ZOOM_TYPE , CPPUTYPE_INT16, PROPERTY_NONE, 0},
170 { RTL_CONSTASCII_STRINGPARAM ( "ZoomValue"), HANDLE_VIEWSET_ZOOM , CPPUTYPE_INT16, PROPERTY_NONE, 0},
171 { 0, 0, 0, CPPUTYPE_UNKNOWN, 0, 0 }
172 };
173 return new ChainablePropertySetInfo ( aViewSettingsMap_Impl );
174 }
lcl_createPrintSettingsInfo()175 static ChainablePropertySetInfo * lcl_createPrintSettingsInfo()
176 {
177 static PropertyInfo aPrintSettingsMap_Impl[] =
178 {
179 { RTL_CONSTASCII_STRINGPARAM ( "PrintAnnotationMode" ), HANDLE_PRINTSET_ANNOTATION_MODE , CPPUTYPE_INT16, PROPERTY_NONE, 0},
180 { RTL_CONSTASCII_STRINGPARAM ( "PrintBlackFonts" ), HANDLE_PRINTSET_BLACK_FONTS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
181 { RTL_CONSTASCII_STRINGPARAM ( "PrintControls" ), HANDLE_PRINTSET_CONTROLS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
182 { RTL_CONSTASCII_STRINGPARAM ( "PrintDrawings" ), HANDLE_PRINTSET_DRAWINGS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
183 { RTL_CONSTASCII_STRINGPARAM ( "PrintGraphics" ), HANDLE_PRINTSET_GRAPHICS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
184 { RTL_CONSTASCII_STRINGPARAM ( "PrintHiddenText"), HANDLE_PRINTSET_HIDDEN_TEXT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
185 { RTL_CONSTASCII_STRINGPARAM ( "PrintLeftPages" ), HANDLE_PRINTSET_LEFT_PAGES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
186 { RTL_CONSTASCII_STRINGPARAM ( "PrintPageBackground" ), HANDLE_PRINTSET_PAGE_BACKGROUND , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
187 { RTL_CONSTASCII_STRINGPARAM ( "PrintProspect" ), HANDLE_PRINTSET_PROSPECT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
188 { RTL_CONSTASCII_STRINGPARAM ( "PrintProspectRTL" ), HANDLE_PRINTSET_PROSPECT_RTL , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
189 { RTL_CONSTASCII_STRINGPARAM ( "PrintReversed" ), HANDLE_PRINTSET_REVERSED , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
190 { RTL_CONSTASCII_STRINGPARAM ( "PrintRightPages" ), HANDLE_PRINTSET_RIGHT_PAGES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
191 { RTL_CONSTASCII_STRINGPARAM ( "PrintFaxName" ), HANDLE_PRINTSET_FAX_NAME , CPPUTYPE_OUSTRING, PROPERTY_NONE, 0},
192 { RTL_CONSTASCII_STRINGPARAM ( "PrintPaperFromSetup" ), HANDLE_PRINTSET_PAPER_FROM_SETUP , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
193 { RTL_CONSTASCII_STRINGPARAM ( "PrintTables" ), HANDLE_PRINTSET_TABLES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
194 { RTL_CONSTASCII_STRINGPARAM ( "PrintTextPlaceholder"), HANDLE_PRINTSET_PLACEHOLDER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
195 { RTL_CONSTASCII_STRINGPARAM ( "PrintSingleJobs" ), HANDLE_PRINTSET_SINGLE_JOBS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
196 { RTL_CONSTASCII_STRINGPARAM ( "PrintEmptyPages" ), HANDLE_PRINTSET_EMPTY_PAGES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0},
197 { 0, 0, 0, CPPUTYPE_UNKNOWN, 0, 0 }
198 };
199 return new ChainablePropertySetInfo ( aPrintSettingsMap_Impl );
200 }
201
202 /******************************************************************
203 * SwXModule
204 ******************************************************************/
205 /* -----------------30.03.99 15:10-------------------
206 *
207 * --------------------------------------------------*/
SwXModule_createInstance(const Reference<XMultiServiceFactory> &)208 Reference< uno::XInterface > SAL_CALL SwXModule_createInstance(
209 const Reference< XMultiServiceFactory > & /*rSMgr*/)
210 {
211 static Reference< uno::XInterface > xModule = (cppu::OWeakObject*)new SwXModule();
212 return xModule;
213 }
214 /* -----------------------------17.04.01 13:11--------------------------------
215
216 ---------------------------------------------------------------------------*/
SwXModule_getSupportedServiceNames()217 Sequence< OUString > SAL_CALL SwXModule_getSupportedServiceNames() throw()
218 {
219 OUString sService( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.GlobalSettings"));
220 const Sequence< OUString > aSeq( &sService, 1 );
221 return aSeq;
222 }
223 /* -----------------------------17.04.01 13:11--------------------------------
224
225 ---------------------------------------------------------------------------*/
SwXModule_getImplementationName()226 OUString SAL_CALL SwXModule_getImplementationName() throw()
227 {
228 return OUString( RTL_CONSTASCII_USTRINGPARAM("SwXModule" ) );
229 }
230 /*-- 17.12.98 12:19:01---------------------------------------------------
231
232 -----------------------------------------------------------------------*/
SwXModule()233 SwXModule::SwXModule() :
234 pxViewSettings(0),
235 pxPrintSettings(0)
236 {
237 }
238 /*-- 17.12.98 12:19:02---------------------------------------------------
239
240 -----------------------------------------------------------------------*/
~SwXModule()241 SwXModule::~SwXModule()
242 {
243 delete pxViewSettings;
244 delete pxPrintSettings;
245 }
246 /*-- 17.12.98 12:19:03---------------------------------------------------
247
248 -----------------------------------------------------------------------*/
getViewSettings(void)249 Reference< XPropertySet > SwXModule::getViewSettings(void)
250 {
251 ::vos::OGuard aGuard(Application::GetSolarMutex());
252 if(!pxViewSettings)
253 {
254 ((SwXModule*)this)->pxViewSettings = new Reference< XPropertySet > ;
255 DBG_ERROR("Web oder Text?");
256 *pxViewSettings = static_cast < HelperBaseNoState * > ( new SwXViewSettings( sal_False, 0 ) );
257 }
258 return *pxViewSettings;
259 }
260 /*-- 17.12.98 12:19:03---------------------------------------------------
261
262 -----------------------------------------------------------------------*/
getPrintSettings(void)263 Reference< XPropertySet > SwXModule::getPrintSettings(void)
264 {
265 ::vos::OGuard aGuard(Application::GetSolarMutex());
266 if(!pxPrintSettings)
267 {
268 ((SwXModule*)this)->pxPrintSettings = new Reference< XPropertySet > ;
269 DBG_ERROR("Web oder Text?");
270 *pxPrintSettings = static_cast < HelperBaseNoState * > ( new SwXPrintSettings ( PRINT_SETTINGS_MODULE ) );
271 }
272 return *pxPrintSettings;
273 }
274 /* -----------------------------06.04.00 10:59--------------------------------
275
276 ---------------------------------------------------------------------------*/
getImplementationName(void)277 OUString SwXModule::getImplementationName(void)
278 {
279 return SwXModule_getImplementationName();
280 }
281 /* -----------------------------06.04.00 10:59--------------------------------
282
283 ---------------------------------------------------------------------------*/
supportsService(const OUString & rServiceName)284 sal_Bool SwXModule::supportsService(const OUString& rServiceName)
285 {
286 const Sequence< OUString > aNames = SwXModule_getSupportedServiceNames();
287 for(sal_Int32 nService = 0; nService < aNames.getLength(); nService++)
288 {
289 if(aNames.getConstArray()[nService] == rServiceName)
290 return sal_True;
291 }
292 return sal_False;
293 }
294 /* -----------------------------06.04.00 10:59--------------------------------
295
296 ---------------------------------------------------------------------------*/
getSupportedServiceNames(void)297 Sequence< OUString > SwXModule::getSupportedServiceNames(void)
298 {
299 return SwXModule_getSupportedServiceNames();
300 }
301
302 /******************************************************************
303 * SwXPrintSettings
304 ******************************************************************/
305 /*-- 17.12.98 12:54:04---------------------------------------------------
306
307 -----------------------------------------------------------------------*/
SwXPrintSettings(SwXPrintSettingsType eType,SwDoc * pDoc)308 SwXPrintSettings::SwXPrintSettings(SwXPrintSettingsType eType, SwDoc* pDoc)
309 : ChainableHelperNoState ( lcl_createPrintSettingsInfo (), &Application::GetSolarMutex() )
310 , meType(eType)
311 , mpPrtOpt ( NULL )
312 , mpDoc ( pDoc )
313 {
314 }
315 /*-- 17.12.98 12:54:05---------------------------------------------------
316
317 -----------------------------------------------------------------------*/
~SwXPrintSettings()318 SwXPrintSettings::~SwXPrintSettings()
319 throw()
320 {
321 }
322
_preSetValues()323 void SwXPrintSettings::_preSetValues ()
324 {
325 switch (meType)
326 {
327 case PRINT_SETTINGS_MODULE:
328 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_False );
329 break;
330 case PRINT_SETTINGS_WEB:
331 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_True );
332 break;
333 case PRINT_SETTINGS_DOCUMENT:
334 {
335 if (!mpDoc)
336 throw IllegalArgumentException ();
337 mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getPrintData());
338 }
339 break;
340 }
341 }
342
_setSingleValue(const comphelper::PropertyInfo & rInfo,const uno::Any & rValue)343 void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
344 {
345 sal_Bool bVal;
346 if ( rInfo.mnHandle != HANDLE_PRINTSET_ANNOTATION_MODE &&
347 rInfo.mnHandle != HANDLE_PRINTSET_FAX_NAME )
348 bVal = *(sal_Bool*)rValue.getValue();
349
350 switch( rInfo.mnHandle )
351 {
352 case HANDLE_PRINTSET_LEFT_PAGES:
353 {
354 bVal = *(sal_Bool*)rValue.getValue();
355 mpPrtOpt->SetPrintLeftPage(bVal);
356 }
357 break;
358 case HANDLE_PRINTSET_RIGHT_PAGES:
359 {
360 bVal = *(sal_Bool*)rValue.getValue();
361 mpPrtOpt->SetPrintRightPage(bVal);
362 }
363 break;
364 case HANDLE_PRINTSET_REVERSED:
365 {
366 bVal = *(sal_Bool*)rValue.getValue();
367 mpPrtOpt->SetPrintReverse(bVal);
368 }
369 break;
370 case HANDLE_PRINTSET_PROSPECT:
371 {
372 bVal = *(sal_Bool*)rValue.getValue();
373 mpPrtOpt->SetPrintProspect(bVal);
374 }
375 break;
376 case HANDLE_PRINTSET_GRAPHICS:
377 {
378 bVal = *(sal_Bool*)rValue.getValue();
379 mpPrtOpt->SetPrintGraphic(bVal);
380 }
381 break;
382 case HANDLE_PRINTSET_TABLES:
383 {
384 bVal = *(sal_Bool*)rValue.getValue();
385 mpPrtOpt->SetPrintTable(bVal);
386 }
387 break;
388 case HANDLE_PRINTSET_DRAWINGS:
389 {
390 bVal = *(sal_Bool*)rValue.getValue();
391 mpPrtOpt->SetPrintDraw(bVal);
392 }
393 break;
394 case HANDLE_PRINTSET_CONTROLS:
395 {
396 bVal = *(sal_Bool*)rValue.getValue();
397 mpPrtOpt->SetPrintControl(bVal);
398 }
399 break;
400 case HANDLE_PRINTSET_PAGE_BACKGROUND:
401 {
402 bVal = *(sal_Bool*)rValue.getValue();
403 mpPrtOpt->SetPrintPageBackground(bVal);
404 }
405 break;
406 case HANDLE_PRINTSET_BLACK_FONTS:
407 {
408 bVal = *(sal_Bool*)rValue.getValue();
409 mpPrtOpt->SetPrintBlackFont(bVal);
410 }
411 break;
412 case HANDLE_PRINTSET_SINGLE_JOBS:
413 {
414 bVal = *(sal_Bool*)rValue.getValue();
415 mpPrtOpt->SetPrintSingleJobs(bVal);
416 }
417 break;
418 case HANDLE_PRINTSET_PAPER_FROM_SETUP:
419 {
420 bVal = *(sal_Bool*)rValue.getValue();
421 mpPrtOpt->SetPaperFromSetup(bVal);
422 }
423 break;
424 case HANDLE_PRINTSET_ANNOTATION_MODE:
425 {
426 sal_Int16 nVal = 0;
427 rValue >>= nVal;
428 if(nVal <= text::NotePrintMode_PAGE_END)
429 mpPrtOpt->SetPrintPostIts(nVal);
430 else
431 throw lang::IllegalArgumentException();
432 }
433 break;
434 case HANDLE_PRINTSET_EMPTY_PAGES:
435 {
436 bVal = *(sal_Bool*)rValue.getValue();
437 mpPrtOpt->SetPrintEmptyPages(bVal);
438 }
439 break;
440 case HANDLE_PRINTSET_FAX_NAME:
441 {
442 OUString sString;
443 if ( rValue >>= sString)
444 mpPrtOpt->SetFaxName(sString);
445 else
446 throw lang::IllegalArgumentException();
447 }
448 break;
449 case HANDLE_PRINTSET_PROSPECT_RTL:
450 {
451 bVal = *(sal_Bool*)rValue.getValue();
452 mpPrtOpt->SetPrintProspect_RTL(bVal);
453 }
454 break;
455 case HANDLE_PRINTSET_PLACEHOLDER:
456 {
457 bVal = *(sal_Bool*)rValue.getValue();
458 mpPrtOpt->SetPrintTextPlaceholder(bVal);
459 }
460 break;
461 case HANDLE_PRINTSET_HIDDEN_TEXT:
462 {
463 bVal = *(sal_Bool*)rValue.getValue();
464 mpPrtOpt->SetPrintHiddenText(bVal);
465 }
466 break;
467 default:
468 throw UnknownPropertyException();
469 }
470 }
_postSetValues()471 void SwXPrintSettings::_postSetValues ()
472 {
473 mpPrtOpt = NULL;
474 }
475
_preGetValues()476 void SwXPrintSettings::_preGetValues ()
477 {
478 switch (meType)
479 {
480 case PRINT_SETTINGS_MODULE:
481 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_False );
482 break;
483 case PRINT_SETTINGS_WEB:
484 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_True );
485 break;
486 case PRINT_SETTINGS_DOCUMENT:
487 {
488 if (!mpDoc)
489 throw IllegalArgumentException ();
490 mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getPrintData());
491 }
492 break;
493 }
494 }
_getSingleValue(const comphelper::PropertyInfo & rInfo,uno::Any & rValue)495 void SwXPrintSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
496 {
497 switch( rInfo.mnHandle )
498 {
499 case HANDLE_PRINTSET_LEFT_PAGES:
500 rValue <<= mpPrtOpt->IsPrintLeftPage();
501 break;
502 case HANDLE_PRINTSET_RIGHT_PAGES:
503 rValue <<= mpPrtOpt->IsPrintRightPage();
504 break;
505 case HANDLE_PRINTSET_REVERSED:
506 rValue <<= mpPrtOpt->IsPrintReverse();
507 break;
508 case HANDLE_PRINTSET_PROSPECT:
509 rValue <<= mpPrtOpt->IsPrintProspect();
510 break;
511 case HANDLE_PRINTSET_GRAPHICS:
512 rValue <<= mpPrtOpt->IsPrintGraphic();
513 break;
514 case HANDLE_PRINTSET_TABLES:
515 rValue <<= mpPrtOpt->IsPrintTable();
516 break;
517 case HANDLE_PRINTSET_DRAWINGS:
518 rValue <<= mpPrtOpt->IsPrintDraw();
519 break;
520 case HANDLE_PRINTSET_CONTROLS:
521 rValue <<= mpPrtOpt->IsPrintControl();
522 break;
523 case HANDLE_PRINTSET_PAGE_BACKGROUND:
524 rValue <<= mpPrtOpt->IsPrintPageBackground();
525 break;
526 case HANDLE_PRINTSET_BLACK_FONTS:
527 rValue <<= mpPrtOpt->IsPrintBlackFont();
528 break;
529 case HANDLE_PRINTSET_SINGLE_JOBS:
530 rValue <<= mpPrtOpt->IsPrintSingleJobs();
531 break;
532 case HANDLE_PRINTSET_EMPTY_PAGES:
533 rValue <<= mpPrtOpt->IsPrintEmptyPages();
534 break;
535 case HANDLE_PRINTSET_PAPER_FROM_SETUP:
536 rValue <<= mpPrtOpt->IsPaperFromSetup();
537 break;
538 case HANDLE_PRINTSET_ANNOTATION_MODE:
539 {
540 rValue <<= static_cast < sal_Int16 > ( mpPrtOpt->GetPrintPostIts() );
541 }
542 break;
543 case HANDLE_PRINTSET_FAX_NAME :
544 {
545 rValue <<= mpPrtOpt->GetFaxName();
546 }
547 break;
548 case HANDLE_PRINTSET_PROSPECT_RTL:
549 {
550 rValue <<= mpPrtOpt->IsPrintProspectRTL();
551 }
552 break;
553 case HANDLE_PRINTSET_PLACEHOLDER:
554 {
555 rValue <<= mpPrtOpt->IsPrintTextPlaceholder();
556 }
557 break;
558 case HANDLE_PRINTSET_HIDDEN_TEXT:
559 {
560 rValue <<= mpPrtOpt->IsPrintHiddenText();
561 }
562 break;
563 default:
564 throw UnknownPropertyException();
565 }
566 }
_postGetValues()567 void SwXPrintSettings::_postGetValues ()
568 {
569 mpPrtOpt = NULL;
570 }
571 /* -----------------------------06.04.00 11:02--------------------------------
572
573 ---------------------------------------------------------------------------*/
getImplementationName(void)574 OUString SwXPrintSettings::getImplementationName(void)
575 {
576 return C2U("SwXPrintSettings");
577 }
578 /* -----------------------------06.04.00 11:02--------------------------------
579
580 ---------------------------------------------------------------------------*/
supportsService(const OUString & rServiceName)581 sal_Bool SwXPrintSettings::supportsService(const OUString& rServiceName)
582 {
583 return C2U("com.sun.star.text.PrintSettings") == rServiceName;
584 }
585 /* -----------------------------06.04.00 11:02--------------------------------
586
587 ---------------------------------------------------------------------------*/
getSupportedServiceNames(void)588 Sequence< OUString > SwXPrintSettings::getSupportedServiceNames(void)
589 {
590 Sequence< OUString > aRet(1);
591 OUString* pArray = aRet.getArray();
592 pArray[0] = C2U("com.sun.star.text.PrintSettings");
593 return aRet;
594 }
595
596
597 /******************************************************************
598 *
599 ******************************************************************/
600 /*-- 18.12.98 11:01:10---------------------------------------------------
601
602 -----------------------------------------------------------------------*/
SwXViewSettings(sal_Bool bWebView,SwView * pVw)603 SwXViewSettings::SwXViewSettings(sal_Bool bWebView, SwView* pVw)
604 : ChainableHelperNoState( lcl_createViewSettingsInfo (), &Application::GetSolarMutex() )
605 , pView(pVw)
606 , mpViewOption ( NULL )
607 , mpConstViewOption ( NULL )
608 , bObjectValid(sal_True)
609 , bWeb(bWebView)
610 , eHRulerUnit( FUNIT_CM )
611 , mbApplyHRulerMetric( sal_False )
612 , eVRulerUnit( FUNIT_CM )
613 , mbApplyVRulerMetric( sal_False )
614 {
615 // This property only exists if we have a view (ie, not at the module )
616 if ( !pView )
617 mpInfo->remove ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "HelpURL" ) ) );
618
619 }
620 /*-- 18.12.98 11:01:10---------------------------------------------------
621
622 -----------------------------------------------------------------------*/
~SwXViewSettings()623 SwXViewSettings::~SwXViewSettings()
624 throw()
625 {
626
627 }
_preSetValues()628 void SwXViewSettings::_preSetValues ()
629 {
630 const SwViewOption* pVOpt = 0;
631 if(pView)
632 {
633 if(!IsValid())
634 return;
635 pVOpt = pView->GetWrtShell().GetViewOptions();
636 }
637 else
638 pVOpt = SW_MOD()->GetViewOption(bWeb);
639
640 mpViewOption = new SwViewOption (*pVOpt);
641 mbApplyZoom = sal_False;
642 if(pView)
643 mpViewOption->SetStarOneSetting(sal_True);
644 }
_setSingleValue(const comphelper::PropertyInfo & rInfo,const uno::Any & rValue)645 void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
646 {
647 sal_Bool bVal = HANDLE_VIEWSET_ZOOM != rInfo.mnHandle ?
648 *(sal_Bool*)rValue.getValue() : sal_False;
649 // the API flag should not be set to the application's view settings
650 switch( rInfo.mnHandle )
651 {
652 case HANDLE_VIEWSET_SHOW_RULER : mpViewOption->SetViewAnyRuler(bVal); break;
653 case HANDLE_VIEWSET_HRULER : mpViewOption->SetViewHRuler(bVal); break;
654 case HANDLE_VIEWSET_VRULER : mpViewOption->SetViewVRuler(bVal);break;
655 case HANDLE_VIEWSET_VRULER_RIGHT : mpViewOption->SetVRulerRight(bVal);break;
656 case HANDLE_VIEWSET_HSCROLL : mpViewOption->SetViewHScrollBar(bVal);break;
657 case HANDLE_VIEWSET_VSCROLL : mpViewOption->SetViewVScrollBar(bVal);break;
658 case HANDLE_VIEWSET_GRAPHICS : mpViewOption->SetGraphic(bVal);break;
659 case HANDLE_VIEWSET_TABLES : mpViewOption->SetTable(bVal); break;
660 case HANDLE_VIEWSET_DRAWINGS : mpViewOption->SetDraw(bVal); break;
661 case HANDLE_VIEWSET_FIELD_COMMANDS : mpViewOption->SetFldName(bVal); break;
662 case HANDLE_VIEWSET_ANNOTATIONS : mpViewOption->SetPostIts(bVal); break;
663 case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : mpViewOption->SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bVal, sal_True); break;
664 case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: mpViewOption->SetViewMetaChars( bVal ); break;
665 case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : mpViewOption->SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bVal, sal_True); break;
666 case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : mpViewOption->SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bVal, sal_True); break;
667 case HANDLE_VIEWSET_PARA_BREAKS : mpViewOption->SetParagraph(bVal); break;
668 case HANDLE_VIEWSET_SOFT_HYPHENS : mpViewOption->SetSoftHyph(bVal); break;
669 case HANDLE_VIEWSET_SPACES : mpViewOption->SetBlank(bVal); break;
670 case HANDLE_VIEWSET_PROTECTED_SPACES : mpViewOption->SetHardBlank(bVal); break;
671 case HANDLE_VIEWSET_TABSTOPS : mpViewOption->SetTab(bVal); break;
672 case HANDLE_VIEWSET_BREAKS : mpViewOption->SetLineBreak(bVal); break;
673 case HANDLE_VIEWSET_HIDDEN_TEXT : mpViewOption->SetShowHiddenField(bVal); break;
674 case HANDLE_VIEWSET_HIDDEN_CHARACTERS : mpViewOption->SetShowHiddenChar(bVal); break;
675 case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : mpViewOption->SetShowHiddenPara(bVal); break;
676 case HANDLE_VIEWSET_TABLE_BOUNDARIES : mpViewOption->SetAppearanceFlag(VIEWOPT_TABLE_BOUNDARIES, bVal, sal_True); break;
677 case HANDLE_VIEWSET_TEXT_BOUNDARIES : mpViewOption->SetDocBoundaries(bVal); break;
678 case HANDLE_VIEWSET_SMOOTH_SCROLLING : mpViewOption->SetSmoothScroll(bVal); break;
679 case HANDLE_VIEWSET_SOLID_MARK_HANDLES : mpViewOption->SetSolidMarkHdl(bVal); break;
680 case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : mpViewOption->SetShowContentTips(bVal); break;
681 case HANDLE_VIEWSET_IS_RASTER_VISIBLE : mpViewOption->SetGridVisible(bVal); break;
682 case HANDLE_VIEWSET_IS_SNAP_TO_RASTER : mpViewOption->SetSnap(bVal); break;
683 case HANDLE_VIEWSET_SCROLLBAR_TIPS : mpViewOption->SetShowScrollBarTips(bVal); break;
684 case HANDLE_VIEWSET_RASTER_RESOLUTION_X :
685 {
686 sal_Int32 nTmp = 0;
687 if(!(rValue >>= nTmp) || nTmp < 10)
688 throw IllegalArgumentException();
689 Size aSize( mpViewOption->GetSnapSize() );
690 aSize.Width() = MM100_TO_TWIP( nTmp );
691 mpViewOption->SetSnapSize( aSize );
692 }
693 break;
694 case HANDLE_VIEWSET_RASTER_RESOLUTION_Y :
695 {
696 sal_Int32 nTmp = 0;
697 if(!(rValue >>= nTmp) || nTmp < 10)
698 throw IllegalArgumentException();
699 Size aSize( mpViewOption->GetSnapSize() );
700 aSize.Height() = MM100_TO_TWIP( nTmp );
701 mpViewOption->SetSnapSize( aSize );
702 }
703 break;
704 case HANDLE_VIEWSET_RASTER_SUBDIVISION_X :
705 {
706 sal_Int32 nTmp = 0;
707 if(!(rValue >>= nTmp) || !(0 <= nTmp && nTmp < 100))
708 throw IllegalArgumentException();
709 mpViewOption->SetDivisionX( (short) nTmp );
710 }
711 break;
712 case HANDLE_VIEWSET_RASTER_SUBDIVISION_Y :
713 {
714 sal_Int32 nTmp = 0;
715 if(!(rValue >>= nTmp) || !(0 <= nTmp && nTmp < 100))
716 throw IllegalArgumentException();
717 mpViewOption->SetDivisionY( (short) nTmp );
718 }
719 break;
720 case HANDLE_VIEWSET_ZOOM :
721 {
722 sal_Int16 nZoom = 0;
723 if(!(rValue >>= nZoom) || nZoom > 1000 || nZoom < 5)
724 throw lang::IllegalArgumentException();
725 mpViewOption->SetZoom((sal_uInt16)nZoom);
726 mbApplyZoom = sal_True;
727 }
728 break;
729 case HANDLE_VIEWSET_ZOOM_TYPE:
730 {
731 sal_Int16 nZoom = 0;
732 if(!(rValue >>= nZoom))
733 throw IllegalArgumentException();
734 SvxZoomType eZoom = (SvxZoomType)USHRT_MAX;
735 switch (nZoom)
736 {
737 case view::DocumentZoomType::OPTIMAL:
738 eZoom = SVX_ZOOM_OPTIMAL;
739 break;
740 case view::DocumentZoomType::PAGE_WIDTH:
741 eZoom = SVX_ZOOM_PAGEWIDTH;
742 break;
743 case view::DocumentZoomType::ENTIRE_PAGE:
744 eZoom = SVX_ZOOM_WHOLEPAGE;
745 break;
746 case view::DocumentZoomType::BY_VALUE:
747 eZoom = SVX_ZOOM_PERCENT;
748 break;
749 case view::DocumentZoomType::PAGE_WIDTH_EXACT:
750 eZoom = SVX_ZOOM_PAGEWIDTH_NOBORDER;
751 break;
752 default:
753 throw IllegalArgumentException(
754 ::rtl::OUString::createFromAscii(
755 "SwXViewSettings: invalid zoom type"), 0, 0);
756 break;
757 }
758 if(eZoom < USHRT_MAX)
759 {
760 mpViewOption->SetZoomType( eZoom );
761 mbApplyZoom = sal_True;
762 }
763 }
764 break;
765 case HANDLE_VIEWSET_ONLINE_LAYOUT :
766 {
767 if( pView && !bVal != !pView->GetWrtShell().GetViewOptions()->getBrowseMode() )
768 {
769 SwViewOption aOpt( *pView->GetWrtShell().GetViewOptions() );
770 aOpt.setBrowseMode( bVal );
771 pView->GetWrtShell().ApplyViewOptions( aOpt );
772 pView->RecheckBrowseMode();
773
774 // must be set in mpViewOption as this will overwrite settings in _post!
775 mpViewOption->setBrowseMode( bVal );
776
777 // disable multiple layout
778 pView->GetDocShell()->ToggleBrowserMode(bVal, pView );
779 }
780 }
781 break;
782 case HANDLE_VIEWSET_HELP_URL :
783 {
784 if ( pView )
785 {
786 OUString sHelpURL;
787 if ( ! ( rValue >>= sHelpURL ) )
788 throw IllegalArgumentException();
789
790 INetURLObject aHID( sHelpURL );
791 if ( aHID.GetProtocol() == INET_PROT_HID )
792 pView->GetEditWin().SetHelpId( rtl::OUStringToOString( aHID.GetURLPath(), RTL_TEXTENCODING_UTF8 ) );
793 else
794 throw IllegalArgumentException ();
795 }
796 else
797 throw UnknownPropertyException();
798 }
799 break;
800 case HANDLE_VIEWSET_HORI_RULER_METRIC:
801 case HANDLE_VIEWSET_VERT_RULER_METRIC:
802 {
803 sal_Int32 nUnit = -1;
804 if( rValue >>= nUnit )
805 switch( nUnit )
806 {
807 case FUNIT_MM:
808 case FUNIT_CM:
809 case FUNIT_POINT:
810 case FUNIT_PICA:
811 case FUNIT_INCH:
812 if( rInfo.mnHandle == HANDLE_VIEWSET_HORI_RULER_METRIC )
813 {
814 eHRulerUnit = nUnit;
815 mbApplyHRulerMetric = sal_True;
816 }
817 else
818 {
819 eVRulerUnit = nUnit;
820 mbApplyVRulerMetric = sal_True;
821 }
822 break;
823 default:
824 throw IllegalArgumentException();
825 }
826 }
827 break;
828 default:
829 throw UnknownPropertyException();
830 }
831 }
832
_postSetValues()833 void SwXViewSettings::_postSetValues ()
834 {
835 if( pView )
836 {
837 if(mbApplyZoom )
838 pView->SetZoom( (SvxZoomType)mpViewOption->GetZoomType(),
839 mpViewOption->GetZoom(), sal_True );
840 if(mbApplyHRulerMetric)
841 pView->ChangeTabMetric((FieldUnit)eHRulerUnit);
842 if(mbApplyVRulerMetric)
843 pView->ChangeVRulerMetric((FieldUnit)eVRulerUnit);
844
845 }
846 else
847 {
848 if(mbApplyHRulerMetric)
849 SW_MOD()->ApplyRulerMetric( (FieldUnit)eHRulerUnit, sal_True, bWeb );
850 if(mbApplyVRulerMetric)
851 SW_MOD()->ApplyRulerMetric( (FieldUnit)eVRulerUnit, sal_False, bWeb );
852 }
853
854
855 SW_MOD()->ApplyUsrPref( *mpViewOption, pView, pView ? VIEWOPT_DEST_VIEW_ONLY
856 : bWeb ? VIEWOPT_DEST_WEB
857 : VIEWOPT_DEST_TEXT );
858
859
860 delete mpViewOption;
861 mpViewOption = NULL;
862 }
863
_preGetValues()864 void SwXViewSettings::_preGetValues ()
865 {
866 if(pView)
867 {
868 if(!IsValid())
869 return;
870 mpConstViewOption = pView->GetWrtShell().GetViewOptions();
871 }
872 else
873 mpConstViewOption = SW_MOD()->GetViewOption(bWeb);
874 }
_getSingleValue(const comphelper::PropertyInfo & rInfo,uno::Any & rValue)875 void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
876 {
877 sal_Bool bBool = sal_True;
878 sal_Bool bBoolVal;
879 switch( rInfo.mnHandle )
880 {
881 case HANDLE_VIEWSET_SHOW_RULER: bBoolVal = mpConstViewOption->IsViewAnyRuler(); break;
882 case HANDLE_VIEWSET_HRULER : bBoolVal = mpConstViewOption->IsViewHRuler(sal_True); break;
883 case HANDLE_VIEWSET_VRULER : bBoolVal = mpConstViewOption->IsViewVRuler(sal_True);break;
884 case HANDLE_VIEWSET_VRULER_RIGHT : bBoolVal = mpConstViewOption->IsVRulerRight();break;
885 case HANDLE_VIEWSET_HSCROLL: bBoolVal = mpConstViewOption->IsViewHScrollBar();break;
886 case HANDLE_VIEWSET_VSCROLL: bBoolVal = mpConstViewOption->IsViewVScrollBar();break;
887 case HANDLE_VIEWSET_GRAPHICS : bBoolVal = mpConstViewOption->IsGraphic();break;
888 case HANDLE_VIEWSET_TABLES : bBoolVal = mpConstViewOption->IsTable(); break;
889 case HANDLE_VIEWSET_DRAWINGS : bBoolVal = mpConstViewOption->IsDraw(); break;
890 case HANDLE_VIEWSET_FIELD_COMMANDS : bBoolVal = mpConstViewOption->IsFldName(); break;
891 case HANDLE_VIEWSET_ANNOTATIONS : bBoolVal = mpConstViewOption->IsPostIts(); break;
892 case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
893 case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: bBoolVal = mpConstViewOption->IsViewMetaChars(); break;
894 case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
895 case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
896 case HANDLE_VIEWSET_PARA_BREAKS : bBoolVal = mpConstViewOption->IsParagraph(sal_True); break;
897 case HANDLE_VIEWSET_SOFT_HYPHENS : bBoolVal = mpConstViewOption->IsSoftHyph(); break;
898 case HANDLE_VIEWSET_SPACES : bBoolVal = mpConstViewOption->IsBlank(sal_True); break;
899 case HANDLE_VIEWSET_PROTECTED_SPACES : bBoolVal = mpConstViewOption->IsHardBlank(); break;
900 case HANDLE_VIEWSET_TABSTOPS : bBoolVal = mpConstViewOption->IsTab(sal_True); break;
901 case HANDLE_VIEWSET_BREAKS : bBoolVal = mpConstViewOption->IsLineBreak(sal_True); break;
902 case HANDLE_VIEWSET_HIDDEN_TEXT : bBoolVal = mpConstViewOption->IsShowHiddenField(); break;
903 case HANDLE_VIEWSET_HIDDEN_CHARACTERS : bBoolVal = mpConstViewOption->IsShowHiddenChar(sal_True); break;
904 case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : bBoolVal = mpConstViewOption->IsShowHiddenPara(); break;
905 case HANDLE_VIEWSET_TABLE_BOUNDARIES : bBoolVal = SwViewOption::IsTableBoundaries(); break;
906 case HANDLE_VIEWSET_TEXT_BOUNDARIES : bBoolVal = SwViewOption::IsDocBoundaries(); break;
907 case HANDLE_VIEWSET_SMOOTH_SCROLLING : bBoolVal = mpConstViewOption->IsSmoothScroll(); break;
908 case HANDLE_VIEWSET_SOLID_MARK_HANDLES : bBoolVal = mpConstViewOption->IsSolidMarkHdl(); break;
909 case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : bBoolVal = mpConstViewOption->IsShowContentTips(); break;
910 case HANDLE_VIEWSET_IS_RASTER_VISIBLE : bBoolVal = mpConstViewOption->IsGridVisible(); break;
911 case HANDLE_VIEWSET_IS_SNAP_TO_RASTER : bBoolVal = mpConstViewOption->IsSnap(); break;
912 case HANDLE_VIEWSET_SCROLLBAR_TIPS : bBoolVal = mpConstViewOption->IsShowScrollBarTips(); break;
913 case HANDLE_VIEWSET_RASTER_RESOLUTION_X :
914 bBool = sal_False;
915 rValue <<= (sal_Int32) TWIP_TO_MM100(mpConstViewOption->GetSnapSize().Width());
916 break;
917 case HANDLE_VIEWSET_RASTER_RESOLUTION_Y :
918 bBool = sal_False;
919 rValue <<= (sal_Int32) TWIP_TO_MM100(mpConstViewOption->GetSnapSize().Height());
920 break;
921 case HANDLE_VIEWSET_RASTER_SUBDIVISION_X :
922 bBool = sal_False;
923 rValue <<= (sal_Int32) mpConstViewOption->GetDivisionX();
924 break;
925 case HANDLE_VIEWSET_RASTER_SUBDIVISION_Y :
926 bBool = sal_False;
927 rValue <<= (sal_Int32) mpConstViewOption->GetDivisionY();
928 break;
929 case HANDLE_VIEWSET_ZOOM :
930 bBool = sal_False;
931 rValue <<= (sal_Int16)mpConstViewOption->GetZoom();
932 break;
933 case HANDLE_VIEWSET_ZOOM_TYPE:
934 {
935 bBool = sal_False;
936 sal_Int16 nRet(0);
937 switch (mpConstViewOption->GetZoomType())
938 {
939 case SVX_ZOOM_OPTIMAL:
940 nRet = view::DocumentZoomType::OPTIMAL;
941 break;
942 case SVX_ZOOM_PAGEWIDTH:
943 nRet = view::DocumentZoomType::PAGE_WIDTH;
944 break;
945 case SVX_ZOOM_WHOLEPAGE:
946 nRet = view::DocumentZoomType::ENTIRE_PAGE;
947 break;
948 case SVX_ZOOM_PERCENT:
949 nRet = view::DocumentZoomType::BY_VALUE;
950 break;
951 case SVX_ZOOM_PAGEWIDTH_NOBORDER:
952 nRet = view::DocumentZoomType::PAGE_WIDTH_EXACT;
953 break;
954 default:
955 OSL_ENSURE(false, "SwXViewSettings: invalid zoom type");
956 break;
957 }
958 rValue <<= nRet;
959 }
960 break;
961 case HANDLE_VIEWSET_ONLINE_LAYOUT:
962 if(pView)
963 bBoolVal = pView->GetWrtShell().GetViewOptions()->getBrowseMode();
964 break;
965 case HANDLE_VIEWSET_HELP_URL :
966 {
967 if ( pView )
968 {
969 bBool = sal_False;
970 OUStringBuffer sHelpURL;
971 sHelpURL.appendAscii ( INET_HID_SCHEME );
972 SwEditWin &rEditWin = pView->GetEditWin();
973 sHelpURL.append( rtl::OStringToOUString( rEditWin.GetHelpId(), RTL_TEXTENCODING_UTF8 ) );
974 rValue <<= sHelpURL.makeStringAndClear();
975 }
976 else
977 throw UnknownPropertyException();
978 }
979 break;
980 case HANDLE_VIEWSET_HORI_RULER_METRIC:
981 {
982 if ( pView )
983 {
984 FieldUnit eUnit;
985 pView->GetHRulerMetric( eUnit );
986 rValue <<= (sal_Int32)eUnit;
987 }
988 else
989 {
990 const SwMasterUsrPref* pUsrPref = SW_MOD()->GetUsrPref( bWeb );
991 rValue <<= (sal_Int32)pUsrPref->GetHScrollMetric();
992 }
993 bBool = sal_False;
994 }
995 break;
996 case HANDLE_VIEWSET_VERT_RULER_METRIC:
997 {
998 if ( pView )
999 {
1000 FieldUnit eUnit;
1001 pView->GetVRulerMetric( eUnit );
1002 rValue <<= (sal_Int32)eUnit;
1003 }
1004 else
1005 {
1006 const SwMasterUsrPref* pUsrPref = SW_MOD()->GetUsrPref( bWeb );
1007 rValue <<= (sal_Int32)pUsrPref->GetVScrollMetric();
1008 }
1009 bBool = sal_False;
1010 }
1011 break;
1012 default: DBG_ERROR("Diese Id gibt's nicht!");
1013 }
1014 if( bBool )
1015 rValue.setValue(&bBoolVal, ::getBooleanCppuType());
1016 }
_postGetValues()1017 void SwXViewSettings::_postGetValues ()
1018 {
1019 mpConstViewOption = NULL;
1020 }
1021
getImplementationName(void)1022 OUString SwXViewSettings::getImplementationName(void)
1023 {
1024 return C2U("SwXViewSettings");
1025 }
1026
supportsService(const OUString & rServiceName)1027 sal_Bool SwXViewSettings::supportsService(const OUString& rServiceName)
1028 {
1029 return C2U("com.sun.star.text.ViewSettings") == rServiceName;
1030 }
1031
getSupportedServiceNames(void)1032 Sequence< OUString > SwXViewSettings::getSupportedServiceNames(void)
1033 {
1034 Sequence< OUString > aRet(1);
1035 OUString* pArray = aRet.getArray();
1036 pArray[0] = C2U("com.sun.star.text.ViewSettings");
1037 return aRet;
1038 }
1039
1040 /* vim: set noet sw=4 ts=4: */
1041