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