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