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