1*1d2dbeb0SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*1d2dbeb0SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*1d2dbeb0SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*1d2dbeb0SAndrew Rist  * distributed with this work for additional information
6*1d2dbeb0SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*1d2dbeb0SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*1d2dbeb0SAndrew Rist  * "License"); you may not use this file except in compliance
9*1d2dbeb0SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*1d2dbeb0SAndrew Rist  *
11*1d2dbeb0SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*1d2dbeb0SAndrew Rist  *
13*1d2dbeb0SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*1d2dbeb0SAndrew Rist  * software distributed under the License is distributed on an
15*1d2dbeb0SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*1d2dbeb0SAndrew Rist  * KIND, either express or implied.  See the License for the
17*1d2dbeb0SAndrew Rist  * specific language governing permissions and limitations
18*1d2dbeb0SAndrew Rist  * under the License.
19*1d2dbeb0SAndrew Rist  *
20*1d2dbeb0SAndrew Rist  *************************************************************/
21*1d2dbeb0SAndrew Rist 
22*1d2dbeb0SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef IDOCUMENTSETTINGACCESS_HXX_INCLUDED
25cdf0e10cSrcweir #define IDOCUMENTSETTINGACCESS_HXX_INCLUDED
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <tools/solar.h>
28cdf0e10cSrcweir #ifndef _VOS_REF_HXX
29cdf0e10cSrcweir #include <vos/ref.hxx>
30cdf0e10cSrcweir #endif
31cdf0e10cSrcweir #include <chcmprse.hxx>
32cdf0e10cSrcweir #include <fldupde.hxx>
33cdf0e10cSrcweir 
34cdf0e10cSrcweir class SvxForbiddenCharactersTable;
35cdf0e10cSrcweir namespace com { namespace sun { namespace star { namespace i18n { struct ForbiddenCharacters; } } } }
36cdf0e10cSrcweir 
37cdf0e10cSrcweir  /** Provides access to settings of a document
38cdf0e10cSrcweir  */
39cdf0e10cSrcweir  class IDocumentSettingAccess
40cdf0e10cSrcweir  {
41cdf0e10cSrcweir  public:
42cdf0e10cSrcweir      enum DocumentSettingId
43cdf0e10cSrcweir      {
44cdf0e10cSrcweir          // COMPATIBILITY FLAGS START
45cdf0e10cSrcweir          PARA_SPACE_MAX,
46cdf0e10cSrcweir          PARA_SPACE_MAX_AT_PAGES,
47cdf0e10cSrcweir 
48cdf0e10cSrcweir          TAB_COMPAT,
49cdf0e10cSrcweir 
50cdf0e10cSrcweir          ADD_FLY_OFFSETS,
51cdf0e10cSrcweir 
52cdf0e10cSrcweir          OLD_NUMBERING,
53cdf0e10cSrcweir 
54cdf0e10cSrcweir          ADD_EXT_LEADING,
55cdf0e10cSrcweir          USE_VIRTUAL_DEVICE,
56cdf0e10cSrcweir          USE_HIRES_VIRTUAL_DEVICE,
57cdf0e10cSrcweir          OLD_LINE_SPACING,
58cdf0e10cSrcweir          ADD_PARA_SPACING_TO_TABLE_CELLS,
59cdf0e10cSrcweir          USE_FORMER_OBJECT_POS,
60cdf0e10cSrcweir          USE_FORMER_TEXT_WRAPPING,
61cdf0e10cSrcweir          CONSIDER_WRAP_ON_OBJECT_POSITION,
62cdf0e10cSrcweir 
63cdf0e10cSrcweir          IGNORE_FIRST_LINE_INDENT_IN_NUMBERING,
64cdf0e10cSrcweir          DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK,
65cdf0e10cSrcweir          DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT,
66cdf0e10cSrcweir          OUTLINE_LEVEL_YIELDS_OUTLINE_RULE,
67cdf0e10cSrcweir 
68cdf0e10cSrcweir          DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE,
69cdf0e10cSrcweir          TABLE_ROW_KEEP,
70cdf0e10cSrcweir 		 IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION,
71cdf0e10cSrcweir          CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME,
72cdf0e10cSrcweir 
73cdf0e10cSrcweir          UNIX_FORCE_ZERO_EXT_LEADING,
74cdf0e10cSrcweir          USE_OLD_PRINTER_METRICS,
75cdf0e10cSrcweir          TABS_RELATIVE_TO_INDENT,
76cdf0e10cSrcweir          PROTECT_FORM,
77cdf0e10cSrcweir          // --> OD 2008-06-05 #i89181#
78cdf0e10cSrcweir          TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST,
79cdf0e10cSrcweir          // <--
80cdf0e10cSrcweir          // COMPATIBILITY FLAGS END
81cdf0e10cSrcweir 
82cdf0e10cSrcweir          BROWSE_MODE,
83cdf0e10cSrcweir          HTML_MODE,
84cdf0e10cSrcweir          GLOBAL_DOCUMENT,
85cdf0e10cSrcweir          GLOBAL_DOCUMENT_SAVE_LINKS,
86cdf0e10cSrcweir          LABEL_DOCUMENT,
87cdf0e10cSrcweir          PURGE_OLE,
88cdf0e10cSrcweir          KERN_ASIAN_PUNCTUATION,
89cdf0e10cSrcweir          MATH_BASELINE_ALIGNMENT
90cdf0e10cSrcweir      };
91cdf0e10cSrcweir 
92cdf0e10cSrcweir  public:
93cdf0e10cSrcweir 	/** Return the specified document setting.
94cdf0e10cSrcweir 
95cdf0e10cSrcweir        @param id
96cdf0e10cSrcweir        [in] the identifier of the document setting to be returned.
97cdf0e10cSrcweir        See above for a list of valid document setting identifiers.
98cdf0e10cSrcweir 
99cdf0e10cSrcweir        @returns
100cdf0e10cSrcweir        the value of the requested document setting.
101cdf0e10cSrcweir 	*/
102cdf0e10cSrcweir 	virtual bool get(/*[in]*/ DocumentSettingId id) const = 0;
103cdf0e10cSrcweir 
104cdf0e10cSrcweir 	/** Set the specified document setting.
105cdf0e10cSrcweir 
106cdf0e10cSrcweir         @param id
107cdf0e10cSrcweir         [in] the identifier of the document setting to be set.
108cdf0e10cSrcweir         See above for a list of valid document setting identifiers.
109cdf0e10cSrcweir 
110cdf0e10cSrcweir         @param value
111cdf0e10cSrcweir         [in] the new value of the specified document setting.
112cdf0e10cSrcweir 	*/
113cdf0e10cSrcweir 	virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) = 0;
114cdf0e10cSrcweir 
115cdf0e10cSrcweir     /** Return the forbidden characters.
116cdf0e10cSrcweir 
117cdf0e10cSrcweir        @param nLang
118cdf0e10cSrcweir        [in] the language for which the forbidden character list is returned.
119cdf0e10cSrcweir 
120cdf0e10cSrcweir        @param bLocaleData
121cdf0e10cSrcweir        [in] if set and there is no user defined forbidden character list for
122cdf0e10cSrcweir             language lang, the default list for language lang will be returned.
123cdf0e10cSrcweir 
124cdf0e10cSrcweir        @returns
125cdf0e10cSrcweir        a list of forbidden characters.
126cdf0e10cSrcweir     */
127cdf0e10cSrcweir     virtual const com::sun::star::i18n::ForbiddenCharacters*
128cdf0e10cSrcweir         getForbiddenCharacters(/*[in]*/ sal_uInt16 nLang, /*[in]*/ bool bLocaleData ) const = 0;
129cdf0e10cSrcweir 
130cdf0e10cSrcweir     /** Set the forbidden characters.
131cdf0e10cSrcweir 
132cdf0e10cSrcweir        @param nLang
133cdf0e10cSrcweir        [in] the language for which the forbidden character list should be set.
134cdf0e10cSrcweir 
135cdf0e10cSrcweir        @param rForbiddenCharacters
136cdf0e10cSrcweir        [in] the new list of forbidden characters for language lang.
137cdf0e10cSrcweir     */
138cdf0e10cSrcweir     virtual void setForbiddenCharacters(/*[in]*/ sal_uInt16 nLang,
139cdf0e10cSrcweir                                         /*[in]*/ const com::sun::star::i18n::ForbiddenCharacters& rForbiddenCharacters ) = 0;
140cdf0e10cSrcweir 
141cdf0e10cSrcweir     /** Get the forbidden character table and creates one if necessary.
142cdf0e10cSrcweir 
143cdf0e10cSrcweir        @returns
144cdf0e10cSrcweir        the forbidden characters table.
145cdf0e10cSrcweir     */
146cdf0e10cSrcweir     virtual vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() = 0;
147cdf0e10cSrcweir 
148cdf0e10cSrcweir     /** Get the forbidden character table.
149cdf0e10cSrcweir 
150cdf0e10cSrcweir        @returns
151cdf0e10cSrcweir        the forbidden characters table.
152cdf0e10cSrcweir     */
153cdf0e10cSrcweir     virtual const vos::ORef<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const = 0;
154cdf0e10cSrcweir 
155cdf0e10cSrcweir     /** Get the current link update mode.
156cdf0e10cSrcweir 
157cdf0e10cSrcweir        @param bGlobalSettings
158cdf0e10cSrcweir        [in] if set, the link update mode is obtained from the module,
159cdf0e10cSrcweir             if it is set to GLOBALSETTING
160cdf0e10cSrcweir 
161cdf0e10cSrcweir        @returns
162cdf0e10cSrcweir        the current link update mode.
163cdf0e10cSrcweir     */
164cdf0e10cSrcweir     virtual sal_uInt16 getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const = 0;
165cdf0e10cSrcweir 
166cdf0e10cSrcweir     /** Set the current link update mode.
167cdf0e10cSrcweir 
168cdf0e10cSrcweir        @param nMode
169cdf0e10cSrcweir        [in] the new link update mode.
170cdf0e10cSrcweir     */
171cdf0e10cSrcweir     virtual void setLinkUpdateMode( /*[in]*/ sal_uInt16 nMode ) = 0;
172cdf0e10cSrcweir 
173cdf0e10cSrcweir     /** Get the current field update mode.
174cdf0e10cSrcweir 
175cdf0e10cSrcweir        @param bGlobalSettings
176cdf0e10cSrcweir        [in] if set, the field update mode is obtained from the module,
177cdf0e10cSrcweir             if it is set to GLOBALSETTING
178cdf0e10cSrcweir 
179cdf0e10cSrcweir        @returns
180cdf0e10cSrcweir        the current field update mode.
181cdf0e10cSrcweir     */
182cdf0e10cSrcweir     virtual SwFldUpdateFlags getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const = 0;
183cdf0e10cSrcweir 
184cdf0e10cSrcweir     /** Set the current field update mode.
185cdf0e10cSrcweir 
186cdf0e10cSrcweir        @param nMode
187cdf0e10cSrcweir        [in] the new field update mode.
188cdf0e10cSrcweir     */
189cdf0e10cSrcweir     virtual void setFieldUpdateFlags( /*[in]*/ SwFldUpdateFlags nMode )  = 0;
190cdf0e10cSrcweir 
191cdf0e10cSrcweir     /** Get the character compression type for Asian characters.
192cdf0e10cSrcweir 
193cdf0e10cSrcweir        @returns
194cdf0e10cSrcweir        the current character compression mode.
195cdf0e10cSrcweir     */
196cdf0e10cSrcweir     virtual SwCharCompressType getCharacterCompressionType() const = 0;
197cdf0e10cSrcweir 
198cdf0e10cSrcweir     /** Set the character compression type for Asian characters.
199cdf0e10cSrcweir 
200cdf0e10cSrcweir        @param nMode
201cdf0e10cSrcweir        [in] the new character compression type.
202cdf0e10cSrcweir     */
203cdf0e10cSrcweir     virtual void setCharacterCompressionType( /*[in]*/SwCharCompressType nType ) = 0;
204cdf0e10cSrcweir 
205cdf0e10cSrcweir protected:
~IDocumentSettingAccess()206cdf0e10cSrcweir     virtual ~IDocumentSettingAccess() {};
207cdf0e10cSrcweir  };
208cdf0e10cSrcweir 
209cdf0e10cSrcweir #endif // IDOCUMENTSETTINGACCESS_HXX_INCLUDED
210