1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_sw.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #include <vos/mutex.hxx> 32*cdf0e10cSrcweir #include <sfx2/sfxbasecontroller.hxx> 33*cdf0e10cSrcweir #include <SwXDocumentSettings.hxx> 34*cdf0e10cSrcweir #include <comphelper/MasterPropertySetInfo.hxx> 35*cdf0e10cSrcweir #include <com/sun/star/beans/PropertyAttribute.hpp> 36*cdf0e10cSrcweir #include <com/sun/star/i18n/XForbiddenCharacters.hpp> 37*cdf0e10cSrcweir #include <com/sun/star/document/PrinterIndependentLayout.hpp> 38*cdf0e10cSrcweir #include <doc.hxx> 39*cdf0e10cSrcweir #include <docsh.hxx> 40*cdf0e10cSrcweir #include <fldupde.hxx> 41*cdf0e10cSrcweir #include <linkenum.hxx> 42*cdf0e10cSrcweir #include <sfx2/printer.hxx> 43*cdf0e10cSrcweir #include <editsh.hxx> 44*cdf0e10cSrcweir #include <drawdoc.hxx> 45*cdf0e10cSrcweir #include <svl/zforlist.hxx> 46*cdf0e10cSrcweir #include <unotxdoc.hxx> 47*cdf0e10cSrcweir #include <cmdid.h> 48*cdf0e10cSrcweir #include <svx/zoomitem.hxx> 49*cdf0e10cSrcweir #include <unomod.hxx> 50*cdf0e10cSrcweir #include <vcl/svapp.hxx> 51*cdf0e10cSrcweir 52*cdf0e10cSrcweir #include "swmodule.hxx" 53*cdf0e10cSrcweir #include "cfgitems.hxx" 54*cdf0e10cSrcweir #include "prtopt.hxx" 55*cdf0e10cSrcweir 56*cdf0e10cSrcweir 57*cdf0e10cSrcweir #include "swmodule.hxx" 58*cdf0e10cSrcweir #include "cfgitems.hxx" 59*cdf0e10cSrcweir #include "prtopt.hxx" 60*cdf0e10cSrcweir 61*cdf0e10cSrcweir using rtl::OUString; 62*cdf0e10cSrcweir 63*cdf0e10cSrcweir using namespace comphelper; 64*cdf0e10cSrcweir using namespace ::com::sun::star; 65*cdf0e10cSrcweir using namespace ::com::sun::star::uno; 66*cdf0e10cSrcweir using namespace ::com::sun::star::beans; 67*cdf0e10cSrcweir using namespace ::com::sun::star::lang; 68*cdf0e10cSrcweir using namespace ::com::sun::star::i18n; 69*cdf0e10cSrcweir 70*cdf0e10cSrcweir enum SwDocumentSettingsPropertyHandles 71*cdf0e10cSrcweir { 72*cdf0e10cSrcweir HANDLE_FORBIDDEN_CHARS, 73*cdf0e10cSrcweir HANDLE_LINK_UPDATE_MODE, 74*cdf0e10cSrcweir HANDLE_FIELD_AUTO_UPDATE, 75*cdf0e10cSrcweir HANDLE_CHART_AUTO_UPDATE, 76*cdf0e10cSrcweir HANDLE_ADD_PARA_TABLE_SPACING, 77*cdf0e10cSrcweir HANDLE_ADD_PARA_TABLE_SPACING_AT_START, 78*cdf0e10cSrcweir HANDLE_ALIGN_TAB_STOP_POSITION, 79*cdf0e10cSrcweir HANDLE_PRINTER_NAME, 80*cdf0e10cSrcweir HANDLE_PRINTER_SETUP, 81*cdf0e10cSrcweir HANDLE_IS_KERN_ASIAN_PUNCTUATION, 82*cdf0e10cSrcweir HANDLE_CHARACTER_COMPRESSION_TYPE, 83*cdf0e10cSrcweir HANDLE_APPLY_USER_DATA, 84*cdf0e10cSrcweir HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS, 85*cdf0e10cSrcweir HANDLE_CURRENT_DATABASE_DATA_SOURCE, 86*cdf0e10cSrcweir HANDLE_CURRENT_DATABASE_COMMAND, 87*cdf0e10cSrcweir HANDLE_CURRENT_DATABASE_COMMAND_TYPE, 88*cdf0e10cSrcweir HANDLE_SAVE_VERSION_ON_CLOSE, 89*cdf0e10cSrcweir HANDLE_IS_GRID_VISIBLE, 90*cdf0e10cSrcweir HANDLE_IS_SNAP_TO_GRID, 91*cdf0e10cSrcweir HANDLE_IS_SYNCHRONISE_AXES, 92*cdf0e10cSrcweir HANDLE_HORIZONTAL_GRID_RESOLUTION, 93*cdf0e10cSrcweir HANDLE_HORIZONTAL_GRID_SUBDIVISION, 94*cdf0e10cSrcweir HANDLE_VERTICAL_GRID_RESOLUTION, 95*cdf0e10cSrcweir HANDLE_VERTICAL_GRID_SUBDIVISION, 96*cdf0e10cSrcweir HANDLE_UPDATE_FROM_TEMPLATE, 97*cdf0e10cSrcweir HANDLE_PRINTER_INDEPENDENT_LAYOUT, 98*cdf0e10cSrcweir HANDLE_IS_LABEL_DOC, 99*cdf0e10cSrcweir HANDLE_IS_ADD_FLY_OFFSET, 100*cdf0e10cSrcweir HANDLE_IS_ADD_EXTERNAL_LEADING, 101*cdf0e10cSrcweir HANDLE_OLD_NUMBERING, // #111955# 102*cdf0e10cSrcweir HANDLE_OUTLINELEVEL_YIELDS_NUMBERING, 103*cdf0e10cSrcweir /* Stampit It disable the print cancel button of the shown progress dialog. */ 104*cdf0e10cSrcweir HANDLE_ALLOW_PRINTJOB_CANCEL, 105*cdf0e10cSrcweir HANDLE_USE_FORMER_LINE_SPACING, 106*cdf0e10cSrcweir HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS, 107*cdf0e10cSrcweir HANDLE_USE_FORMER_OBJECT_POSITIONING, 108*cdf0e10cSrcweir HANDLE_USE_FORMER_TEXT_WRAPPING, 109*cdf0e10cSrcweir HANDLE_CHANGES_PASSWORD, 110*cdf0e10cSrcweir HANDLE_CONSIDER_WRAP_ON_OBJPOS, 111*cdf0e10cSrcweir HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING, 112*cdf0e10cSrcweir HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK, 113*cdf0e10cSrcweir HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT, 114*cdf0e10cSrcweir HANDLE_TABLE_ROW_KEEP, 115*cdf0e10cSrcweir HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION, 116*cdf0e10cSrcweir HANDLE_LOAD_READONLY, 117*cdf0e10cSrcweir HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, 118*cdf0e10cSrcweir HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES, 119*cdf0e10cSrcweir HANDLE_UNIX_FORCE_ZERO_EXT_LEADING, 120*cdf0e10cSrcweir HANDLE_USE_OLD_PRINTER_METRICS, 121*cdf0e10cSrcweir HANDLE_PROTECT_FORM, 122*cdf0e10cSrcweir HANDLE_TABS_RELATIVE_TO_INDENT, 123*cdf0e10cSrcweir // --> OD 2008-06-05 #i89181# 124*cdf0e10cSrcweir HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST, 125*cdf0e10cSrcweir // <-- 126*cdf0e10cSrcweir HANDLE_MODIFYPASSWORDINFO, 127*cdf0e10cSrcweir HANDLE_MATH_BASELINE_ALIGNMENT 128*cdf0e10cSrcweir }; 129*cdf0e10cSrcweir 130*cdf0e10cSrcweir MasterPropertySetInfo * lcl_createSettingsInfo() 131*cdf0e10cSrcweir { 132*cdf0e10cSrcweir static PropertyInfo aWriterSettingsInfoMap[] = 133*cdf0e10cSrcweir { 134*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ForbiddenCharacters"), HANDLE_FORBIDDEN_CHARS, CPPUTYPE_REFFORBCHARS, 0, 0}, 135*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("LinkUpdateMode"), HANDLE_LINK_UPDATE_MODE, CPPUTYPE_INT16, 0, 0}, 136*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("FieldAutoUpdate"), HANDLE_FIELD_AUTO_UPDATE, CPPUTYPE_BOOLEAN, 0, 0}, 137*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ChartAutoUpdate"), HANDLE_CHART_AUTO_UPDATE, CPPUTYPE_BOOLEAN, 0, 0}, 138*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("AddParaTableSpacing"), HANDLE_ADD_PARA_TABLE_SPACING, CPPUTYPE_BOOLEAN, 0, 0}, 139*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("AddParaTableSpacingAtStart"), HANDLE_ADD_PARA_TABLE_SPACING_AT_START, CPPUTYPE_BOOLEAN, 0, 0}, 140*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("AlignTabStopPosition"), HANDLE_ALIGN_TAB_STOP_POSITION, CPPUTYPE_BOOLEAN, 0, 0}, 141*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("PrinterName"), HANDLE_PRINTER_NAME, CPPUTYPE_OUSTRING, 0, 0}, 142*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("PrinterSetup"), HANDLE_PRINTER_SETUP, CPPUTYPE_SEQINT8, 0, 0}, 143*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("IsKernAsianPunctuation"), HANDLE_IS_KERN_ASIAN_PUNCTUATION, CPPUTYPE_BOOLEAN, 0, 0}, 144*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("CharacterCompressionType"), HANDLE_CHARACTER_COMPRESSION_TYPE, CPPUTYPE_INT16, 0, 0}, 145*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ApplyUserData"), HANDLE_APPLY_USER_DATA, CPPUTYPE_BOOLEAN, 0, 0}, 146*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("SaveGlobalDocumentLinks"), HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS, CPPUTYPE_BOOLEAN, 0, 0}, 147*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("CurrentDatabaseDataSource"), HANDLE_CURRENT_DATABASE_DATA_SOURCE, CPPUTYPE_OUSTRING, 0, 0}, 148*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("CurrentDatabaseCommand"), HANDLE_CURRENT_DATABASE_COMMAND, CPPUTYPE_OUSTRING, 0, 0}, 149*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("CurrentDatabaseCommandType"), HANDLE_CURRENT_DATABASE_COMMAND_TYPE, CPPUTYPE_INT32, 0, 0}, 150*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("SaveVersionOnClose"), HANDLE_SAVE_VERSION_ON_CLOSE, CPPUTYPE_BOOLEAN, 0, 0}, 151*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("UpdateFromTemplate"), HANDLE_UPDATE_FROM_TEMPLATE, CPPUTYPE_BOOLEAN, 0, 0}, 152*cdf0e10cSrcweir 153*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("PrinterIndependentLayout"), HANDLE_PRINTER_INDEPENDENT_LAYOUT, CPPUTYPE_INT16, 0, 0}, 154*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("IsLabelDocument"), HANDLE_IS_LABEL_DOC, CPPUTYPE_BOOLEAN, 0, 0}, 155*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("AddFrameOffsets"), HANDLE_IS_ADD_FLY_OFFSET, CPPUTYPE_BOOLEAN, 0, 0}, 156*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("AddExternalLeading"), HANDLE_IS_ADD_EXTERNAL_LEADING, CPPUTYPE_BOOLEAN, 0, 0}, 157*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("UseOldNumbering"), HANDLE_OLD_NUMBERING, CPPUTYPE_BOOLEAN, 0, 0}, // #111955# 158*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("OutlineLevelYieldsNumbering"), HANDLE_OUTLINELEVEL_YIELDS_NUMBERING, CPPUTYPE_BOOLEAN, 0, 0}, 159*cdf0e10cSrcweir /* Stampit It disable the print cancel button of the shown progress dialog. */ 160*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("AllowPrintJobCancel"), HANDLE_ALLOW_PRINTJOB_CANCEL, CPPUTYPE_BOOLEAN, 0, 0}, 161*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("UseFormerLineSpacing"), HANDLE_USE_FORMER_LINE_SPACING, CPPUTYPE_BOOLEAN, 0, 0}, 162*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("AddParaSpacingToTableCells"), HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS, CPPUTYPE_BOOLEAN, 0, 0}, 163*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("UseFormerObjectPositioning"), HANDLE_USE_FORMER_OBJECT_POSITIONING, CPPUTYPE_BOOLEAN, 0, 0}, 164*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("UseFormerTextWrapping"), HANDLE_USE_FORMER_TEXT_WRAPPING, CPPUTYPE_BOOLEAN, 0, 0}, 165*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("RedlineProtectionKey"), HANDLE_CHANGES_PASSWORD, CPPUTYPE_SEQINT8, 0, 0}, 166*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ConsiderTextWrapOnObjPos"), HANDLE_CONSIDER_WRAP_ON_OBJPOS, CPPUTYPE_BOOLEAN, 0, 0}, 167*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("IgnoreFirstLineIndentInNumbering"), HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING, CPPUTYPE_BOOLEAN, 0, 0}, 168*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("DoNotJustifyLinesWithManualBreak"), HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK, CPPUTYPE_BOOLEAN, 0, 0}, 169*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("DoNotResetParaAttrsForNumFont"), HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT, CPPUTYPE_BOOLEAN, 0, 0}, 170*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("TableRowKeep"), HANDLE_TABLE_ROW_KEEP, CPPUTYPE_BOOLEAN, 0, 0}, 171*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("IgnoreTabsAndBlanksForLineCalculation"), HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION, CPPUTYPE_BOOLEAN, 0, 0}, 172*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("LoadReadonly"), HANDLE_LOAD_READONLY, CPPUTYPE_BOOLEAN, 0, 0}, 173*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("DoNotCaptureDrawObjsOnPage"), HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, CPPUTYPE_BOOLEAN, 0, 0}, 174*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ClipAsCharacterAnchoredWriterFlyFrames"), HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES, CPPUTYPE_BOOLEAN, 0, 0}, 175*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("UnxForceZeroExtLeading"), HANDLE_UNIX_FORCE_ZERO_EXT_LEADING, CPPUTYPE_BOOLEAN, 0, 0}, 176*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("UseOldPrinterMetrics"), HANDLE_USE_OLD_PRINTER_METRICS, CPPUTYPE_BOOLEAN, 0, 0}, 177*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("TabsRelativeToIndent"), HANDLE_TABS_RELATIVE_TO_INDENT, CPPUTYPE_BOOLEAN, 0, 0}, 178*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ProtectForm"), HANDLE_PROTECT_FORM, CPPUTYPE_BOOLEAN, 0, 0}, 179*cdf0e10cSrcweir // --> OD 2008-06-05 #i89181# 180*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("TabAtLeftIndentForParagraphsInList"), HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST, CPPUTYPE_BOOLEAN, 0, 0}, 181*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ModifyPasswordInfo"), HANDLE_MODIFYPASSWORDINFO, CPPUTYPE_PROPERTYVALUE, 0, 0}, 182*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("MathBaselineAlignment"), HANDLE_MATH_BASELINE_ALIGNMENT, CPPUTYPE_BOOLEAN, 0, 0}, 183*cdf0e10cSrcweir 184*cdf0e10cSrcweir /* 185*cdf0e10cSrcweir * As OS said, we don't have a view when we need to set this, so I have to 186*cdf0e10cSrcweir * find another solution before adding them to this property set - MTG 187*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("IsGridVisible"), HANDLE_IS_GRID_VISIBLE, CPPUTYPE_BOOLEAN, 0, 0}, 188*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("IsSnapToGrid"), HANDLE_IS_SNAP_TO_GRID, CPPUTYPE_BOOLEAN, 0, 0}, 189*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("IsSynchroniseAxes"), HANDLE_IS_SYNCHRONISE_AXES, CPPUTYPE_BOOLEAN, 0, 0}, 190*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("HorizontalGridResolution"), HANDLE_HORIZONTAL_GRID_RESOLUTION, CPPUTYPE_INT32, 0, 0}, 191*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("HorizontalGridSubdivision"), HANDLE_HORIZONTAL_GRID_SUBDIVISION, CPPUTYPE_INT16, 0, 0}, 192*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("VerticalGridResolution"), HANDLE_VERTICAL_GRID_RESOLUTION, CPPUTYPE_INT32, 0, 0}, 193*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("VerticalGridSubdivision"), HANDLE_VERTICAL_GRID_SUBDIVISION, CPPUTYPE_INT16, 0, 0}, 194*cdf0e10cSrcweir 195*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowParagraphEnd"), HANDLE_SHOW_PARAGRAPH_END, CPPUTYPE_BOOLEAN, 0, 0}, 196*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowOptionalHyphens"), HANDLE_SHOW_OPTIONAL_HYPHENS, CPPUTYPE_BOOLEAN, 0, 0}, 197*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowSpaces"), HANDLE_SHOW_SPACES, CPPUTYPE_BOOLEAN, 0, 0}, 198*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowTabs"), HANDLE_SHOW_TABS, CPPUTYPE_BOOLEAN, 0, 0}, 199*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowBreaks"), HANDLE_SHOW_BREAKS, CPPUTYPE_BOOLEAN, 0, 0}, 200*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowHiddenText"), HANDLE_SHOW_HIDDEN_TEXT, CPPUTYPE_BOOLEAN, 0, 0}, 201*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowHiddenParagraphs"), HANDLE_SHOW_HIDDEN_PARAGRAPHS, CPPUTYPE_BOOLEAN, 0, 0}, 202*cdf0e10cSrcweir 203*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowTextLimitGuide"), HANDLE_SHOW_TEXT_LIMIT_GUIDE, CPPUTYPE_BOOLEAN, 0, 0}, 204*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowTableLimitGuide"), HANDLE_SHOW_TABLE_LIMIT_GUIDE, CPPUTYPE_BOOLEAN, 0, 0}, 205*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowSectionLimitGuide"), HANDLE_SHOW_SECTION_LIMIT_GUIDE, CPPUTYPE_BOOLEAN, 0, 0}, 206*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowGuidesWhileMoving"), HANDLE_SHOW_GUIDES_WHILE_MOVING, CPPUTYPE_BOOLEAN, 0, 0}, 207*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowSimpleHandles"), HANDLE_SHOW_SIMPLE_HANDLES, CPPUTYPE_BOOLEAN, 0, 0}, 208*cdf0e10cSrcweir { RTL_CONSTASCII_STRINGPARAM("ShowLargeHandles"), HANDLE_SHOW_LARGE_HANDLES, CPPUTYPE_BOOLEAN, 0, 0}, 209*cdf0e10cSrcweir */ 210*cdf0e10cSrcweir { NULL, 0, 0, CPPUTYPE_UNKNOWN, 0, 0 } 211*cdf0e10cSrcweir }; 212*cdf0e10cSrcweir return new MasterPropertySetInfo ( aWriterSettingsInfoMap ); 213*cdf0e10cSrcweir } 214*cdf0e10cSrcweir 215*cdf0e10cSrcweir SwXDocumentSettings::SwXDocumentSettings ( SwXTextDocument * pModel ) 216*cdf0e10cSrcweir : MasterPropertySet ( lcl_createSettingsInfo (), 217*cdf0e10cSrcweir &Application::GetSolarMutex () ) 218*cdf0e10cSrcweir , mxModel ( pModel ) 219*cdf0e10cSrcweir , mpModel ( pModel ) 220*cdf0e10cSrcweir , mpDocSh ( NULL ) 221*cdf0e10cSrcweir , mpDoc ( NULL ) 222*cdf0e10cSrcweir , mpPrinter( NULL ) 223*cdf0e10cSrcweir { 224*cdf0e10cSrcweir registerSlave ( new SwXPrintSettings ( PRINT_SETTINGS_DOCUMENT, mpModel->GetDocShell()->GetDoc() ) ); 225*cdf0e10cSrcweir } 226*cdf0e10cSrcweir 227*cdf0e10cSrcweir SwXDocumentSettings::~SwXDocumentSettings() 228*cdf0e10cSrcweir throw() 229*cdf0e10cSrcweir { 230*cdf0e10cSrcweir } 231*cdf0e10cSrcweir 232*cdf0e10cSrcweir Any SAL_CALL SwXDocumentSettings::queryInterface( const Type& rType ) 233*cdf0e10cSrcweir throw(RuntimeException) 234*cdf0e10cSrcweir { 235*cdf0e10cSrcweir return ::cppu::queryInterface ( rType, 236*cdf0e10cSrcweir // OWeakObject interfaces 237*cdf0e10cSrcweir dynamic_cast< XInterface* > ( dynamic_cast< OWeakObject* >(this) ), 238*cdf0e10cSrcweir dynamic_cast< XWeak* > ( this ), 239*cdf0e10cSrcweir // my own interfaces 240*cdf0e10cSrcweir dynamic_cast< XPropertySet* > ( this ), 241*cdf0e10cSrcweir dynamic_cast< XPropertyState* > ( this ), 242*cdf0e10cSrcweir dynamic_cast< XMultiPropertySet* > ( this ), 243*cdf0e10cSrcweir dynamic_cast< XServiceInfo* > ( this ), 244*cdf0e10cSrcweir dynamic_cast< XTypeProvider* > ( this ) ); 245*cdf0e10cSrcweir } 246*cdf0e10cSrcweir void SwXDocumentSettings::acquire () 247*cdf0e10cSrcweir throw () 248*cdf0e10cSrcweir { 249*cdf0e10cSrcweir OWeakObject::acquire(); 250*cdf0e10cSrcweir } 251*cdf0e10cSrcweir void SwXDocumentSettings::release () 252*cdf0e10cSrcweir throw () 253*cdf0e10cSrcweir { 254*cdf0e10cSrcweir OWeakObject::release(); 255*cdf0e10cSrcweir } 256*cdf0e10cSrcweir 257*cdf0e10cSrcweir uno::Sequence< uno::Type > SAL_CALL SwXDocumentSettings::getTypes( ) 258*cdf0e10cSrcweir throw (RuntimeException) 259*cdf0e10cSrcweir { 260*cdf0e10cSrcweir vos::OGuard aGuard(Application::GetSolarMutex()); 261*cdf0e10cSrcweir 262*cdf0e10cSrcweir uno::Sequence< uno::Type > aBaseTypes( 5 ); 263*cdf0e10cSrcweir uno::Type* pBaseTypes = aBaseTypes.getArray(); 264*cdf0e10cSrcweir 265*cdf0e10cSrcweir // from MasterPropertySet 266*cdf0e10cSrcweir pBaseTypes[0] = ::getCppuType((Reference< XPropertySet >*)0); 267*cdf0e10cSrcweir pBaseTypes[1] = ::getCppuType((Reference< XPropertyState >*)0); 268*cdf0e10cSrcweir pBaseTypes[2] = ::getCppuType((Reference< XMultiPropertySet >*)0); 269*cdf0e10cSrcweir // 270*cdf0e10cSrcweir pBaseTypes[3] = ::getCppuType((Reference< XServiceInfo >*)0); 271*cdf0e10cSrcweir pBaseTypes[4] = ::getCppuType((Reference< XTypeProvider >*)0); 272*cdf0e10cSrcweir 273*cdf0e10cSrcweir return aBaseTypes; 274*cdf0e10cSrcweir } 275*cdf0e10cSrcweir 276*cdf0e10cSrcweir uno::Sequence< sal_Int8 > SAL_CALL SwXDocumentSettings::getImplementationId( ) 277*cdf0e10cSrcweir throw (RuntimeException) 278*cdf0e10cSrcweir { 279*cdf0e10cSrcweir vos::OGuard aGuard(Application::GetSolarMutex()); 280*cdf0e10cSrcweir static Sequence< sal_Int8 > aId( 16 ); 281*cdf0e10cSrcweir static sal_Bool bInit = sal_False; 282*cdf0e10cSrcweir if(!bInit) 283*cdf0e10cSrcweir { 284*cdf0e10cSrcweir rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True ); 285*cdf0e10cSrcweir bInit = sal_True; 286*cdf0e10cSrcweir } 287*cdf0e10cSrcweir return aId; 288*cdf0e10cSrcweir } 289*cdf0e10cSrcweir 290*cdf0e10cSrcweir void SwXDocumentSettings::_preSetValues () 291*cdf0e10cSrcweir throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException ) 292*cdf0e10cSrcweir { 293*cdf0e10cSrcweir mpDocSh = mpModel->GetDocShell(); 294*cdf0e10cSrcweir mpDoc = mpDocSh->GetDoc(); 295*cdf0e10cSrcweir 296*cdf0e10cSrcweir if( NULL == mpDoc || NULL == mpDocSh ) 297*cdf0e10cSrcweir throw UnknownPropertyException(); 298*cdf0e10cSrcweir } 299*cdf0e10cSrcweir 300*cdf0e10cSrcweir 301*cdf0e10cSrcweir void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue ) 302*cdf0e10cSrcweir throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException ) 303*cdf0e10cSrcweir { 304*cdf0e10cSrcweir if (rInfo.mnAttributes & PropertyAttribute::READONLY) 305*cdf0e10cSrcweir throw PropertyVetoException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + C2U(rInfo.mpName), static_cast < cppu::OWeakObject * > ( 0 ) ); 306*cdf0e10cSrcweir 307*cdf0e10cSrcweir switch( rInfo.mnHandle ) 308*cdf0e10cSrcweir { 309*cdf0e10cSrcweir case HANDLE_FORBIDDEN_CHARS: 310*cdf0e10cSrcweir break; 311*cdf0e10cSrcweir case HANDLE_LINK_UPDATE_MODE: 312*cdf0e10cSrcweir { 313*cdf0e10cSrcweir sal_Int16 nMode = 0; 314*cdf0e10cSrcweir rValue >>= nMode; 315*cdf0e10cSrcweir switch (nMode) 316*cdf0e10cSrcweir { 317*cdf0e10cSrcweir case NEVER: 318*cdf0e10cSrcweir case MANUAL: 319*cdf0e10cSrcweir case AUTOMATIC: 320*cdf0e10cSrcweir case GLOBALSETTING: 321*cdf0e10cSrcweir break; 322*cdf0e10cSrcweir default: 323*cdf0e10cSrcweir throw IllegalArgumentException(); 324*cdf0e10cSrcweir } 325*cdf0e10cSrcweir mpDoc->setLinkUpdateMode(nMode); 326*cdf0e10cSrcweir } 327*cdf0e10cSrcweir break; 328*cdf0e10cSrcweir case HANDLE_FIELD_AUTO_UPDATE: 329*cdf0e10cSrcweir { 330*cdf0e10cSrcweir sal_Bool bUpdateField = *(sal_Bool*)rValue.getValue(); 331*cdf0e10cSrcweir SwFldUpdateFlags nFlag = mpDoc->getFieldUpdateFlags(true); 332*cdf0e10cSrcweir mpDoc->setFieldUpdateFlags( bUpdateField ? 333*cdf0e10cSrcweir nFlag == AUTOUPD_FIELD_AND_CHARTS ? 334*cdf0e10cSrcweir AUTOUPD_FIELD_AND_CHARTS : 335*cdf0e10cSrcweir AUTOUPD_FIELD_ONLY : 336*cdf0e10cSrcweir AUTOUPD_OFF ); 337*cdf0e10cSrcweir } 338*cdf0e10cSrcweir break; 339*cdf0e10cSrcweir case HANDLE_CHART_AUTO_UPDATE: 340*cdf0e10cSrcweir { 341*cdf0e10cSrcweir sal_Bool bUpdateChart = *(sal_Bool*)rValue.getValue(); 342*cdf0e10cSrcweir SwFldUpdateFlags nFlag = mpDoc->getFieldUpdateFlags(true); 343*cdf0e10cSrcweir mpDoc->setFieldUpdateFlags( (nFlag == AUTOUPD_FIELD_ONLY || nFlag == AUTOUPD_FIELD_AND_CHARTS ) ? 344*cdf0e10cSrcweir bUpdateChart ? 345*cdf0e10cSrcweir AUTOUPD_FIELD_AND_CHARTS : 346*cdf0e10cSrcweir AUTOUPD_FIELD_ONLY : 347*cdf0e10cSrcweir AUTOUPD_OFF ); 348*cdf0e10cSrcweir } 349*cdf0e10cSrcweir break; 350*cdf0e10cSrcweir case HANDLE_ADD_PARA_TABLE_SPACING: 351*cdf0e10cSrcweir { 352*cdf0e10cSrcweir sal_Bool bParaSpace = sal_False; 353*cdf0e10cSrcweir rValue >>= bParaSpace; 354*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::PARA_SPACE_MAX, bParaSpace ); 355*cdf0e10cSrcweir } 356*cdf0e10cSrcweir break; 357*cdf0e10cSrcweir case HANDLE_ADD_PARA_TABLE_SPACING_AT_START: 358*cdf0e10cSrcweir { 359*cdf0e10cSrcweir sal_Bool bParaSpacePage = sal_False; 360*cdf0e10cSrcweir rValue >>= bParaSpacePage; 361*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES, bParaSpacePage ); 362*cdf0e10cSrcweir } 363*cdf0e10cSrcweir break; 364*cdf0e10cSrcweir case HANDLE_ALIGN_TAB_STOP_POSITION: 365*cdf0e10cSrcweir { 366*cdf0e10cSrcweir sal_Bool bAlignTab = *(sal_Bool*)rValue.getValue(); 367*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::TAB_COMPAT, bAlignTab); 368*cdf0e10cSrcweir } 369*cdf0e10cSrcweir break; 370*cdf0e10cSrcweir case HANDLE_PRINTER_NAME: 371*cdf0e10cSrcweir { 372*cdf0e10cSrcweir //the printer must be created 373*cdf0e10cSrcweir OUString sPrinterName; 374*cdf0e10cSrcweir if( rValue >>= sPrinterName ) 375*cdf0e10cSrcweir { 376*cdf0e10cSrcweir if( !mpPrinter && sPrinterName.getLength() > 0 && mpDocSh->GetCreateMode() != SFX_CREATE_MODE_EMBEDDED ) 377*cdf0e10cSrcweir { 378*cdf0e10cSrcweir SfxPrinter* pPrinter = mpDoc->getPrinter( true ); 379*cdf0e10cSrcweir if ( OUString ( pPrinter->GetName()) != sPrinterName ) 380*cdf0e10cSrcweir { 381*cdf0e10cSrcweir SfxPrinter *pNewPrinter = new SfxPrinter ( pPrinter->GetOptions().Clone(), sPrinterName ); 382*cdf0e10cSrcweir if( pNewPrinter->IsKnown() ) 383*cdf0e10cSrcweir { 384*cdf0e10cSrcweir // set printer only once; in _postSetValues 385*cdf0e10cSrcweir mpPrinter = pNewPrinter; 386*cdf0e10cSrcweir } 387*cdf0e10cSrcweir else 388*cdf0e10cSrcweir { 389*cdf0e10cSrcweir delete pNewPrinter; 390*cdf0e10cSrcweir } 391*cdf0e10cSrcweir } 392*cdf0e10cSrcweir } 393*cdf0e10cSrcweir } 394*cdf0e10cSrcweir else 395*cdf0e10cSrcweir throw IllegalArgumentException(); 396*cdf0e10cSrcweir } 397*cdf0e10cSrcweir break; 398*cdf0e10cSrcweir case HANDLE_PRINTER_SETUP: 399*cdf0e10cSrcweir { 400*cdf0e10cSrcweir Sequence < sal_Int8 > aSequence; 401*cdf0e10cSrcweir if ( rValue >>= aSequence ) 402*cdf0e10cSrcweir { 403*cdf0e10cSrcweir sal_uInt32 nSize = aSequence.getLength(); 404*cdf0e10cSrcweir if( nSize > 0 ) 405*cdf0e10cSrcweir { 406*cdf0e10cSrcweir SvMemoryStream aStream (aSequence.getArray(), nSize, 407*cdf0e10cSrcweir STREAM_READ ); 408*cdf0e10cSrcweir aStream.Seek ( STREAM_SEEK_TO_BEGIN ); 409*cdf0e10cSrcweir static sal_uInt16 __READONLY_DATA nRange[] = 410*cdf0e10cSrcweir { 411*cdf0e10cSrcweir FN_PARAM_ADDPRINTER, FN_PARAM_ADDPRINTER, 412*cdf0e10cSrcweir SID_HTML_MODE, SID_HTML_MODE, 413*cdf0e10cSrcweir SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, 414*cdf0e10cSrcweir SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, 415*cdf0e10cSrcweir 0 416*cdf0e10cSrcweir }; 417*cdf0e10cSrcweir SfxItemSet *pItemSet = new SfxItemSet( mpDoc->GetAttrPool(), nRange ); 418*cdf0e10cSrcweir SfxPrinter *pPrinter = SfxPrinter::Create ( aStream, pItemSet ); 419*cdf0e10cSrcweir 420*cdf0e10cSrcweir // set printer only once; in _postSetValues 421*cdf0e10cSrcweir delete mpPrinter; 422*cdf0e10cSrcweir mpPrinter = pPrinter; 423*cdf0e10cSrcweir } 424*cdf0e10cSrcweir } 425*cdf0e10cSrcweir else 426*cdf0e10cSrcweir throw IllegalArgumentException(); 427*cdf0e10cSrcweir } 428*cdf0e10cSrcweir break; 429*cdf0e10cSrcweir case HANDLE_IS_KERN_ASIAN_PUNCTUATION: 430*cdf0e10cSrcweir { 431*cdf0e10cSrcweir sal_Bool bIsKern = *(sal_Bool*)(rValue).getValue(); 432*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION, bIsKern); 433*cdf0e10cSrcweir SwEditShell* pEditSh = mpDoc->GetEditShell(); 434*cdf0e10cSrcweir if(pEditSh) 435*cdf0e10cSrcweir pEditSh->ChgHyphenation(); 436*cdf0e10cSrcweir } 437*cdf0e10cSrcweir break; 438*cdf0e10cSrcweir case HANDLE_CHARACTER_COMPRESSION_TYPE: 439*cdf0e10cSrcweir { 440*cdf0e10cSrcweir sal_Int16 nMode = 0; 441*cdf0e10cSrcweir rValue >>= nMode; 442*cdf0e10cSrcweir switch (nMode) 443*cdf0e10cSrcweir { 444*cdf0e10cSrcweir case CHARCOMPRESS_NONE: 445*cdf0e10cSrcweir case CHARCOMPRESS_PUNCTUATION: 446*cdf0e10cSrcweir case CHARCOMPRESS_PUNCTUATION_KANA: 447*cdf0e10cSrcweir break; 448*cdf0e10cSrcweir default: 449*cdf0e10cSrcweir throw IllegalArgumentException(); 450*cdf0e10cSrcweir } 451*cdf0e10cSrcweir mpDoc->setCharacterCompressionType(static_cast < SwCharCompressType > (nMode) ); 452*cdf0e10cSrcweir } 453*cdf0e10cSrcweir break; 454*cdf0e10cSrcweir case HANDLE_APPLY_USER_DATA: 455*cdf0e10cSrcweir { 456*cdf0e10cSrcweir mpDocSh->SetUseUserData( *(sal_Bool*)rValue.getValue() ); 457*cdf0e10cSrcweir } 458*cdf0e10cSrcweir break; 459*cdf0e10cSrcweir case HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS: 460*cdf0e10cSrcweir { 461*cdf0e10cSrcweir sal_Bool bSaveGlobal = *(sal_Bool*)rValue.getValue(); 462*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS, bSaveGlobal ); 463*cdf0e10cSrcweir } 464*cdf0e10cSrcweir break; 465*cdf0e10cSrcweir case HANDLE_CURRENT_DATABASE_DATA_SOURCE: 466*cdf0e10cSrcweir { 467*cdf0e10cSrcweir SwDBData aData = mpDoc->GetDBData(); 468*cdf0e10cSrcweir if ( rValue >>= aData.sDataSource ) 469*cdf0e10cSrcweir mpDoc->ChgDBData( aData ); 470*cdf0e10cSrcweir } 471*cdf0e10cSrcweir break; 472*cdf0e10cSrcweir case HANDLE_CURRENT_DATABASE_COMMAND: 473*cdf0e10cSrcweir { 474*cdf0e10cSrcweir SwDBData aData = mpDoc->GetDBData(); 475*cdf0e10cSrcweir if ( rValue >>= aData.sCommand ) 476*cdf0e10cSrcweir mpDoc->ChgDBData( aData ); 477*cdf0e10cSrcweir } 478*cdf0e10cSrcweir break; 479*cdf0e10cSrcweir case HANDLE_CURRENT_DATABASE_COMMAND_TYPE: 480*cdf0e10cSrcweir { 481*cdf0e10cSrcweir SwDBData aData = mpDoc->GetDBData(); 482*cdf0e10cSrcweir if ( rValue >>= aData.nCommandType ) 483*cdf0e10cSrcweir mpDoc->ChgDBData( aData ); 484*cdf0e10cSrcweir } 485*cdf0e10cSrcweir break; 486*cdf0e10cSrcweir case HANDLE_SAVE_VERSION_ON_CLOSE: 487*cdf0e10cSrcweir { 488*cdf0e10cSrcweir mpDocSh->SetSaveVersionOnClose( *(sal_Bool*)rValue.getValue() ); 489*cdf0e10cSrcweir } 490*cdf0e10cSrcweir break; 491*cdf0e10cSrcweir case HANDLE_UPDATE_FROM_TEMPLATE: 492*cdf0e10cSrcweir { 493*cdf0e10cSrcweir mpDocSh->SetQueryLoadTemplate( *(sal_Bool*)rValue.getValue() ); 494*cdf0e10cSrcweir } 495*cdf0e10cSrcweir break; 496*cdf0e10cSrcweir case HANDLE_PRINTER_INDEPENDENT_LAYOUT: 497*cdf0e10cSrcweir { 498*cdf0e10cSrcweir sal_Int16 nTmp = 0; 499*cdf0e10cSrcweir rValue >>= nTmp; 500*cdf0e10cSrcweir 501*cdf0e10cSrcweir bool bUseVirDev = true; 502*cdf0e10cSrcweir bool bHiResVirDev = true; 503*cdf0e10cSrcweir if( nTmp == document::PrinterIndependentLayout::DISABLED ) 504*cdf0e10cSrcweir bUseVirDev = false; 505*cdf0e10cSrcweir else if ( nTmp == document::PrinterIndependentLayout::LOW_RESOLUTION ) 506*cdf0e10cSrcweir bHiResVirDev = false; 507*cdf0e10cSrcweir else if ( nTmp != document::PrinterIndependentLayout::HIGH_RESOLUTION ) 508*cdf0e10cSrcweir throw IllegalArgumentException(); 509*cdf0e10cSrcweir 510*cdf0e10cSrcweir mpDoc->setReferenceDeviceType( bUseVirDev, bHiResVirDev ); 511*cdf0e10cSrcweir } 512*cdf0e10cSrcweir break; 513*cdf0e10cSrcweir case HANDLE_IS_LABEL_DOC : 514*cdf0e10cSrcweir { 515*cdf0e10cSrcweir sal_Bool bSet = sal_False; 516*cdf0e10cSrcweir if(!(rValue >>= bSet)) 517*cdf0e10cSrcweir throw IllegalArgumentException(); 518*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::LABEL_DOCUMENT, bSet); 519*cdf0e10cSrcweir } 520*cdf0e10cSrcweir break; 521*cdf0e10cSrcweir case HANDLE_IS_ADD_FLY_OFFSET: 522*cdf0e10cSrcweir { 523*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 524*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::ADD_FLY_OFFSETS, bTmp); 525*cdf0e10cSrcweir } 526*cdf0e10cSrcweir break; 527*cdf0e10cSrcweir case HANDLE_IS_ADD_EXTERNAL_LEADING: 528*cdf0e10cSrcweir { 529*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 530*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::ADD_EXT_LEADING, bTmp); 531*cdf0e10cSrcweir } 532*cdf0e10cSrcweir break; 533*cdf0e10cSrcweir case HANDLE_OLD_NUMBERING: // #111955# 534*cdf0e10cSrcweir { 535*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 536*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::OLD_NUMBERING, bTmp); 537*cdf0e10cSrcweir } 538*cdf0e10cSrcweir case HANDLE_OUTLINELEVEL_YIELDS_NUMBERING: 539*cdf0e10cSrcweir { 540*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 541*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::OUTLINE_LEVEL_YIELDS_OUTLINE_RULE, bTmp); 542*cdf0e10cSrcweir } 543*cdf0e10cSrcweir break; 544*cdf0e10cSrcweir case HANDLE_ALLOW_PRINTJOB_CANCEL: 545*cdf0e10cSrcweir { 546*cdf0e10cSrcweir sal_Bool bState = sal_False; 547*cdf0e10cSrcweir if (!(rValue >>= bState)) 548*cdf0e10cSrcweir throw IllegalArgumentException(); 549*cdf0e10cSrcweir mpDocSh->Stamp_SetPrintCancelState(bState); 550*cdf0e10cSrcweir } 551*cdf0e10cSrcweir break; 552*cdf0e10cSrcweir case HANDLE_USE_FORMER_LINE_SPACING: 553*cdf0e10cSrcweir { 554*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 555*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::OLD_LINE_SPACING, bTmp); 556*cdf0e10cSrcweir } 557*cdf0e10cSrcweir break; 558*cdf0e10cSrcweir case HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS: 559*cdf0e10cSrcweir { 560*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 561*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS, bTmp); 562*cdf0e10cSrcweir } 563*cdf0e10cSrcweir break; 564*cdf0e10cSrcweir case HANDLE_USE_FORMER_OBJECT_POSITIONING: 565*cdf0e10cSrcweir { 566*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 567*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::USE_FORMER_OBJECT_POS, bTmp); 568*cdf0e10cSrcweir } 569*cdf0e10cSrcweir break; 570*cdf0e10cSrcweir case HANDLE_USE_FORMER_TEXT_WRAPPING: 571*cdf0e10cSrcweir { 572*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 573*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING, bTmp); 574*cdf0e10cSrcweir } 575*cdf0e10cSrcweir break; 576*cdf0e10cSrcweir case HANDLE_CHANGES_PASSWORD: 577*cdf0e10cSrcweir { 578*cdf0e10cSrcweir Sequence <sal_Int8> aNew; 579*cdf0e10cSrcweir if(rValue >>= aNew) 580*cdf0e10cSrcweir { 581*cdf0e10cSrcweir mpDoc->SetRedlinePassword(aNew); 582*cdf0e10cSrcweir if(aNew.getLength()) 583*cdf0e10cSrcweir { 584*cdf0e10cSrcweir sal_uInt16 eMode = mpDoc->GetRedlineMode(); 585*cdf0e10cSrcweir eMode = eMode|nsRedlineMode_t::REDLINE_ON; 586*cdf0e10cSrcweir mpDoc->SetRedlineMode((RedlineMode_t)( eMode )); 587*cdf0e10cSrcweir } 588*cdf0e10cSrcweir } 589*cdf0e10cSrcweir } 590*cdf0e10cSrcweir break; 591*cdf0e10cSrcweir case HANDLE_CONSIDER_WRAP_ON_OBJPOS: 592*cdf0e10cSrcweir { 593*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 594*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION, bTmp ); 595*cdf0e10cSrcweir } 596*cdf0e10cSrcweir break; 597*cdf0e10cSrcweir case HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING: 598*cdf0e10cSrcweir { 599*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 600*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING, bTmp); 601*cdf0e10cSrcweir } 602*cdf0e10cSrcweir break; 603*cdf0e10cSrcweir case HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK: 604*cdf0e10cSrcweir { 605*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 606*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK, bTmp); 607*cdf0e10cSrcweir } 608*cdf0e10cSrcweir break; 609*cdf0e10cSrcweir case HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT: 610*cdf0e10cSrcweir { 611*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 612*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT, bTmp); 613*cdf0e10cSrcweir } 614*cdf0e10cSrcweir break; 615*cdf0e10cSrcweir case HANDLE_TABLE_ROW_KEEP: 616*cdf0e10cSrcweir { 617*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 618*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::TABLE_ROW_KEEP, bTmp); 619*cdf0e10cSrcweir } 620*cdf0e10cSrcweir break; 621*cdf0e10cSrcweir case HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION: 622*cdf0e10cSrcweir { 623*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 624*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION, bTmp); 625*cdf0e10cSrcweir } 626*cdf0e10cSrcweir break; 627*cdf0e10cSrcweir case HANDLE_LOAD_READONLY: 628*cdf0e10cSrcweir { 629*cdf0e10cSrcweir mpDocSh->SetLoadReadonly( *(sal_Bool*)rValue.getValue() ); 630*cdf0e10cSrcweir } 631*cdf0e10cSrcweir break; 632*cdf0e10cSrcweir case HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE: 633*cdf0e10cSrcweir { 634*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 635*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, bTmp); 636*cdf0e10cSrcweir } 637*cdf0e10cSrcweir break; 638*cdf0e10cSrcweir case HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES: 639*cdf0e10cSrcweir { 640*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 641*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME, bTmp); 642*cdf0e10cSrcweir } 643*cdf0e10cSrcweir break; 644*cdf0e10cSrcweir case HANDLE_UNIX_FORCE_ZERO_EXT_LEADING: 645*cdf0e10cSrcweir { 646*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 647*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::UNIX_FORCE_ZERO_EXT_LEADING, bTmp); 648*cdf0e10cSrcweir } 649*cdf0e10cSrcweir break; 650*cdf0e10cSrcweir case HANDLE_USE_OLD_PRINTER_METRICS: 651*cdf0e10cSrcweir { 652*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 653*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::USE_OLD_PRINTER_METRICS, bTmp); 654*cdf0e10cSrcweir } 655*cdf0e10cSrcweir break; 656*cdf0e10cSrcweir case HANDLE_TABS_RELATIVE_TO_INDENT: 657*cdf0e10cSrcweir { 658*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 659*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT, bTmp); 660*cdf0e10cSrcweir } 661*cdf0e10cSrcweir break; 662*cdf0e10cSrcweir case HANDLE_PROTECT_FORM: 663*cdf0e10cSrcweir { 664*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 665*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::PROTECT_FORM, bTmp); 666*cdf0e10cSrcweir } 667*cdf0e10cSrcweir break; 668*cdf0e10cSrcweir // --> OD 2008-06-05 #i89181# 669*cdf0e10cSrcweir case HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST: 670*cdf0e10cSrcweir { 671*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 672*cdf0e10cSrcweir mpDoc->set(IDocumentSettingAccess::TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST, bTmp); 673*cdf0e10cSrcweir } 674*cdf0e10cSrcweir break; 675*cdf0e10cSrcweir // <-- 676*cdf0e10cSrcweir case HANDLE_MODIFYPASSWORDINFO: 677*cdf0e10cSrcweir { 678*cdf0e10cSrcweir uno::Sequence< beans::PropertyValue > aInfo; 679*cdf0e10cSrcweir if ( !( rValue >>= aInfo ) ) 680*cdf0e10cSrcweir throw lang::IllegalArgumentException( 681*cdf0e10cSrcweir ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Value of type Sequence<PropertyValue> expected!" ) ), 682*cdf0e10cSrcweir uno::Reference< uno::XInterface >(), 683*cdf0e10cSrcweir 2 ); 684*cdf0e10cSrcweir 685*cdf0e10cSrcweir if ( !mpDocSh->SetModifyPasswordInfo( aInfo ) ) 686*cdf0e10cSrcweir throw beans::PropertyVetoException( 687*cdf0e10cSrcweir ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "The hash is not allowed to be changed now!" ) ), 688*cdf0e10cSrcweir uno::Reference< uno::XInterface >() ); 689*cdf0e10cSrcweir } 690*cdf0e10cSrcweir break; 691*cdf0e10cSrcweir case HANDLE_MATH_BASELINE_ALIGNMENT: 692*cdf0e10cSrcweir { 693*cdf0e10cSrcweir sal_Bool bTmp = *(sal_Bool*)rValue.getValue(); 694*cdf0e10cSrcweir mpDoc->set( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT, bTmp ); 695*cdf0e10cSrcweir } 696*cdf0e10cSrcweir break; 697*cdf0e10cSrcweir default: 698*cdf0e10cSrcweir throw UnknownPropertyException(); 699*cdf0e10cSrcweir } 700*cdf0e10cSrcweir } 701*cdf0e10cSrcweir 702*cdf0e10cSrcweir void SwXDocumentSettings::_postSetValues () 703*cdf0e10cSrcweir throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException ) 704*cdf0e10cSrcweir { 705*cdf0e10cSrcweir // set printer only once, namely here! 706*cdf0e10cSrcweir if( mpPrinter != NULL ) 707*cdf0e10cSrcweir { 708*cdf0e10cSrcweir // #i86352# the printer is also used as container for options by sfx 709*cdf0e10cSrcweir // when setting a printer it should have decent default options 710*cdf0e10cSrcweir SfxItemSet aOptions( mpPrinter->GetOptions() ); 711*cdf0e10cSrcweir SwPrintData aPrtData( mpDoc->getPrintData() ); 712*cdf0e10cSrcweir SwAddPrinterItem aAddPrinterItem (FN_PARAM_ADDPRINTER, aPrtData); 713*cdf0e10cSrcweir aOptions.Put(aAddPrinterItem); 714*cdf0e10cSrcweir mpPrinter->SetOptions( aOptions ); 715*cdf0e10cSrcweir 716*cdf0e10cSrcweir mpDoc->setPrinter( mpPrinter, true, true ); 717*cdf0e10cSrcweir } 718*cdf0e10cSrcweir 719*cdf0e10cSrcweir mpPrinter = 0; 720*cdf0e10cSrcweir mpDocSh = 0; 721*cdf0e10cSrcweir mpDoc = 0; 722*cdf0e10cSrcweir } 723*cdf0e10cSrcweir 724*cdf0e10cSrcweir void SwXDocumentSettings::_preGetValues () 725*cdf0e10cSrcweir throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException ) 726*cdf0e10cSrcweir { 727*cdf0e10cSrcweir mpDocSh = mpModel->GetDocShell(); 728*cdf0e10cSrcweir mpDoc = mpDocSh->GetDoc(); 729*cdf0e10cSrcweir if( NULL == mpDoc || NULL == mpDocSh ) 730*cdf0e10cSrcweir throw UnknownPropertyException(); 731*cdf0e10cSrcweir } 732*cdf0e10cSrcweir 733*cdf0e10cSrcweir void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue ) 734*cdf0e10cSrcweir throw(beans::UnknownPropertyException, lang::WrappedTargetException ) 735*cdf0e10cSrcweir { 736*cdf0e10cSrcweir switch( rInfo.mnHandle ) 737*cdf0e10cSrcweir { 738*cdf0e10cSrcweir case HANDLE_FORBIDDEN_CHARS: 739*cdf0e10cSrcweir { 740*cdf0e10cSrcweir Reference<XForbiddenCharacters> xRet(*mpModel->GetPropertyHelper(), UNO_QUERY); 741*cdf0e10cSrcweir rValue <<= xRet; 742*cdf0e10cSrcweir } 743*cdf0e10cSrcweir break; 744*cdf0e10cSrcweir case HANDLE_LINK_UPDATE_MODE: 745*cdf0e10cSrcweir { 746*cdf0e10cSrcweir rValue <<= static_cast < sal_Int16 > ( mpDoc->getLinkUpdateMode(true) ); 747*cdf0e10cSrcweir } 748*cdf0e10cSrcweir break; 749*cdf0e10cSrcweir case HANDLE_FIELD_AUTO_UPDATE: 750*cdf0e10cSrcweir { 751*cdf0e10cSrcweir SwFldUpdateFlags nFlags = mpDoc->getFieldUpdateFlags(true); 752*cdf0e10cSrcweir sal_Bool bFieldUpd = (nFlags == AUTOUPD_FIELD_ONLY || nFlags == AUTOUPD_FIELD_AND_CHARTS ); 753*cdf0e10cSrcweir rValue.setValue(&bFieldUpd, ::getBooleanCppuType()); 754*cdf0e10cSrcweir } 755*cdf0e10cSrcweir break; 756*cdf0e10cSrcweir case HANDLE_CHART_AUTO_UPDATE: 757*cdf0e10cSrcweir { 758*cdf0e10cSrcweir SwFldUpdateFlags nFlags = mpDoc->getFieldUpdateFlags(true); 759*cdf0e10cSrcweir sal_Bool bChartUpd = nFlags == AUTOUPD_FIELD_AND_CHARTS; 760*cdf0e10cSrcweir rValue.setValue(&bChartUpd, ::getBooleanCppuType()); 761*cdf0e10cSrcweir } 762*cdf0e10cSrcweir break; 763*cdf0e10cSrcweir case HANDLE_ADD_PARA_TABLE_SPACING: 764*cdf0e10cSrcweir { 765*cdf0e10cSrcweir sal_Bool bParaSpace = mpDoc->get(IDocumentSettingAccess::PARA_SPACE_MAX); 766*cdf0e10cSrcweir rValue.setValue(&bParaSpace, ::getBooleanCppuType()); 767*cdf0e10cSrcweir } 768*cdf0e10cSrcweir break; 769*cdf0e10cSrcweir case HANDLE_ADD_PARA_TABLE_SPACING_AT_START: 770*cdf0e10cSrcweir { 771*cdf0e10cSrcweir sal_Bool bParaSpace = mpDoc->get(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES); 772*cdf0e10cSrcweir rValue.setValue(&bParaSpace, ::getBooleanCppuType()); 773*cdf0e10cSrcweir } 774*cdf0e10cSrcweir break; 775*cdf0e10cSrcweir case HANDLE_ALIGN_TAB_STOP_POSITION: 776*cdf0e10cSrcweir { 777*cdf0e10cSrcweir sal_Bool bAlignTab = mpDoc->get(IDocumentSettingAccess::TAB_COMPAT); 778*cdf0e10cSrcweir rValue.setValue(&bAlignTab, ::getBooleanCppuType()); 779*cdf0e10cSrcweir } 780*cdf0e10cSrcweir break; 781*cdf0e10cSrcweir case HANDLE_PRINTER_NAME: 782*cdf0e10cSrcweir { 783*cdf0e10cSrcweir SfxPrinter *pPrinter = mpDoc->getPrinter( sal_False ); 784*cdf0e10cSrcweir rValue <<= pPrinter ? OUString ( pPrinter->GetName()) : OUString(); 785*cdf0e10cSrcweir } 786*cdf0e10cSrcweir break; 787*cdf0e10cSrcweir case HANDLE_PRINTER_SETUP: 788*cdf0e10cSrcweir { 789*cdf0e10cSrcweir SfxPrinter *pPrinter = mpDocSh->GetDoc()->getPrinter( sal_False ); 790*cdf0e10cSrcweir if (pPrinter) 791*cdf0e10cSrcweir { 792*cdf0e10cSrcweir SvMemoryStream aStream; 793*cdf0e10cSrcweir pPrinter->Store( aStream ); 794*cdf0e10cSrcweir aStream.Seek ( STREAM_SEEK_TO_END ); 795*cdf0e10cSrcweir sal_uInt32 nSize = aStream.Tell(); 796*cdf0e10cSrcweir aStream.Seek ( STREAM_SEEK_TO_BEGIN ); 797*cdf0e10cSrcweir Sequence < sal_Int8 > aSequence( nSize ); 798*cdf0e10cSrcweir aStream.Read ( aSequence.getArray(), nSize ); 799*cdf0e10cSrcweir rValue <<= aSequence; 800*cdf0e10cSrcweir } 801*cdf0e10cSrcweir else 802*cdf0e10cSrcweir { 803*cdf0e10cSrcweir Sequence < sal_Int8 > aSequence ( 0 ); 804*cdf0e10cSrcweir rValue <<= aSequence; 805*cdf0e10cSrcweir } 806*cdf0e10cSrcweir } 807*cdf0e10cSrcweir break; 808*cdf0e10cSrcweir case HANDLE_IS_KERN_ASIAN_PUNCTUATION: 809*cdf0e10cSrcweir { 810*cdf0e10cSrcweir //sal_Bool bParaSpace = mpDoc->IsKernAsianPunctuation(); 811*cdf0e10cSrcweir sal_Bool bParaSpace = mpDoc->get(IDocumentSettingAccess::KERN_ASIAN_PUNCTUATION); 812*cdf0e10cSrcweir rValue.setValue(&bParaSpace, ::getBooleanCppuType()); 813*cdf0e10cSrcweir } 814*cdf0e10cSrcweir break; 815*cdf0e10cSrcweir case HANDLE_APPLY_USER_DATA: 816*cdf0e10cSrcweir { 817*cdf0e10cSrcweir rValue <<= mpDocSh->IsUseUserData(); 818*cdf0e10cSrcweir } 819*cdf0e10cSrcweir break; 820*cdf0e10cSrcweir case HANDLE_CHARACTER_COMPRESSION_TYPE: 821*cdf0e10cSrcweir { 822*cdf0e10cSrcweir rValue <<= static_cast < sal_Int16 > (mpDoc->getCharacterCompressionType()); 823*cdf0e10cSrcweir } 824*cdf0e10cSrcweir break; 825*cdf0e10cSrcweir case HANDLE_SAVE_GLOBAL_DOCUMENT_LINKS: 826*cdf0e10cSrcweir { 827*cdf0e10cSrcweir sal_Bool bSaveGlobal = mpDoc->get(IDocumentSettingAccess::GLOBAL_DOCUMENT_SAVE_LINKS); 828*cdf0e10cSrcweir rValue.setValue(&bSaveGlobal, ::getBooleanCppuType()); 829*cdf0e10cSrcweir } 830*cdf0e10cSrcweir break; 831*cdf0e10cSrcweir case HANDLE_CURRENT_DATABASE_DATA_SOURCE: 832*cdf0e10cSrcweir { 833*cdf0e10cSrcweir const SwDBData& rData = mpDoc->GetDBDesc(); 834*cdf0e10cSrcweir rValue <<= rData.sDataSource; 835*cdf0e10cSrcweir } 836*cdf0e10cSrcweir break; 837*cdf0e10cSrcweir case HANDLE_CURRENT_DATABASE_COMMAND: 838*cdf0e10cSrcweir { 839*cdf0e10cSrcweir const SwDBData& rData = mpDoc->GetDBDesc(); 840*cdf0e10cSrcweir rValue <<= rData.sCommand; 841*cdf0e10cSrcweir } 842*cdf0e10cSrcweir break; 843*cdf0e10cSrcweir case HANDLE_CURRENT_DATABASE_COMMAND_TYPE: 844*cdf0e10cSrcweir { 845*cdf0e10cSrcweir const SwDBData& rData = mpDoc->GetDBDesc(); 846*cdf0e10cSrcweir rValue <<= rData.nCommandType; 847*cdf0e10cSrcweir } 848*cdf0e10cSrcweir break; 849*cdf0e10cSrcweir case HANDLE_SAVE_VERSION_ON_CLOSE: 850*cdf0e10cSrcweir { 851*cdf0e10cSrcweir rValue <<= mpDocSh->IsSaveVersionOnClose(); 852*cdf0e10cSrcweir } 853*cdf0e10cSrcweir break; 854*cdf0e10cSrcweir case HANDLE_UPDATE_FROM_TEMPLATE: 855*cdf0e10cSrcweir { 856*cdf0e10cSrcweir rValue <<= mpDocSh->IsQueryLoadTemplate(); 857*cdf0e10cSrcweir } 858*cdf0e10cSrcweir break; 859*cdf0e10cSrcweir case HANDLE_PRINTER_INDEPENDENT_LAYOUT: 860*cdf0e10cSrcweir { 861*cdf0e10cSrcweir // returns short (see css.document.PrinterIndependentLayout) 862*cdf0e10cSrcweir sal_Int16 nVirDevType = mpDoc->get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) ? 863*cdf0e10cSrcweir ( mpDoc->get(IDocumentSettingAccess::USE_HIRES_VIRTUAL_DEVICE) ? 864*cdf0e10cSrcweir document::PrinterIndependentLayout::HIGH_RESOLUTION : 865*cdf0e10cSrcweir document::PrinterIndependentLayout::LOW_RESOLUTION ) : 866*cdf0e10cSrcweir document::PrinterIndependentLayout::DISABLED; 867*cdf0e10cSrcweir rValue <<= nVirDevType; 868*cdf0e10cSrcweir } 869*cdf0e10cSrcweir break; 870*cdf0e10cSrcweir case HANDLE_IS_LABEL_DOC: 871*cdf0e10cSrcweir { 872*cdf0e10cSrcweir sal_Bool bLabel = mpDoc->get(IDocumentSettingAccess::LABEL_DOCUMENT); 873*cdf0e10cSrcweir rValue <<= bLabel; 874*cdf0e10cSrcweir } 875*cdf0e10cSrcweir break; 876*cdf0e10cSrcweir case HANDLE_IS_ADD_FLY_OFFSET: 877*cdf0e10cSrcweir { 878*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::ADD_FLY_OFFSETS); 879*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 880*cdf0e10cSrcweir } 881*cdf0e10cSrcweir break; 882*cdf0e10cSrcweir case HANDLE_IS_ADD_EXTERNAL_LEADING: 883*cdf0e10cSrcweir { 884*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::ADD_EXT_LEADING); 885*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 886*cdf0e10cSrcweir } 887*cdf0e10cSrcweir break; 888*cdf0e10cSrcweir case HANDLE_OLD_NUMBERING: // #111955# 889*cdf0e10cSrcweir { 890*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::OLD_NUMBERING); 891*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 892*cdf0e10cSrcweir } 893*cdf0e10cSrcweir break; 894*cdf0e10cSrcweir case HANDLE_OUTLINELEVEL_YIELDS_NUMBERING: // #111955# 895*cdf0e10cSrcweir { 896*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::OUTLINE_LEVEL_YIELDS_OUTLINE_RULE); 897*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 898*cdf0e10cSrcweir } 899*cdf0e10cSrcweir break; 900*cdf0e10cSrcweir case HANDLE_ALLOW_PRINTJOB_CANCEL: 901*cdf0e10cSrcweir { 902*cdf0e10cSrcweir sal_Bool bPrintCancelState = mpDocSh->Stamp_GetPrintCancelState(); 903*cdf0e10cSrcweir rValue.setValue(&bPrintCancelState, ::getBooleanCppuType()); 904*cdf0e10cSrcweir } 905*cdf0e10cSrcweir break; 906*cdf0e10cSrcweir case HANDLE_USE_FORMER_LINE_SPACING: 907*cdf0e10cSrcweir { 908*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::OLD_LINE_SPACING); 909*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 910*cdf0e10cSrcweir } 911*cdf0e10cSrcweir break; 912*cdf0e10cSrcweir case HANDLE_ADD_PARA_SPACING_TO_TABLE_CELLS: 913*cdf0e10cSrcweir { 914*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS); 915*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 916*cdf0e10cSrcweir } 917*cdf0e10cSrcweir break; 918*cdf0e10cSrcweir case HANDLE_USE_FORMER_OBJECT_POSITIONING: 919*cdf0e10cSrcweir { 920*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::USE_FORMER_OBJECT_POS); 921*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 922*cdf0e10cSrcweir } 923*cdf0e10cSrcweir break; 924*cdf0e10cSrcweir case HANDLE_USE_FORMER_TEXT_WRAPPING: 925*cdf0e10cSrcweir { 926*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING); 927*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 928*cdf0e10cSrcweir } 929*cdf0e10cSrcweir break; 930*cdf0e10cSrcweir case HANDLE_CHANGES_PASSWORD: 931*cdf0e10cSrcweir { 932*cdf0e10cSrcweir rValue <<= mpDoc->GetRedlinePassword(); 933*cdf0e10cSrcweir } 934*cdf0e10cSrcweir break; 935*cdf0e10cSrcweir case HANDLE_CONSIDER_WRAP_ON_OBJPOS: 936*cdf0e10cSrcweir { 937*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION); 938*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 939*cdf0e10cSrcweir } 940*cdf0e10cSrcweir break; 941*cdf0e10cSrcweir case HANDLE_IGNORE_FIRST_LINE_INDENT_IN_NUMBERING: 942*cdf0e10cSrcweir { 943*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::IGNORE_FIRST_LINE_INDENT_IN_NUMBERING); 944*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 945*cdf0e10cSrcweir } 946*cdf0e10cSrcweir break; 947*cdf0e10cSrcweir case HANDLE_DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK: 948*cdf0e10cSrcweir { 949*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK); 950*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 951*cdf0e10cSrcweir } 952*cdf0e10cSrcweir break; 953*cdf0e10cSrcweir case HANDLE_DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT: 954*cdf0e10cSrcweir { 955*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT); 956*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 957*cdf0e10cSrcweir } 958*cdf0e10cSrcweir break; 959*cdf0e10cSrcweir case HANDLE_TABLE_ROW_KEEP : 960*cdf0e10cSrcweir { 961*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::TABLE_ROW_KEEP); 962*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 963*cdf0e10cSrcweir } 964*cdf0e10cSrcweir break; 965*cdf0e10cSrcweir case HANDLE_IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION: 966*cdf0e10cSrcweir { 967*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION); 968*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 969*cdf0e10cSrcweir } 970*cdf0e10cSrcweir break; 971*cdf0e10cSrcweir case HANDLE_LOAD_READONLY: 972*cdf0e10cSrcweir { 973*cdf0e10cSrcweir rValue <<= mpDocSh->IsLoadReadonly(); 974*cdf0e10cSrcweir } 975*cdf0e10cSrcweir break; 976*cdf0e10cSrcweir case HANDLE_DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE: 977*cdf0e10cSrcweir { 978*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE); 979*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 980*cdf0e10cSrcweir } 981*cdf0e10cSrcweir break; 982*cdf0e10cSrcweir case HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES: 983*cdf0e10cSrcweir { 984*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME); 985*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 986*cdf0e10cSrcweir } 987*cdf0e10cSrcweir break; 988*cdf0e10cSrcweir case HANDLE_UNIX_FORCE_ZERO_EXT_LEADING: 989*cdf0e10cSrcweir { 990*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::UNIX_FORCE_ZERO_EXT_LEADING); 991*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 992*cdf0e10cSrcweir } 993*cdf0e10cSrcweir break; 994*cdf0e10cSrcweir case HANDLE_USE_OLD_PRINTER_METRICS: 995*cdf0e10cSrcweir { 996*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::USE_OLD_PRINTER_METRICS); 997*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 998*cdf0e10cSrcweir } 999*cdf0e10cSrcweir break; 1000*cdf0e10cSrcweir case HANDLE_TABS_RELATIVE_TO_INDENT: 1001*cdf0e10cSrcweir { 1002*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT); 1003*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 1004*cdf0e10cSrcweir } 1005*cdf0e10cSrcweir break; 1006*cdf0e10cSrcweir case HANDLE_PROTECT_FORM: 1007*cdf0e10cSrcweir { 1008*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::PROTECT_FORM); 1009*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 1010*cdf0e10cSrcweir } 1011*cdf0e10cSrcweir break; 1012*cdf0e10cSrcweir // --> OD 2008-06-05 #i89181# 1013*cdf0e10cSrcweir case HANDLE_TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST: 1014*cdf0e10cSrcweir { 1015*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get(IDocumentSettingAccess::TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST); 1016*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 1017*cdf0e10cSrcweir } 1018*cdf0e10cSrcweir break; 1019*cdf0e10cSrcweir // <-- 1020*cdf0e10cSrcweir case HANDLE_MODIFYPASSWORDINFO: 1021*cdf0e10cSrcweir { 1022*cdf0e10cSrcweir rValue <<= mpDocSh->GetModifyPasswordInfo(); 1023*cdf0e10cSrcweir } 1024*cdf0e10cSrcweir break; 1025*cdf0e10cSrcweir case HANDLE_MATH_BASELINE_ALIGNMENT: 1026*cdf0e10cSrcweir { 1027*cdf0e10cSrcweir sal_Bool bTmp = mpDoc->get( IDocumentSettingAccess::MATH_BASELINE_ALIGNMENT ); 1028*cdf0e10cSrcweir rValue.setValue( &bTmp, ::getBooleanCppuType() ); 1029*cdf0e10cSrcweir } 1030*cdf0e10cSrcweir break; 1031*cdf0e10cSrcweir 1032*cdf0e10cSrcweir default: 1033*cdf0e10cSrcweir throw UnknownPropertyException(); 1034*cdf0e10cSrcweir } 1035*cdf0e10cSrcweir } 1036*cdf0e10cSrcweir 1037*cdf0e10cSrcweir void SwXDocumentSettings::_postGetValues () 1038*cdf0e10cSrcweir throw(beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException ) 1039*cdf0e10cSrcweir { 1040*cdf0e10cSrcweir mpDocSh = 0; 1041*cdf0e10cSrcweir mpDoc = 0; 1042*cdf0e10cSrcweir } 1043*cdf0e10cSrcweir 1044*cdf0e10cSrcweir // XServiceInfo 1045*cdf0e10cSrcweir OUString SAL_CALL SwXDocumentSettings::getImplementationName( ) 1046*cdf0e10cSrcweir throw(RuntimeException) 1047*cdf0e10cSrcweir { 1048*cdf0e10cSrcweir return OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.Writer.DocumentSettings")); 1049*cdf0e10cSrcweir } 1050*cdf0e10cSrcweir 1051*cdf0e10cSrcweir sal_Bool SAL_CALL SwXDocumentSettings::supportsService( const OUString& ServiceName ) 1052*cdf0e10cSrcweir throw(RuntimeException) 1053*cdf0e10cSrcweir { 1054*cdf0e10cSrcweir const Sequence< OUString > aSeq( getSupportedServiceNames() ); 1055*cdf0e10cSrcweir sal_Int32 nCount = aSeq.getLength(); 1056*cdf0e10cSrcweir const OUString* pServices = aSeq.getConstArray(); 1057*cdf0e10cSrcweir while( nCount-- ) 1058*cdf0e10cSrcweir { 1059*cdf0e10cSrcweir if( *pServices++ == ServiceName ) 1060*cdf0e10cSrcweir return sal_True; 1061*cdf0e10cSrcweir } 1062*cdf0e10cSrcweir return sal_True; 1063*cdf0e10cSrcweir } 1064*cdf0e10cSrcweir 1065*cdf0e10cSrcweir Sequence< OUString > SAL_CALL SwXDocumentSettings::getSupportedServiceNames( ) 1066*cdf0e10cSrcweir throw(RuntimeException) 1067*cdf0e10cSrcweir { 1068*cdf0e10cSrcweir Sequence< OUString > aSeq( 4 ); 1069*cdf0e10cSrcweir aSeq[0] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.document.Settings") ); 1070*cdf0e10cSrcweir aSeq[1] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.DocumentSettings") ); 1071*cdf0e10cSrcweir aSeq[2] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.PrintSettings") ); 1072*cdf0e10cSrcweir aSeq[3] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.PrintPreviewSettings") ); 1073*cdf0e10cSrcweir return aSeq; 1074*cdf0e10cSrcweir } 1075*cdf0e10cSrcweir 1076*cdf0e10cSrcweir 1077