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