Branch libreoffice-6-3
[LibreOffice.git] / sw / inc / IDocumentSettingAccess.hxx
blob46f8c1568526489aaa268cf09e44c2fabe81ea44
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SW_INC_IDOCUMENTSETTINGACCESS_HXX
21 #define INCLUDED_SW_INC_IDOCUMENTSETTINGACCESS_HXX
23 #include <sal/types.h>
24 #include "fldupde.hxx"
25 #include <i18nlangtag/lang.h>
26 #include <memory>
28 class SvxForbiddenCharactersTable;
29 namespace com { namespace sun { namespace star { namespace i18n { struct ForbiddenCharacters; } } } }
30 enum class CharCompressType;
32 enum class DocumentSettingId
34 // COMPATIBILITY FLAGS START
35 PARA_SPACE_MAX,
36 PARA_SPACE_MAX_AT_PAGES,
38 TAB_COMPAT,
40 ADD_FLY_OFFSETS,
41 ADD_VERTICAL_FLY_OFFSETS,
43 OLD_NUMBERING,
45 ADD_EXT_LEADING,
46 USE_VIRTUAL_DEVICE,
47 USE_HIRES_VIRTUAL_DEVICE,
48 OLD_LINE_SPACING,
49 ADD_PARA_SPACING_TO_TABLE_CELLS,
50 USE_FORMER_OBJECT_POS,
51 USE_FORMER_TEXT_WRAPPING,
52 CONSIDER_WRAP_ON_OBJECT_POSITION,
54 IGNORE_FIRST_LINE_INDENT_IN_NUMBERING,
55 DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK,
56 TREAT_SINGLE_COLUMN_BREAK_AS_PAGE_BREAK,
57 DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT,
59 DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE,
60 TABLE_ROW_KEEP,
61 IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION,
62 CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME,
64 // tdf#104349 tdf#104668
65 MS_WORD_COMP_TRAILING_BLANKS,
67 UNIX_FORCE_ZERO_EXT_LEADING,
68 TABS_RELATIVE_TO_INDENT,
69 PROTECT_FORM,
70 // #i89181#
71 TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST,
72 INVERT_BORDER_SPACING,
73 COLLAPSE_EMPTY_CELL_PARA,
74 SMALL_CAPS_PERCENTAGE_66,
75 TAB_OVERFLOW,
76 UNBREAKABLE_NUMBERINGS,
77 CLIPPED_PICTURES,
78 BACKGROUND_PARA_OVER_DRAWINGS,
79 TAB_OVER_MARGIN,
80 // MS Word still wraps text around objects with less space than LO would.
81 SURROUND_TEXT_WRAP_SMALL,
82 PROP_LINE_SPACING_SHRINKS_FIRST_LINE,
83 SUBTRACT_FLYS,
84 // tdf#112443 disable off-page content positioning
85 DISABLE_OFF_PAGE_POSITIONING,
86 EMPTY_DB_FIELD_HIDES_PARA,
87 // COMPATIBILITY FLAGS END
88 BROWSE_MODE,
89 HTML_MODE,
90 GLOBAL_DOCUMENT,
91 GLOBAL_DOCUMENT_SAVE_LINKS,
92 LABEL_DOCUMENT,
93 PURGE_OLE,
94 KERN_ASIAN_PUNCTUATION,
95 MATH_BASELINE_ALIGNMENT,
96 STYLES_NODEFAULT,
97 FLOATTABLE_NOMARGINS,
98 EMBED_FONTS,
99 EMBED_USED_FONTS,
100 EMBED_LATIN_SCRIPT_FONTS,
101 EMBED_ASIAN_SCRIPT_FONTS,
102 EMBED_COMPLEX_SCRIPT_FONTS,
103 EMBED_SYSTEM_FONTS,
104 APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING,
107 /** Provides access to settings of a document
109 class IDocumentSettingAccess
111 public:
112 /** Return the specified document setting.
114 @param id
115 [in] the identifier of the document setting to be returned.
116 See above for a list of valid document setting identifiers.
118 @returns
119 the value of the requested document setting.
121 virtual bool get(/*[in]*/ DocumentSettingId id) const = 0;
123 /** Set the specified document setting.
125 @param id
126 [in] the identifier of the document setting to be set.
127 See above for a list of valid document setting identifiers.
129 @param value
130 [in] the new value of the specified document setting.
132 virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) = 0;
134 /** Return the forbidden characters.
136 @param nLang
137 [in] the language for which the forbidden character list is returned.
139 @param bLocaleData
140 [in] if set and there is no user defined forbidden character list for
141 language lang, the default list for language lang will be returned.
143 @returns
144 a list of forbidden characters.
146 virtual const css::i18n::ForbiddenCharacters*
147 getForbiddenCharacters(/*[in]*/ LanguageType nLang, /*[in]*/ bool bLocaleData ) const = 0;
149 /** Set the forbidden characters.
151 @param nLang
152 [in] the language for which the forbidden character list should be set.
154 @param rForbiddenCharacters
155 [in] the new list of forbidden characters for language lang.
157 virtual void setForbiddenCharacters(/*[in]*/ LanguageType nLang,
158 /*[in]*/ const css::i18n::ForbiddenCharacters& rForbiddenCharacters ) = 0;
160 /** Get the forbidden character table and creates one if necessary.
162 @returns
163 the forbidden characters table.
165 virtual std::shared_ptr<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() = 0;
167 /** Get the forbidden character table.
169 @returns
170 the forbidden characters table.
172 virtual const std::shared_ptr<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const = 0;
174 /** Get the current link update mode.
176 @param bGlobalSettings
177 [in] if set, the link update mode is obtained from the module,
178 if it is set to GLOBALSETTING
180 @returns
181 the current link update mode.
183 virtual sal_uInt16 getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const = 0;
185 /** Set the current link update mode.
187 @param nMode
188 [in] the new link update mode.
190 virtual void setLinkUpdateMode( /*[in]*/ sal_uInt16 nMode ) = 0;
192 /** Get the current field update mode.
194 @param bGlobalSettings
195 [in] if set, the field update mode is obtained from the module,
196 if it is set to GLOBALSETTING
198 @returns
199 the current field update mode.
201 virtual SwFieldUpdateFlags getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const = 0;
203 /** Set the current field update mode.
205 @param nMode
206 [in] the new field update mode.
208 virtual void setFieldUpdateFlags( /*[in]*/ SwFieldUpdateFlags nMode ) = 0;
210 /** Get the character compression type for Asian characters.
212 @returns
213 the current character compression mode.
215 virtual CharCompressType getCharacterCompressionType() const = 0;
217 /** Set the character compression type for Asian characters.
219 @param nMode
220 [in] the new character compression type.
222 virtual void setCharacterCompressionType( /*[in]*/CharCompressType nType ) = 0;
224 /** Get the n32DummyCompatabilityOptions1
226 virtual sal_uInt32 Getn32DummyCompatibilityOptions1() const = 0;
228 /** Set the n32DummyCompatabilityOptions1
230 virtual void Setn32DummyCompatibilityOptions1( const sal_uInt32 CompatibilityOptions1 ) = 0;
232 /** Get the n32DummyCompatabilityOptions2
234 virtual sal_uInt32 Getn32DummyCompatibilityOptions2() const = 0;
236 /** Set the n32DummyCompatabilityOptions2
238 virtual void Setn32DummyCompatibilityOptions2( const sal_uInt32 CompatibilityOptions2 ) = 0;
240 protected:
241 virtual ~IDocumentSettingAccess() {};
244 #endif // INCLUDED_SW_INC_IDOCUMENTSETTINGACCESS_HXX
246 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */