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