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 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 } 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 * --------------------------------------------------*/ 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 ---------------------------------------------------------------------------*/ 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 ---------------------------------------------------------------------------*/ 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 -----------------------------------------------------------------------*/ 233 SwXModule::SwXModule() : 234 pxViewSettings(0), 235 pxPrintSettings(0) 236 { 237 } 238 /*-- 17.12.98 12:19:02--------------------------------------------------- 239 240 -----------------------------------------------------------------------*/ 241 SwXModule::~SwXModule() 242 { 243 delete pxViewSettings; 244 delete pxPrintSettings; 245 } 246 /*-- 17.12.98 12:19:03--------------------------------------------------- 247 248 -----------------------------------------------------------------------*/ 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 -----------------------------------------------------------------------*/ 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 ---------------------------------------------------------------------------*/ 277 OUString SwXModule::getImplementationName(void) throw( RuntimeException ) 278 { 279 return SwXModule_getImplementationName(); 280 } 281 /* -----------------------------06.04.00 10:59-------------------------------- 282 283 ---------------------------------------------------------------------------*/ 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 ---------------------------------------------------------------------------*/ 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 -----------------------------------------------------------------------*/ 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 -----------------------------------------------------------------------*/ 318 SwXPrintSettings::~SwXPrintSettings() 319 throw() 320 { 321 } 322 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 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 } 473 void SwXPrintSettings::_postSetValues () 474 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) 475 { 476 mpPrtOpt = NULL; 477 } 478 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 } 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 } 572 void SwXPrintSettings::_postGetValues () 573 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) 574 { 575 mpPrtOpt = NULL; 576 } 577 /* -----------------------------06.04.00 11:02-------------------------------- 578 579 ---------------------------------------------------------------------------*/ 580 OUString SwXPrintSettings::getImplementationName(void) throw( RuntimeException ) 581 { 582 return C2U("SwXPrintSettings"); 583 } 584 /* -----------------------------06.04.00 11:02-------------------------------- 585 586 ---------------------------------------------------------------------------*/ 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 ---------------------------------------------------------------------------*/ 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 -----------------------------------------------------------------------*/ 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 -----------------------------------------------------------------------*/ 629 SwXViewSettings::~SwXViewSettings() 630 throw() 631 { 632 633 } 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 } 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 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 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 } 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 } 1028 void SwXViewSettings::_postGetValues () 1029 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) 1030 { 1031 mpConstViewOption = NULL; 1032 } 1033 1034 OUString SwXViewSettings::getImplementationName(void) throw( RuntimeException ) 1035 { 1036 return C2U("SwXViewSettings"); 1037 } 1038 1039 sal_Bool SwXViewSettings::supportsService(const OUString& rServiceName) throw( RuntimeException ) 1040 { 1041 return C2U("com.sun.star.text.ViewSettings") == rServiceName; 1042 } 1043 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