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 
23 class SwDoc;
24 typedef struct _xmlTextWriter* xmlTextWriterPtr;
25 
26 namespace 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 
107  bool mbParaSpaceMax : 1;
109  bool mbTabCompat : 1;
111  bool mbAddFlyOffsets : 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:
134  bool mbOldNumbering : 1;
137  bool mbDoNotResetParaAttrsForNumFont : 1; // #i53199#
138  bool mbTableRowKeep : 1;
140  bool mbDoNotCaptureDrawObjsOnPage : 1; // #i62875#
142  bool mbUnixForceZeroExtLeading : 1; // #i60945#
143  bool mbTabRelativeToIndent : 1; // #i24363# tab stops relative to indent
144  bool mbProtectForm : 1;
145  bool mbMsWordCompTrailingBlanks : 1; // tdf#104349 tdf#104668
149  bool mbTabAtLeftIndentForParagraphsInList; // #i89181# - see above
159  bool mbSubtractFlys; // tdf#86578
161  bool mbAddParaLineSpacingToTableCells; // tdf#125300 tdf#134782
162 
164  bool mbDisableOffPagePositioning; // tdf#112443
166  bool mbContinuousEndnotes = false;
170  bool mbFrameAutowidthWithMorePara; //tdf#124423
171 
172 public:
173 
175  virtual ~DocumentSettingManager() override;
176 
177  // IDocumentSettingAccess
178  virtual bool get(/*[in]*/ DocumentSettingId id) const override;
179  virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) override;
180  virtual const css::i18n::ForbiddenCharacters* getForbiddenCharacters(/*[in]*/ LanguageType nLang, /*[in]*/ bool bLocaleData ) const override;
181  virtual void setForbiddenCharacters(/*[in]*/ LanguageType nLang, /*[in]*/ const css::i18n::ForbiddenCharacters& rForbiddenCharacters ) override;
182  virtual std::shared_ptr<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() override;
183  virtual const std::shared_ptr<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const override;
184  virtual sal_uInt16 getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const override;
185  virtual void setLinkUpdateMode( /*[in]*/ sal_uInt16 nMode ) override;
186  virtual SwFieldUpdateFlags getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const override;
187  virtual void setFieldUpdateFlags( /*[in]*/ SwFieldUpdateFlags eMode ) override;
188  virtual CharCompressType getCharacterCompressionType() const override;
189  virtual void setCharacterCompressionType( /*[in]*/CharCompressType nType ) override;
190 
191 
192 // Replace all compatibility options with those from rSource.
194 
195  sal_uInt32 Getn32DummyCompatibilityOptions1() const override;
196  void Setn32DummyCompatibilityOptions1( const sal_uInt32 CompatibilityOptions1 ) override;
197  sal_uInt32 Getn32DummyCompatibilityOptions2() const override;
198  void Setn32DummyCompatibilityOptions2( const sal_uInt32 CompatibilityOptions2 ) override;
199  void dumpAsXml(xmlTextWriterPtr pWriter) const;
200 };
201 
202 }
203 
204 #endif //_DOCSETTING_HXX
205 
206 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual const css::i18n::ForbiddenCharacters * getForbiddenCharacters(LanguageType nLang, bool bLocaleData) const override
Return the forbidden characters.
SwFieldUpdateFlags
Definition: fldupde.hxx:22
struct _xmlTextWriter * xmlTextWriterPtr
void dumpAsXml(xmlTextWriterPtr pWriter) const
Definition: doc.hxx:186
virtual CharCompressType getCharacterCompressionType() const override
Get the character compression type for Asian characters.
virtual void set(DocumentSettingId id, bool value) override
Set the specified document setting.
Dialog to specify the properties of date form field.
void Setn32DummyCompatibilityOptions1(const sal_uInt32 CompatibilityOptions1) override
Set the n32DummyCompatibilityOptions1.
static LanguageType nLang
Definition: srtdlg.cxx:51
virtual void setLinkUpdateMode(sal_uInt16 nMode) override
Set the current link update mode.
void ReplaceCompatibilityOptions(const DocumentSettingManager &rSource)
struct _xmlTextWriter * xmlTextWriterPtr
virtual void setFieldUpdateFlags(SwFieldUpdateFlags eMode) override
Set the current field update mode.
CharCompressType
virtual std::shared_ptr< SvxForbiddenCharactersTable > & getForbiddenCharacterTable() override
Get the forbidden character table and creates one if necessary.
void Setn32DummyCompatibilityOptions2(const sal_uInt32 CompatibilityOptions2) override
Set the n32DummyCompatibilityOptions2.
Provides access to settings of a document.
virtual void setCharacterCompressionType(CharCompressType nType) override
Set the character compression type for Asian characters.
sal_uInt32 Getn32DummyCompatibilityOptions2() const override
Get the n32DummyCompatibilityOptions2.
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.
virtual sal_uInt16 getLinkUpdateMode(bool bGlobalSettings) const override
Get the current link update mode.
sal_uInt32 Getn32DummyCompatibilityOptions1() const override
Get the n32DummyCompatibilityOptions1.
virtual ~DocumentSettingManager() override
std::shared_ptr< SvxForbiddenCharactersTable > mxForbiddenCharsTable