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*/) 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) 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) 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) 278 { 279 return SwXModule_getImplementationName(); 280 } 281 /* -----------------------------06.04.00 10:59-------------------------------- 282 283 ---------------------------------------------------------------------------*/ 284 sal_Bool SwXModule::supportsService(const OUString& rServiceName) 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) 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 { 325 switch (meType) 326 { 327 case PRINT_SETTINGS_MODULE: 328 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_False ); 329 break; 330 case PRINT_SETTINGS_WEB: 331 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_True ); 332 break; 333 case PRINT_SETTINGS_DOCUMENT: 334 { 335 if (!mpDoc) 336 throw IllegalArgumentException (); 337 mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getPrintData()); 338 } 339 break; 340 } 341 } 342 343 void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue ) 344 { 345 sal_Bool bVal; 346 if ( rInfo.mnHandle != HANDLE_PRINTSET_ANNOTATION_MODE && 347 rInfo.mnHandle != HANDLE_PRINTSET_FAX_NAME ) 348 bVal = *(sal_Bool*)rValue.getValue(); 349 350 switch( rInfo.mnHandle ) 351 { 352 case HANDLE_PRINTSET_LEFT_PAGES: 353 { 354 bVal = *(sal_Bool*)rValue.getValue(); 355 mpPrtOpt->SetPrintLeftPage(bVal); 356 } 357 break; 358 case HANDLE_PRINTSET_RIGHT_PAGES: 359 { 360 bVal = *(sal_Bool*)rValue.getValue(); 361 mpPrtOpt->SetPrintRightPage(bVal); 362 } 363 break; 364 case HANDLE_PRINTSET_REVERSED: 365 { 366 bVal = *(sal_Bool*)rValue.getValue(); 367 mpPrtOpt->SetPrintReverse(bVal); 368 } 369 break; 370 case HANDLE_PRINTSET_PROSPECT: 371 { 372 bVal = *(sal_Bool*)rValue.getValue(); 373 mpPrtOpt->SetPrintProspect(bVal); 374 } 375 break; 376 case HANDLE_PRINTSET_GRAPHICS: 377 { 378 bVal = *(sal_Bool*)rValue.getValue(); 379 mpPrtOpt->SetPrintGraphic(bVal); 380 } 381 break; 382 case HANDLE_PRINTSET_TABLES: 383 { 384 bVal = *(sal_Bool*)rValue.getValue(); 385 mpPrtOpt->SetPrintTable(bVal); 386 } 387 break; 388 case HANDLE_PRINTSET_DRAWINGS: 389 { 390 bVal = *(sal_Bool*)rValue.getValue(); 391 mpPrtOpt->SetPrintDraw(bVal); 392 } 393 break; 394 case HANDLE_PRINTSET_CONTROLS: 395 { 396 bVal = *(sal_Bool*)rValue.getValue(); 397 mpPrtOpt->SetPrintControl(bVal); 398 } 399 break; 400 case HANDLE_PRINTSET_PAGE_BACKGROUND: 401 { 402 bVal = *(sal_Bool*)rValue.getValue(); 403 mpPrtOpt->SetPrintPageBackground(bVal); 404 } 405 break; 406 case HANDLE_PRINTSET_BLACK_FONTS: 407 { 408 bVal = *(sal_Bool*)rValue.getValue(); 409 mpPrtOpt->SetPrintBlackFont(bVal); 410 } 411 break; 412 case HANDLE_PRINTSET_SINGLE_JOBS: 413 { 414 bVal = *(sal_Bool*)rValue.getValue(); 415 mpPrtOpt->SetPrintSingleJobs(bVal); 416 } 417 break; 418 case HANDLE_PRINTSET_PAPER_FROM_SETUP: 419 { 420 bVal = *(sal_Bool*)rValue.getValue(); 421 mpPrtOpt->SetPaperFromSetup(bVal); 422 } 423 break; 424 case HANDLE_PRINTSET_ANNOTATION_MODE: 425 { 426 sal_Int16 nVal = 0; 427 rValue >>= nVal; 428 if(nVal <= text::NotePrintMode_PAGE_END) 429 mpPrtOpt->SetPrintPostIts(nVal); 430 else 431 throw lang::IllegalArgumentException(); 432 } 433 break; 434 case HANDLE_PRINTSET_EMPTY_PAGES: 435 { 436 bVal = *(sal_Bool*)rValue.getValue(); 437 mpPrtOpt->SetPrintEmptyPages(bVal); 438 } 439 break; 440 case HANDLE_PRINTSET_FAX_NAME: 441 { 442 OUString sString; 443 if ( rValue >>= sString) 444 mpPrtOpt->SetFaxName(sString); 445 else 446 throw lang::IllegalArgumentException(); 447 } 448 break; 449 case HANDLE_PRINTSET_PROSPECT_RTL: 450 { 451 bVal = *(sal_Bool*)rValue.getValue(); 452 mpPrtOpt->SetPrintProspect_RTL(bVal); 453 } 454 break; 455 case HANDLE_PRINTSET_PLACEHOLDER: 456 { 457 bVal = *(sal_Bool*)rValue.getValue(); 458 mpPrtOpt->SetPrintTextPlaceholder(bVal); 459 } 460 break; 461 case HANDLE_PRINTSET_HIDDEN_TEXT: 462 { 463 bVal = *(sal_Bool*)rValue.getValue(); 464 mpPrtOpt->SetPrintHiddenText(bVal); 465 } 466 break; 467 default: 468 throw UnknownPropertyException(); 469 } 470 } 471 void SwXPrintSettings::_postSetValues () 472 { 473 mpPrtOpt = NULL; 474 } 475 476 void SwXPrintSettings::_preGetValues () 477 { 478 switch (meType) 479 { 480 case PRINT_SETTINGS_MODULE: 481 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_False ); 482 break; 483 case PRINT_SETTINGS_WEB: 484 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_True ); 485 break; 486 case PRINT_SETTINGS_DOCUMENT: 487 { 488 if (!mpDoc) 489 throw IllegalArgumentException (); 490 mpPrtOpt = const_cast< SwPrintData * >(&mpDoc->getPrintData()); 491 } 492 break; 493 } 494 } 495 void SwXPrintSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue ) 496 { 497 switch( rInfo.mnHandle ) 498 { 499 case HANDLE_PRINTSET_LEFT_PAGES: 500 rValue <<= mpPrtOpt->IsPrintLeftPage(); 501 break; 502 case HANDLE_PRINTSET_RIGHT_PAGES: 503 rValue <<= mpPrtOpt->IsPrintRightPage(); 504 break; 505 case HANDLE_PRINTSET_REVERSED: 506 rValue <<= mpPrtOpt->IsPrintReverse(); 507 break; 508 case HANDLE_PRINTSET_PROSPECT: 509 rValue <<= mpPrtOpt->IsPrintProspect(); 510 break; 511 case HANDLE_PRINTSET_GRAPHICS: 512 rValue <<= mpPrtOpt->IsPrintGraphic(); 513 break; 514 case HANDLE_PRINTSET_TABLES: 515 rValue <<= mpPrtOpt->IsPrintTable(); 516 break; 517 case HANDLE_PRINTSET_DRAWINGS: 518 rValue <<= mpPrtOpt->IsPrintDraw(); 519 break; 520 case HANDLE_PRINTSET_CONTROLS: 521 rValue <<= mpPrtOpt->IsPrintControl(); 522 break; 523 case HANDLE_PRINTSET_PAGE_BACKGROUND: 524 rValue <<= mpPrtOpt->IsPrintPageBackground(); 525 break; 526 case HANDLE_PRINTSET_BLACK_FONTS: 527 rValue <<= mpPrtOpt->IsPrintBlackFont(); 528 break; 529 case HANDLE_PRINTSET_SINGLE_JOBS: 530 rValue <<= mpPrtOpt->IsPrintSingleJobs(); 531 break; 532 case HANDLE_PRINTSET_EMPTY_PAGES: 533 rValue <<= mpPrtOpt->IsPrintEmptyPages(); 534 break; 535 case HANDLE_PRINTSET_PAPER_FROM_SETUP: 536 rValue <<= mpPrtOpt->IsPaperFromSetup(); 537 break; 538 case HANDLE_PRINTSET_ANNOTATION_MODE: 539 { 540 rValue <<= static_cast < sal_Int16 > ( mpPrtOpt->GetPrintPostIts() ); 541 } 542 break; 543 case HANDLE_PRINTSET_FAX_NAME : 544 { 545 rValue <<= mpPrtOpt->GetFaxName(); 546 } 547 break; 548 case HANDLE_PRINTSET_PROSPECT_RTL: 549 { 550 rValue <<= mpPrtOpt->IsPrintProspectRTL(); 551 } 552 break; 553 case HANDLE_PRINTSET_PLACEHOLDER: 554 { 555 rValue <<= mpPrtOpt->IsPrintTextPlaceholder(); 556 } 557 break; 558 case HANDLE_PRINTSET_HIDDEN_TEXT: 559 { 560 rValue <<= mpPrtOpt->IsPrintHiddenText(); 561 } 562 break; 563 default: 564 throw UnknownPropertyException(); 565 } 566 } 567 void SwXPrintSettings::_postGetValues () 568 { 569 mpPrtOpt = NULL; 570 } 571 /* -----------------------------06.04.00 11:02-------------------------------- 572 573 ---------------------------------------------------------------------------*/ 574 OUString SwXPrintSettings::getImplementationName(void) 575 { 576 return C2U("SwXPrintSettings"); 577 } 578 /* -----------------------------06.04.00 11:02-------------------------------- 579 580 ---------------------------------------------------------------------------*/ 581 sal_Bool SwXPrintSettings::supportsService(const OUString& rServiceName) 582 { 583 return C2U("com.sun.star.text.PrintSettings") == rServiceName; 584 } 585 /* -----------------------------06.04.00 11:02-------------------------------- 586 587 ---------------------------------------------------------------------------*/ 588 Sequence< OUString > SwXPrintSettings::getSupportedServiceNames(void) 589 { 590 Sequence< OUString > aRet(1); 591 OUString* pArray = aRet.getArray(); 592 pArray[0] = C2U("com.sun.star.text.PrintSettings"); 593 return aRet; 594 } 595 596 597 /****************************************************************** 598 * 599 ******************************************************************/ 600 /*-- 18.12.98 11:01:10--------------------------------------------------- 601 602 -----------------------------------------------------------------------*/ 603 SwXViewSettings::SwXViewSettings(sal_Bool bWebView, SwView* pVw) 604 : ChainableHelperNoState( lcl_createViewSettingsInfo (), &Application::GetSolarMutex() ) 605 , pView(pVw) 606 , mpViewOption ( NULL ) 607 , mpConstViewOption ( NULL ) 608 , bObjectValid(sal_True) 609 , bWeb(bWebView) 610 , eHRulerUnit( FUNIT_CM ) 611 , mbApplyHRulerMetric( sal_False ) 612 , eVRulerUnit( FUNIT_CM ) 613 , mbApplyVRulerMetric( sal_False ) 614 { 615 // This property only exists if we have a view (ie, not at the module ) 616 if ( !pView ) 617 mpInfo->remove ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "HelpURL" ) ) ); 618 619 } 620 /*-- 18.12.98 11:01:10--------------------------------------------------- 621 622 -----------------------------------------------------------------------*/ 623 SwXViewSettings::~SwXViewSettings() 624 throw() 625 { 626 627 } 628 void SwXViewSettings::_preSetValues () 629 { 630 const SwViewOption* pVOpt = 0; 631 if(pView) 632 { 633 if(!IsValid()) 634 return; 635 pVOpt = pView->GetWrtShell().GetViewOptions(); 636 } 637 else 638 pVOpt = SW_MOD()->GetViewOption(bWeb); 639 640 mpViewOption = new SwViewOption (*pVOpt); 641 mbApplyZoom = sal_False; 642 if(pView) 643 mpViewOption->SetStarOneSetting(sal_True); 644 } 645 void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue ) 646 { 647 sal_Bool bVal = HANDLE_VIEWSET_ZOOM != rInfo.mnHandle ? 648 *(sal_Bool*)rValue.getValue() : sal_False; 649 // the API flag should not be set to the application's view settings 650 switch( rInfo.mnHandle ) 651 { 652 case HANDLE_VIEWSET_SHOW_RULER : mpViewOption->SetViewAnyRuler(bVal); break; 653 case HANDLE_VIEWSET_HRULER : mpViewOption->SetViewHRuler(bVal); break; 654 case HANDLE_VIEWSET_VRULER : mpViewOption->SetViewVRuler(bVal);break; 655 case HANDLE_VIEWSET_VRULER_RIGHT : mpViewOption->SetVRulerRight(bVal);break; 656 case HANDLE_VIEWSET_HSCROLL : mpViewOption->SetViewHScrollBar(bVal);break; 657 case HANDLE_VIEWSET_VSCROLL : mpViewOption->SetViewVScrollBar(bVal);break; 658 case HANDLE_VIEWSET_GRAPHICS : mpViewOption->SetGraphic(bVal);break; 659 case HANDLE_VIEWSET_TABLES : mpViewOption->SetTable(bVal); break; 660 case HANDLE_VIEWSET_DRAWINGS : mpViewOption->SetDraw(bVal); break; 661 case HANDLE_VIEWSET_FIELD_COMMANDS : mpViewOption->SetFldName(bVal); break; 662 case HANDLE_VIEWSET_ANNOTATIONS : mpViewOption->SetPostIts(bVal); break; 663 case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : mpViewOption->SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bVal, sal_True); break; 664 case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: mpViewOption->SetViewMetaChars( bVal ); break; 665 case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : mpViewOption->SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bVal, sal_True); break; 666 case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : mpViewOption->SetAppearanceFlag(VIEWOPT_FIELD_SHADINGS, bVal, sal_True); break; 667 case HANDLE_VIEWSET_PARA_BREAKS : mpViewOption->SetParagraph(bVal); break; 668 case HANDLE_VIEWSET_SOFT_HYPHENS : mpViewOption->SetSoftHyph(bVal); break; 669 case HANDLE_VIEWSET_SPACES : mpViewOption->SetBlank(bVal); break; 670 case HANDLE_VIEWSET_PROTECTED_SPACES : mpViewOption->SetHardBlank(bVal); break; 671 case HANDLE_VIEWSET_TABSTOPS : mpViewOption->SetTab(bVal); break; 672 case HANDLE_VIEWSET_BREAKS : mpViewOption->SetLineBreak(bVal); break; 673 case HANDLE_VIEWSET_HIDDEN_TEXT : mpViewOption->SetShowHiddenField(bVal); break; 674 case HANDLE_VIEWSET_HIDDEN_CHARACTERS : mpViewOption->SetShowHiddenChar(bVal); break; 675 case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : mpViewOption->SetShowHiddenPara(bVal); break; 676 case HANDLE_VIEWSET_TABLE_BOUNDARIES : mpViewOption->SetAppearanceFlag(VIEWOPT_TABLE_BOUNDARIES, bVal, sal_True); break; 677 case HANDLE_VIEWSET_TEXT_BOUNDARIES : mpViewOption->SetDocBoundaries(bVal); break; 678 case HANDLE_VIEWSET_SMOOTH_SCROLLING : mpViewOption->SetSmoothScroll(bVal); break; 679 case HANDLE_VIEWSET_SOLID_MARK_HANDLES : mpViewOption->SetSolidMarkHdl(bVal); break; 680 case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : mpViewOption->SetShowContentTips(bVal); break; 681 case HANDLE_VIEWSET_IS_RASTER_VISIBLE : mpViewOption->SetGridVisible(bVal); break; 682 case HANDLE_VIEWSET_IS_SNAP_TO_RASTER : mpViewOption->SetSnap(bVal); break; 683 case HANDLE_VIEWSET_SCROLLBAR_TIPS : mpViewOption->SetShowScrollBarTips(bVal); break; 684 case HANDLE_VIEWSET_RASTER_RESOLUTION_X : 685 { 686 sal_Int32 nTmp = 0; 687 if(!(rValue >>= nTmp) || nTmp < 10) 688 throw IllegalArgumentException(); 689 Size aSize( mpViewOption->GetSnapSize() ); 690 aSize.Width() = MM100_TO_TWIP( nTmp ); 691 mpViewOption->SetSnapSize( aSize ); 692 } 693 break; 694 case HANDLE_VIEWSET_RASTER_RESOLUTION_Y : 695 { 696 sal_Int32 nTmp = 0; 697 if(!(rValue >>= nTmp) || nTmp < 10) 698 throw IllegalArgumentException(); 699 Size aSize( mpViewOption->GetSnapSize() ); 700 aSize.Height() = MM100_TO_TWIP( nTmp ); 701 mpViewOption->SetSnapSize( aSize ); 702 } 703 break; 704 case HANDLE_VIEWSET_RASTER_SUBDIVISION_X : 705 { 706 sal_Int32 nTmp = 0; 707 if(!(rValue >>= nTmp) || !(0 <= nTmp && nTmp < 100)) 708 throw IllegalArgumentException(); 709 mpViewOption->SetDivisionX( (short) nTmp ); 710 } 711 break; 712 case HANDLE_VIEWSET_RASTER_SUBDIVISION_Y : 713 { 714 sal_Int32 nTmp = 0; 715 if(!(rValue >>= nTmp) || !(0 <= nTmp && nTmp < 100)) 716 throw IllegalArgumentException(); 717 mpViewOption->SetDivisionY( (short) nTmp ); 718 } 719 break; 720 case HANDLE_VIEWSET_ZOOM : 721 { 722 sal_Int16 nZoom = 0; 723 if(!(rValue >>= nZoom) || nZoom > 1000 || nZoom < 5) 724 throw lang::IllegalArgumentException(); 725 mpViewOption->SetZoom((sal_uInt16)nZoom); 726 mbApplyZoom = sal_True; 727 } 728 break; 729 case HANDLE_VIEWSET_ZOOM_TYPE: 730 { 731 sal_Int16 nZoom = 0; 732 if(!(rValue >>= nZoom)) 733 throw IllegalArgumentException(); 734 SvxZoomType eZoom = (SvxZoomType)USHRT_MAX; 735 switch (nZoom) 736 { 737 case view::DocumentZoomType::OPTIMAL: 738 eZoom = SVX_ZOOM_OPTIMAL; 739 break; 740 case view::DocumentZoomType::PAGE_WIDTH: 741 eZoom = SVX_ZOOM_PAGEWIDTH; 742 break; 743 case view::DocumentZoomType::ENTIRE_PAGE: 744 eZoom = SVX_ZOOM_WHOLEPAGE; 745 break; 746 case view::DocumentZoomType::BY_VALUE: 747 eZoom = SVX_ZOOM_PERCENT; 748 break; 749 case view::DocumentZoomType::PAGE_WIDTH_EXACT: 750 eZoom = SVX_ZOOM_PAGEWIDTH_NOBORDER; 751 break; 752 default: 753 throw IllegalArgumentException( 754 ::rtl::OUString::createFromAscii( 755 "SwXViewSettings: invalid zoom type"), 0, 0); 756 break; 757 } 758 if(eZoom < USHRT_MAX) 759 { 760 mpViewOption->SetZoomType( eZoom ); 761 mbApplyZoom = sal_True; 762 } 763 } 764 break; 765 case HANDLE_VIEWSET_ONLINE_LAYOUT : 766 { 767 if( pView && !bVal != !pView->GetWrtShell().GetViewOptions()->getBrowseMode() ) 768 { 769 SwViewOption aOpt( *pView->GetWrtShell().GetViewOptions() ); 770 aOpt.setBrowseMode( bVal ); 771 pView->GetWrtShell().ApplyViewOptions( aOpt ); 772 pView->RecheckBrowseMode(); 773 774 // must be set in mpViewOption as this will overwrite settings in _post! 775 mpViewOption->setBrowseMode( bVal ); 776 777 // disable multiple layout 778 pView->GetDocShell()->ToggleBrowserMode(bVal, pView ); 779 } 780 } 781 break; 782 case HANDLE_VIEWSET_HELP_URL : 783 { 784 if ( pView ) 785 { 786 OUString sHelpURL; 787 if ( ! ( rValue >>= sHelpURL ) ) 788 throw IllegalArgumentException(); 789 790 INetURLObject aHID( sHelpURL ); 791 if ( aHID.GetProtocol() == INET_PROT_HID ) 792 pView->GetEditWin().SetHelpId( rtl::OUStringToOString( aHID.GetURLPath(), RTL_TEXTENCODING_UTF8 ) ); 793 else 794 throw IllegalArgumentException (); 795 } 796 else 797 throw UnknownPropertyException(); 798 } 799 break; 800 case HANDLE_VIEWSET_HORI_RULER_METRIC: 801 case HANDLE_VIEWSET_VERT_RULER_METRIC: 802 { 803 sal_Int32 nUnit = -1; 804 if( rValue >>= nUnit ) 805 switch( nUnit ) 806 { 807 case FUNIT_MM: 808 case FUNIT_CM: 809 case FUNIT_POINT: 810 case FUNIT_PICA: 811 case FUNIT_INCH: 812 if( rInfo.mnHandle == HANDLE_VIEWSET_HORI_RULER_METRIC ) 813 { 814 eHRulerUnit = nUnit; 815 mbApplyHRulerMetric = sal_True; 816 } 817 else 818 { 819 eVRulerUnit = nUnit; 820 mbApplyVRulerMetric = sal_True; 821 } 822 break; 823 default: 824 throw IllegalArgumentException(); 825 } 826 } 827 break; 828 default: 829 throw UnknownPropertyException(); 830 } 831 } 832 833 void SwXViewSettings::_postSetValues () 834 { 835 if( pView ) 836 { 837 if(mbApplyZoom ) 838 pView->SetZoom( (SvxZoomType)mpViewOption->GetZoomType(), 839 mpViewOption->GetZoom(), sal_True ); 840 if(mbApplyHRulerMetric) 841 pView->ChangeTabMetric((FieldUnit)eHRulerUnit); 842 if(mbApplyVRulerMetric) 843 pView->ChangeVRulerMetric((FieldUnit)eVRulerUnit); 844 845 } 846 else 847 { 848 if(mbApplyHRulerMetric) 849 SW_MOD()->ApplyRulerMetric( (FieldUnit)eHRulerUnit, sal_True, bWeb ); 850 if(mbApplyVRulerMetric) 851 SW_MOD()->ApplyRulerMetric( (FieldUnit)eVRulerUnit, sal_False, bWeb ); 852 } 853 854 855 SW_MOD()->ApplyUsrPref( *mpViewOption, pView, pView ? VIEWOPT_DEST_VIEW_ONLY 856 : bWeb ? VIEWOPT_DEST_WEB 857 : VIEWOPT_DEST_TEXT ); 858 859 860 delete mpViewOption; 861 mpViewOption = NULL; 862 } 863 864 void SwXViewSettings::_preGetValues () 865 { 866 if(pView) 867 { 868 if(!IsValid()) 869 return; 870 mpConstViewOption = pView->GetWrtShell().GetViewOptions(); 871 } 872 else 873 mpConstViewOption = SW_MOD()->GetViewOption(bWeb); 874 } 875 void SwXViewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue ) 876 { 877 sal_Bool bBool = sal_True; 878 sal_Bool bBoolVal; 879 switch( rInfo.mnHandle ) 880 { 881 case HANDLE_VIEWSET_SHOW_RULER: bBoolVal = mpConstViewOption->IsViewAnyRuler(); break; 882 case HANDLE_VIEWSET_HRULER : bBoolVal = mpConstViewOption->IsViewHRuler(sal_True); break; 883 case HANDLE_VIEWSET_VRULER : bBoolVal = mpConstViewOption->IsViewVRuler(sal_True);break; 884 case HANDLE_VIEWSET_VRULER_RIGHT : bBoolVal = mpConstViewOption->IsVRulerRight();break; 885 case HANDLE_VIEWSET_HSCROLL: bBoolVal = mpConstViewOption->IsViewHScrollBar();break; 886 case HANDLE_VIEWSET_VSCROLL: bBoolVal = mpConstViewOption->IsViewVScrollBar();break; 887 case HANDLE_VIEWSET_GRAPHICS : bBoolVal = mpConstViewOption->IsGraphic();break; 888 case HANDLE_VIEWSET_TABLES : bBoolVal = mpConstViewOption->IsTable(); break; 889 case HANDLE_VIEWSET_DRAWINGS : bBoolVal = mpConstViewOption->IsDraw(); break; 890 case HANDLE_VIEWSET_FIELD_COMMANDS : bBoolVal = mpConstViewOption->IsFldName(); break; 891 case HANDLE_VIEWSET_ANNOTATIONS : bBoolVal = mpConstViewOption->IsPostIts(); break; 892 case HANDLE_VIEWSET_INDEX_MARK_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break; 893 case HANDLE_VIEWSET_NONPRINTING_CHARACTERS: bBoolVal = mpConstViewOption->IsViewMetaChars(); break; 894 case HANDLE_VIEWSET_FOOTNOTE_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break; 895 case HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND : bBoolVal = SwViewOption::IsFieldShadings(); break; 896 case HANDLE_VIEWSET_PARA_BREAKS : bBoolVal = mpConstViewOption->IsParagraph(sal_True); break; 897 case HANDLE_VIEWSET_SOFT_HYPHENS : bBoolVal = mpConstViewOption->IsSoftHyph(); break; 898 case HANDLE_VIEWSET_SPACES : bBoolVal = mpConstViewOption->IsBlank(sal_True); break; 899 case HANDLE_VIEWSET_PROTECTED_SPACES : bBoolVal = mpConstViewOption->IsHardBlank(); break; 900 case HANDLE_VIEWSET_TABSTOPS : bBoolVal = mpConstViewOption->IsTab(sal_True); break; 901 case HANDLE_VIEWSET_BREAKS : bBoolVal = mpConstViewOption->IsLineBreak(sal_True); break; 902 case HANDLE_VIEWSET_HIDDEN_TEXT : bBoolVal = mpConstViewOption->IsShowHiddenField(); break; 903 case HANDLE_VIEWSET_HIDDEN_CHARACTERS : bBoolVal = mpConstViewOption->IsShowHiddenChar(sal_True); break; 904 case HANDLE_VIEWSET_HIDDEN_PARAGRAPHS : bBoolVal = mpConstViewOption->IsShowHiddenPara(); break; 905 case HANDLE_VIEWSET_TABLE_BOUNDARIES : bBoolVal = SwViewOption::IsTableBoundaries(); break; 906 case HANDLE_VIEWSET_TEXT_BOUNDARIES : bBoolVal = SwViewOption::IsDocBoundaries(); break; 907 case HANDLE_VIEWSET_SMOOTH_SCROLLING : bBoolVal = mpConstViewOption->IsSmoothScroll(); break; 908 case HANDLE_VIEWSET_SOLID_MARK_HANDLES : bBoolVal = mpConstViewOption->IsSolidMarkHdl(); break; 909 case HANDLE_VIEWSET_SHOW_CONTENT_TIPS : bBoolVal = mpConstViewOption->IsShowContentTips(); break; 910 case HANDLE_VIEWSET_IS_RASTER_VISIBLE : bBoolVal = mpConstViewOption->IsGridVisible(); break; 911 case HANDLE_VIEWSET_IS_SNAP_TO_RASTER : bBoolVal = mpConstViewOption->IsSnap(); break; 912 case HANDLE_VIEWSET_SCROLLBAR_TIPS : bBoolVal = mpConstViewOption->IsShowScrollBarTips(); break; 913 case HANDLE_VIEWSET_RASTER_RESOLUTION_X : 914 bBool = sal_False; 915 rValue <<= (sal_Int32) TWIP_TO_MM100(mpConstViewOption->GetSnapSize().Width()); 916 break; 917 case HANDLE_VIEWSET_RASTER_RESOLUTION_Y : 918 bBool = sal_False; 919 rValue <<= (sal_Int32) TWIP_TO_MM100(mpConstViewOption->GetSnapSize().Height()); 920 break; 921 case HANDLE_VIEWSET_RASTER_SUBDIVISION_X : 922 bBool = sal_False; 923 rValue <<= (sal_Int32) mpConstViewOption->GetDivisionX(); 924 break; 925 case HANDLE_VIEWSET_RASTER_SUBDIVISION_Y : 926 bBool = sal_False; 927 rValue <<= (sal_Int32) mpConstViewOption->GetDivisionY(); 928 break; 929 case HANDLE_VIEWSET_ZOOM : 930 bBool = sal_False; 931 rValue <<= (sal_Int16)mpConstViewOption->GetZoom(); 932 break; 933 case HANDLE_VIEWSET_ZOOM_TYPE: 934 { 935 bBool = sal_False; 936 sal_Int16 nRet(0); 937 switch (mpConstViewOption->GetZoomType()) 938 { 939 case SVX_ZOOM_OPTIMAL: 940 nRet = view::DocumentZoomType::OPTIMAL; 941 break; 942 case SVX_ZOOM_PAGEWIDTH: 943 nRet = view::DocumentZoomType::PAGE_WIDTH; 944 break; 945 case SVX_ZOOM_WHOLEPAGE: 946 nRet = view::DocumentZoomType::ENTIRE_PAGE; 947 break; 948 case SVX_ZOOM_PERCENT: 949 nRet = view::DocumentZoomType::BY_VALUE; 950 break; 951 case SVX_ZOOM_PAGEWIDTH_NOBORDER: 952 nRet = view::DocumentZoomType::PAGE_WIDTH_EXACT; 953 break; 954 default: 955 OSL_ENSURE(false, "SwXViewSettings: invalid zoom type"); 956 break; 957 } 958 rValue <<= nRet; 959 } 960 break; 961 case HANDLE_VIEWSET_ONLINE_LAYOUT: 962 if(pView) 963 bBoolVal = pView->GetWrtShell().GetViewOptions()->getBrowseMode(); 964 break; 965 case HANDLE_VIEWSET_HELP_URL : 966 { 967 if ( pView ) 968 { 969 bBool = sal_False; 970 OUStringBuffer sHelpURL; 971 sHelpURL.appendAscii ( INET_HID_SCHEME ); 972 SwEditWin &rEditWin = pView->GetEditWin(); 973 sHelpURL.append( rtl::OStringToOUString( rEditWin.GetHelpId(), RTL_TEXTENCODING_UTF8 ) ); 974 rValue <<= sHelpURL.makeStringAndClear(); 975 } 976 else 977 throw UnknownPropertyException(); 978 } 979 break; 980 case HANDLE_VIEWSET_HORI_RULER_METRIC: 981 { 982 if ( pView ) 983 { 984 FieldUnit eUnit; 985 pView->GetHRulerMetric( eUnit ); 986 rValue <<= (sal_Int32)eUnit; 987 } 988 else 989 { 990 const SwMasterUsrPref* pUsrPref = SW_MOD()->GetUsrPref( bWeb ); 991 rValue <<= (sal_Int32)pUsrPref->GetHScrollMetric(); 992 } 993 bBool = sal_False; 994 } 995 break; 996 case HANDLE_VIEWSET_VERT_RULER_METRIC: 997 { 998 if ( pView ) 999 { 1000 FieldUnit eUnit; 1001 pView->GetVRulerMetric( eUnit ); 1002 rValue <<= (sal_Int32)eUnit; 1003 } 1004 else 1005 { 1006 const SwMasterUsrPref* pUsrPref = SW_MOD()->GetUsrPref( bWeb ); 1007 rValue <<= (sal_Int32)pUsrPref->GetVScrollMetric(); 1008 } 1009 bBool = sal_False; 1010 } 1011 break; 1012 default: DBG_ERROR("Diese Id gibt's nicht!"); 1013 } 1014 if( bBool ) 1015 rValue.setValue(&bBoolVal, ::getBooleanCppuType()); 1016 } 1017 void SwXViewSettings::_postGetValues () 1018 { 1019 mpConstViewOption = NULL; 1020 } 1021 1022 OUString SwXViewSettings::getImplementationName(void) 1023 { 1024 return C2U("SwXViewSettings"); 1025 } 1026 1027 sal_Bool SwXViewSettings::supportsService(const OUString& rServiceName) 1028 { 1029 return C2U("com.sun.star.text.ViewSettings") == rServiceName; 1030 } 1031 1032 Sequence< OUString > SwXViewSettings::getSupportedServiceNames(void) 1033 { 1034 Sequence< OUString > aRet(1); 1035 OUString* pArray = aRet.getArray(); 1036 pArray[0] = C2U("com.sun.star.text.ViewSettings"); 1037 return aRet; 1038 } 1039 1040 /* vim: set noet sw=4 ts=4: */ 1041