1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef IDOCUMENTSETTINGACCESS_HXX_INCLUDED 29 #define IDOCUMENTSETTINGACCESS_HXX_INCLUDED 30 31 #include <tools/solar.h> 32 #ifndef _VOS_REF_HXX 33 #include <vos/ref.hxx> 34 #endif 35 #include <chcmprse.hxx> 36 #include <fldupde.hxx> 37 38 class SvxForbiddenCharactersTable; 39 namespace com { namespace sun { namespace star { namespace i18n { struct ForbiddenCharacters; } } } } 40 41 /** Provides access to settings of a document 42 */ 43 class IDocumentSettingAccess 44 { 45 public: 46 enum DocumentSettingId 47 { 48 // COMPATIBILITY FLAGS START 49 PARA_SPACE_MAX, 50 PARA_SPACE_MAX_AT_PAGES, 51 52 TAB_COMPAT, 53 54 ADD_FLY_OFFSETS, 55 56 OLD_NUMBERING, 57 58 ADD_EXT_LEADING, 59 USE_VIRTUAL_DEVICE, 60 USE_HIRES_VIRTUAL_DEVICE, 61 OLD_LINE_SPACING, 62 ADD_PARA_SPACING_TO_TABLE_CELLS, 63 USE_FORMER_OBJECT_POS, 64 USE_FORMER_TEXT_WRAPPING, 65 CONSIDER_WRAP_ON_OBJECT_POSITION, 66 67 IGNORE_FIRST_LINE_INDENT_IN_NUMBERING, 68 DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK, 69 DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT, 70 OUTLINE_LEVEL_YIELDS_OUTLINE_RULE, 71 72 DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, 73 TABLE_ROW_KEEP, 74 IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION, 75 CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME, 76 77 UNIX_FORCE_ZERO_EXT_LEADING, 78 USE_OLD_PRINTER_METRICS, 79 TABS_RELATIVE_TO_INDENT, 80 PROTECT_FORM, 81 // --> OD 2008-06-05 #i89181# 82 TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST, 83 // <-- 84 // COMPATIBILITY FLAGS END 85 86 BROWSE_MODE, 87 HTML_MODE, 88 GLOBAL_DOCUMENT, 89 GLOBAL_DOCUMENT_SAVE_LINKS, 90 LABEL_DOCUMENT, 91 PURGE_OLE, 92 KERN_ASIAN_PUNCTUATION, 93 MATH_BASELINE_ALIGNMENT 94 }; 95 96 public: 97 /** Return the specified document setting. 98 99 @param id 100 [in] the identifier of the document setting to be returned. 101 See above for a list of valid document setting identifiers. 102 103 @returns 104 the value of the requested document setting. 105 */ 106 virtual bool get(/*[in]*/ DocumentSettingId id) const = 0; 107 108 /** Set the specified document setting. 109 110 @param id 111 [in] the identifier of the document setting to be set. 112 See above for a list of valid document setting identifiers. 113 114 @param value 115 [in] the new value of the specified document setting. 116 */ 117 virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) = 0; 118 119 /** Return the forbidden characters. 120 121 @param nLang 122 [in] the language for which the forbidden character list is returned. 123 124 @param bLocaleData 125 [in] if set and there is no user defined forbidden character list for 126 language lang, the default list for language lang will be returned. 127 128 @returns 129 a list of forbidden characters. 130 */ 131 virtual const com::sun::star::i18n::ForbiddenCharacters* 132 getForbiddenCharacters(/*[in]*/ sal_uInt16 nLang, /*[in]*/ bool bLocaleData ) const = 0; 133 134 /** Set the forbidden characters. 135 136 @param nLang 137 [in] the language for which the forbidden character list should be set. 138 139 @param rForbiddenCharacters 140 [in] the new list of forbidden characters for language lang. 141 */ 142 virtual void setForbiddenCharacters(/*[in]*/ sal_uInt16 nLang, 143 /*[in]*/ const com::sun::star::i18n::ForbiddenCharacters& rForbiddenCharacters ) = 0; 144 145 /** Get the forbidden character table and creates one if necessary. 146 147 @returns 148 the forbidden characters table. 149 */ 150 virtual vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() = 0; 151 152 /** Get the forbidden character table. 153 154 @returns 155 the forbidden characters table. 156 */ 157 virtual const vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const = 0; 158 159 /** Get the current link update mode. 160 161 @param bGlobalSettings 162 [in] if set, the link update mode is obtained from the module, 163 if it is set to GLOBALSETTING 164 165 @returns 166 the current link update mode. 167 */ 168 virtual sal_uInt16 getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const = 0; 169 170 /** Set the current link update mode. 171 172 @param nMode 173 [in] the new link update mode. 174 */ 175 virtual void setLinkUpdateMode( /*[in]*/ sal_uInt16 nMode ) = 0; 176 177 /** Get the current field update mode. 178 179 @param bGlobalSettings 180 [in] if set, the field update mode is obtained from the module, 181 if it is set to GLOBALSETTING 182 183 @returns 184 the current field update mode. 185 */ 186 virtual SwFldUpdateFlags getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const = 0; 187 188 /** Set the current field update mode. 189 190 @param nMode 191 [in] the new field update mode. 192 */ 193 virtual void setFieldUpdateFlags( /*[in]*/ SwFldUpdateFlags nMode ) = 0; 194 195 /** Get the character compression type for Asian characters. 196 197 @returns 198 the current character compression mode. 199 */ 200 virtual SwCharCompressType getCharacterCompressionType() const = 0; 201 202 /** Set the character compression type for Asian characters. 203 204 @param nMode 205 [in] the new character compression type. 206 */ 207 virtual void setCharacterCompressionType( /*[in]*/SwCharCompressType nType ) = 0; 208 209 protected: 210 virtual ~IDocumentSettingAccess() {}; 211 }; 212 213 #endif // IDOCUMENTSETTINGACCESS_HXX_INCLUDED 214