1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: SwXDocumentSettings.cxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_sw.hxx"
33 #include <vos/mutex.hxx>
34 #include <sfx2/sfxbasecontroller.hxx>
35 #include <SwXDocumentSettings.hxx>
36 #include <SwXPrintPreviewSettings.hxx>
37 #ifndef _COMPHELPER_MASTERPROPERTSETINFO_HXX_
38 #include <comphelper/MasterPropertySetInfo.hxx>
40 #ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPPP_
41 #include <com/sun/star/beans/PropertyAttribute.hpp>
43 #include <com/sun/star/i18n/XForbiddenCharacters.hpp>
44 #include <com/sun/star/document/PrinterIndependentLayout.hpp>
47 #include <fldupde.hxx>
48 #include <linkenum.hxx>
49 #include <sfx2/printer.hxx>
51 #include <drawdoc.hxx>
52 #include <svtools/zforlist.hxx>
54 #include <unotxdoc.hxx>
56 #include <svx/zoomitem.hxx>
58 #include <vcl/svapp.hxx>
60 #include "swmodule.hxx"
61 #include "cfgitems.hxx"
65 #include "swmodule.hxx"
66 #include "cfgitems.hxx"
71 using namespace comphelper
;
72 using namespace ::com::sun::star
;
73 using namespace ::com::sun::star::uno
;
74 using namespace ::com::sun::star::beans
;
75 using namespace ::com::sun::star::lang
;
76 using namespace ::com::sun::star::i18n
;
78 enum SwDocumentSettingsPropertyHandles
80 HANDLE_FORBIDDEN_CHARS
,
81 HANDLE_LINK_UPDATE_MODE
,
82 HANDLE_FIELD_AUTO_UPDATE
,
83 HANDLE_CHART_AUTO_UPDATE
,
84 HANDLE_ADD_PARA_TABLE_SPACING
,
85 HANDLE_ADD_PARA_TABLE_SPACING_AT_START
,
86 HANDLE_ALIGN_TAB_STOP_POSITION
,
89 HANDLE_IS_KERN_ASIAN_PUNCTUATION
,
90 HANDLE_CHARACTER_COMPRESSION_TYPE
,
91 HANDLE_APPLY_USER_DATA
,
92 HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS
,
93 HANDLE_CURRENT_DATABASE_DATA_SOURCE
,
94 HANDLE_CURRENT_DATABASE_COMMAND
,
95 HANDLE_CURRENT_DATABASE_COMMAND_TYPE
,
96 HANDLE_SAVE_VERSION_ON_CLOSE
,
97 HANDLE_IS_GRID_VISIBLE
,
98 HANDLE_IS_SNAP_TO_GRID
,
99 HANDLE_IS_SYNCHRONISE_AXES
,
100 HANDLE_HORIZONTAL_GRID_RESOLUTION
,
101 HANDLE_HORIZONTAL_GRID_SUBDIVISION
,
102 HANDLE_VERTICAL_GRID_RESOLUTION
,
103 HANDLE_VERTICAL_GRID_SUBDIVISION
,
104 HANDLE_UPDATE_FROM_TEMPLATE
,
105 HANDLE_PRINTER_INDEPENDENT_LAYOUT
,
107 HANDLE_IS_ADD_FLY_OFFSET
,
108 HANDLE_IS_ADD_EXTERNAL_LEADING
,
109 HANDLE_OLD_NUMBERING
, // #111955#
110 HANDLE_OUTLINELEVEL_YIELDS_NUMBERING
,
111 /* Stampit It disable the print cancel button of the shown progress dialog. */
112 HANDLE_ALLOW_PRINTJOB_CANCEL
,
113 HANDLE_USE_FORMER_LINE_SPACING
,
114 HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS
,
115 HANDLE_USE_FORMER_OBJECT_POSITIONING
,
116 HANDLE_USE_FORMER_TEXT_WRAPPING
,
117 HANDLE_CHANGES_PASSWORD
,
118 HANDLE_CONSIDER_WRAP_ON_OBJPOS
,
119 HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING
,
120 HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK
,
121 HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT
,
122 HANDLE_TABLE_ROW_KEEP
,
123 HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION
,
124 HANDLE_LOAD_READONLY
,
125 HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE
,
126 HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES
,
127 HANDLE_UNIX_FORCE_ZERO_EXT_LEADING
,
128 HANDLE_USE_OLD_PRINTER_METRICS
,
130 HANDLE_TABS_RELATIVE_TO_INDENT
,
131 // --> OD 2008-06-05 #i89181#
132 HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST
134 ,HANDLE_INVERT_BORDER_SPACING
135 ,HANDLE_COLLAPSE_EMPTY_CELL_PARA
138 MasterPropertySetInfo
* lcl_createSettingsInfo()
140 static PropertyInfo aWriterSettingsInfoMap
[] =
142 { RTL_CONSTASCII_STRINGPARAM("ForbiddenCharacters"), HANDLE_FORBIDDEN_CHARS
, CPPUTYPE_REFFORBCHARS
, 0, 0},
143 { RTL_CONSTASCII_STRINGPARAM("LinkUpdateMode"), HANDLE_LINK_UPDATE_MODE
, CPPUTYPE_INT16
, 0, 0},
144 { RTL_CONSTASCII_STRINGPARAM("FieldAutoUpdate"), HANDLE_FIELD_AUTO_UPDATE
, CPPUTYPE_BOOLEAN
, 0, 0},
145 { RTL_CONSTASCII_STRINGPARAM("ChartAutoUpdate"), HANDLE_CHART_AUTO_UPDATE
, CPPUTYPE_BOOLEAN
, 0, 0},
146 { RTL_CONSTASCII_STRINGPARAM("AddParaTableSpacing"), HANDLE_ADD_PARA_TABLE_SPACING
, CPPUTYPE_BOOLEAN
, 0, 0},
147 { RTL_CONSTASCII_STRINGPARAM("AddParaTableSpacingAtStart"), HANDLE_ADD_PARA_TABLE_SPACING_AT_START
, CPPUTYPE_BOOLEAN
, 0, 0},
148 { RTL_CONSTASCII_STRINGPARAM("AlignTabStopPosition"), HANDLE_ALIGN_TAB_STOP_POSITION
, CPPUTYPE_BOOLEAN
, 0, 0},
149 { RTL_CONSTASCII_STRINGPARAM("PrinterName"), HANDLE_PRINTER_NAME
, CPPUTYPE_OUSTRING
, 0, 0},
150 { RTL_CONSTASCII_STRINGPARAM("PrinterSetup"), HANDLE_PRINTER_SETUP
, CPPUTYPE_SEQINT8
, 0, 0},
151 { RTL_CONSTASCII_STRINGPARAM("IsKernAsianPunctuation"), HANDLE_IS_KERN_ASIAN_PUNCTUATION
, CPPUTYPE_BOOLEAN
, 0, 0},
152 { RTL_CONSTASCII_STRINGPARAM("CharacterCompressionType"), HANDLE_CHARACTER_COMPRESSION_TYPE
, CPPUTYPE_INT16
, 0, 0},
153 { RTL_CONSTASCII_STRINGPARAM("ApplyUserData"), HANDLE_APPLY_USER_DATA
, CPPUTYPE_BOOLEAN
, 0, 0},
154 { RTL_CONSTASCII_STRINGPARAM("SaveGlobalDocumentLinks"), HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS
, CPPUTYPE_BOOLEAN
, 0, 0},
155 { RTL_CONSTASCII_STRINGPARAM("CurrentDatabaseDataSource"), HANDLE_CURRENT_DATABASE_DATA_SOURCE
, CPPUTYPE_OUSTRING
, 0, 0},
156 { RTL_CONSTASCII_STRINGPARAM("CurrentDatabaseCommand"), HANDLE_CURRENT_DATABASE_COMMAND
, CPPUTYPE_OUSTRING
, 0, 0},
157 { RTL_CONSTASCII_STRINGPARAM("CurrentDatabaseCommandType"), HANDLE_CURRENT_DATABASE_COMMAND_TYPE
, CPPUTYPE_INT32
, 0, 0},
158 { RTL_CONSTASCII_STRINGPARAM("SaveVersionOnClose"), HANDLE_SAVE_VERSION_ON_CLOSE
, CPPUTYPE_BOOLEAN
, 0, 0},
159 { RTL_CONSTASCII_STRINGPARAM("UpdateFromTemplate"), HANDLE_UPDATE_FROM_TEMPLATE
, CPPUTYPE_BOOLEAN
, 0, 0},
161 { RTL_CONSTASCII_STRINGPARAM("PrinterIndependentLayout"), HANDLE_PRINTER_INDEPENDENT_LAYOUT
, CPPUTYPE_INT16
, 0, 0},
162 { RTL_CONSTASCII_STRINGPARAM("IsLabelDocument"), HANDLE_IS_LABEL_DOC
, CPPUTYPE_BOOLEAN
, 0, 0},
163 { RTL_CONSTASCII_STRINGPARAM("AddFrameOffsets"), HANDLE_IS_ADD_FLY_OFFSET
, CPPUTYPE_BOOLEAN
, 0, 0},
164 { RTL_CONSTASCII_STRINGPARAM("AddExternalLeading"), HANDLE_IS_ADD_EXTERNAL_LEADING
, CPPUTYPE_BOOLEAN
, 0, 0},
165 { RTL_CONSTASCII_STRINGPARAM("UseOldNumbering"), HANDLE_OLD_NUMBERING
, CPPUTYPE_BOOLEAN
, 0, 0}, // #111955#
166 { RTL_CONSTASCII_STRINGPARAM("OutlineLevelYieldsNumbering"), HANDLE_OUTLINELEVEL_YIELDS_NUMBERING
, CPPUTYPE_BOOLEAN
, 0, 0},
167 /* Stampit It disable the print cancel button of the shown progress dialog. */
168 { RTL_CONSTASCII_STRINGPARAM("AllowPrintJobCancel"), HANDLE_ALLOW_PRINTJOB_CANCEL
, CPPUTYPE_BOOLEAN
, 0, 0},
169 { RTL_CONSTASCII_STRINGPARAM("UseFormerLineSpacing"), HANDLE_USE_FORMER_LINE_SPACING
, CPPUTYPE_BOOLEAN
, 0, 0},
170 { RTL_CONSTASCII_STRINGPARAM("AddParaSpacingToTableCells"), HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS
, CPPUTYPE_BOOLEAN
, 0, 0},
171 { RTL_CONSTASCII_STRINGPARAM("UseFormerObjectPositioning"), HANDLE_USE_FORMER_OBJECT_POSITIONING
, CPPUTYPE_BOOLEAN
, 0, 0},
172 { RTL_CONSTASCII_STRINGPARAM("UseFormerTextWrapping"), HANDLE_USE_FORMER_TEXT_WRAPPING
, CPPUTYPE_BOOLEAN
, 0, 0},
173 { RTL_CONSTASCII_STRINGPARAM("RedlineProtectionKey"), HANDLE_CHANGES_PASSWORD
, CPPUTYPE_SEQINT8
, 0, 0},
174 { RTL_CONSTASCII_STRINGPARAM("ConsiderTextWrapOnObjPos"), HANDLE_CONSIDER_WRAP_ON_OBJPOS
, CPPUTYPE_BOOLEAN
, 0, 0},
175 { RTL_CONSTASCII_STRINGPARAM("IgnoreFirstLineIndentInNumbering"), HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING
, CPPUTYPE_BOOLEAN
, 0, 0},
176 { RTL_CONSTASCII_STRINGPARAM("DoNotJustifyLinesWithManualBreak"), HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK
, CPPUTYPE_BOOLEAN
, 0, 0},
177 { RTL_CONSTASCII_STRINGPARAM("DoNotResetParaAttrsForNumFont"), HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT
, CPPUTYPE_BOOLEAN
, 0, 0},
178 { RTL_CONSTASCII_STRINGPARAM("TableRowKeep"), HANDLE_TABLE_ROW_KEEP
, CPPUTYPE_BOOLEAN
, 0, 0},
179 { RTL_CONSTASCII_STRINGPARAM("IgnoreTabsAndBlanksForLineCalculation"), HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION
, CPPUTYPE_BOOLEAN
, 0, 0},
180 { RTL_CONSTASCII_STRINGPARAM("LoadReadonly"), HANDLE_LOAD_READONLY
, CPPUTYPE_BOOLEAN
, 0, 0},
181 { RTL_CONSTASCII_STRINGPARAM("DoNotCaptureDrawObjsOnPage"), HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE
, CPPUTYPE_BOOLEAN
, 0, 0},
182 { RTL_CONSTASCII_STRINGPARAM("ClipAsCharacterAnchoredWriterFlyFrames"), HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES
, CPPUTYPE_BOOLEAN
, 0, 0},
183 { RTL_CONSTASCII_STRINGPARAM("UnxForceZeroExtLeading"), HANDLE_UNIX_FORCE_ZERO_EXT_LEADING
, CPPUTYPE_BOOLEAN
, 0, 0},
184 { RTL_CONSTASCII_STRINGPARAM("UseOldPrinterMetrics"), HANDLE_USE_OLD_PRINTER_METRICS
, CPPUTYPE_BOOLEAN
, 0, 0},
185 { RTL_CONSTASCII_STRINGPARAM("TabsRelativeToIndent"), HANDLE_TABS_RELATIVE_TO_INDENT
, CPPUTYPE_BOOLEAN
, 0, 0},
186 { RTL_CONSTASCII_STRINGPARAM("ProtectForm"), HANDLE_PROTECT_FORM
, CPPUTYPE_BOOLEAN
, 0, 0},
187 // --> OD 2008-06-05 #i89181#
188 { RTL_CONSTASCII_STRINGPARAM("TabAtLeftIndentForParagraphsInList"), HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST
, CPPUTYPE_BOOLEAN
, 0, 0},
189 { RTL_CONSTASCII_STRINGPARAM("InvertBorderSpacing"), HANDLE_INVERT_BORDER_SPACING
, CPPUTYPE_BOOLEAN
, 0, 0},
190 { RTL_CONSTASCII_STRINGPARAM("CollapseEmptyCellPara"), HANDLE_COLLAPSE_EMPTY_CELL_PARA
, CPPUTYPE_BOOLEAN
, 0, 0},
192 * As OS said, we don't have a view when we need to set this, so I have to
193 * find another solution before adding them to this property set - MTG
194 { RTL_CONSTASCII_STRINGPARAM("IsGridVisible"), HANDLE_IS_GRID_VISIBLE, CPPUTYPE_BOOLEAN, 0, 0},
195 { RTL_CONSTASCII_STRINGPARAM("IsSnapToGrid"), HANDLE_IS_SNAP_TO_GRID, CPPUTYPE_BOOLEAN, 0, 0},
196 { RTL_CONSTASCII_STRINGPARAM("IsSynchroniseAxes"), HANDLE_IS_SYNCHRONISE_AXES, CPPUTYPE_BOOLEAN, 0, 0},
197 { RTL_CONSTASCII_STRINGPARAM("HorizontalGridResolution"), HANDLE_HORIZONTAL_GRID_RESOLUTION, CPPUTYPE_INT32, 0, 0},
198 { RTL_CONSTASCII_STRINGPARAM("HorizontalGridSubdivision"), HANDLE_HORIZONTAL_GRID_SUBDIVISION, CPPUTYPE_INT16, 0, 0},
199 { RTL_CONSTASCII_STRINGPARAM("VerticalGridResolution"), HANDLE_VERTICAL_GRID_RESOLUTION, CPPUTYPE_INT32, 0, 0},
200 { RTL_CONSTASCII_STRINGPARAM("VerticalGridSubdivision"), HANDLE_VERTICAL_GRID_SUBDIVISION, CPPUTYPE_INT16, 0, 0},
202 { RTL_CONSTASCII_STRINGPARAM("ShowParagraphEnd"), HANDLE_SHOW_PARAGRAPH_END, CPPUTYPE_BOOLEAN, 0, 0},
203 { RTL_CONSTASCII_STRINGPARAM("ShowOptionalHyphens"), HANDLE_SHOW_OPTIONAL_HYPHENS, CPPUTYPE_BOOLEAN, 0, 0},
204 { RTL_CONSTASCII_STRINGPARAM("ShowSpaces"), HANDLE_SHOW_SPACES, CPPUTYPE_BOOLEAN, 0, 0},
205 { RTL_CONSTASCII_STRINGPARAM("ShowTabs"), HANDLE_SHOW_TABS, CPPUTYPE_BOOLEAN, 0, 0},
206 { RTL_CONSTASCII_STRINGPARAM("ShowBreaks"), HANDLE_SHOW_BREAKS, CPPUTYPE_BOOLEAN, 0, 0},
207 { RTL_CONSTASCII_STRINGPARAM("ShowHiddenText"), HANDLE_SHOW_HIDDEN_TEXT, CPPUTYPE_BOOLEAN, 0, 0},
208 { RTL_CONSTASCII_STRINGPARAM("ShowHiddenParagraphs"), HANDLE_SHOW_HIDDEN_PARAGRAPHS, CPPUTYPE_BOOLEAN, 0, 0},
210 { RTL_CONSTASCII_STRINGPARAM("ShowTextLimitGuide"), HANDLE_SHOW_TEXT_LIMIT_GUIDE, CPPUTYPE_BOOLEAN, 0, 0},
211 { RTL_CONSTASCII_STRINGPARAM("ShowTableLimitGuide"), HANDLE_SHOW_TABLE_LIMIT_GUIDE, CPPUTYPE_BOOLEAN, 0, 0},
212 { RTL_CONSTASCII_STRINGPARAM("ShowSectionLimitGuide"), HANDLE_SHOW_SECTION_LIMIT_GUIDE, CPPUTYPE_BOOLEAN, 0, 0},
213 { RTL_CONSTASCII_STRINGPARAM("ShowGuidesWhileMoving"), HANDLE_SHOW_GUIDES_WHILE_MOVING, CPPUTYPE_BOOLEAN, 0, 0},
214 { RTL_CONSTASCII_STRINGPARAM("ShowSimpleHandles"), HANDLE_SHOW_SIMPLE_HANDLES, CPPUTYPE_BOOLEAN, 0, 0},
215 { RTL_CONSTASCII_STRINGPARAM("ShowLargeHandles"), HANDLE_SHOW_LARGE_HANDLES, CPPUTYPE_BOOLEAN, 0, 0},
217 { NULL
, 0, 0, CPPUTYPE_UNKNOWN
, 0, 0 }
219 return new MasterPropertySetInfo ( aWriterSettingsInfoMap
);
222 SwXDocumentSettings::SwXDocumentSettings ( SwXTextDocument
* pModel
)
223 : MasterPropertySet ( lcl_createSettingsInfo (),
224 &Application::GetSolarMutex () )
231 registerSlave ( new SwXPrintSettings ( PRINT_SETTINGS_DOCUMENT
, mpModel
->GetDocShell()->GetDoc() ) );
232 registerSlave ( new SwXPrintPreviewSettings ( mpModel
->GetDocShell()->GetDoc() ) );
235 SwXDocumentSettings::~SwXDocumentSettings()
240 Any SAL_CALL
SwXDocumentSettings::queryInterface( const Type
& rType
)
241 throw(RuntimeException
)
243 return ::cppu::queryInterface ( rType
,
244 // OWeakObject interfaces
245 dynamic_cast< XInterface
* > ( dynamic_cast< OWeakObject
* >(this) ),
246 dynamic_cast< XWeak
* > ( this ),
248 dynamic_cast< XPropertySet
* > ( this ),
249 dynamic_cast< XPropertyState
* > ( this ),
250 dynamic_cast< XMultiPropertySet
* > ( this ),
251 dynamic_cast< XServiceInfo
* > ( this ),
252 dynamic_cast< XTypeProvider
* > ( this ) );
254 void SwXDocumentSettings::acquire ()
257 OWeakObject::acquire();
259 void SwXDocumentSettings::release ()
262 OWeakObject::release();
265 uno::Sequence
< uno::Type
> SAL_CALL
SwXDocumentSettings::getTypes( )
266 throw (RuntimeException
)
268 vos::OGuard
aGuard(Application::GetSolarMutex());
270 uno::Sequence
< uno::Type
> aBaseTypes( 5 );
271 uno::Type
* pBaseTypes
= aBaseTypes
.getArray();
273 // from MasterPropertySet
274 pBaseTypes
[0] = ::getCppuType((Reference
< XPropertySet
>*)0);
275 pBaseTypes
[1] = ::getCppuType((Reference
< XPropertyState
>*)0);
276 pBaseTypes
[2] = ::getCppuType((Reference
< XMultiPropertySet
>*)0);
278 pBaseTypes
[3] = ::getCppuType((Reference
< XServiceInfo
>*)0);
279 pBaseTypes
[4] = ::getCppuType((Reference
< XTypeProvider
>*)0);
284 uno::Sequence
< sal_Int8
> SAL_CALL
SwXDocumentSettings::getImplementationId( )
285 throw (RuntimeException
)
287 vos::OGuard
aGuard(Application::GetSolarMutex());
288 static Sequence
< sal_Int8
> aId( 16 );
289 static sal_Bool bInit
= sal_False
;
292 rtl_createUuid( (sal_uInt8
*)(aId
.getArray() ), 0, sal_True
);
298 void SwXDocumentSettings::_preSetValues ()
299 throw(beans::UnknownPropertyException
, beans::PropertyVetoException
, lang::IllegalArgumentException
, lang::WrappedTargetException
)
301 mpDocSh
= mpModel
->GetDocShell();
302 mpDoc
= mpDocSh
->GetDoc();
304 if( NULL
== mpDoc
|| NULL
== mpDocSh
)
305 throw UnknownPropertyException();
309 void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo
& rInfo
, const uno::Any
&rValue
)
310 throw(beans::UnknownPropertyException
, beans::PropertyVetoException
, lang::IllegalArgumentException
, lang::WrappedTargetException
)
312 if (rInfo
.mnAttributes
& PropertyAttribute::READONLY
)
313 throw PropertyVetoException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + C2U(rInfo
.mpName
), static_cast < cppu::OWeakObject
* > ( 0 ) );
315 switch( rInfo
.mnHandle
)
317 case HANDLE_FORBIDDEN_CHARS
:
319 case HANDLE_LINK_UPDATE_MODE
:
331 throw IllegalArgumentException();
333 mpDoc
->setLinkUpdateMode(nMode
);
336 case HANDLE_FIELD_AUTO_UPDATE
:
338 sal_Bool bUpdateField
= *(sal_Bool
*)rValue
.getValue();
339 SwFldUpdateFlags nFlag
= mpDoc
->getFieldUpdateFlags(true);
340 mpDoc
->setFieldUpdateFlags( bUpdateField
?
341 nFlag
== AUTOUPD_FIELD_AND_CHARTS
?
342 AUTOUPD_FIELD_AND_CHARTS
:
347 case HANDLE_CHART_AUTO_UPDATE
:
349 sal_Bool bUpdateChart
= *(sal_Bool
*)rValue
.getValue();
350 SwFldUpdateFlags nFlag
= mpDoc
->getFieldUpdateFlags(true);
351 mpDoc
->setFieldUpdateFlags( (nFlag
== AUTOUPD_FIELD_ONLY
|| nFlag
== AUTOUPD_FIELD_AND_CHARTS
) ?
353 AUTOUPD_FIELD_AND_CHARTS
:
358 case HANDLE_ADD_PARA_TABLE_SPACING
:
360 sal_Bool bParaSpace
= sal_False
;
361 rValue
>>= bParaSpace
;
362 mpDoc
->set(IDocumentSettingAccess::PARA_SPACE_MAX
, bParaSpace
);
365 case HANDLE_ADD_PARA_TABLE_SPACING_AT_START
:
367 sal_Bool bParaSpacePage
= sal_False
;
368 rValue
>>= bParaSpacePage
;
369 mpDoc
->set(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES
, bParaSpacePage
);
372 case HANDLE_ALIGN_TAB_STOP_POSITION
:
374 sal_Bool bAlignTab
= *(sal_Bool
*)rValue
.getValue();
375 mpDoc
->set(IDocumentSettingAccess::TAB_COMPAT
, bAlignTab
);
378 case HANDLE_PRINTER_NAME
:
380 //the printer must be created
381 OUString sPrinterName
;
382 if( rValue
>>= sPrinterName
)
384 if( !mpPrinter
&& sPrinterName
.getLength() > 0 && mpDocSh
->GetCreateMode() != SFX_CREATE_MODE_EMBEDDED
)
386 SfxPrinter
* pPrinter
= mpDoc
->getPrinter( true );
387 if ( OUString ( pPrinter
->GetName()) != sPrinterName
)
389 SfxPrinter
*pNewPrinter
= new SfxPrinter ( pPrinter
->GetOptions().Clone(), sPrinterName
);
390 if( pNewPrinter
->IsKnown() )
392 // set printer only once; in _postSetValues
393 mpPrinter
= pNewPrinter
;
403 throw IllegalArgumentException();
406 case HANDLE_PRINTER_SETUP
:
408 Sequence
< sal_Int8
> aSequence
;
409 if ( rValue
>>= aSequence
)
411 sal_uInt32 nSize
= aSequence
.getLength();
414 SvMemoryStream
aStream (aSequence
.getArray(), nSize
,
416 aStream
.Seek ( STREAM_SEEK_TO_BEGIN
);
417 static sal_uInt16 __READONLY_DATA nRange
[] =
419 FN_PARAM_ADDPRINTER
, FN_PARAM_ADDPRINTER
,
420 SID_HTML_MODE
, SID_HTML_MODE
,
421 SID_PRINTER_NOTFOUND_WARN
, SID_PRINTER_NOTFOUND_WARN
,
422 SID_PRINTER_CHANGESTODOC
, SID_PRINTER_CHANGESTODOC
,
425 SfxItemSet
*pItemSet
= new SfxItemSet( mpDoc
->GetAttrPool(), nRange
);
426 SfxPrinter
*pPrinter
= SfxPrinter::Create ( aStream
, pItemSet
);
428 // set printer only once; in _postSetValues
430 mpPrinter
= pPrinter
;
434 throw IllegalArgumentException();
437 case HANDLE_IS_KERN_ASIAN_PUNCTUATION
:
439 sal_Bool bIsKern
= *(sal_Bool
*)(rValue
).getValue();
440 mpDoc
->set(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION
, bIsKern
);
441 SwEditShell
* pEditSh
= mpDoc
->GetEditShell();
443 pEditSh
->ChgHyphenation();
446 case HANDLE_CHARACTER_COMPRESSION_TYPE
:
452 case CHARCOMPRESS_NONE
:
453 case CHARCOMPRESS_PUNCTUATION
:
454 case CHARCOMPRESS_PUNCTUATION_KANA
:
457 throw IllegalArgumentException();
459 mpDoc
->setCharacterCompressionType(static_cast < SwCharCompressType
> (nMode
) );
462 case HANDLE_APPLY_USER_DATA
:
464 mpDocSh
->SetUseUserData( *(sal_Bool
*)rValue
.getValue() );
467 case HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS
:
469 sal_Bool bSaveGlobal
= *(sal_Bool
*)rValue
.getValue();
470 mpDoc
->set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS
, bSaveGlobal
);
473 case HANDLE_CURRENT_DATABASE_DATA_SOURCE
:
475 SwDBData aData
= mpDoc
->GetDBData();
476 if ( rValue
>>= aData
.sDataSource
)
477 mpDoc
->ChgDBData( aData
);
480 case HANDLE_CURRENT_DATABASE_COMMAND
:
482 SwDBData aData
= mpDoc
->GetDBData();
483 if ( rValue
>>= aData
.sCommand
)
484 mpDoc
->ChgDBData( aData
);
487 case HANDLE_CURRENT_DATABASE_COMMAND_TYPE
:
489 SwDBData aData
= mpDoc
->GetDBData();
490 if ( rValue
>>= aData
.nCommandType
)
491 mpDoc
->ChgDBData( aData
);
494 case HANDLE_SAVE_VERSION_ON_CLOSE
:
496 mpDocSh
->SetSaveVersionOnClose( *(sal_Bool
*)rValue
.getValue() );
499 case HANDLE_UPDATE_FROM_TEMPLATE
:
501 mpDocSh
->SetQueryLoadTemplate( *(sal_Bool
*)rValue
.getValue() );
504 case HANDLE_PRINTER_INDEPENDENT_LAYOUT
:
509 bool bUseVirDev
= true;
510 bool bHiResVirDev
= true;
511 if( nTmp
== document::PrinterIndependentLayout::DISABLED
)
513 else if ( nTmp
== document::PrinterIndependentLayout::LOW_RESOLUTION
)
514 bHiResVirDev
= false;
515 else if ( nTmp
!= document::PrinterIndependentLayout::HIGH_RESOLUTION
)
516 throw IllegalArgumentException();
518 mpDoc
->setReferenceDeviceType( bUseVirDev
, bHiResVirDev
);
521 case HANDLE_IS_LABEL_DOC
:
523 sal_Bool bSet
= sal_False
;
524 if(!(rValue
>>= bSet
))
525 throw IllegalArgumentException();
526 mpDoc
->set(IDocumentSettingAccess::LABEL_DOCUMENT
, bSet
);
529 case HANDLE_IS_ADD_FLY_OFFSET
:
531 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
532 mpDoc
->set(IDocumentSettingAccess::ADD_FLY_OFFSETS
, bTmp
);
535 case HANDLE_IS_ADD_EXTERNAL_LEADING
:
537 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
538 mpDoc
->set(IDocumentSettingAccess::ADD_EXT_LEADING
, bTmp
);
541 case HANDLE_OLD_NUMBERING
: // #111955#
543 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
544 mpDoc
->set(IDocumentSettingAccess::OLD_NUMBERING
, bTmp
);
546 case HANDLE_OUTLINELEVEL_YIELDS_NUMBERING
:
548 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
549 mpDoc
->set(IDocumentSettingAccess::OUTLINE_LEVEL_YIELDS_OUTLINE_RULE
, bTmp
);
552 case HANDLE_ALLOW_PRINTJOB_CANCEL
:
554 sal_Bool bState
= sal_False
;
555 if (!(rValue
>>= bState
))
556 throw IllegalArgumentException();
557 mpDocSh
->Stamp_SetPrintCancelState(bState
);
560 case HANDLE_USE_FORMER_LINE_SPACING
:
562 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
563 mpDoc
->set(IDocumentSettingAccess::OLD_LINE_SPACING
, bTmp
);
566 case HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS
:
568 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
569 mpDoc
->set(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS
, bTmp
);
572 case HANDLE_USE_FORMER_OBJECT_POSITIONING
:
574 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
575 mpDoc
->set(IDocumentSettingAccess::USE_FORMER_OBJECT_POS
, bTmp
);
578 case HANDLE_USE_FORMER_TEXT_WRAPPING
:
580 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
581 mpDoc
->set(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING
, bTmp
);
584 case HANDLE_CHANGES_PASSWORD
:
586 Sequence
<sal_Int8
> aNew
;
589 mpDoc
->SetRedlinePassword(aNew
);
592 sal_uInt16 eMode
= mpDoc
->GetRedlineMode();
593 eMode
= eMode
|nsRedlineMode_t::REDLINE_ON
;
594 mpDoc
->SetRedlineMode((RedlineMode_t
)( eMode
));
599 case HANDLE_CONSIDER_WRAP_ON_OBJPOS
:
601 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
602 mpDoc
->set(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION
, bTmp
);
605 case HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING
:
607 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
608 mpDoc
->set(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING
, bTmp
);
611 case HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK
:
613 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
614 mpDoc
->set(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK
, bTmp
);
617 case HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT
:
619 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
620 mpDoc
->set(IDocumentSettingAccess::DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT
, bTmp
);
623 case HANDLE_TABLE_ROW_KEEP
:
625 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
626 mpDoc
->set(IDocumentSettingAccess::TABLE_ROW_KEEP
, bTmp
);
629 case HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION
:
631 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
632 mpDoc
->set(IDocumentSettingAccess::IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION
, bTmp
);
635 case HANDLE_LOAD_READONLY
:
637 mpDocSh
->SetLoadReadonly( *(sal_Bool
*)rValue
.getValue() );
640 case HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE
:
642 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
643 mpDoc
->set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE
, bTmp
);
646 case HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES
:
648 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
649 mpDoc
->set(IDocumentSettingAccess::CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME
, bTmp
);
652 case HANDLE_UNIX_FORCE_ZERO_EXT_LEADING
:
654 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
655 mpDoc
->set(IDocumentSettingAccess::UNIX_FORCE_ZERO_EXT_LEADING
, bTmp
);
658 case HANDLE_USE_OLD_PRINTER_METRICS
:
660 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
661 mpDoc
->set(IDocumentSettingAccess::USE_OLD_PRINTER_METRICS
, bTmp
);
664 case HANDLE_TABS_RELATIVE_TO_INDENT
:
666 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
667 mpDoc
->set(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT
, bTmp
);
670 case HANDLE_PROTECT_FORM
:
672 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
673 mpDoc
->set(IDocumentSettingAccess::PROTECT_FORM
, bTmp
);
676 // --> OD 2008-06-05 #i89181#
677 case HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST
:
679 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
680 mpDoc
->set(IDocumentSettingAccess::TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST
, bTmp
);
684 case HANDLE_INVERT_BORDER_SPACING
:
686 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
687 mpDoc
->set(IDocumentSettingAccess::INVERT_BORDER_SPACING
, bTmp
);
690 case HANDLE_COLLAPSE_EMPTY_CELL_PARA
:
692 sal_Bool bTmp
= *(sal_Bool
*)rValue
.getValue();
693 mpDoc
->set(IDocumentSettingAccess::COLLAPSE_EMPTY_CELL_PARA
, bTmp
);
697 throw UnknownPropertyException();
701 void SwXDocumentSettings::_postSetValues ()
702 throw(beans::UnknownPropertyException
, beans::PropertyVetoException
, lang::IllegalArgumentException
, lang::WrappedTargetException
)
704 // set printer only once, namely here!
705 if( mpPrinter
!= NULL
)
707 // #i86352# the printer is also used as container for options by sfx
708 // when setting a printer it should have decent default options
709 SfxItemSet
aOptions( mpPrinter
->GetOptions() );
710 SwPrintData aPrtData
;
711 if( mpDoc
->getPrintData() )
712 aPrtData
= *mpDoc
->getPrintData();
714 aPrtData
= *SW_MOD()->GetPrtOptions(false);
715 SwAddPrinterItem
aAddPrinterItem (FN_PARAM_ADDPRINTER
, aPrtData
);
716 aOptions
.Put(aAddPrinterItem
);
717 mpPrinter
->SetOptions( aOptions
);
719 mpDoc
->setPrinter( mpPrinter
, true, true );
727 void SwXDocumentSettings::_preGetValues ()
728 throw(beans::UnknownPropertyException
, beans::PropertyVetoException
, lang::IllegalArgumentException
, lang::WrappedTargetException
)
730 mpDocSh
= mpModel
->GetDocShell();
731 mpDoc
= mpDocSh
->GetDoc();
732 if( NULL
== mpDoc
|| NULL
== mpDocSh
)
733 throw UnknownPropertyException();
736 void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo
& rInfo
, uno::Any
& rValue
)
737 throw(beans::UnknownPropertyException
, lang::WrappedTargetException
)
739 switch( rInfo
.mnHandle
)
741 case HANDLE_FORBIDDEN_CHARS
:
743 Reference
<XForbiddenCharacters
> xRet(*mpModel
->GetPropertyHelper(), UNO_QUERY
);
747 case HANDLE_LINK_UPDATE_MODE
:
749 rValue
<<= static_cast < sal_Int16
> ( mpDoc
->getLinkUpdateMode(true) );
752 case HANDLE_FIELD_AUTO_UPDATE
:
754 SwFldUpdateFlags nFlags
= mpDoc
->getFieldUpdateFlags(true);
755 BOOL bFieldUpd
= (nFlags
== AUTOUPD_FIELD_ONLY
|| nFlags
== AUTOUPD_FIELD_AND_CHARTS
);
756 rValue
.setValue(&bFieldUpd
, ::getBooleanCppuType());
759 case HANDLE_CHART_AUTO_UPDATE
:
761 SwFldUpdateFlags nFlags
= mpDoc
->getFieldUpdateFlags(true);
762 BOOL bChartUpd
= nFlags
== AUTOUPD_FIELD_AND_CHARTS
;
763 rValue
.setValue(&bChartUpd
, ::getBooleanCppuType());
766 case HANDLE_ADD_PARA_TABLE_SPACING
:
768 sal_Bool bParaSpace
= mpDoc
->get(IDocumentSettingAccess::PARA_SPACE_MAX
);
769 rValue
.setValue(&bParaSpace
, ::getBooleanCppuType());
772 case HANDLE_ADD_PARA_TABLE_SPACING_AT_START
:
774 sal_Bool bParaSpace
= mpDoc
->get(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES
);
775 rValue
.setValue(&bParaSpace
, ::getBooleanCppuType());
778 case HANDLE_ALIGN_TAB_STOP_POSITION
:
780 sal_Bool bAlignTab
= mpDoc
->get(IDocumentSettingAccess::TAB_COMPAT
);
781 rValue
.setValue(&bAlignTab
, ::getBooleanCppuType());
784 case HANDLE_PRINTER_NAME
:
786 SfxPrinter
*pPrinter
= mpDoc
->getPrinter( sal_False
);
787 rValue
<<= pPrinter
? OUString ( pPrinter
->GetName()) : OUString();
790 case HANDLE_PRINTER_SETUP
:
792 SfxPrinter
*pPrinter
= mpDocSh
->GetDoc()->getPrinter( sal_False
);
795 SvMemoryStream aStream
;
796 pPrinter
->Store( aStream
);
797 aStream
.Seek ( STREAM_SEEK_TO_END
);
798 sal_uInt32 nSize
= aStream
.Tell();
799 aStream
.Seek ( STREAM_SEEK_TO_BEGIN
);
800 Sequence
< sal_Int8
> aSequence( nSize
);
801 aStream
.Read ( aSequence
.getArray(), nSize
);
802 rValue
<<= aSequence
;
806 Sequence
< sal_Int8
> aSequence ( 0 );
807 rValue
<<= aSequence
;
811 case HANDLE_IS_KERN_ASIAN_PUNCTUATION
:
813 //sal_Bool bParaSpace = mpDoc->IsKernAsianPunctuation();
814 sal_Bool bParaSpace
= mpDoc
->get(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION
);
815 rValue
.setValue(&bParaSpace
, ::getBooleanCppuType());
818 case HANDLE_APPLY_USER_DATA
:
820 rValue
<<= mpDocSh
->IsUseUserData();
823 case HANDLE_CHARACTER_COMPRESSION_TYPE
:
825 rValue
<<= static_cast < sal_Int16
> (mpDoc
->getCharacterCompressionType());
828 case HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS
:
830 sal_Bool bSaveGlobal
= mpDoc
->get(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS
);
831 rValue
.setValue(&bSaveGlobal
, ::getBooleanCppuType());
834 case HANDLE_CURRENT_DATABASE_DATA_SOURCE
:
836 const SwDBData
& rData
= mpDoc
->GetDBDesc();
837 rValue
<<= rData
.sDataSource
;
840 case HANDLE_CURRENT_DATABASE_COMMAND
:
842 const SwDBData
& rData
= mpDoc
->GetDBDesc();
843 rValue
<<= rData
.sCommand
;
846 case HANDLE_CURRENT_DATABASE_COMMAND_TYPE
:
848 const SwDBData
& rData
= mpDoc
->GetDBDesc();
849 rValue
<<= rData
.nCommandType
;
852 case HANDLE_SAVE_VERSION_ON_CLOSE
:
854 rValue
<<= mpDocSh
->IsSaveVersionOnClose();
857 case HANDLE_UPDATE_FROM_TEMPLATE
:
859 rValue
<<= mpDocSh
->IsQueryLoadTemplate();
862 case HANDLE_PRINTER_INDEPENDENT_LAYOUT
:
864 // returns short (see css.document.PrinterIndependentLayout)
865 sal_Int16 nVirDevType
= mpDoc
->get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE
) ?
866 ( mpDoc
->get(IDocumentSettingAccess::USE_HIRES_VIRTUAL_DEVICE
) ?
867 document::PrinterIndependentLayout::HIGH_RESOLUTION
:
868 document::PrinterIndependentLayout::LOW_RESOLUTION
) :
869 document::PrinterIndependentLayout::DISABLED
;
870 rValue
<<= nVirDevType
;
873 case HANDLE_IS_LABEL_DOC
:
875 sal_Bool bLabel
= mpDoc
->get(IDocumentSettingAccess::LABEL_DOCUMENT
);
879 case HANDLE_IS_ADD_FLY_OFFSET
:
881 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::ADD_FLY_OFFSETS
);
882 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
885 case HANDLE_IS_ADD_EXTERNAL_LEADING
:
887 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::ADD_EXT_LEADING
);
888 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
891 case HANDLE_OLD_NUMBERING
: // #111955#
893 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::OLD_NUMBERING
);
894 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
897 case HANDLE_OUTLINELEVEL_YIELDS_NUMBERING
: // #111955#
899 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::OUTLINE_LEVEL_YIELDS_OUTLINE_RULE
);
900 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
903 case HANDLE_ALLOW_PRINTJOB_CANCEL
:
905 sal_Bool bPrintCancelState
= mpDocSh
->Stamp_GetPrintCancelState();
906 rValue
.setValue(&bPrintCancelState
, ::getBooleanCppuType());
909 case HANDLE_USE_FORMER_LINE_SPACING
:
911 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::OLD_LINE_SPACING
);
912 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
915 case HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS
:
917 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS
);
918 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
921 case HANDLE_USE_FORMER_OBJECT_POSITIONING
:
923 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::USE_FORMER_OBJECT_POS
);
924 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
927 case HANDLE_USE_FORMER_TEXT_WRAPPING
:
929 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING
);
930 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
933 case HANDLE_CHANGES_PASSWORD
:
935 rValue
<<= mpDoc
->GetRedlinePassword();
938 case HANDLE_CONSIDER_WRAP_ON_OBJPOS
:
940 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION
);
941 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
944 case HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING
:
946 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING
);
947 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
950 case HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK
:
952 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK
);
953 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
956 case HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT
:
958 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT
);
959 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
962 case HANDLE_TABLE_ROW_KEEP
:
964 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::TABLE_ROW_KEEP
);
965 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
968 case HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION
:
970 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION
);
971 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
974 case HANDLE_LOAD_READONLY
:
976 rValue
<<= mpDocSh
->IsLoadReadonly();
979 case HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE
:
981 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE
);
982 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
985 case HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES
:
987 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME
);
988 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
991 case HANDLE_UNIX_FORCE_ZERO_EXT_LEADING
:
993 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::UNIX_FORCE_ZERO_EXT_LEADING
);
994 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
997 case HANDLE_USE_OLD_PRINTER_METRICS
:
999 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::USE_OLD_PRINTER_METRICS
);
1000 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
1003 case HANDLE_TABS_RELATIVE_TO_INDENT
:
1005 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT
);
1006 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
1009 case HANDLE_PROTECT_FORM
:
1011 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::PROTECT_FORM
);
1012 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
1015 // --> OD 2008-06-05 #i89181#
1016 case HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST
:
1018 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST
);
1019 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
1023 case HANDLE_INVERT_BORDER_SPACING
:
1025 sal_Bool bTmp
= mpDoc
->get(IDocumentSettingAccess::INVERT_BORDER_SPACING
);
1026 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
1029 case HANDLE_COLLAPSE_EMPTY_CELL_PARA
:
1031 sal_Bool bTmp
= mpDoc
->get( IDocumentSettingAccess::COLLAPSE_EMPTY_CELL_PARA
);
1032 rValue
.setValue( &bTmp
, ::getBooleanCppuType() );
1036 throw UnknownPropertyException();
1040 void SwXDocumentSettings::_postGetValues ()
1041 throw(beans::UnknownPropertyException
, beans::PropertyVetoException
, lang::IllegalArgumentException
, lang::WrappedTargetException
)
1048 OUString SAL_CALL
SwXDocumentSettings::getImplementationName( )
1049 throw(RuntimeException
)
1051 return OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.Writer.DocumentSettings"));
1054 sal_Bool SAL_CALL
SwXDocumentSettings::supportsService( const OUString
& ServiceName
)
1055 throw(RuntimeException
)
1057 const Sequence
< OUString
> aSeq( getSupportedServiceNames() );
1058 sal_Int32 nCount
= aSeq
.getLength();
1059 const OUString
* pServices
= aSeq
.getConstArray();
1062 if( *pServices
++ == ServiceName
)
1068 Sequence
< OUString
> SAL_CALL
SwXDocumentSettings::getSupportedServiceNames( )
1069 throw(RuntimeException
)
1071 Sequence
< OUString
> aSeq( 4 );
1072 aSeq
[0] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.document.Settings") );
1073 aSeq
[1] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.DocumentSettings") );
1074 aSeq
[2] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.PrintSettings") );
1075 aSeq
[3] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.PrintPreviewSettings") );