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