Better, Faster, Freer

The LXR Cross Referencer

source navigation ]
diff markup ]
identifier search ]
general search ]
 
 
Architecture: i386 ]
Version: HEAD ]

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