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
160  bool mbSubtractFlys; // tdf#86578
162  bool mbAddParaLineSpacingToTableCells; // tdf#125300 tdf#134782
163 
165  bool mbDisableOffPagePositioning; // tdf#112443
167  bool mbContinuousEndnotes = false;
171  bool mbFrameAutowidthWithMorePara; //tdf#124423
177  // If this is on as_char flys wrapping will be handled the same like in Word
179 
180 public:
181 
183  virtual ~DocumentSettingManager() override;
184 
185  // IDocumentSettingAccess
186  virtual bool get(/*[in]*/ DocumentSettingId id) const override;
187  virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) override;
188  virtual const css::i18n::ForbiddenCharacters* getForbiddenCharacters(/*[in]*/ LanguageType nLang, /*[in]*/ bool bLocaleData ) const override;
189  virtual void setForbiddenCharacters(/*[in]*/ LanguageType nLang, /*[in]*/ const css::i18n::ForbiddenCharacters& rForbiddenCharacters ) override;
190  virtual std::shared_ptr<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() override;
191  virtual const std::shared_ptr<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() const override;
192  virtual sal_uInt16 getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const override;
193  virtual void setLinkUpdateMode( /*[in]*/ sal_uInt16 nMode ) override;
194  virtual SwFieldUpdateFlags getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const override;
195  virtual void setFieldUpdateFlags( /*[in]*/ SwFieldUpdateFlags eMode ) override;
196  virtual CharCompressType getCharacterCompressionType() const override;
197  virtual void setCharacterCompressionType( /*[in]*/CharCompressType nType ) override;
198 
199  sal_Int32 getImagePreferredDPI() override
200  {
201  return mnImagePreferredDPI;
202  }
203  void setImagePreferredDPI(sal_Int32 nValue) override
204  {
205  mnImagePreferredDPI = nValue;
206  }
207 
208 // Replace all compatibility options with those from rSource.
210 
211  sal_uInt32 Getn32DummyCompatibilityOptions1() const override;
212  void Setn32DummyCompatibilityOptions1( const sal_uInt32 CompatibilityOptions1 ) override;
213  sal_uInt32 Getn32DummyCompatibilityOptions2() const override;
214  void Setn32DummyCompatibilityOptions2( const sal_uInt32 CompatibilityOptions2 ) override;
215  void dumpAsXml(xmlTextWriterPtr pWriter) const;
216 };
217 
218 }
219 
220 #endif //_DOCSETTING_HXX
221 
222 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sal_Int32 getImagePreferredDPI() override
virtual const css::i18n::ForbiddenCharacters * getForbiddenCharacters(LanguageType nLang, bool bLocaleData) const override
Return the forbidden characters.
bool mbGutterAtTop
Gutter position: false means left (not a compatibility setting).
SwFieldUpdateFlags
Definition: fldupde.hxx:22
struct _xmlTextWriter * xmlTextWriterPtr
void dumpAsXml(xmlTextWriterPtr pWriter) const
Definition: doc.hxx:187
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)
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.
void setImagePreferredDPI(sal_Int32 nValue) override
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
struct _xmlTextWriter * xmlTextWriterPtr
std::shared_ptr< SvxForbiddenCharactersTable > mxForbiddenCharsTable