LibreOffice Module sw (master) 1
DocumentSettingManager.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
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 .
18 */
19#ifndef INCLUDED_SW_SOURCE_CORE_INC_DOCUMENTSETTINGMANAGER_HXX
20#define INCLUDED_SW_SOURCE_CORE_INC_DOCUMENTSETTINGMANAGER_HXX
21
23class SwDoc;
24typedef struct _xmlTextWriter* xmlTextWriterPtr;
25
26namespace sw {
29{
30 std::shared_ptr<SvxForbiddenCharactersTable> mxForbiddenCharsTable;
32
33 sal_uInt16 mnLinkUpdMode; //< UpdateMode for links.
34
35 SwFieldUpdateFlags meFieldUpdMode;//< Automatically Update Mode for fields/charts.
36 CharCompressType meChrCmprType;//< for ASIAN: compress punctuation/kana
37
40
41 // COMPATIBILITY FLAGS START
42 //
43 //
44 // HISTORY OF THE COMPATIBILITY FLAGS:
45 //
46 // SO5:
47 // mbParaSpaceMax def = false, true since SO8
48 // mbParaSpaceMaxAtPages def = false, true since SO8
49 //
50 // SO6:
51 // mbTabCompat def = false, true since SO8
52 //
53 // SO7:
54 // mbUseVirtualDevice def = true
55 // mbAddFlyOffsets def = false, hidden
56 //
57 // SO7pp1:
58 // bOldNumbering def = false, hidden
59 //
60 // SO8:
61 // mbAddExternalLeading def = true
62 // mbUseHiResolutionVirtualDevice def = true, hidden
63 // mbOldLineSpacing def = false
64 // mbAddParaSpacingToTableCells def = true
65 // mbUseFormerObjectPos def = false
66 // mbUseFormerTextWrapping def = false
67 // mbConsiderWrapOnObjPos def = false
68 //
69 // SO8pp1:
70 // mbIgnoreFirstLineIndentInNumbering def = false, hidden
71 // mbDoNotJustifyLinesWithManualBreak def = false, hidden
72 // mbDoNotResetParaAttrsForNumFont def = false, hidden
73 //
74 // SO8pp3
75 // mbDoNotCaptureDrawObjsOnPage def = false, hidden
76 // - Relevant for drawing objects, which don't follow the text flow, but
77 // whose position is outside the page area:
78 // false: Such drawing objects are captured on the page area of its anchor.
79 // true: Such drawing objects can leave the page area, they aren't captured.
80 // mbTableRowKeep def = false, hidden
81 // mbIgnoreTabsAndBlanksForLineCalculation def = false, hidden
82 // mbClipAsCharacterAnchoredWriterFlyFrame def = false, hidden
83 // - Introduced in order to re-activate clipping of as-character anchored
84 // Writer fly frames in method <SwFlyInContentFrame::MakeAll()> for documents,
85 // which are created with version prior SO8/OOo 2.0
86 //
87 // SO8pp4
88 // mbUnixForceZeroExtLeading def = false, hidden
89 //
90 // SO8pu8
91 //
92 // SO9
93 // #i24363# tab stops relative to indent
94 // mbTabRelativeToIndent def = true, hidden
95 // #i89181# suppress tab stop at left indent for paragraphs in lists, whose
96 // list level position and space mode equals LABEL_ALIGNMENT and whose list
97 // label is followed by a tab character.
98 // mbTabAtLeftIndentForParagraphsInList def = false, hidden
99
100 bool mbHTMLMode : 1; //< true: Document is in HTMLMode.
101 bool mbIsGlobalDoc : 1; //< true: It's a global document.
102 bool mbGlblDocSaveLinks : 1; //< true: Save sections linked in global document.
103 bool mbIsLabelDoc : 1; //< true: It's a label document.
104 bool mbPurgeOLE : 1; //< true: Purge OLE-Objects
105 bool mbKernAsianPunctuation : 1; //< true: kerning also for ASIAN punctuation
106
109 bool mbTabCompat : 1;
115 bool mbOldLineSpacing : 1; // #i11859#
117 bool mbUseFormerObjectPos : 1; // #i11860#
119 bool mbConsiderWrapOnObjPos : 1; // #i28701#
120 // true: object positioning algorithm has consider the wrapping style of // the floating screen objects as given by its attribute 'WrapInfluenceOnObjPos'
121 // floating screen objects as given by its
122 // attribute 'WrapInfluenceOnObjPos'.
123 bool mbMathBaselineAlignment : 1; // TL 2010-10-29 #i972#
125 bool mbFloattableNomargins : 1; //< If paragraph margins next to a floating table should be ignored.
126 bool mEmbedFonts : 1; //< Whether to embed fonts when saving.
127 bool mEmbedUsedFonts : 1; //< Whether to embed fonts that are used by the document when saving.
128 bool mEmbedLatinScriptFonts : 1; //< Whether to embed latin script fonts when saving.
129 bool mEmbedAsianScriptFonts : 1; //< Whether to embed asian script fonts when saving.
130 bool mEmbedComplexScriptFonts : 1; //< Whether to embed complex script fonts when saving.
131 bool mEmbedSystemFonts : 1; //< Whether to embed also system fonts.
132
133 // non-ui-compatibility flags:
140 bool mbDoNotCaptureDrawObjsOnPage : 1; // #i62875#
142 bool mbUnixForceZeroExtLeading : 1; // #i60945#
143 bool mbTabRelativeToIndent : 1; // #i24363# tab stops relative to indent
145 bool mbMsWordCompTrailingBlanks : 1; // tdf#104349 tdf#104668
149 bool mbTabAtLeftIndentForParagraphsInList; // #i89181# - see above
160 bool mbSubtractFlys; // tdf#86578
162 bool mbAddParaLineSpacingToTableCells; // tdf#125300 tdf#134782
163
165 bool mbDisableOffPagePositioning; // tdf#112443
177 bool mbHyphenateURLs = false;
179 // If this is on as_char flys wrapping will be handled the same like in Word
181 bool mbDropCapPunctuation; // tdf#150200, tdf#150438
182 bool mbUseVariableWidthNBSP : 1; // tdf#41652
183
184public:
185
187 virtual ~DocumentSettingManager() override;
188
189 // IDocumentSettingAccess
190 virtual bool get(/*[in]*/ DocumentSettingId id) const override;
191 virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) override;
192 virtual const css::i18n::ForbiddenCharacters* getForbiddenCharacters(/*[in]*/ LanguageType nLang, /*[in]*/ bool bLocaleData ) const override;
193 virtual void setForbiddenCharacters(/*[in]*/ LanguageType nLang, /*[in]*/ const css::i18n::ForbiddenCharacters& rForbiddenCharacters ) override;
194 virtual std::shared_ptr<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() override;
195 virtual const std::shared_ptr<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const override;
196 virtual sal_uInt16 getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const override;
197 virtual void setLinkUpdateMode( /*[in]*/ sal_uInt16 nMode ) override;
198 virtual SwFieldUpdateFlags getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const override;
199 virtual void setFieldUpdateFlags( /*[in]*/ SwFieldUpdateFlags eMode ) override;
200 virtual CharCompressType getCharacterCompressionType() const override;
201 virtual void setCharacterCompressionType( /*[in]*/CharCompressType nType ) override;
202
203 sal_Int32 getImagePreferredDPI() override
204 {
205 return mnImagePreferredDPI;
206 }
207 void setImagePreferredDPI(sal_Int32 nValue) override
208 {
210 }
211
212// Replace all compatibility options with those from rSource.
214
215 sal_uInt32 Getn32DummyCompatibilityOptions1() const override;
216 void Setn32DummyCompatibilityOptions1( const sal_uInt32 CompatibilityOptions1 ) override;
217 sal_uInt32 Getn32DummyCompatibilityOptions2() const override;
218 void Setn32DummyCompatibilityOptions2( const sal_uInt32 CompatibilityOptions2 ) override;
219 void dumpAsXml(xmlTextWriterPtr pWriter) const;
220};
221
222}
223
224#endif //_DOCSETTING_HXX
225
226/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
struct _xmlTextWriter * xmlTextWriterPtr
CharCompressType
Provides access to settings of a document.
Definition: doc.hxx:197
virtual void setFieldUpdateFlags(SwFieldUpdateFlags eMode) override
Set the current field update mode.
sal_Int32 getImagePreferredDPI() override
void Setn32DummyCompatibilityOptions1(const sal_uInt32 CompatibilityOptions1) override
Set the n32DummyCompatibilityOptions1.
sal_uInt32 Getn32DummyCompatibilityOptions2() const override
Get the n32DummyCompatibilityOptions2.
void ReplaceCompatibilityOptions(const DocumentSettingManager &rSource)
virtual ~DocumentSettingManager() override
virtual void setCharacterCompressionType(CharCompressType nType) override
Set the character compression type for Asian characters.
virtual bool get(DocumentSettingId id) const override
Return the specified document setting.
void Setn32DummyCompatibilityOptions2(const sal_uInt32 CompatibilityOptions2) override
Set the n32DummyCompatibilityOptions2.
void setImagePreferredDPI(sal_Int32 nValue) override
bool mbGutterAtTop
Gutter position: false means left (not a compatibility setting).
virtual void setLinkUpdateMode(sal_uInt16 nMode) override
Set the current link update mode.
virtual CharCompressType getCharacterCompressionType() const override
Get the character compression type for Asian characters.
sal_uInt32 Getn32DummyCompatibilityOptions1() const override
Get the n32DummyCompatibilityOptions1.
virtual sal_uInt16 getLinkUpdateMode(bool bGlobalSettings) const override
Get the current link update mode.
virtual void set(DocumentSettingId id, bool value) override
Set the specified document setting.
virtual const css::i18n::ForbiddenCharacters * getForbiddenCharacters(LanguageType nLang, bool bLocaleData) const override
Return the forbidden characters.
virtual std::shared_ptr< SvxForbiddenCharactersTable > & getForbiddenCharacterTable() override
Get the forbidden character table and creates one if necessary.
virtual SwFieldUpdateFlags getFieldUpdateFlags(bool bGlobalSettings) const override
Get the current field update mode.
virtual void setForbiddenCharacters(LanguageType nLang, const css::i18n::ForbiddenCharacters &rForbiddenCharacters) override
Set the forbidden characters.
void dumpAsXml(xmlTextWriterPtr pWriter) const
std::shared_ptr< SvxForbiddenCharactersTable > mxForbiddenCharsTable
struct _xmlTextWriter * xmlTextWriterPtr
SwFieldUpdateFlags
Definition: fldupde.hxx:23
sal_Int16 nValue
Dialog to specify the properties of date form field.
static LanguageType nLang
Definition: srtdlg.cxx:51