Clean up uses of Any::getValue() in sw
[LibreOffice.git] / sw / source / uibase / uno / unomod.cxx
blobc6486853568b54f7520df9d7302c20d8f25a5184
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #include <swtypes.hxx>
21 #include <o3tl/any.hxx>
22 #include <osl/diagnose.h>
23 #include <unomod.hxx>
24 #include <unomid.h>
25 #include <unoprnms.hxx>
26 #include <unomap.hxx>
27 #include <prtopt.hxx>
28 #include <swmodule.hxx>
29 #include <view.hxx>
30 #include <docsh.hxx>
31 #include <wrtsh.hxx>
32 #include <viewopt.hxx>
33 #include <osl/mutex.hxx>
34 #include <vcl/svapp.hxx>
35 #include <com/sun/star/text/NotePrintMode.hpp>
36 #include <doc.hxx>
37 #include <IDocumentDeviceAccess.hxx>
38 #include <com/sun/star/beans/PropertyAttribute.hpp>
39 #include <com/sun/star/view/DocumentZoomType.hpp>
40 #include <comphelper/ChainablePropertySetInfo.hxx>
41 #include <cppuhelper/supportsservice.hxx>
42 #include <edtwin.hxx>
43 #include <rtl/ustrbuf.hxx>
44 #include <tools/urlobj.hxx>
45 using namespace ::com::sun::star;
46 using namespace ::com::sun::star::uno;
47 using namespace ::com::sun::star::beans;
48 using namespace ::com::sun::star::lang;
49 using namespace ::comphelper;
51 enum SwViewSettingsPropertyHandles
53 HANDLE_VIEWSET_ANNOTATIONS,
54 HANDLE_VIEWSET_BREAKS,
55 HANDLE_VIEWSET_DRAWINGS,
56 HANDLE_VIEWSET_FIELD_COMMANDS,
57 HANDLE_VIEWSET_FOOTNOTE_BACKGROUND,
58 HANDLE_VIEWSET_GRAPHICS,
59 HANDLE_VIEWSET_HIDDEN_CHARACTERS,
60 HANDLE_VIEWSET_HIDDEN_PARAGRAPHS,
61 HANDLE_VIEWSET_HIDDEN_TEXT,
62 HANDLE_VIEWSET_HRULER,
63 HANDLE_VIEWSET_HSCROLL,
64 HANDLE_VIEWSET_INDEX_MARK_BACKGROUND,
65 HANDLE_VIEWSET_NONPRINTING_CHARACTERS,
66 HANDLE_VIEWSET_ONLINE_LAYOUT,
67 HANDLE_VIEWSET_PARA_BREAKS,
68 HANDLE_VIEWSET_PROTECTED_SPACES,
69 HANDLE_VIEWSET_SOFT_HYPHENS,
70 HANDLE_VIEWSET_SPACES,
71 HANDLE_VIEWSET_TABLE_BOUNDARIES,
72 HANDLE_VIEWSET_TABLES,
73 HANDLE_VIEWSET_TABSTOPS,
74 HANDLE_VIEWSET_TEXT_BOUNDARIES,
75 HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND,
76 HANDLE_VIEWSET_VRULER,
77 HANDLE_VIEWSET_VSCROLL,
78 HANDLE_VIEWSET_SMOOTH_SCROLLING,
79 HANDLE_VIEWSET_ZOOM_TYPE,
80 HANDLE_VIEWSET_ZOOM,
81 HANDLE_VIEWSET_SHOW_CONTENT_TIPS,
82 HANDLE_VIEWSET_HELP_URL,
83 HANDLE_VIEWSET_VRULER_RIGHT,
84 HANDLE_VIEWSET_SHOW_RULER,
85 HANDLE_VIEWSET_IS_RASTER_VISIBLE,
86 HANDLE_VIEWSET_IS_SNAP_TO_RASTER,
87 HANDLE_VIEWSET_RASTER_RESOLUTION_X,
88 HANDLE_VIEWSET_RASTER_RESOLUTION_Y,
89 HANDLE_VIEWSET_RASTER_SUBDIVISION_X,
90 HANDLE_VIEWSET_RASTER_SUBDIVISION_Y,
91 HANDLE_VIEWSET_HORI_RULER_METRIC,
92 HANDLE_VIEWSET_VERT_RULER_METRIC,
93 HANDLE_VIEWSET_SCROLLBAR_TIPS,
94 HANDLE_VIEWSET_HIDE_WHITESPACE
97 enum SwPrintSettingsPropertyHandles
99 HANDLE_PRINTSET_ANNOTATION_MODE,
100 HANDLE_PRINTSET_BLACK_FONTS,
101 HANDLE_PRINTSET_CONTROLS,
102 HANDLE_PRINTSET_DRAWINGS,
103 HANDLE_PRINTSET_GRAPHICS,
104 HANDLE_PRINTSET_LEFT_PAGES,
105 HANDLE_PRINTSET_PAGE_BACKGROUND,
106 HANDLE_PRINTSET_PROSPECT,
107 HANDLE_PRINTSET_REVERSED,
108 HANDLE_PRINTSET_RIGHT_PAGES,
109 HANDLE_PRINTSET_FAX_NAME,
110 HANDLE_PRINTSET_PAPER_FROM_SETUP,
111 HANDLE_PRINTSET_TABLES,
112 HANDLE_PRINTSET_SINGLE_JOBS,
113 HANDLE_PRINTSET_EMPTY_PAGES,
114 HANDLE_PRINTSET_PROSPECT_RTL,
115 HANDLE_PRINTSET_PLACEHOLDER,
116 HANDLE_PRINTSET_HIDDEN_TEXT
119 static ChainablePropertySetInfo * lcl_createViewSettingsInfo()
121 static PropertyInfo const aViewSettingsMap_Impl[] =
123 { OUString( "HelpURL" ), HANDLE_VIEWSET_HELP_URL , cppu::UnoType<OUString>::get(), PROPERTY_NONE},
124 { OUString( "HorizontalRulerMetric"),HANDLE_VIEWSET_HORI_RULER_METRIC , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
125 { OUString( "IsRasterVisible"), HANDLE_VIEWSET_IS_RASTER_VISIBLE, cppu::UnoType<bool>::get(), PROPERTY_NONE},
126 { OUString( "IsSnapToRaster"), HANDLE_VIEWSET_IS_SNAP_TO_RASTER, cppu::UnoType<bool>::get(), PROPERTY_NONE},
127 { OUString( "IsVertRulerRightAligned"),HANDLE_VIEWSET_VRULER_RIGHT , cppu::UnoType<bool>::get(), PROPERTY_NONE},
128 { OUString( "ShowContentTips" ), HANDLE_VIEWSET_SHOW_CONTENT_TIPS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
129 { OUString( "RasterResolutionX"), HANDLE_VIEWSET_RASTER_RESOLUTION_X, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
130 { OUString( "RasterResolutionY"), HANDLE_VIEWSET_RASTER_RESOLUTION_Y, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
131 { OUString( "RasterSubdivisionX"), HANDLE_VIEWSET_RASTER_SUBDIVISION_X, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
132 { OUString( "RasterSubdivisionY"), HANDLE_VIEWSET_RASTER_SUBDIVISION_Y, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
133 { OUString( "ShowAnnotations" ), HANDLE_VIEWSET_ANNOTATIONS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
134 { OUString( "ShowBreaks"), HANDLE_VIEWSET_BREAKS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
135 { OUString( "ShowDrawings"), HANDLE_VIEWSET_DRAWINGS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
136 { OUString( "ShowFieldCommands"), HANDLE_VIEWSET_FIELD_COMMANDS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
137 { OUString( "ShowFootnoteBackground"),HANDLE_VIEWSET_FOOTNOTE_BACKGROUND , cppu::UnoType<bool>::get(), PROPERTY_NONE},
138 { OUString( "ShowGraphics"), HANDLE_VIEWSET_GRAPHICS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
139 { OUString( "ShowHiddenCharacters"), HANDLE_VIEWSET_HIDDEN_CHARACTERS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
140 { OUString( "HideWhitespace"), HANDLE_VIEWSET_HIDE_WHITESPACE , cppu::UnoType<bool>::get(), PROPERTY_NONE},
141 { OUString( "ShowHiddenParagraphs"), HANDLE_VIEWSET_HIDDEN_PARAGRAPHS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
142 { OUString( "ShowHiddenText"), HANDLE_VIEWSET_HIDDEN_TEXT , cppu::UnoType<bool>::get(), PROPERTY_NONE},
143 { OUString( "ShowHoriRuler"), HANDLE_VIEWSET_HRULER , cppu::UnoType<bool>::get(), PROPERTY_NONE},
144 { OUString( "ShowHoriScrollBar"), HANDLE_VIEWSET_HSCROLL , cppu::UnoType<bool>::get(), PROPERTY_NONE},
145 { OUString( "ShowIndexMarkBackground"),HANDLE_VIEWSET_INDEX_MARK_BACKGROUND, cppu::UnoType<bool>::get(),PROPERTY_NONE},
146 { OUString( "ShowNonprintingCharacters"),HANDLE_VIEWSET_NONPRINTING_CHARACTERS, cppu::UnoType<bool>::get(),PROPERTY_NONE},
147 { OUString( "ShowOnlineLayout"), HANDLE_VIEWSET_ONLINE_LAYOUT , cppu::UnoType<bool>::get(), PropertyAttribute::MAYBEVOID},
148 { OUString( "ShowParaBreaks"), HANDLE_VIEWSET_PARA_BREAKS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
149 { OUString( "ShowProtectedSpaces"), HANDLE_VIEWSET_PROTECTED_SPACES , cppu::UnoType<bool>::get(), PROPERTY_NONE},
150 { OUString( "ShowRulers"), HANDLE_VIEWSET_SHOW_RULER , cppu::UnoType<bool>::get(), PROPERTY_NONE},
151 { OUString( "ShowScrollBarTips"), HANDLE_VIEWSET_SCROLLBAR_TIPS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
152 { OUString( "ShowSoftHyphens"), HANDLE_VIEWSET_SOFT_HYPHENS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
153 { OUString( "ShowSpaces"), HANDLE_VIEWSET_SPACES , cppu::UnoType<bool>::get(), PROPERTY_NONE},
154 { OUString( "ShowTableBoundaries"), HANDLE_VIEWSET_TABLE_BOUNDARIES , cppu::UnoType<bool>::get(), PROPERTY_NONE},
155 { OUString( "ShowTables"), HANDLE_VIEWSET_TABLES , cppu::UnoType<bool>::get(), PROPERTY_NONE},
156 { OUString( "ShowTabstops"), HANDLE_VIEWSET_TABSTOPS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
157 { OUString( "ShowTextBoundaries"), HANDLE_VIEWSET_TEXT_BOUNDARIES , cppu::UnoType<bool>::get(), PROPERTY_NONE},
158 { OUString( "ShowTextFieldBackground"),HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND, cppu::UnoType<bool>::get(),PROPERTY_NONE},
159 { OUString( "ShowVertRuler"), HANDLE_VIEWSET_VRULER , cppu::UnoType<bool>::get(), PROPERTY_NONE},
160 { OUString( "ShowVertScrollBar"), HANDLE_VIEWSET_VSCROLL , cppu::UnoType<bool>::get(), PROPERTY_NONE},
161 { OUString( "SmoothScrolling"), HANDLE_VIEWSET_SMOOTH_SCROLLING , cppu::UnoType<bool>::get(), PROPERTY_NONE},
162 { OUString( "VerticalRulerMetric"), HANDLE_VIEWSET_VERT_RULER_METRIC , cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
163 { OUString( "ZoomType"), HANDLE_VIEWSET_ZOOM_TYPE , cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE},
164 { OUString( "ZoomValue"), HANDLE_VIEWSET_ZOOM , cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE},
165 { OUString(), 0, css::uno::Type(), 0 }
167 return new ChainablePropertySetInfo ( aViewSettingsMap_Impl );
170 static ChainablePropertySetInfo * lcl_createPrintSettingsInfo()
172 static PropertyInfo const aPrintSettingsMap_Impl[] =
174 { OUString( "PrintAnnotationMode" ), HANDLE_PRINTSET_ANNOTATION_MODE , cppu::UnoType<sal_Int16>::get(), PROPERTY_NONE},
175 { OUString( "PrintBlackFonts" ), HANDLE_PRINTSET_BLACK_FONTS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
176 { OUString( "PrintControls" ), HANDLE_PRINTSET_CONTROLS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
177 { OUString( "PrintDrawings" ), HANDLE_PRINTSET_DRAWINGS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
178 { OUString( "PrintGraphics" ), HANDLE_PRINTSET_GRAPHICS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
179 { OUString( "PrintHiddenText"), HANDLE_PRINTSET_HIDDEN_TEXT , cppu::UnoType<bool>::get(), PROPERTY_NONE},
180 { OUString( "PrintLeftPages" ), HANDLE_PRINTSET_LEFT_PAGES , cppu::UnoType<bool>::get(), PROPERTY_NONE},
181 { OUString( "PrintPageBackground" ), HANDLE_PRINTSET_PAGE_BACKGROUND , cppu::UnoType<bool>::get(), PROPERTY_NONE},
182 { OUString( "PrintProspect" ), HANDLE_PRINTSET_PROSPECT , cppu::UnoType<bool>::get(), PROPERTY_NONE},
183 { OUString( "PrintProspectRTL" ), HANDLE_PRINTSET_PROSPECT_RTL , cppu::UnoType<bool>::get(), PROPERTY_NONE},
184 { OUString( "PrintReversed" ), HANDLE_PRINTSET_REVERSED , cppu::UnoType<bool>::get(), PROPERTY_NONE},
185 { OUString( "PrintRightPages" ), HANDLE_PRINTSET_RIGHT_PAGES , cppu::UnoType<bool>::get(), PROPERTY_NONE},
186 { OUString( "PrintFaxName" ), HANDLE_PRINTSET_FAX_NAME , cppu::UnoType<OUString>::get(), PROPERTY_NONE},
187 { OUString( "PrintPaperFromSetup" ), HANDLE_PRINTSET_PAPER_FROM_SETUP , cppu::UnoType<bool>::get(), PROPERTY_NONE},
188 { OUString( "PrintTables" ), HANDLE_PRINTSET_TABLES , cppu::UnoType<bool>::get(), PROPERTY_NONE},
189 { OUString( "PrintTextPlaceholder"), HANDLE_PRINTSET_PLACEHOLDER , cppu::UnoType<bool>::get(), PROPERTY_NONE},
190 { OUString( "PrintSingleJobs" ), HANDLE_PRINTSET_SINGLE_JOBS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
191 { OUString( "PrintEmptyPages" ), HANDLE_PRINTSET_EMPTY_PAGES , cppu::UnoType<bool>::get(), PROPERTY_NONE},
192 { OUString(), 0, css::uno::Type(), 0}
194 return new ChainablePropertySetInfo ( aPrintSettingsMap_Impl );
197 SwXModule::SwXModule() :
198 mxViewSettings(),
199 mxPrintSettings()
203 SwXModule::~SwXModule()
207 Reference< XPropertySet > SwXModule::getViewSettings() throw( uno::RuntimeException, std::exception )
209 SolarMutexGuard aGuard;
210 if(!mxViewSettings.is())
212 OSL_FAIL("Web or Text?");
213 mxViewSettings = static_cast < HelperBaseNoState * > ( new SwXViewSettings( nullptr ) );
215 return mxViewSettings;
218 Reference< XPropertySet > SwXModule::getPrintSettings() throw( uno::RuntimeException, std::exception )
220 SolarMutexGuard aGuard;
221 if(!mxPrintSettings.is())
223 OSL_FAIL("Web or Text?");
224 mxPrintSettings = static_cast < HelperBaseNoState * > ( new SwXPrintSettings ( PRINT_SETTINGS_MODULE ) );
226 return mxPrintSettings;
229 OUString SwXModule::getImplementationName() throw( RuntimeException, std::exception )
231 return OUString( "SwXModule" );
234 sal_Bool SwXModule::supportsService(const OUString& rServiceName) throw( RuntimeException, std::exception )
236 return cppu::supportsService(this, rServiceName);
239 Sequence< OUString > SwXModule::getSupportedServiceNames() throw( RuntimeException, std::exception )
241 OUString sService( "com.sun.star.text.GlobalSettings");
242 const Sequence< OUString > aSeq( &sService, 1 );
243 return aSeq;
246 SwXPrintSettings::SwXPrintSettings(SwXPrintSettingsType eType, SwDoc* pDoc)
247 : ChainableHelperNoState ( lcl_createPrintSettingsInfo (), &Application::GetSolarMutex() )
248 , meType(eType)
249 , mpPrtOpt ( nullptr )
250 , mpDoc ( pDoc )
254 SwXPrintSettings::~SwXPrintSettings()
255 throw()
259 void SwXPrintSettings::_preSetValues ()
260 throw (UnknownPropertyException, PropertyVetoException,
261 IllegalArgumentException, WrappedTargetException,
262 RuntimeException)
264 switch (meType)
266 case PRINT_SETTINGS_MODULE:
267 mpPrtOpt = SW_MOD()->GetPrtOptions( false );
268 break;
269 case PRINT_SETTINGS_WEB:
270 mpPrtOpt = SW_MOD()->GetPrtOptions( true );
271 break;
272 case PRINT_SETTINGS_DOCUMENT:
274 if (!mpDoc)
275 throw IllegalArgumentException ();
276 mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getIDocumentDeviceAccess().getPrintData());
278 break;
282 void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
283 throw (UnknownPropertyException, PropertyVetoException,
284 IllegalArgumentException, WrappedTargetException)
286 bool bVal;
288 switch( rInfo.mnHandle )
290 case HANDLE_PRINTSET_LEFT_PAGES:
292 bVal = *o3tl::tryAccess<bool>(rValue);
293 mpPrtOpt->SetPrintLeftPage(bVal);
295 break;
296 case HANDLE_PRINTSET_RIGHT_PAGES:
298 bVal = *o3tl::tryAccess<bool>(rValue);
299 mpPrtOpt->SetPrintRightPage(bVal);
301 break;
302 case HANDLE_PRINTSET_REVERSED:
304 bVal = *o3tl::tryAccess<bool>(rValue);
305 mpPrtOpt->SetPrintReverse(bVal);
307 break;
308 case HANDLE_PRINTSET_PROSPECT:
310 bVal = *o3tl::tryAccess<bool>(rValue);
311 mpPrtOpt->SetPrintProspect(bVal);
313 break;
314 case HANDLE_PRINTSET_GRAPHICS:
316 bVal = *o3tl::tryAccess<bool>(rValue);
317 mpPrtOpt->SetPrintGraphic(bVal);
319 break;
320 case HANDLE_PRINTSET_TABLES:
322 bVal = *o3tl::tryAccess<bool>(rValue);
323 mpPrtOpt->SetPrintTable(bVal);
325 break;
326 case HANDLE_PRINTSET_DRAWINGS:
328 bVal = *o3tl::tryAccess<bool>(rValue);
329 mpPrtOpt->SetPrintDraw(bVal);
331 break;
332 case HANDLE_PRINTSET_CONTROLS:
334 bVal = *o3tl::tryAccess<bool>(rValue);
335 mpPrtOpt->SetPrintControl(bVal);
337 break;
338 case HANDLE_PRINTSET_PAGE_BACKGROUND:
340 bVal = *o3tl::tryAccess<bool>(rValue);
341 mpPrtOpt->SetPrintPageBackground(bVal);
343 break;
344 case HANDLE_PRINTSET_BLACK_FONTS:
346 bVal = *o3tl::tryAccess<bool>(rValue);
347 mpPrtOpt->SetPrintBlackFont(bVal);
349 break;
350 case HANDLE_PRINTSET_SINGLE_JOBS:
352 bVal = *o3tl::tryAccess<bool>(rValue);
353 mpPrtOpt->SetPrintSingleJobs(bVal);
355 break;
356 case HANDLE_PRINTSET_PAPER_FROM_SETUP:
358 bVal = *o3tl::tryAccess<bool>(rValue);
359 mpPrtOpt->SetPaperFromSetup(bVal);
361 break;
362 case HANDLE_PRINTSET_ANNOTATION_MODE:
364 sal_Int16 nTmp = 0;
365 rValue >>= nTmp;
366 SwPostItMode nVal = static_cast<SwPostItMode>(nTmp);
367 if(nVal <= SwPostItMode::EndPage)
368 mpPrtOpt->SetPrintPostIts(nVal);
369 else
370 throw lang::IllegalArgumentException();
372 break;
373 case HANDLE_PRINTSET_EMPTY_PAGES:
375 bVal = *o3tl::tryAccess<bool>(rValue);
376 mpPrtOpt->SetPrintEmptyPages(bVal);
378 break;
379 case HANDLE_PRINTSET_FAX_NAME:
381 OUString sString;
382 if ( rValue >>= sString)
383 mpPrtOpt->SetFaxName(sString);
384 else
385 throw lang::IllegalArgumentException();
387 break;
388 case HANDLE_PRINTSET_PROSPECT_RTL:
390 bVal = *o3tl::tryAccess<bool>(rValue);
391 mpPrtOpt->SetPrintProspect_RTL(bVal);
393 break;
394 case HANDLE_PRINTSET_PLACEHOLDER:
396 bVal = *o3tl::tryAccess<bool>(rValue);
397 mpPrtOpt->SetPrintTextPlaceholder(bVal);
399 break;
400 case HANDLE_PRINTSET_HIDDEN_TEXT:
402 bVal = *o3tl::tryAccess<bool>(rValue);
403 mpPrtOpt->SetPrintHiddenText(bVal);
405 break;
406 default:
407 throw UnknownPropertyException();
411 void SwXPrintSettings::_postSetValues()
412 throw (UnknownPropertyException, PropertyVetoException,
413 IllegalArgumentException, WrappedTargetException,
414 RuntimeException)
416 mpPrtOpt = nullptr;
419 void SwXPrintSettings::_preGetValues()
420 throw (UnknownPropertyException, PropertyVetoException,
421 IllegalArgumentException, WrappedTargetException,
422 RuntimeException)
424 switch (meType)
426 case PRINT_SETTINGS_MODULE:
427 mpPrtOpt = SW_MOD()->GetPrtOptions( false );
428 break;
429 case PRINT_SETTINGS_WEB:
430 mpPrtOpt = SW_MOD()->GetPrtOptions( true );
431 break;
432 case PRINT_SETTINGS_DOCUMENT:
434 if (!mpDoc)
435 throw IllegalArgumentException ();
436 mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getIDocumentDeviceAccess().getPrintData());
438 break;
442 void SwXPrintSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
443 throw(UnknownPropertyException, WrappedTargetException )
445 switch( rInfo.mnHandle )
447 case HANDLE_PRINTSET_LEFT_PAGES:
448 rValue <<= mpPrtOpt->IsPrintLeftPage();
449 break;
450 case HANDLE_PRINTSET_RIGHT_PAGES:
451 rValue <<= mpPrtOpt->IsPrintRightPage();
452 break;
453 case HANDLE_PRINTSET_REVERSED:
454 rValue <<= mpPrtOpt->IsPrintReverse();
455 break;
456 case HANDLE_PRINTSET_PROSPECT:
457 rValue <<= mpPrtOpt->IsPrintProspect();
458 break;
459 case HANDLE_PRINTSET_GRAPHICS:
460 rValue <<= mpPrtOpt->IsPrintGraphic();
461 break;
462 case HANDLE_PRINTSET_TABLES:
463 rValue <<= mpPrtOpt->IsPrintTable();
464 break;
465 case HANDLE_PRINTSET_DRAWINGS:
466 rValue <<= mpPrtOpt->IsPrintDraw();
467 break;
468 case HANDLE_PRINTSET_CONTROLS:
469 rValue <<= mpPrtOpt->IsPrintControl();
470 break;
471 case HANDLE_PRINTSET_PAGE_BACKGROUND:
472 rValue <<= mpPrtOpt->IsPrintPageBackground();
473 break;
474 case HANDLE_PRINTSET_BLACK_FONTS:
475 rValue <<= mpPrtOpt->IsPrintBlackFont();
476 break;
477 case HANDLE_PRINTSET_SINGLE_JOBS:
478 rValue <<= mpPrtOpt->IsPrintSingleJobs();
479 break;
480 case HANDLE_PRINTSET_EMPTY_PAGES:
481 rValue <<= mpPrtOpt->IsPrintEmptyPages();
482 break;
483 case HANDLE_PRINTSET_PAPER_FROM_SETUP:
484 rValue <<= mpPrtOpt->IsPaperFromSetup();
485 break;
486 case HANDLE_PRINTSET_ANNOTATION_MODE:
488 rValue <<= static_cast < sal_Int16 > ( mpPrtOpt->GetPrintPostIts() );
490 break;
491 case HANDLE_PRINTSET_FAX_NAME :
493 rValue <<= mpPrtOpt->GetFaxName();
495 break;
496 case HANDLE_PRINTSET_PROSPECT_RTL:
498 rValue <<= mpPrtOpt->IsPrintProspectRTL();
500 break;
501 case HANDLE_PRINTSET_PLACEHOLDER:
503 rValue <<= mpPrtOpt->IsPrintTextPlaceholder();
505 break;
506 case HANDLE_PRINTSET_HIDDEN_TEXT:
508 rValue <<= mpPrtOpt->IsPrintHiddenText();
510 break;
511 default:
512 throw UnknownPropertyException();
516 void SwXPrintSettings::_postGetValues ()
517 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
519 mpPrtOpt = nullptr;
522 OUString SwXPrintSettings::getImplementationName() throw( RuntimeException, std::exception )
524 return OUString("SwXPrintSettings");
527 sal_Bool SwXPrintSettings::supportsService(const OUString& rServiceName) throw( RuntimeException, std::exception )
529 return cppu::supportsService(this, rServiceName);
532 Sequence< OUString > SwXPrintSettings::getSupportedServiceNames() throw( RuntimeException, std::exception )
534 Sequence<OUString> aRet { "com.sun.star.text.PrintSettings" };
535 return aRet;
538 SwXViewSettings::SwXViewSettings(SwView* pVw)
539 : ChainableHelperNoState( lcl_createViewSettingsInfo (), &Application::GetSolarMutex() )
540 , pView(pVw)
541 , mpViewOption(nullptr)
542 , mpConstViewOption(nullptr)
543 , bObjectValid(true)
544 , bWeb(false)
545 , mbApplyZoom(false)
546 , eHRulerUnit(FUNIT_CM)
547 , mbApplyHRulerMetric(false)
548 , eVRulerUnit(FUNIT_CM)
549 , mbApplyVRulerMetric(false)
551 // This property only exists if we have a view (ie, not at the module )
552 if ( !pView )
553 mpInfo->remove ( "HelpURL" );
557 SwXViewSettings::~SwXViewSettings()
558 throw()
563 void SwXViewSettings::_preSetValues ()
564 throw (UnknownPropertyException, PropertyVetoException,
565 IllegalArgumentException, WrappedTargetException,
566 RuntimeException)
568 const SwViewOption* pVOpt = nullptr;
569 if(pView)
571 if(!IsValid())
572 return;
573 pVOpt = pView->GetWrtShell().GetViewOptions();
575 else
576 pVOpt = SW_MOD()->GetViewOption(bWeb);
578 mpViewOption = new SwViewOption (*pVOpt);
579 mbApplyZoom = false;
580 if(pView)
581 mpViewOption->SetStarOneSetting(true);
584 void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
585 throw (UnknownPropertyException, PropertyVetoException,
586 IllegalArgumentException, WrappedTargetException,
587 RuntimeException, std::exception)
589 // the API flag should not be set to the application's view settings
590 switch( rInfo.mnHandle )
592 case HANDLE_VIEWSET_SHOW_RULER : mpViewOption->SetViewAnyRuler(*o3tl::doAccess<bool>(rValue)); break;
593 case HANDLE_VIEWSET_HRULER : mpViewOption->SetViewHRuler(*o3tl::doAccess<bool>(rValue)); break;
594 case HANDLE_VIEWSET_VRULER : mpViewOption->SetViewVRuler(*o3tl::doAccess<bool>(rValue));break;
595 case HANDLE_VIEWSET_VRULER_RIGHT : mpViewOption->SetVRulerRight(*o3tl::doAccess<bool>(rValue));break;
596 case HANDLE_VIEWSET_HSCROLL : mpViewOption->SetViewHScrollBar(*o3tl::doAccess<bool>(rValue));break;
597 case HANDLE_VIEWSET_VSCROLL : mpViewOption->SetViewVScrollBar(*o3tl::doAccess<bool>(rValue));break;
598 case HANDLE_VIEWSET_GRAPHICS : mpViewOption->SetGraphic(*o3tl::doAccess<bool>(rValue));break;
599 case HANDLE_VIEWSET_TABLES : mpViewOption->SetTable(*o3tl::doAccess<bool>(rValue)); break;
600 case HANDLE_VIEWSET_DRAWINGS : mpViewOption->SetDraw(*o3tl::doAccess<bool>(rValue)); break;
601 case HANDLE_VIEWSET_FIELD_COMMANDS : mpViewOption->SetFieldName(*o3tl::doAccess<bool>(rValue)); break;
602 case HANDLE_VIEWSET_ANNOTATIONS : mpViewOption->SetPostIts(*o3tl::doAccess<bool>(rValue)); break;
603 case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
604 case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: mpViewOption->SetViewMetaChars( *o3tl::doAccess<bool>(rValue) ); break;
605 case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
606 case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : SwViewOption::SetAppearanceFlag(ViewOptFlags::FieldShadings, *o3tl::doAccess<bool>(rValue), true); break;
607 case HANDLE_VIEWSET_PARA_BREAKS : mpViewOption->SetParagraph(*o3tl::doAccess<bool>(rValue)); break;
608 case HANDLE_VIEWSET_SOFT_HYPHENS : mpViewOption->SetSoftHyph(*o3tl::doAccess<bool>(rValue)); break;
609 case HANDLE_VIEWSET_SPACES : mpViewOption->SetBlank(*o3tl::doAccess<bool>(rValue)); break;
610 case HANDLE_VIEWSET_PROTECTED_SPACES : mpViewOption->SetHardBlank(*o3tl::doAccess<bool>(rValue)); break;
611 case HANDLE_VIEWSET_TABSTOPS : mpViewOption->SetTab(*o3tl::doAccess<bool>(rValue)); break;
612 case HANDLE_VIEWSET_BREAKS : mpViewOption->SetLineBreak(*o3tl::doAccess<bool>(rValue)); break;
613 case HANDLE_VIEWSET_HIDDEN_TEXT : mpViewOption->SetShowHiddenField(*o3tl::doAccess<bool>(rValue)); break;
614 case HANDLE_VIEWSET_HIDDEN_CHARACTERS : mpViewOption->SetShowHiddenChar(*o3tl::doAccess<bool>(rValue)); break;
615 case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : mpViewOption->SetShowHiddenPara(*o3tl::doAccess<bool>(rValue)); break;
616 case HANDLE_VIEWSET_TABLE_BOUNDARIES : SwViewOption::SetAppearanceFlag(ViewOptFlags::TableBoundaries, *o3tl::doAccess<bool>(rValue), true); break;
617 case HANDLE_VIEWSET_TEXT_BOUNDARIES : SwViewOption::SetDocBoundaries(*o3tl::doAccess<bool>(rValue)); break;
618 case HANDLE_VIEWSET_SMOOTH_SCROLLING : mpViewOption->SetSmoothScroll(*o3tl::doAccess<bool>(rValue)); break;
619 case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : mpViewOption->SetShowContentTips(*o3tl::doAccess<bool>(rValue)); break;
620 case HANDLE_VIEWSET_IS_RASTER_VISIBLE : mpViewOption->SetGridVisible(*o3tl::doAccess<bool>(rValue)); break;
621 case HANDLE_VIEWSET_IS_SNAP_TO_RASTER : mpViewOption->SetSnap(*o3tl::doAccess<bool>(rValue)); break;
622 case HANDLE_VIEWSET_SCROLLBAR_TIPS : mpViewOption->SetShowScrollBarTips(*o3tl::doAccess<bool>(rValue)); break;
623 case HANDLE_VIEWSET_RASTER_RESOLUTION_X :
625 sal_Int32 nTmp = 0;
626 if(!(rValue >>= nTmp) || nTmp < 10)
627 throw IllegalArgumentException();
628 Size aSize( mpViewOption->GetSnapSize() );
629 aSize.Width() = convertMm100ToTwip( nTmp );
630 mpViewOption->SetSnapSize( aSize );
632 break;
633 case HANDLE_VIEWSET_RASTER_RESOLUTION_Y :
635 sal_Int32 nTmp = 0;
636 if(!(rValue >>= nTmp) || nTmp < 10)
637 throw IllegalArgumentException();
638 Size aSize( mpViewOption->GetSnapSize() );
639 aSize.Height() = convertMm100ToTwip( nTmp );
640 mpViewOption->SetSnapSize( aSize );
642 break;
643 case HANDLE_VIEWSET_RASTER_SUBDIVISION_X :
645 sal_Int32 nTmp = 0;
646 if(!(rValue >>= nTmp) || !(0 <= nTmp && nTmp < 100))
647 throw IllegalArgumentException();
648 mpViewOption->SetDivisionX( (short) nTmp );
650 break;
651 case HANDLE_VIEWSET_RASTER_SUBDIVISION_Y :
653 sal_Int32 nTmp = 0;
654 if(!(rValue >>= nTmp) || !(0 <= nTmp && nTmp < 100))
655 throw IllegalArgumentException();
656 mpViewOption->SetDivisionY( (short) nTmp );
658 break;
659 case HANDLE_VIEWSET_ZOOM :
661 sal_Int16 nZoom = 0;
662 if(!(rValue >>= nZoom) || nZoom > 1000 || nZoom < 5)
663 throw lang::IllegalArgumentException();
664 mpViewOption->SetZoom((sal_uInt16)nZoom);
665 mbApplyZoom = true;
667 break;
668 case HANDLE_VIEWSET_ZOOM_TYPE:
670 sal_Int16 nZoom = 0;
671 if(!(rValue >>= nZoom))
672 throw IllegalArgumentException();
673 SvxZoomType eZoom;
674 switch (nZoom)
676 case view::DocumentZoomType::OPTIMAL:
677 eZoom = SvxZoomType::OPTIMAL;
678 break;
679 case view::DocumentZoomType::PAGE_WIDTH:
680 eZoom = SvxZoomType::PAGEWIDTH;
681 break;
682 case view::DocumentZoomType::ENTIRE_PAGE:
683 eZoom = SvxZoomType::WHOLEPAGE;
684 break;
685 case view::DocumentZoomType::BY_VALUE:
686 eZoom = SvxZoomType::PERCENT;
687 break;
688 case view::DocumentZoomType::PAGE_WIDTH_EXACT:
689 eZoom = SvxZoomType::PAGEWIDTH_NOBORDER;
690 break;
691 default:
692 throw IllegalArgumentException(
693 "SwXViewSettings: invalid zoom type", nullptr, 0);
695 mpViewOption->SetZoomType( eZoom );
696 mbApplyZoom = true;
698 break;
699 case HANDLE_VIEWSET_ONLINE_LAYOUT :
701 if ( pView )
703 bool bVal = *o3tl::doAccess<bool>(rValue);
704 SwViewOption aOpt(*pView->GetWrtShell().GetViewOptions());
705 if (!bVal != !aOpt.getBrowseMode())
707 aOpt.setBrowseMode( bVal );
708 pView->GetWrtShell().ApplyViewOptions( aOpt );
710 // must be set in mpViewOption as this will overwrite settings in _post!
711 if(mpViewOption)
712 mpViewOption->setBrowseMode(bVal);
714 pView->GetDocShell()->ToggleLayoutMode(pView);
718 break;
719 case HANDLE_VIEWSET_HIDE_WHITESPACE:
721 if ( pView )
723 bool bVal = *o3tl::doAccess<bool>(rValue);
724 SwViewOption aOpt(*pView->GetWrtShell().GetViewOptions());
725 if (!bVal != !aOpt.IsHideWhitespaceMode())
727 aOpt.SetHideWhitespaceMode( bVal );
728 pView->GetWrtShell().ApplyViewOptions( aOpt );
730 // must be set in mpViewOption as this will overwrite settings in _post!
731 if(mpViewOption)
732 mpViewOption->SetHideWhitespaceMode(bVal);
736 break;
737 case HANDLE_VIEWSET_HELP_URL:
739 if ( pView )
741 OUString sHelpURL;
742 if ( ! ( rValue >>= sHelpURL ) )
743 throw IllegalArgumentException();
745 INetURLObject aHID( sHelpURL );
746 if ( aHID.GetProtocol() == INetProtocol::Hid )
747 pView->GetEditWin().SetHelpId( OUStringToOString( aHID.GetURLPath(), RTL_TEXTENCODING_UTF8 ) );
748 else
749 throw IllegalArgumentException ();
751 else
752 throw UnknownPropertyException();
754 break;
755 case HANDLE_VIEWSET_HORI_RULER_METRIC:
756 case HANDLE_VIEWSET_VERT_RULER_METRIC:
758 sal_uInt16 nUnit;
759 if( rValue >>= nUnit )
760 switch( nUnit )
762 case FUNIT_MM:
763 case FUNIT_CM:
764 case FUNIT_POINT:
765 case FUNIT_PICA:
766 case FUNIT_INCH:
767 if( rInfo.mnHandle == HANDLE_VIEWSET_HORI_RULER_METRIC )
769 eHRulerUnit = static_cast<FieldUnit>(nUnit);
770 mbApplyHRulerMetric = true;
772 else
774 eVRulerUnit = static_cast<FieldUnit>(nUnit);
775 mbApplyVRulerMetric = true;
777 break;
778 default:
779 throw IllegalArgumentException();
782 break;
783 default:
784 throw UnknownPropertyException();
788 void SwXViewSettings::_postSetValues()
789 throw (UnknownPropertyException, PropertyVetoException,
790 IllegalArgumentException, WrappedTargetException,
791 RuntimeException )
793 if( pView )
795 if(mbApplyZoom )
796 pView->SetZoom( (SvxZoomType)mpViewOption->GetZoomType(),
797 mpViewOption->GetZoom(), true );
798 if(mbApplyHRulerMetric)
799 pView->ChangeTabMetric((FieldUnit)eHRulerUnit);
800 if(mbApplyVRulerMetric)
801 pView->ChangeVRulerMetric((FieldUnit)eVRulerUnit);
804 else
806 if(mbApplyHRulerMetric)
807 SW_MOD()->ApplyRulerMetric( (FieldUnit)eHRulerUnit, true, bWeb );
808 if(mbApplyVRulerMetric)
809 SW_MOD()->ApplyRulerMetric( (FieldUnit)eVRulerUnit, false, bWeb );
812 SW_MOD()->ApplyUsrPref( *mpViewOption, pView, pView ? SvViewOpt::DestViewOnly
813 : bWeb ? SvViewOpt::DestWeb
814 : SvViewOpt::DestText );
816 delete mpViewOption;
817 mpViewOption = nullptr;
820 void SwXViewSettings::_preGetValues ()
821 throw (UnknownPropertyException, PropertyVetoException,
822 IllegalArgumentException, WrappedTargetException,
823 RuntimeException)
825 if(pView)
827 if(!IsValid())
828 return;
829 mpConstViewOption = pView->GetWrtShell().GetViewOptions();
831 else
832 mpConstViewOption = SW_MOD()->GetViewOption(bWeb);
835 void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
836 throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
838 bool bBool = true;
839 bool bBoolVal = false;
840 switch( rInfo.mnHandle )
842 case HANDLE_VIEWSET_SHOW_RULER: bBoolVal = mpConstViewOption->IsViewAnyRuler(); break;
843 case HANDLE_VIEWSET_HRULER : bBoolVal = mpConstViewOption->IsViewHRuler(true); break;
844 case HANDLE_VIEWSET_VRULER : bBoolVal = mpConstViewOption->IsViewVRuler(true);break;
845 case HANDLE_VIEWSET_VRULER_RIGHT : bBoolVal = mpConstViewOption->IsVRulerRight();break;
846 case HANDLE_VIEWSET_HSCROLL: bBoolVal = mpConstViewOption->IsViewHScrollBar();break;
847 case HANDLE_VIEWSET_VSCROLL: bBoolVal = mpConstViewOption->IsViewVScrollBar();break;
848 case HANDLE_VIEWSET_GRAPHICS : bBoolVal = mpConstViewOption->IsGraphic();break;
849 case HANDLE_VIEWSET_TABLES : bBoolVal = mpConstViewOption->IsTable(); break;
850 case HANDLE_VIEWSET_DRAWINGS : bBoolVal = mpConstViewOption->IsDraw(); break;
851 case HANDLE_VIEWSET_FIELD_COMMANDS : bBoolVal = mpConstViewOption->IsFieldName(); break;
852 case HANDLE_VIEWSET_ANNOTATIONS : bBoolVal = mpConstViewOption->IsPostIts(); break;
853 case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
854 case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: bBoolVal = mpConstViewOption->IsViewMetaChars(); break;
855 case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
856 case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break;
857 case HANDLE_VIEWSET_PARA_BREAKS : bBoolVal = mpConstViewOption->IsParagraph(true); break;
858 case HANDLE_VIEWSET_SOFT_HYPHENS : bBoolVal = mpConstViewOption->IsSoftHyph(); break;
859 case HANDLE_VIEWSET_SPACES : bBoolVal = mpConstViewOption->IsBlank(true); break;
860 case HANDLE_VIEWSET_PROTECTED_SPACES : bBoolVal = mpConstViewOption->IsHardBlank(); break;
861 case HANDLE_VIEWSET_TABSTOPS : bBoolVal = mpConstViewOption->IsTab(true); break;
862 case HANDLE_VIEWSET_BREAKS : bBoolVal = mpConstViewOption->IsLineBreak(true); break;
863 case HANDLE_VIEWSET_HIDDEN_TEXT : bBoolVal = mpConstViewOption->IsShowHiddenField(); break;
864 case HANDLE_VIEWSET_HIDDEN_CHARACTERS : bBoolVal = mpConstViewOption->IsShowHiddenChar(true); break;
865 case HANDLE_VIEWSET_HIDE_WHITESPACE : bBoolVal = mpConstViewOption->IsHideWhitespaceMode(); break;
866 case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : bBoolVal = mpConstViewOption->IsShowHiddenPara(); break;
867 case HANDLE_VIEWSET_TABLE_BOUNDARIES : bBoolVal = SwViewOption::IsTableBoundaries(); break;
868 case HANDLE_VIEWSET_TEXT_BOUNDARIES : bBoolVal = SwViewOption::IsDocBoundaries(); break;
869 case HANDLE_VIEWSET_SMOOTH_SCROLLING : bBoolVal = mpConstViewOption->IsSmoothScroll(); break;
870 case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : bBoolVal = mpConstViewOption->IsShowContentTips(); break;
871 case HANDLE_VIEWSET_IS_RASTER_VISIBLE : bBoolVal = mpConstViewOption->IsGridVisible(); break;
872 case HANDLE_VIEWSET_IS_SNAP_TO_RASTER : bBoolVal = mpConstViewOption->IsSnap(); break;
873 case HANDLE_VIEWSET_SCROLLBAR_TIPS : bBoolVal = mpConstViewOption->IsShowScrollBarTips(); break;
874 case HANDLE_VIEWSET_RASTER_RESOLUTION_X :
875 bBool = false;
876 rValue <<= (sal_Int32) convertTwipToMm100(mpConstViewOption->GetSnapSize().Width());
877 break;
878 case HANDLE_VIEWSET_RASTER_RESOLUTION_Y :
879 bBool = false;
880 rValue <<= (sal_Int32) convertTwipToMm100(mpConstViewOption->GetSnapSize().Height());
881 break;
882 case HANDLE_VIEWSET_RASTER_SUBDIVISION_X :
883 bBool = false;
884 rValue <<= (sal_Int32) mpConstViewOption->GetDivisionX();
885 break;
886 case HANDLE_VIEWSET_RASTER_SUBDIVISION_Y :
887 bBool = false;
888 rValue <<= (sal_Int32) mpConstViewOption->GetDivisionY();
889 break;
890 case HANDLE_VIEWSET_ZOOM :
891 bBool = false;
892 rValue <<= (sal_Int16)mpConstViewOption->GetZoom();
893 break;
894 case HANDLE_VIEWSET_ZOOM_TYPE:
896 bBool = false;
897 sal_Int16 nRet(0);
898 switch (mpConstViewOption->GetZoomType())
900 case SvxZoomType::OPTIMAL:
901 nRet = view::DocumentZoomType::OPTIMAL;
902 break;
903 case SvxZoomType::PAGEWIDTH:
904 nRet = view::DocumentZoomType::PAGE_WIDTH;
905 break;
906 case SvxZoomType::WHOLEPAGE:
907 nRet = view::DocumentZoomType::ENTIRE_PAGE;
908 break;
909 case SvxZoomType::PERCENT:
910 nRet = view::DocumentZoomType::BY_VALUE;
911 break;
912 case SvxZoomType::PAGEWIDTH_NOBORDER:
913 nRet = view::DocumentZoomType::PAGE_WIDTH_EXACT;
914 break;
915 default:
916 OSL_FAIL("SwXViewSettings: invalid zoom type");
917 break;
919 rValue <<= nRet;
921 break;
922 case HANDLE_VIEWSET_ONLINE_LAYOUT:
923 if(pView)
924 bBoolVal = pView->GetWrtShell().GetViewOptions()->getBrowseMode();
925 break;
926 case HANDLE_VIEWSET_HELP_URL :
928 if ( pView )
930 bBool = false;
931 OUStringBuffer sHelpURL;
932 sHelpURL.append ( INET_HID_SCHEME );
933 SwEditWin &rEditWin = pView->GetEditWin();
934 sHelpURL.append( OUString::fromUtf8( rEditWin.GetHelpId() ) );
935 rValue <<= sHelpURL.makeStringAndClear();
937 else
938 throw UnknownPropertyException();
940 break;
941 case HANDLE_VIEWSET_HORI_RULER_METRIC:
943 if ( pView )
945 FieldUnit eUnit;
946 pView->GetHRulerMetric( eUnit );
947 rValue <<= (sal_Int32)eUnit;
949 else
951 const SwMasterUsrPref* pUsrPref = SW_MOD()->GetUsrPref( bWeb );
952 rValue <<= (sal_Int32)pUsrPref->GetHScrollMetric();
954 bBool = false;
956 break;
957 case HANDLE_VIEWSET_VERT_RULER_METRIC:
959 if ( pView )
961 FieldUnit eUnit;
962 pView->GetVRulerMetric( eUnit );
963 rValue <<= (sal_Int32)eUnit;
965 else
967 const SwMasterUsrPref* pUsrPref = SW_MOD()->GetUsrPref( bWeb );
968 rValue <<= (sal_Int32)pUsrPref->GetVScrollMetric();
970 bBool = false;
972 break;
973 default: OSL_FAIL("there is no such ID!");
975 if( bBool )
976 rValue <<= bBoolVal;
979 void SwXViewSettings::_postGetValues ()
980 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
982 mpConstViewOption = nullptr;
985 OUString SwXViewSettings::getImplementationName() throw( RuntimeException, std::exception )
987 return OUString("SwXViewSettings");
990 sal_Bool SwXViewSettings::supportsService(const OUString& rServiceName) throw( RuntimeException, std::exception )
992 return cppu::supportsService(this, rServiceName);
995 Sequence< OUString > SwXViewSettings::getSupportedServiceNames() throw( RuntimeException, std::exception )
997 Sequence<OUString> aRet { "com.sun.star.text.ViewSettings" };
998 return aRet;
1001 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* SAL_CALL
1002 SwXModule_get_implementation(css::uno::XComponentContext*,
1003 css::uno::Sequence<css::uno::Any> const &)
1005 return cppu::acquire(new SwXModule());
1008 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */