|
[ source navigation ] [ diff markup ] [ identifier search ] [ general search ] |
|||||
|
||||||
001 /************************************************************************* 002 * 003 * OpenOffice.org - a multi-platform office productivity suite 004 * 005 * $RCSfile: unomod.cxx,v $ 006 * 007 * $Revision: 1.30 $ 008 * 009 * last change: $Author: hr $ $Date: 2007/09/27 12:43:15 $ 010 * 011 * The Contents of this file are made available subject to 012 * the terms of GNU Lesser General Public License Version 2.1. 013 * 014 * 015 * GNU Lesser General Public License Version 2.1 016 * ============================================= 017 * Copyright 2005 by Sun Microsystems, Inc. 018 * 901 San Antonio Road, Palo Alto, CA 94303, USA 019 * 020 * This library is free software; you can redistribute it and/or 021 * modify it under the terms of the GNU Lesser General Public 022 * License version 2.1, as published by the Free Software Foundation. 023 * 024 * This library is distributed in the hope that it will be useful, 025 * but WITHOUT ANY WARRANTY; without even the implied warranty of 026 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 027 * Lesser General Public License for more details. 028 * 029 * You should have received a copy of the GNU Lesser General Public 030 * License along with this library; if not, write to the Free Software 031 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 032 * MA 02111-1307 USA 033 * 034 ************************************************************************/ 035 036 // MARKER(update_precomp.py): autogen include statement, do not remove 037 #include "precompiled_sw.hxx" 038 039 040 #include <swtypes.hxx> 041 #ifndef _TOOLS_DEBUG_HXX //autogen 042 #include <tools/debug.hxx> 043 #endif 044 #ifndef _UNOMOD_HXX 045 #include <unomod.hxx> 046 #endif 047 #ifndef _UNOOBJ_HXX 048 #include <unoobj.hxx> 049 #endif 050 #ifndef _UNOPRNMS_HXX 051 #include <unoprnms.hxx> 052 #endif 053 #ifndef _UNOMAP_HXX 054 #include <unomap.hxx> 055 #endif 056 #ifndef _PRTOPT_HXX //autogen 057 #include <prtopt.hxx> 058 #endif 059 #ifndef _SHL_HXX 060 #include <tools/shl.hxx> 061 #endif 062 #ifndef _SWMODULE_HXX //autogen 063 #include <swmodule.hxx> 064 #endif 065 #ifndef _SWVIEW_HXX //autogen 066 #include <view.hxx> 067 #endif 068 #ifndef _SWDOCSH_HXX 069 #include <docsh.hxx> 070 #endif 071 #ifndef _WRTSH_HXX //autogen 072 #include <wrtsh.hxx> 073 #endif 074 #ifndef _VIEWOPT_HXX //autogen 075 #include <viewopt.hxx> 076 #endif 077 #ifndef _VOS_MUTEX_HXX_ //autogen 078 #include <vos/mutex.hxx> 079 #endif 080 #ifndef _SV_SVAPP_HXX //autogen 081 #include <vcl/svapp.hxx> 082 #endif 083 #ifndef _COM_SUN_STAR_TEXT_NOTEPRINTMODE_HPP_ 084 #include <com/sun/star/text/NotePrintMode.hpp> 085 #endif 086 #ifndef _DOC_HXX 087 #include <doc.hxx> 088 #endif 089 #ifndef _COMPHELPER_TYPEGENERATION_HXX_ 090 #include <comphelper/TypeGeneration.hxx> 091 #endif 092 #ifndef _COM_SUN_STAR_BEANS_PropertyAttribute_HPP_ 093 #include <com/sun/star/beans/PropertyAttribute.hpp> 094 #endif 095 #ifndef _COMPHELPER_CHAINABLEPROPERTYSETINFO_HXX_ 096 #include <comphelper/ChainablePropertySetInfo.hxx> 097 #endif 098 #ifndef _EDTWIN_HXX 099 #include <edtwin.hxx> 100 #endif 101 #ifndef _RTL_USTRBUF_HXX_ 102 #include <rtl/ustrbuf.hxx> 103 #endif 104 105 using namespace ::com::sun::star; 106 using namespace ::com::sun::star::uno; 107 using namespace ::com::sun::star::beans; 108 using namespace ::com::sun::star::lang; 109 using namespace ::comphelper; 110 using ::rtl::OUString; 111 using ::rtl::OUStringBuffer; 112 113 enum SwViewSettingsPropertyHandles 114 { 115 HANDLE_VIEWSET_ANNOTATIONS, 116 HANDLE_VIEWSET_BREAKS, 117 HANDLE_VIEWSET_DRAWINGS, 118 HANDLE_VIEWSET_FIELD_COMMANDS, 119 HANDLE_VIEWSET_FOOTNOTE_BACKGROUND, 120 HANDLE_VIEWSET_GRAPHICS, 121 HANDLE_VIEWSET_HIDDEN_PARAGRAPHS, 122 HANDLE_VIEWSET_HIDDEN_TEXT, 123 HANDLE_VIEWSET_HRULER, 124 HANDLE_VIEWSET_HSCROLL, 125 HANDLE_VIEWSET_INDEX_MARK_BACKGROUND, 126 HANDLE_VIEWSET_ONLINE_LAYOUT, 127 HANDLE_VIEWSET_PARA_BREAKS, 128 HANDLE_VIEWSET_PROTECTED_SPACES, 129 HANDLE_VIEWSET_SOFT_HYPHENS, 130 HANDLE_VIEWSET_SPACES, 131 HANDLE_VIEWSET_TABLE_BOUNDARIES, 132 HANDLE_VIEWSET_TABLES, 133 HANDLE_VIEWSET_TABSTOPS, 134 HANDLE_VIEWSET_TEXT_BOUNDARIES, 135 HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND, 136 HANDLE_VIEWSET_VRULER, 137 HANDLE_VIEWSET_VSCROLL, 138 HANDLE_VIEWSET_SMOOTH_SCROLLING, 139 HANDLE_VIEWSET_SOLID_MARK_HANDLES, 140 HANDLE_VIEWSET_ZOOM_TYPE, 141 HANDLE_VIEWSET_ZOOM, 142 HANDLE_VIEWSET_PREVENT_TIPS, 143 HANDLE_VIEWSET_HELP_URL, 144 HANDLE_VIEWSET_VRULER_RIGHT, 145 HANDLE_VIEWSET_SHOW_RULER, 146 HANDLE_VIEWSET_IS_RASTER_VISIBLE, 147 HANDLE_VIEWSET_IS_SNAP_TO_RASTER, 148 HANDLE_VIEWSET_RASTER_RESOLUTION_X, 149 HANDLE_VIEWSET_RASTER_RESOLUTION_Y, 150 HANDLE_VIEWSET_RASTER_SUBDIVISION_X, 151 HANDLE_VIEWSET_RASTER_SUBDIVISION_Y 152 }; 153 enum SwPrintSettingsPropertyHandles 154 { 155 HANDLE_PRINTSET_ANNOTATION_MODE, 156 HANDLE_PRINTSET_BLACK_FONTS, 157 HANDLE_PRINTSET_CONTROLS, 158 HANDLE_PRINTSET_DRAWINGS, 159 HANDLE_PRINTSET_GRAPHICS, 160 HANDLE_PRINTSET_LEFT_PAGES, 161 HANDLE_PRINTSET_PAGE_BACKGROUND, 162 HANDLE_PRINTSET_PROSPECT, 163 HANDLE_PRINTSET_REVERSED, 164 HANDLE_PRINTSET_RIGHT_PAGES, 165 HANDLE_PRINTSET_FAX_NAME, 166 HANDLE_PRINTSET_PAPER_FROM_SETUP, 167 HANDLE_PRINTSET_TABLES, 168 HANDLE_PRINTSET_SINGLE_JOBS, 169 HANDLE_PRINTSET_EMPTY_PAGES 170 }; 171 172 static ChainablePropertySetInfo * lcl_createViewSettingsInfo() 173 { 174 static PropertyInfo aViewSettingsMap_Impl[] = 175 { 176 { RTL_CONSTASCII_STRINGPARAM ( "HelpURL" ), HANDLE_VIEWSET_HELP_URL , CPPUTYPE_OUSTRING, PROPERTY_NONE, 0}, 177 { RTL_CONSTASCII_STRINGPARAM ( "IsRasterVisible"), HANDLE_VIEWSET_IS_RASTER_VISIBLE, CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 178 { RTL_CONSTASCII_STRINGPARAM ( "IsSnapToRaster"), HANDLE_VIEWSET_IS_SNAP_TO_RASTER, CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 179 { RTL_CONSTASCII_STRINGPARAM ( "IsVertRulerRightAligned"),HANDLE_VIEWSET_VRULER_RIGHT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 180 { RTL_CONSTASCII_STRINGPARAM ( "PreventHelpTips" ), HANDLE_VIEWSET_PREVENT_TIPS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 181 { RTL_CONSTASCII_STRINGPARAM ( "RasterResolutionX"), HANDLE_VIEWSET_RASTER_RESOLUTION_X, CPPUTYPE_INT32, PROPERTY_NONE, 0}, 182 { RTL_CONSTASCII_STRINGPARAM ( "RasterResolutionY"), HANDLE_VIEWSET_RASTER_RESOLUTION_Y, CPPUTYPE_INT32, PROPERTY_NONE, 0}, 183 { RTL_CONSTASCII_STRINGPARAM ( "RasterSubdivisionX"), HANDLE_VIEWSET_RASTER_SUBDIVISION_X, CPPUTYPE_INT32, PROPERTY_NONE, 0}, 184 { RTL_CONSTASCII_STRINGPARAM ( "RasterSubdivisionY"), HANDLE_VIEWSET_RASTER_SUBDIVISION_Y, CPPUTYPE_INT32, PROPERTY_NONE, 0}, 185 { RTL_CONSTASCII_STRINGPARAM ( "ShowAnnotations" ), HANDLE_VIEWSET_ANNOTATIONS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 186 { RTL_CONSTASCII_STRINGPARAM ( "ShowBreaks"), HANDLE_VIEWSET_BREAKS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 187 { RTL_CONSTASCII_STRINGPARAM ( "ShowDrawings"), HANDLE_VIEWSET_DRAWINGS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 188 { RTL_CONSTASCII_STRINGPARAM ( "ShowFieldCommands"), HANDLE_VIEWSET_FIELD_COMMANDS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 189 { RTL_CONSTASCII_STRINGPARAM ( "ShowFootnoteBackground"),HANDLE_VIEWSET_FOOTNOTE_BACKGROUND , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 190 { RTL_CONSTASCII_STRINGPARAM ( "ShowGraphics"), HANDLE_VIEWSET_GRAPHICS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 191 { RTL_CONSTASCII_STRINGPARAM ( "ShowHiddenParagraphs"), HANDLE_VIEWSET_HIDDEN_PARAGRAPHS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 192 { RTL_CONSTASCII_STRINGPARAM ( "ShowHiddenText"), HANDLE_VIEWSET_HIDDEN_TEXT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 193 { RTL_CONSTASCII_STRINGPARAM ( "ShowHoriRuler"), HANDLE_VIEWSET_HRULER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 194 { RTL_CONSTASCII_STRINGPARAM ( "ShowHoriScrollBar"), HANDLE_VIEWSET_HSCROLL , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 195 { RTL_CONSTASCII_STRINGPARAM ( "ShowIndexMarkBackground"),HANDLE_VIEWSET_INDEX_MARK_BACKGROUND, CPPUTYPE_BOOLEAN,PROPERTY_NONE, 0}, 196 { RTL_CONSTASCII_STRINGPARAM ( "ShowOnlineLayout"), HANDLE_VIEWSET_ONLINE_LAYOUT , CPPUTYPE_BOOLEAN, PropertyAttribute::MAYBEVOID, 0}, 197 { RTL_CONSTASCII_STRINGPARAM ( "ShowParaBreaks"), HANDLE_VIEWSET_PARA_BREAKS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 198 { RTL_CONSTASCII_STRINGPARAM ( "ShowProtectedSpaces"), HANDLE_VIEWSET_PROTECTED_SPACES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 199 { RTL_CONSTASCII_STRINGPARAM ( "ShowRulers"), HANDLE_VIEWSET_SHOW_RULER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 200 { RTL_CONSTASCII_STRINGPARAM ( "ShowSoftHyphens"), HANDLE_VIEWSET_SOFT_HYPHENS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 201 { RTL_CONSTASCII_STRINGPARAM ( "ShowSpaces"), HANDLE_VIEWSET_SPACES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 202 { RTL_CONSTASCII_STRINGPARAM ( "ShowTableBoundaries"), HANDLE_VIEWSET_TABLE_BOUNDARIES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 203 { RTL_CONSTASCII_STRINGPARAM ( "ShowTables"), HANDLE_VIEWSET_TABLES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 204 { RTL_CONSTASCII_STRINGPARAM ( "ShowTabstops"), HANDLE_VIEWSET_TABSTOPS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 205 { RTL_CONSTASCII_STRINGPARAM ( "ShowTextBoundaries"), HANDLE_VIEWSET_TEXT_BOUNDARIES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 206 { RTL_CONSTASCII_STRINGPARAM ( "ShowTextFieldBackground"),HANDLE_VIEWSET_TEXT_FIELD_BACKGROUND, CPPUTYPE_BOOLEAN,PROPERTY_NONE, 0}, 207 { RTL_CONSTASCII_STRINGPARAM ( "ShowVertRuler"), HANDLE_VIEWSET_VRULER , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 208 { RTL_CONSTASCII_STRINGPARAM ( "ShowVertScrollBar"), HANDLE_VIEWSET_VSCROLL , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 209 { RTL_CONSTASCII_STRINGPARAM ( "SmoothScrolling"), HANDLE_VIEWSET_SMOOTH_SCROLLING , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 210 { RTL_CONSTASCII_STRINGPARAM ( "SolidMarkHandles"), HANDLE_VIEWSET_SOLID_MARK_HANDLES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 211 { RTL_CONSTASCII_STRINGPARAM ( "ZoomType"), HANDLE_VIEWSET_ZOOM_TYPE , CPPUTYPE_INT16, PROPERTY_NONE, 0}, 212 { RTL_CONSTASCII_STRINGPARAM ( "ZoomValue"), HANDLE_VIEWSET_ZOOM , CPPUTYPE_INT16, PROPERTY_NONE, 0}, 213 { 0, 0, 0, CPPUTYPE_UNKNOWN, 0, 0 } 214 }; 215 return new ChainablePropertySetInfo ( aViewSettingsMap_Impl ); 216 } 217 static ChainablePropertySetInfo * lcl_createPrintSettingsInfo() 218 { 219 static PropertyInfo aPrintSettingsMap_Impl[] = 220 { 221 { RTL_CONSTASCII_STRINGPARAM ( "PrintAnnotationMode" ), HANDLE_PRINTSET_ANNOTATION_MODE , CPPUTYPE_INT16, PROPERTY_NONE, 0}, 222 { RTL_CONSTASCII_STRINGPARAM ( "PrintBlackFonts" ), HANDLE_PRINTSET_BLACK_FONTS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 223 { RTL_CONSTASCII_STRINGPARAM ( "PrintControls" ), HANDLE_PRINTSET_CONTROLS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 224 { RTL_CONSTASCII_STRINGPARAM ( "PrintDrawings" ), HANDLE_PRINTSET_DRAWINGS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 225 { RTL_CONSTASCII_STRINGPARAM ( "PrintGraphics" ), HANDLE_PRINTSET_GRAPHICS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 226 { RTL_CONSTASCII_STRINGPARAM ( "PrintLeftPages" ), HANDLE_PRINTSET_LEFT_PAGES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 227 { RTL_CONSTASCII_STRINGPARAM ( "PrintPageBackground" ), HANDLE_PRINTSET_PAGE_BACKGROUND , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 228 { RTL_CONSTASCII_STRINGPARAM ( "PrintProspect" ), HANDLE_PRINTSET_PROSPECT , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 229 { RTL_CONSTASCII_STRINGPARAM ( "PrintReversed" ), HANDLE_PRINTSET_REVERSED , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 230 { RTL_CONSTASCII_STRINGPARAM ( "PrintRightPages" ), HANDLE_PRINTSET_RIGHT_PAGES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 231 { RTL_CONSTASCII_STRINGPARAM ( "PrintFaxName" ), HANDLE_PRINTSET_FAX_NAME , CPPUTYPE_OUSTRING, PROPERTY_NONE, 0}, 232 { RTL_CONSTASCII_STRINGPARAM ( "PrintPaperFromSetup" ), HANDLE_PRINTSET_PAPER_FROM_SETUP , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 233 { RTL_CONSTASCII_STRINGPARAM ( "PrintTables" ), HANDLE_PRINTSET_TABLES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 234 { RTL_CONSTASCII_STRINGPARAM ( "PrintSingleJobs" ), HANDLE_PRINTSET_SINGLE_JOBS , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 235 { RTL_CONSTASCII_STRINGPARAM ( "PrintEmptyPages" ), HANDLE_PRINTSET_EMPTY_PAGES , CPPUTYPE_BOOLEAN, PROPERTY_NONE, 0}, 236 { 0, 0, 0, CPPUTYPE_UNKNOWN, 0, 0 } 237 }; 238 return new ChainablePropertySetInfo ( aPrintSettingsMap_Impl ); 239 } 240 241 /****************************************************************** 242 * SwXModule 243 ******************************************************************/ 244 /* -----------------30.03.99 15:10------------------- 245 * 246 * --------------------------------------------------*/ 247 Reference< uno::XInterface > SAL_CALL SwXModule_createInstance( 248 const Reference< XMultiServiceFactory > & /*rSMgr*/) throw( Exception ) 249 { 250 static Reference< uno::XInterface > xModule = (cppu::OWeakObject*)new SwXModule();; 251 return xModule; 252 } 253 /* -----------------------------17.04.01 13:11-------------------------------- 254 255 ---------------------------------------------------------------------------*/ 256 Sequence< OUString > SAL_CALL SwXModule_getSupportedServiceNames() throw() 257 { 258 OUString sService( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.GlobalSettings")); 259 const Sequence< OUString > aSeq( &sService, 1 ); 260 return aSeq; 261 } 262 /* -----------------------------17.04.01 13:11-------------------------------- 263 264 ---------------------------------------------------------------------------*/ 265 OUString SAL_CALL SwXModule_getImplementationName() throw() 266 { 267 return OUString( RTL_CONSTASCII_USTRINGPARAM("SwXModule" ) ); 268 } 269 /*-- 17.12.98 12:19:01--------------------------------------------------- 270 271 -----------------------------------------------------------------------*/ 272 SwXModule::SwXModule() : 273 pxViewSettings(0), 274 pxPrintSettings(0) 275 { 276 } 277 /*-- 17.12.98 12:19:02--------------------------------------------------- 278 279 -----------------------------------------------------------------------*/ 280 SwXModule::~SwXModule() 281 { 282 delete pxViewSettings; 283 delete pxPrintSettings; 284 } 285 /*-- 17.12.98 12:19:03--------------------------------------------------- 286 287 -----------------------------------------------------------------------*/ 288 Reference< XPropertySet > SwXModule::getViewSettings(void) throw( uno::RuntimeException ) 289 { 290 ::vos::OGuard aGuard(Application::GetSolarMutex()); 291 if(!pxViewSettings) 292 { 293 ((SwXModule*)this)->pxViewSettings = new Reference< XPropertySet > ; 294 DBG_ERROR("Web oder Text?") 295 *pxViewSettings = static_cast < HelperBaseNoState * > ( new SwXViewSettings( sal_False, 0 ) ); 296 } 297 return *pxViewSettings; 298 } 299 /*-- 17.12.98 12:19:03--------------------------------------------------- 300 301 -----------------------------------------------------------------------*/ 302 Reference< XPropertySet > SwXModule::getPrintSettings(void) throw( uno::RuntimeException ) 303 { 304 ::vos::OGuard aGuard(Application::GetSolarMutex()); 305 if(!pxPrintSettings) 306 { 307 ((SwXModule*)this)->pxPrintSettings = new Reference< XPropertySet > ; 308 DBG_ERROR("Web oder Text?") 309 *pxPrintSettings = static_cast < HelperBaseNoState * > ( new SwXPrintSettings ( PRINT_SETTINGS_MODULE ) ); 310 } 311 return *pxPrintSettings; 312 } 313 /* -----------------------------06.04.00 10:59-------------------------------- 314 315 ---------------------------------------------------------------------------*/ 316 OUString SwXModule::getImplementationName(void) throw( RuntimeException ) 317 { 318 return SwXModule_getImplementationName(); 319 } 320 /* -----------------------------06.04.00 10:59-------------------------------- 321 322 ---------------------------------------------------------------------------*/ 323 sal_Bool SwXModule::supportsService(const OUString& rServiceName) throw( RuntimeException ) 324 { 325 const Sequence< OUString > aNames = SwXModule_getSupportedServiceNames(); 326 for(sal_Int32 nService = 0; nService < aNames.getLength(); nService++) 327 { 328 if(aNames.getConstArray()[nService] == rServiceName) 329 return TRUE; 330 } 331 return FALSE; 332 } 333 /* -----------------------------06.04.00 10:59-------------------------------- 334 335 ---------------------------------------------------------------------------*/ 336 Sequence< OUString > SwXModule::getSupportedServiceNames(void) throw( RuntimeException ) 337 { 338 return SwXModule_getSupportedServiceNames(); 339 } 340 341 /****************************************************************** 342 * SwXPrintSettings 343 ******************************************************************/ 344 /*-- 17.12.98 12:54:04--------------------------------------------------- 345 346 -----------------------------------------------------------------------*/ 347 SwXPrintSettings::SwXPrintSettings(SwXPrintSettingsType eType, SwDoc* pDoc) 348 : ChainableHelperNoState ( lcl_createPrintSettingsInfo (), &Application::GetSolarMutex() ) 349 , meType(eType) 350 , mpPrtOpt ( NULL ) 351 , mpDoc ( pDoc ) 352 { 353 } 354 /*-- 17.12.98 12:54:05--------------------------------------------------- 355 356 -----------------------------------------------------------------------*/ 357 SwXPrintSettings::~SwXPrintSettings() 358 throw() 359 { 360 } 361 362 void SwXPrintSettings::_preSetValues () 363 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) 364 { 365 switch (meType) 366 { 367 case PRINT_SETTINGS_MODULE: 368 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_False ); 369 break; 370 case PRINT_SETTINGS_WEB: 371 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_True ); 372 break; 373 case PRINT_SETTINGS_DOCUMENT: 374 { 375 if (!mpDoc) 376 throw IllegalArgumentException (); 377 if ( !mpDoc->getPrintData() ) 378 { 379 mpPrtOpt = new SwPrintData; 380 mpDoc->setPrintData ( *mpPrtOpt ); 381 delete mpPrtOpt; 382 } 383 mpPrtOpt = mpDoc->getPrintData(); 384 } 385 break; 386 } 387 } 388 389 void SwXPrintSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue ) 390 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) 391 { 392 sal_Bool bVal; 393 if ( rInfo.mnHandle != HANDLE_PRINTSET_ANNOTATION_MODE && 394 rInfo.mnHandle != HANDLE_PRINTSET_FAX_NAME ) 395 bVal = *(sal_Bool*)rValue.getValue(); 396 397 switch( rInfo.mnHandle ) 398 { 399 case HANDLE_PRINTSET_LEFT_PAGES: 400 { 401 bVal = *(sal_Bool*)rValue.getValue(); 402 mpPrtOpt->SetPrintLeftPage(bVal); 403 } 404 break; 405 case HANDLE_PRINTSET_RIGHT_PAGES: 406 { 407 bVal = *(sal_Bool*)rValue.getValue(); 408 mpPrtOpt->SetPrintRightPage(bVal); 409 } 410 break; 411 case HANDLE_PRINTSET_REVERSED: 412 { 413 bVal = *(sal_Bool*)rValue.getValue(); 414 mpPrtOpt->SetPrintReverse(bVal); 415 } 416 break; 417 case HANDLE_PRINTSET_PROSPECT: 418 { 419 bVal = *(sal_Bool*)rValue.getValue(); 420 mpPrtOpt->SetPrintProspect(bVal); 421 } 422 break; 423 case HANDLE_PRINTSET_GRAPHICS: 424 { 425 bVal = *(sal_Bool*)rValue.getValue(); 426 mpPrtOpt->SetPrintGraphic(bVal); 427 } 428 break; 429 case HANDLE_PRINTSET_TABLES: 430 { 431 bVal = *(sal_Bool*)rValue.getValue(); 432 mpPrtOpt->SetPrintTable(bVal); 433 } 434 break; 435 case HANDLE_PRINTSET_DRAWINGS: 436 { 437 bVal = *(sal_Bool*)rValue.getValue(); 438 mpPrtOpt->SetPrintDraw(bVal); 439 } 440 break; 441 case HANDLE_PRINTSET_CONTROLS: 442 { 443 bVal = *(sal_Bool*)rValue.getValue(); 444 mpPrtOpt->SetPrintControl(bVal); 445 } 446 break; 447 case HANDLE_PRINTSET_PAGE_BACKGROUND: 448 { 449 bVal = *(sal_Bool*)rValue.getValue(); 450 mpPrtOpt->SetPrintPageBackground(bVal); 451 } 452 break; 453 case HANDLE_PRINTSET_BLACK_FONTS: 454 { 455 bVal = *(sal_Bool*)rValue.getValue(); 456 mpPrtOpt->SetPrintBlackFont(bVal); 457 } 458 break; 459 case HANDLE_PRINTSET_SINGLE_JOBS: 460 { 461 bVal = *(sal_Bool*)rValue.getValue(); 462 mpPrtOpt->SetPrintSingleJobs(bVal); 463 } 464 break; 465 case HANDLE_PRINTSET_PAPER_FROM_SETUP: 466 { 467 bVal = *(sal_Bool*)rValue.getValue(); 468 mpPrtOpt->SetPaperFromSetup(bVal); 469 } 470 break; 471 case HANDLE_PRINTSET_ANNOTATION_MODE: 472 { 473 sal_Int16 nVal; 474 rValue >>= nVal; 475 if(nVal <= text::NotePrintMode_PAGE_END) 476 mpPrtOpt->SetPrintPostIts(nVal); 477 else 478 throw lang::IllegalArgumentException(); 479 } 480 break; 481 case HANDLE_PRINTSET_EMPTY_PAGES: 482 { 483 bVal = *(sal_Bool*)rValue.getValue(); 484 mpPrtOpt->SetPrintEmptyPages(bVal); 485 } 486 break; 487 case HANDLE_PRINTSET_FAX_NAME: 488 { 489 OUString sString; 490 if ( rValue >>= sString) 491 mpPrtOpt->SetFaxName(sString); 492 else 493 throw lang::IllegalArgumentException(); 494 } 495 break; 496 default: 497 throw UnknownPropertyException(); 498 } 499 } 500 void SwXPrintSettings::_postSetValues () 501 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) 502 { 503 mpPrtOpt = NULL; 504 } 505 506 void SwXPrintSettings::_preGetValues () 507 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) 508 { 509 switch (meType) 510 { 511 case PRINT_SETTINGS_MODULE: 512 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_False ); 513 break; 514 case PRINT_SETTINGS_WEB: 515 mpPrtOpt = SW_MOD()->GetPrtOptions( sal_True ); 516 break; 517 case PRINT_SETTINGS_DOCUMENT: 518 { 519 if (!mpDoc) 520 throw IllegalArgumentException (); 521 if ( !mpDoc->getPrintData() ) 522 { 523 mpPrtOpt = new SwPrintData; 524 mpDoc->setPrintData ( *mpPrtOpt ); 525 delete mpPrtOpt; 526 } 527 mpPrtOpt = mpDoc->getPrintData(); 528 } 529 break; 530 } 531 } 532 void SwXPrintSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue ) 533 throw(UnknownPropertyException, WrappedTargetException ) 534 { 535 sal_Bool bBool = TRUE; 536 sal_Bool bBoolVal; 537 switch( rInfo.mnHandle ) 538 { 539 case HANDLE_PRINTSET_LEFT_PAGES: 540 bBoolVal = mpPrtOpt->IsPrintLeftPage(); 541 break; 542 case HANDLE_PRINTSET_RIGHT_PAGES: 543 bBoolVal = mpPrtOpt->IsPrintRightPage(); 544 break; 545 case HANDLE_PRINTSET_REVERSED: 546 bBoolVal = mpPrtOpt->IsPrintReverse(); 547 break; 548 case HANDLE_PRINTSET_PROSPECT: 549 bBoolVal = mpPrtOpt->IsPrintProspect(); 550 break; 551 case HANDLE_PRINTSET_GRAPHICS: 552 bBoolVal = mpPrtOpt->IsPrintGraphic(); 553 break; 554 case HANDLE_PRINTSET_TABLES: 555 bBoolVal = mpPrtOpt->IsPrintTable(); 556 break; 557 case HANDLE_PRINTSET_DRAWINGS: 558 bBoolVal = mpPrtOpt->IsPrintDraw(); 559 break; 560 case HANDLE_PRINTSET_CONTROLS: 561 bBoolVal = mpPrtOpt->IsPrintControl(); 562 break; 563 case HANDLE_PRINTSET_PAGE_BACKGROUND: 564 bBoolVal = mpPrtOpt->IsPrintPageBackground(); 565 break; 566 case HANDLE_PRINTSET_BLACK_FONTS: 567 bBoolVal = mpPrtOpt->IsPrintBlackFont(); 568 break; 569 case HANDLE_PRINTSET_SINGLE_JOBS: 570 bBoolVal = mpPrtOpt->IsPrintSingleJobs(); 571 break; 572 case HANDLE_PRINTSET_EMPTY_PAGES: 573 bBoolVal = mpPrtOpt->IsPrintEmptyPages(); 574 break; 575 case HANDLE_PRINTSET_PAPER_FROM_SETUP: 576 bBoolVal = mpPrtOpt->IsPaperFromSetup(); 577 break; 578 case HANDLE_PRINTSET_ANNOTATION_MODE: 579 { 580 bBool = FALSE; 581 rValue <<= static_cast < sal_Int16 > ( mpPrtOpt->GetPrintPostIts() ); 582 } 583 break; 584 case HANDLE_PRINTSET_FAX_NAME : 585 { 586 bBool = FALSE; 587 rValue <<= mpPrtOpt->GetFaxName(); 588 } 589 break; 590 default: 591 throw UnknownPropertyException(); 592 } 593 if(bBool) 594 rValue.setValue(&bBoolVal, ::getBooleanCppuType()); 595 } 596 void SwXPrintSettings::_postGetValues () 597 throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException ) 598 { 599 mpPrtOpt = NULL; 600 } 601 /* -----------------------------06.04.00 11:02-------------------------------- 602 603 ---------------------------------------------------------------------------*/ 604 OUString SwXPrintSettings::getImplementationName(void) throw( RuntimeException ) 605 { 606 return C2U("SwXPrintSettings"); 607 } 608 /* -----------------------------06.04.00 11:02-------------------------------- 609 610 ---------------------------------------------------------------------------*/ 611 sal_Bool SwXPrintSettings::supportsService(const OUString& rServiceName) throw( RuntimeException ) 612 { 613 return C2U("com.sun.star.text.PrintSettings") == rServiceName; 614 } 615 /* -----------------------------06.04.00 11:02-------------------------------- 616