LibreOffice Module sw (master) 1
doc.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_INC_DOC_HXX
20#define INCLUDED_SW_INC_DOC_HXX
21
22// SwDoc interfaces
25#include <vcl/idle.hxx>
26#include "swdllapi.h"
27#include "swtypes.hxx"
28#include "toxe.hxx"
29#include "flyenum.hxx"
30#include "flypos.hxx"
31#include "swdbdata.hxx"
32#include <sfx2/objsh.hxx>
33#include <svl/style.hxx>
34#include <editeng/numitem.hxx>
35#include "tox.hxx"
36#include "frmfmt.hxx"
37#include "charfmt.hxx"
38#include "docary.hxx"
39#include "charformats.hxx"
40#include "pagedesc.hxx"
41#include "tblenum.hxx"
42#include "ndarr.hxx"
43#include "ndtyp.hxx"
44#include <memory>
45#include <mutex>
46#include <set>
47#include <tuple>
48#include <unordered_map>
49#include <vector>
50
51namespace editeng { class SvxBorderLine; }
52
53class SwExtTextInput;
54class EditFieldInfo;
55class Outliner;
56class OutputDevice;
57class Point;
58class SbxArray;
59class SdrObject;
60class SdrUndoAction;
62class SvxMacro;
65class SwCellFrame;
67class SwCursorShell;
68class SwCursor;
69class SwDocShell;
70class SwDrawView;
71class SwEditShell;
72class SwFormat;
74class SwFormatRefMark;
75class SwFootnoteIdxs;
76class SwFootnoteInfo;
77class SwEndNoteInfo;
79class SwDBManager;
80class SwNodeIndex;
81class SwNodeRange;
82class SwNumRule;
84class SwRootFrame;
85class SwRubyListEntry;
86class SwSectionFormat;
87class SwSectionData;
88class SwSelBoxes;
91class SwTabCols;
92class SwTable;
94class SwTableBox;
96class SwTableFormat;
98class SwTableNode;
99class SwTextBlocks;
101class SwUnoCursor;
102class SwViewShell;
103class SwDrawContact;
104class SdrView;
105class SdrMarkList;
106class SwAuthEntry;
107class SwLayoutCache;
108class IStyleAccess;
109struct SwCallMouseEvent;
110struct SwDocStat;
111struct SwSortOptions;
112struct SwDefTOXBase_Impl;
113class SwPrintUIOptions;
114struct SwConversionArgs;
115class SwRenderData;
129class IDocumentState;
134class SetGetExpFields;
137enum class SvMacroItemId : sal_uInt16;
138enum class SvxFrameDirection;
139enum class RndStdIds;
140
141namespace sw::mark { class MarkManager; }
142namespace sw {
143 enum class RedlineMode;
144 enum class FieldmarkMode;
145 class MetaFieldManager;
146 class UndoManager;
147 class IShellCursorSupplier;
148 class DocumentSettingManager;
149 class DocumentDeviceManager;
150 class DocumentDrawModelManager;
151 class DocumentChartDataProviderManager;
152 class DocumentTimerManager;
153 class DocumentLinksAdministrationManager;
154 class DocumentListItemsManager;
155 class DocumentListsManager;
156 class DocumentOutlineNodesManager;
157 class DocumentContentOperationsManager;
158 class DocumentRedlineManager;
159 class DocumentFieldsManager;
160 class DocumentStatisticsManager;
161 class DocumentStateManager;
162 class DocumentLayoutManager;
163 class DocumentStylePoolManager;
164 class DocumentExternalDataManager;
165 class GrammarContact;
166 class OnlineAccessibilityCheck;
167}
168
169namespace com::sun::star {
170 namespace container {
171 class XNameContainer; //< for getXForms()/isXForms()/initXForms() methods
172 }
173 namespace embed { class XStorage; }
174 namespace linguistic2 { class XHyphenatedWord; }
175 namespace linguistic2 { class XProofreadingIterator; }
176 namespace linguistic2 { class XSpellChecker1; }
177 namespace script::vba { class XVBAEventProcessor; }
178}
179
180namespace ooo::vba::word {
181 class XFind;
182}
183
184namespace sfx2 {
185 class IXmlIdRegistry;
186}
187
188void SetAllScriptItem( SfxItemSet& rSet, const SfxPoolItem& rItem );
189
190using SwRubyList = std::vector<std::unique_ptr<SwRubyListEntry>>;
191
192// Represents the model of a Writer document.
194{
195 friend class ::sw::DocumentContentOperationsManager;
196
197 friend void InitCore();
198 friend void FinitCore();
199
200 // private Member
201 std::unique_ptr<SwNodes> m_pNodes; //< document content (Nodes Array)
203 SwPageDescs m_PageDescs; //< PageDescriptors
204 Link<bool,void> maOle2Link; //< OLE 2.0-notification
205 /* @@@MAINTAINABILITY-HORROR@@@
206 Timer should not be members of the model
207 */
208 Idle maOLEModifiedIdle; //< Timer for update modified OLE-Objects
209 SwDBData maDBData; //< database descriptor
210 OUString msTOIAutoMarkURL; //< URL of table of index AutoMark file
211 std::vector<OUString> m_PatternNames; //< Array for names of document-templates
212 css::uno::Reference<css::container::XNameContainer>
213 mxXForms; //< container with XForms models
214 mutable css::uno::Reference< css::linguistic2::XProofreadingIterator > m_xGCIterator;
215
216 const std::unique_ptr< ::sw::mark::MarkManager> mpMarkManager;
217 const std::unique_ptr< ::sw::MetaFieldManager > m_pMetaFieldManager;
218 const std::unique_ptr< ::SwContentControlManager > m_pContentControlManager;
219 const std::unique_ptr< ::sw::DocumentDrawModelManager > m_pDocumentDrawModelManager;
220 const std::unique_ptr< ::sw::DocumentRedlineManager > m_pDocumentRedlineManager;
221 const std::unique_ptr< ::sw::DocumentStateManager > m_pDocumentStateManager;
222 const std::unique_ptr< ::sw::UndoManager > m_pUndoManager;
223 const std::unique_ptr< ::sw::DocumentSettingManager > m_pDocumentSettingManager;
224 const std::unique_ptr< ::sw::DocumentChartDataProviderManager > m_pDocumentChartDataProviderManager;
225 std::unique_ptr< ::sw::DocumentDeviceManager > m_pDeviceAccess;
226 const std::unique_ptr< ::sw::DocumentTimerManager > m_pDocumentTimerManager;
227 const std::unique_ptr< ::sw::DocumentLinksAdministrationManager > m_pDocumentLinksAdministrationManager;
228 const std::unique_ptr< ::sw::DocumentListItemsManager > m_pDocumentListItemsManager;
229 const std::unique_ptr< ::sw::DocumentListsManager > m_pDocumentListsManager;
230 const std::unique_ptr< ::sw::DocumentOutlineNodesManager > m_pDocumentOutlineNodesManager;
231 const std::unique_ptr< ::sw::DocumentContentOperationsManager > m_pDocumentContentOperationsManager;
232 const std::unique_ptr< ::sw::DocumentFieldsManager > m_pDocumentFieldsManager;
233 const std::unique_ptr< ::sw::DocumentStatisticsManager > m_pDocumentStatisticsManager;
234 const std::unique_ptr< ::sw::DocumentLayoutManager > m_pDocumentLayoutManager;
235 const std::unique_ptr< ::sw::DocumentStylePoolManager > m_pDocumentStylePoolManager;
236 const std::unique_ptr< ::sw::DocumentExternalDataManager > m_pDocumentExternalDataManager;
237
238 // Pointer
239 std::unique_ptr<SwFrameFormat> mpDfltFrameFormat; //< Default formats.
240 std::unique_ptr<SwFrameFormat> mpEmptyPageFormat; //< Format for the default empty page
241 std::unique_ptr<SwFrameFormat> mpColumnContFormat; //< Format for column container
242 std::unique_ptr<SwCharFormat> mpDfltCharFormat;
243 std::unique_ptr<SwTextFormatColl> mpDfltTextFormatColl; //< Defaultformatcollections
244 std::unique_ptr<SwGrfFormatColl> mpDfltGrfFormatColl;
245
246 std::unique_ptr<SwFrameFormats> mpFrameFormatTable; //< Format table
247 std::unique_ptr<SwCharFormats> mpCharFormatTable;
248 std::unique_ptr<SwFrameFormats> mpSpzFrameFormatTable;
249 std::unique_ptr<SwSectionFormats> mpSectionFormatTable;
250 std::unique_ptr<SwFrameFormats> mpTableFrameFormatTable; //< For tables
251 std::unique_ptr<SwTextFormatColls> mpTextFormatCollTable; //< FormatCollections
252 std::unique_ptr<SwGrfFormatColls> mpGrfFormatCollTable;
253
254 std::unique_ptr<SwTOXTypes> mpTOXTypes; //< Tables/indices
255 std::unique_ptr<SwDefTOXBase_Impl> mpDefTOXBases; //< defaults of SwTOXBase's
256
257 std::unique_ptr<SwDBManager> m_pOwnDBManager; //< own DBManager
258 SwDBManager * m_pDBManager; //< DBManager for evaluation of DB-fields.
259
261 std::unique_ptr<SwFootnoteInfo> mpFootnoteInfo;
262 std::unique_ptr<SwEndNoteInfo> mpEndNoteInfo;
263 std::unique_ptr<SwLineNumberInfo> mpLineNumberInfo;
264 std::unique_ptr<SwFootnoteIdxs> mpFootnoteIdxs;
265
266 SwDocShell *mpDocShell; //< Ptr to SfxDocShell of Doc.
267 SfxObjectShellLock mxTmpDocShell; //< A temporary shell that is used to copy OLE-Nodes
268
269 std::unique_ptr<SwAutoCorrExceptWord> mpACEWord;
271 std::unique_ptr<SwURLStateChanged> mpURLStateChgd; //< SfxClient for changes in INetHistory
272
274 SvNumberFormatter* mpNumberFormatter; //< NumFormatter for tables / fields
275
276 mutable std::unique_ptr<SwNumRuleTable> mpNumRuleTable; //< List of all named NumRules.
277
278 // Hash map to find numrules by name
279 mutable std::unordered_map<OUString, SwNumRule *> maNumRuleMap;
280
281 std::unique_ptr<SwPagePreviewPrtData> m_pPgPViewPrtData; //< Indenting / spacing for printing of page view.
283
284 std::unique_ptr<IStyleAccess> mpStyleAccess; //< handling of automatic styles
285 std::unique_ptr<SwLayoutCache> mpLayoutCache;
288 std::unique_ptr<sw::GrammarContact> mpGrammarContact; //< for grammar checking in paragraphs during editing
289 std::unique_ptr<sw::OnlineAccessibilityCheck> mpOnlineAccessibilityCheck;
290
291 css::uno::Reference< css::script::vba::XVBAEventProcessor > mxVbaEvents;
292 css::uno::Reference< ooo::vba::word::XFind > mxVbaFind;
293 css::uno::Reference<css::container::XNameContainer> m_xTemplateToProjectCache;
294
296 std::unique_ptr<SwTableAutoFormatTable> m_pTableStyles;
298 std::unique_ptr<SwCellStyleTable> mpCellStyles;
299private:
300 std::unique_ptr< ::sfx2::IXmlIdRegistry > m_pXmlIdRegistry;
301
302 // other
303
304 sal_uInt32 mnRsid; //< current session ID of the document
305 sal_uInt32 mnRsidRoot; //< session ID when the document was created
306
307 oslInterlockedCount mReferenceCount;
308
309 bool mbDtor : 1;
313 bool mbCopyIsMove : 1; //< TRUE: Copy is a hidden Move.
314 bool mbInReading : 1; //< TRUE: Document is in the process of being read.
315 bool mbInWriting : 1; //< TRUE: Document is in the process of being written.
316 bool mbInMailMerge : 1; //< TRUE: Document is in the process of being written by mail merge.
317 bool mbInXMLImport : 1; //< TRUE: During xml import, attribute portion building is not necessary.
318 bool mbInWriterfilterImport : 1; //< TRUE: writerfilter import (DOCX,RTF)
319 bool mbUpdateTOX : 1; //< TRUE: After loading document, update TOX.
320 bool mbInLoadAsynchron : 1; //< TRUE: Document is in the process of being loaded asynchronously.
321 bool mbIsAutoFormatRedline : 1; //< TRUE: Redlines are recorded by Autoformat.
324 bool mbAllOLENotify : 1; //< True: Notification of all objects is required.
325 bool mbInsOnlyTextGlssry : 1; //< True: insert 'only text' glossary into doc
326 bool mbContains_MSVBasic : 1; //< True: MS-VBasic exist is in our storage
327 bool mbClipBoard : 1; //< TRUE: this document represents the clipboard
328 bool mbColumnSelection : 1; //< TRUE: this content has been created by a column selection (clipboard docs only)
330
331 enum MissingDictionary { False = -1, Undefined = 0, True = 1 };
333
334 // true: Document contains at least one anchored object, which is anchored AT_PAGE with a content position.
335 // Thus, certain adjustment needed during formatting for these kind of anchored objects.
337
338 static SwAutoCompleteWord *s_pAutoCompleteWords; //< List of all words for AutoComplete
339
340 // private methods
341 SwFlyFrameFormat* MakeFlySection_( const SwPosition& rAnchPos,
342 const SwContentNode& rNode, RndStdIds eRequestId,
343 const SfxItemSet* pFlyAttrSet,
344 SwFrameFormat* );
345 sal_Int8 SetFlyFrameAnchor( SwFrameFormat& rFlyFormat, SfxItemSet& rSet, bool bNewFrames );
346
347 typedef SwFormat* (SwDoc::*FNCopyFormat)( const OUString&, SwFormat*, bool, bool );
348 SwFormat* CopyFormat( const SwFormat& rFormat, const SwFormatsBase& rFormatArr,
349 FNCopyFormat fnCopyFormat, const SwFormat& rDfltFormat );
350 void CopyFormatArr( const SwFormatsBase& rSourceArr, SwFormatsBase const & rDestArr,
351 FNCopyFormat fnCopyFormat, SwFormat& rDfltFormat );
352 void CopyPageDescHeaderFooterImpl( bool bCpyHeader,
353 const SwFrameFormat& rSrcFormat, SwFrameFormat& rDestFormat );
354
355 SwDoc( const SwDoc &) = delete;
356
357 // Database fields:
358 void AddUsedDBToList( std::vector<OUString>& rDBNameList,
359 const std::vector<OUString>& rUsedDBNames );
360 void AddUsedDBToList( std::vector<OUString>& rDBNameList, const OUString& rDBName );
361 static bool IsNameInArray( const std::vector<OUString>& rOldNames, const OUString& rName );
362 void GetAllDBNames( std::vector<OUString>& rAllDBNames );
363 static OUString ReplaceUsedDBs( const std::vector<OUString>& rUsedDBNames,
364 const OUString& rNewName, const OUString& rFormula );
365 static std::vector<OUString>& FindUsedDBs( const std::vector<OUString>& rAllDBNames,
366 const OUString& rFormula,
367 std::vector<OUString>& rUsedDBNames );
368
369 void EnsureNumberFormatter(); // must be called with mNumberFormatterMutex locked
370
371 bool UnProtectTableCells( SwTable& rTable );
372
375 bool SplitDoc( sal_uInt16 eDocType, const OUString& rPath, bool bOutline,
376 const SwTextFormatColl* pSplitColl, int nOutlineLevel = 0 );
377
378 // Update charts of given table.
379 void UpdateCharts_( const SwTable& rTable, SwViewShell const & rVSh ) const;
380
381 static bool SelectNextRubyChars( SwPaM& rPam, SwRubyListEntry& rRubyEntry );
382
383 // CharTimer calls this method.
384 void DoUpdateAllCharts();
385 DECL_DLLPRIVATE_LINK( DoUpdateModifiedOLE, Timer *, void );
386
387public:
388 SwFormat *MakeCharFormat_(const OUString &, SwFormat *, bool, bool );
389 SwFormat *MakeFrameFormat_(const OUString &, SwFormat *, bool, bool );
390
391private:
392 SwFormat *MakeTextFormatColl_(const OUString &, SwFormat *, bool, bool );
393
394private:
396
397 void InitTOXTypes();
398
399public:
402 DOCTYPE_MSWORD // This doc model comes from MS Word
403 };
405 DocumentType GetDocumentType() const { return meDocType; }
406 void SetDocumentType( DocumentType eDocType ) { meDocType = eDocType; }
407
408 // Life cycle
409 SwDoc();
410 ~SwDoc();
411
412 bool IsInDtor() const { return mbDtor; }
413
414 /* @@@MAINTAINABILITY-HORROR@@@
415 Implementation details made public.
416 */
417 SwNodes & GetNodes() { return *m_pNodes; }
418 SwNodes const& GetNodes() const { return *m_pNodes; }
419
420private:
421 friend class ::rtl::Reference<SwDoc>;
422
430 sal_Int32 acquire();
439 sal_Int32 release();
443public:
444 sal_Int32 getReferenceCount() const;
445
446 // IDocumentSettingAccess
447 IDocumentSettingAccess const & getIDocumentSettingAccess() const; //The IDocumentSettingAccess interface
448 IDocumentSettingAccess & getIDocumentSettingAccess();
449 ::sw::DocumentSettingManager & GetDocumentSettingManager(); //The implementation of the interface with some additional methods
450 ::sw::DocumentSettingManager const& GetDocumentSettingManager() const;
451 sal_uInt32 getRsid() const;
452 void setRsid( sal_uInt32 nVal );
453 sal_uInt32 getRsidRoot() const;
454 void setRsidRoot( sal_uInt32 nVal );
455
456 // IDocumentDeviceAccess
457 IDocumentDeviceAccess const & getIDocumentDeviceAccess() const;
458 IDocumentDeviceAccess & getIDocumentDeviceAccess();
459
460 // IDocumentMarkAccess
461 IDocumentMarkAccess* getIDocumentMarkAccess();
462 const IDocumentMarkAccess* getIDocumentMarkAccess() const;
463
464 // IDocumentRedlineAccess
465 IDocumentRedlineAccess const& getIDocumentRedlineAccess() const;
466 IDocumentRedlineAccess& getIDocumentRedlineAccess();
467
468 ::sw::DocumentRedlineManager const& GetDocumentRedlineManager() const;
469 ::sw::DocumentRedlineManager& GetDocumentRedlineManager();
470
471 // IDocumentUndoRedo
472 IDocumentUndoRedo & GetIDocumentUndoRedo();
473 IDocumentUndoRedo const& GetIDocumentUndoRedo() const;
474
475 // IDocumentLinksAdministration
476 IDocumentLinksAdministration const & getIDocumentLinksAdministration() const;
477 IDocumentLinksAdministration & getIDocumentLinksAdministration();
478
479 ::sw::DocumentLinksAdministrationManager const & GetDocumentLinksAdministrationManager() const;
480 ::sw::DocumentLinksAdministrationManager & GetDocumentLinksAdministrationManager();
481
482 // IDocumentFieldsAccess
483 IDocumentFieldsAccess const & getIDocumentFieldsAccess() const;
484 IDocumentFieldsAccess & getIDocumentFieldsAccess();
485
486 ::sw::DocumentFieldsManager & GetDocumentFieldsManager();
487
488 // Returns 0 if the field cannot hide para, or a positive integer indicating the field type
489 // "weight" when several hiding fields' FieldHidesPara() give conflicting results
490 int FieldCanHideParaWeight(SwFieldIds eFieldId) const;
491 bool FieldHidesPara(const SwField& rField) const;
492
493 // IDocumentContentOperations
494 IDocumentContentOperations const & getIDocumentContentOperations() const;
495 IDocumentContentOperations & getIDocumentContentOperations();
496 ::sw::DocumentContentOperationsManager const & GetDocumentContentOperationsManager() const;
497 ::sw::DocumentContentOperationsManager & GetDocumentContentOperationsManager();
498
499 bool UpdateParRsid( SwTextNode *pTextNode, sal_uInt32 nVal = 0 );
500 void UpdateRsid( const SwPaM &rRg, sal_Int32 nLen );
501
502 // IDocumentStylePoolAccess
503 IDocumentStylePoolAccess const & getIDocumentStylePoolAccess() const;
504 IDocumentStylePoolAccess & getIDocumentStylePoolAccess();
505
506 // SwLineNumberInfo
507 const SwLineNumberInfo& GetLineNumberInfo() const;
508 void SetLineNumberInfo(const SwLineNumberInfo& rInfo);
509
510 // IDocumentStatistics
511 IDocumentStatistics const & getIDocumentStatistics() const;
512 IDocumentStatistics & getIDocumentStatistics();
513
514 ::sw::DocumentStatisticsManager const & GetDocumentStatisticsManager() const;
515 ::sw::DocumentStatisticsManager & GetDocumentStatisticsManager();
516
517 // IDocumentState
518 IDocumentState const & getIDocumentState() const;
519 IDocumentState & getIDocumentState();
520
521 // IDocumentDrawModelAccess
522 void AddDrawUndo( std::unique_ptr<SdrUndoAction> );
523 IDocumentDrawModelAccess const & getIDocumentDrawModelAccess() const;
524 IDocumentDrawModelAccess & getIDocumentDrawModelAccess();
525
526 ::sw::DocumentDrawModelManager const & GetDocumentDrawModelManager() const;
527 ::sw::DocumentDrawModelManager & GetDocumentDrawModelManager();
528
529 // IDocumentLayoutAccess
530 IDocumentLayoutAccess const & getIDocumentLayoutAccess() const;
531 IDocumentLayoutAccess & getIDocumentLayoutAccess();
532
533 ::sw::DocumentLayoutManager const & GetDocumentLayoutManager() const;
534 ::sw::DocumentLayoutManager & GetDocumentLayoutManager();
535
536 // IDocumentTimerAccess
537 // Our own 'IdleTimer' calls the following method
538 IDocumentTimerAccess const & getIDocumentTimerAccess() const;
539 IDocumentTimerAccess & getIDocumentTimerAccess();
540
541 // IDocumentChartDataProviderAccess
542 IDocumentChartDataProviderAccess const & getIDocumentChartDataProviderAccess() const;
543 IDocumentChartDataProviderAccess & getIDocumentChartDataProviderAccess();
544
545 // IDocumentListItems
546 IDocumentListItems const & getIDocumentListItems() const;
547 IDocumentListItems & getIDocumentListItems();
548
549 // IDocumentOutlineNodes
550 IDocumentOutlineNodes const & getIDocumentOutlineNodes() const;
551 IDocumentOutlineNodes & getIDocumentOutlineNodes();
552
553 // IDocumentListsAccess
554 IDocumentListsAccess const & getIDocumentListsAccess() const;
555 IDocumentListsAccess & getIDocumentListsAccess();
556
557 //IDocumentExternalData
558 IDocumentExternalData const & getIDocumentExternalData() const;
559 IDocumentExternalData & getIDocumentExternalData();
560
561 //End of Interfaces
562
563 void setDocAccTitle( const OUString& rTitle ) { msDocAccTitle = rTitle; }
564 const OUString& getDocAccTitle() const { return msDocAccTitle; }
565
566 // INextInterface here
567 DECL_DLLPRIVATE_LINK(CalcFieldValueHdl, EditFieldInfo*, void);
568
569 // OLE ???
570 bool IsOLEPrtNotifyPending() const { return mbOLEPrtNotifyPending; }
571 inline void SetOLEPrtNotifyPending( bool bSet = true );
572 void PrtOLENotify( bool bAll ); // All or only marked
573
574 bool IsPrepareSelAll() const { return mbIsPrepareSelAll; }
575 void SetPrepareSelAll() { mbIsPrepareSelAll = true; }
576
578 {
579 mbContainsAtPageObjWithContentAnchor = bFlag;
580 }
582 {
583 return mbContainsAtPageObjWithContentAnchor;
584 }
585
591 SwPosFlyFrames GetAllFlyFormats( const SwPaM*,
592 bool bDrawAlso,
593 bool bAsCharAlso = false ) const;
594
595 SwFlyFrameFormat *MakeFlyFrameFormat (const OUString &rFormatName, SwFrameFormat *pDerivedFrom);
596 SwDrawFrameFormat *MakeDrawFrameFormat(const OUString &rFormatName, SwFrameFormat *pDerivedFrom);
597
598 // From now on this interface has to be used for Flys.
599 // pAnchorPos must be set, if they are not attached to pages AND
600 // Anchor is not already set at valid ContentPos
601 // in FlySet/FrameFormat.
602 /* new parameter bCalledFromShell
603
604 true: An existing adjust item at pAnchorPos is propagated to
605 the content node of the new fly section. That propagation only
606 takes place if there is no adjust item in the paragraph style
607 for the new fly section.
608
609 false: no propagation
610 */
611 SwFlyFrameFormat* MakeFlySection( RndStdIds eAnchorType,
612 const SwPosition* pAnchorPos,
613 const SfxItemSet* pSet = nullptr,
614 SwFrameFormat *pParent = nullptr,
615 bool bCalledFromShell = false );
616 SwFlyFrameFormat* MakeFlyAndMove( const SwPaM& rPam, const SfxItemSet& rSet,
617 const SwSelBoxes* pSelBoxes,
618 SwFrameFormat *pParent );
619
620 // Helper that checks for unique items for DrawingLayer items of type NameOrIndex
621 // and evtl. corrects that items to ensure unique names for that type. This call may
622 // modify/correct entries inside of the given SfxItemSet, and it will apply a name to
623 // the items in question (what is essential to make the named slots associated with
624 // these items work for the UNO API and thus e.g. for ODF import/export)
625 void CheckForUniqueItemForLineFillNameOrIndex(SfxItemSet& rSet);
626
627 bool SetFlyFrameAttr( SwFrameFormat& rFlyFormat, SfxItemSet& rSet );
628
629 bool SetFrameFormatToFly( SwFrameFormat& rFlyFormat, SwFrameFormat& rNewFormat,
630 SfxItemSet* pSet = nullptr, bool bKeepOrient = false );
631 void SetFlyFrameTitle( SwFlyFrameFormat& rFlyFrameFormat,
632 const OUString& sNewTitle );
633 void SetFlyFrameDescription( SwFlyFrameFormat& rFlyFrameFormat,
634 const OUString& sNewDescription );
635
636 // Footnotes
637 // Footnote information
638 const SwFootnoteInfo& GetFootnoteInfo() const { return *mpFootnoteInfo; }
639 void SetFootnoteInfo(const SwFootnoteInfo& rInfo);
640 const SwEndNoteInfo& GetEndNoteInfo() const { return *mpEndNoteInfo; }
641 void SetEndNoteInfo(const SwEndNoteInfo& rInfo);
642 SwFootnoteIdxs& GetFootnoteIdxs() { return *mpFootnoteIdxs; }
643 const SwFootnoteIdxs& GetFootnoteIdxs() const { return *mpFootnoteIdxs; }
645 bool SetCurFootnote( const SwPaM& rPam, const OUString& rNumStr,
646 bool bIsEndNote );
647
651 css::uno::Any
652 Spell( SwPaM&, css::uno::Reference< css::linguistic2::XSpellChecker1 > const &,
653 sal_uInt16* pPageCnt, sal_uInt16* pPageSt, bool bGrammarCheck,
654 SwRootFrame const* pLayout, // for grammar-check
655 SwConversionArgs *pConvArgs = nullptr ) const;
656
657 css::uno::Reference< css::linguistic2::XHyphenatedWord >
658 Hyphenate( SwPaM *pPam, const Point &rCursorPos,
659 sal_uInt16* pPageCnt, sal_uInt16* pPageSt );
660
661 // count words in pam
662 static void CountWords( const SwPaM& rPaM, SwDocStat& rStat );
663
664 // Glossary Document
665 bool IsInsOnlyTextGlossary() const { return mbInsOnlyTextGlssry; }
666
667 void Summary(SwDoc& rExtDoc, sal_uInt8 nLevel, sal_uInt8 nPara, bool bImpress);
668
669 void ChangeAuthorityData(const SwAuthEntry* pNewData);
670
671 bool IsInHeaderFooter( const SwNode& ) const;
672 SvxFrameDirection GetTextDirection( const SwPosition& rPos,
673 const Point* pPt = nullptr ) const;
674 bool IsInVerticalText( const SwPosition& rPos ) const;
675
676 // Database and DB-Manager
677 void SetDBManager( SwDBManager* pNewMgr ) { m_pDBManager = pNewMgr; }
678 SwDBManager* GetDBManager() const { return m_pDBManager; }
679 void ChangeDBFields( const std::vector<OUString>& rOldNames,
680 const OUString& rNewName );
681 void SetInitDBFields(bool b);
682
683 // Find out which databases are used by fields.
684 void GetAllUsedDB( std::vector<OUString>& rDBNameList,
685 const std::vector<OUString>* pAllDBNames = nullptr );
686
687 void ChgDBData( const SwDBData& rNewData );
688 SwDBData const & GetDBData();
689
690 // Some helper functions
691 OUString GetUniqueGrfName(std::u16string_view rPrefix = std::u16string_view()) const;
692 OUString GetUniqueOLEName() const;
693 OUString GetUniqueFrameName() const;
694 OUString GetUniqueShapeName() const;
695 OUString GetUniqueDrawObjectName() const;
696
697 o3tl::sorted_vector<SwRootFrame*> GetAllLayouts();
698
699 void SetFlyName( SwFlyFrameFormat& rFormat, const OUString& rName );
700 const SwFlyFrameFormat* FindFlyByName( const OUString& rName, SwNodeType nNdTyp = SwNodeType::NONE ) const;
701
702 static void GetGrfNms( const SwFlyFrameFormat& rFormat, OUString* pGrfName, OUString* pFltName );
703
704 // Set a valid name for all Flys that have none (Called by Readers after reading).
705 void SetAllUniqueFlyNames();
706
711 void ResetAttrs( const SwPaM &rRg,
712 bool bTextAttr = true,
714 const bool bSendDataChangedEvents = true,
715 SwRootFrame const* pLayout = nullptr);
716 void RstTextAttrs(const SwPaM &rRg, bool bInclRefToxMark = false,
717 bool bExactRange = false, SwRootFrame const* pLayout = nullptr);
718
721 void SetAttr( const SfxPoolItem&, SwFormat& );
724 void SetAttr( const SfxItemSet&, SwFormat& );
725
726 // method to reset a certain attribute at the given format
727 void ResetAttrAtFormat( const sal_uInt16 nWhichId,
728 SwFormat& rChangedFormat );
729
732 void SetDefault( const SfxPoolItem& );
733 void SetDefault( const SfxItemSet& );
734
735 // Query default attribute in this document.
736 const SfxPoolItem& GetDefault( sal_uInt16 nFormatHint ) const;
737 template<class T> const T& GetDefault( TypedWhichId<T> nWhich ) const
738 {
739 return static_cast<const T&>(GetDefault(sal_uInt16(nWhich)));
740 }
741
742 // Do not expand text attributes.
743 bool DontExpandFormat( const SwPosition& rPos, bool bFlag = true );
744
745 // Formats
746 const SwFrameFormats* GetFrameFormats() const { return mpFrameFormatTable.get(); }
747 SwFrameFormats* GetFrameFormats() { return mpFrameFormatTable.get(); }
748 const SwCharFormats* GetCharFormats() const { return mpCharFormatTable.get();}
749 SwCharFormats* GetCharFormats() { return mpCharFormatTable.get();}
750
751 // LayoutFormats (frames, DrawObjects), sometimes const sometimes not
752 const SwFrameFormats* GetSpzFrameFormats() const { return mpSpzFrameFormatTable.get(); }
753 SwFrameFormats* GetSpzFrameFormats() { return mpSpzFrameFormatTable.get(); }
754
755 const SwFrameFormat *GetDfltFrameFormat() const { return mpDfltFrameFormat.get(); }
756 SwFrameFormat *GetDfltFrameFormat() { return mpDfltFrameFormat.get(); }
757 const SwFrameFormat *GetEmptyPageFormat() const { return mpEmptyPageFormat.get(); }
758 SwFrameFormat *GetEmptyPageFormat() { return mpEmptyPageFormat.get(); }
759 const SwFrameFormat *GetColumnContFormat() const{ return mpColumnContFormat.get(); }
760 SwFrameFormat *GetColumnContFormat() { return mpColumnContFormat.get(); }
761 const SwCharFormat *GetDfltCharFormat() const { return mpDfltCharFormat.get();}
762 SwCharFormat *GetDfltCharFormat() { return mpDfltCharFormat.get();}
763
764 // @return the interface of the management of (auto)styles
765 IStyleAccess& GetIStyleAccess() { return *mpStyleAccess; }
766
767 // Remove all language dependencies from all existing formats
768 void RemoveAllFormatLanguageDependencies();
769
770 SwFrameFormat *MakeFrameFormat(const OUString &rFormatName, SwFrameFormat *pDerivedFrom,
771 bool bBroadcast = false, bool bAuto = true);
772 void DelFrameFormat( SwFrameFormat *pFormat, bool bBroadcast = false );
773 SwFrameFormat* FindFrameFormatByName( const OUString& rName ) const;
774
775 SwCharFormat *MakeCharFormat(const OUString &rFormatName, SwCharFormat *pDerivedFrom,
776 bool bBroadcast = false );
777 void DelCharFormat(size_t nFormat, bool bBroadcast = false);
778 void DelCharFormat(SwCharFormat const * pFormat, bool bBroadcast = false);
779 SwCharFormat* FindCharFormatByName( const OUString& rName ) const
780 { return mpCharFormatTable->FindFormatByName(rName); }
781
782 // Formatcollections (styles)
783 // TXT
784 const SwTextFormatColl* GetDfltTextFormatColl() const { return mpDfltTextFormatColl.get(); }
785 SwTextFormatColl* GetDfltTextFormatColl() { return mpDfltTextFormatColl.get(); }
786 const SwTextFormatColls *GetTextFormatColls() const { return mpTextFormatCollTable.get(); }
787 SwTextFormatColls *GetTextFormatColls() { return mpTextFormatCollTable.get(); }
788 SwTextFormatColl *MakeTextFormatColl( const OUString &rFormatName,
789 SwTextFormatColl *pDerivedFrom,
790 bool bBroadcast = false);
791 SwConditionTextFormatColl* MakeCondTextFormatColl( const OUString &rFormatName,
792 SwTextFormatColl *pDerivedFrom,
793 bool bBroadcast = false);
794 void DelTextFormatColl(size_t nFormat, bool bBroadcast = false);
795 void DelTextFormatColl( SwTextFormatColl const * pColl, bool bBroadcast = false );
803 bool SetTextFormatColl(const SwPaM &rRg, SwTextFormatColl *pFormat,
804 const bool bReset = true,
805 const bool bResetListAttrs = false,
806 SwRootFrame const* pLayout = nullptr);
807 SwTextFormatColl* FindTextFormatCollByName( const OUString& rName ) const
808 { return mpTextFormatCollTable->FindFormatByName(rName); }
809
810 void ChkCondColls();
811
812 const SwGrfFormatColl* GetDfltGrfFormatColl() const { return mpDfltGrfFormatColl.get(); }
813 SwGrfFormatColl* GetDfltGrfFormatColl() { return mpDfltGrfFormatColl.get(); }
814 const SwGrfFormatColls *GetGrfFormatColls() const { return mpGrfFormatCollTable.get(); }
815 SwGrfFormatColl *MakeGrfFormatColl(const OUString &rFormatName,
816 SwGrfFormatColl *pDerivedFrom);
817
818 // Table formatting
819 const SwFrameFormats* GetTableFrameFormats() const { return mpTableFrameFormatTable.get(); }
820 SwFrameFormats* GetTableFrameFormats() { return mpTableFrameFormatTable.get(); }
821 size_t GetTableFrameFormatCount( bool bUsed ) const;
822 SwFrameFormat& GetTableFrameFormat(size_t nFormat, bool bUsed ) const;
823 SwTableFormat* MakeTableFrameFormat(const OUString &rFormatName, SwFrameFormat *pDerivedFrom);
824 void DelTableFrameFormat( SwTableFormat* pFormat );
825 SwTableFormat* FindTableFormatByName( const OUString& rName, bool bAll = false ) const;
826
829 size_t GetFlyCount( FlyCntType eType, bool bIgnoreTextBoxes = false ) const;
830 SwFrameFormat* GetFlyNum(size_t nIdx, FlyCntType eType, bool bIgnoreTextBoxes = false );
831 std::vector<SwFrameFormat const*> GetFlyFrameFormats(
832 FlyCntType eType,
833 bool bIgnoreTextBoxes);
834
835 // Copy formats in own arrays and return them.
836 SwFrameFormat *CopyFrameFormat ( const SwFrameFormat& );
837 SwCharFormat *CopyCharFormat( const SwCharFormat& );
838 SwTextFormatColl* CopyTextColl( const SwTextFormatColl& rColl );
839 SwGrfFormatColl* CopyGrfColl( const SwGrfFormatColl& rColl );
840
841 // Replace all styles with those from rSource.
842 void ReplaceStyles( const SwDoc& rSource, bool bIncludePageStyles = true );
843
844 // Replace all property defaults with those from rSource.
845 void ReplaceDefaults( const SwDoc& rSource );
846
847 // Replace all compatibility options with those from rSource.
848 void ReplaceCompatibilityOptions( const SwDoc& rSource );
849
853 void ReplaceUserDefinedDocumentProperties( const css::uno::Reference< css::document::XDocumentProperties >& xSourceDocProps );
854
859 void ReplaceDocumentProperties(const SwDoc& rSource, bool mailMerge = false);
860
861 // Query if style (paragraph- / character- / frame- / page-) is used.
862 bool IsUsed( const sw::BroadcastingModify& ) const;
864 bool IsUsed( const SwTableAutoFormat& ) const;
865 bool IsUsed( const SwNumRule& ) const;
866
867 // Set name of newly loaded document template.
868 size_t SetDocPattern(const OUString& rPatternName);
869
870 // @return name of document template. Can be 0!
871 const OUString* GetDocPattern(size_t nPos) const;
872
873 // travel over PaM Ring
874 bool InsertGlossary( SwTextBlocks& rBlock, const OUString& rEntry,
875 SwPaM& rPaM, SwCursorShell* pShell = nullptr);
876
879 static void CalculatePagesForPrinting( const SwRootFrame& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport,
880 sal_Int32 nDocPageCount );
881 static void UpdatePagesForPrintingWithPostItData( SwRenderData &rData, const SwPrintUIOptions &rOptions,
882 sal_Int32 nDocPageCount );
883 static void CalculatePagePairsForProspectPrinting( const SwRootFrame& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions,
884 sal_Int32 nDocPageCount );
885 static void CalculateNonBlankPages( const SwRootFrame& rLayout, sal_uInt16& nDocPageCount, sal_uInt16& nActualPage );
886
887 // PageDescriptor interface.
888 size_t GetPageDescCnt() const { return m_PageDescs.size(); }
889 const SwPageDesc& GetPageDesc(const size_t i) const { return *m_PageDescs[i]; }
890 SwPageDesc& GetPageDesc(size_t const i) { return *m_PageDescs[i]; }
891 SwPageDesc* FindPageDesc(const OUString& rName, size_t* pPos = nullptr) const;
892 // Just searches the pointer in the m_PageDescs vector!
893 bool ContainsPageDesc(const SwPageDesc *pDesc, size_t* pPos) const;
894
897 void CopyPageDesc( const SwPageDesc& rSrcDesc, SwPageDesc& rDstDesc,
898 bool bCopyPoolIds = true );
899
902 void CopyHeader( const SwFrameFormat& rSrcFormat, SwFrameFormat& rDestFormat )
903 { CopyPageDescHeaderFooterImpl( true, rSrcFormat, rDestFormat ); }
904
907 void CopyFooter( const SwFrameFormat& rSrcFormat, SwFrameFormat& rDestFormat )
908 { CopyPageDescHeaderFooterImpl( false, rSrcFormat, rDestFormat ); }
909
910 // For Reader
911 void ChgPageDesc( const OUString & rName, const SwPageDesc& );
912 void ChgPageDesc( size_t i, const SwPageDesc& );
913 void DelPageDesc( const OUString & rName, bool bBroadcast = false);
914 void DelPageDesc( size_t i, bool bBroadcast = false );
915 void PreDelPageDesc(SwPageDesc const * pDel);
916 SwPageDesc* MakePageDesc(const OUString &rName, const SwPageDesc* pCpy = nullptr,
917 bool bRegardLanguage = true,
918 bool bBroadcast = false);
919 void BroadcastStyleOperation(const OUString& rName, SfxStyleFamily eFamily,
920 SfxHintId nOp);
921
924 void CheckDefaultPageFormat();
925
926 // Methods for tables/indices
927 static sal_uInt16 GetCurTOXMark( const SwPosition& rPos, SwTOXMarks& );
928 void DeleteTOXMark( const SwTOXMark* pTOXMark );
929 const SwTOXMark& GotoTOXMark( const SwTOXMark& rCurTOXMark,
930 SwTOXSearch eDir, bool bInReadOnly );
931
932 // Insert/Renew table/index
933 SwTOXBaseSection* InsertTableOf( const SwPosition& rPos,
934 const SwTOXBase& rTOX,
935 const SfxItemSet* pSet = nullptr,
936 bool bExpand = false,
937 SwRootFrame const* pLayout = nullptr);
938 SwTOXBaseSection* InsertTableOf( const SwPaM& aPam,
939 const SwTOXBase& rTOX,
940 const SfxItemSet* pSet = nullptr,
941 bool bExpand = false,
942 SwRootFrame const* pLayout = nullptr );
943 void InsertTableOf( SwNodeOffset nSttNd, SwNodeOffset nEndNd,
944 const SwTOXBase& rTOX,
945 const SfxItemSet* pSet );
946 static SwTOXBase* GetCurTOX( const SwPosition& rPos );
947 static const SwAttrSet& GetTOXBaseAttrSet(const SwTOXBase& rTOX);
948
949 bool DeleteTOX( const SwTOXBase& rTOXBase, bool bDelNodes );
950 OUString GetUniqueTOXBaseName( const SwTOXType& rType,
951 const OUString& sChkStr ) const;
952
953 bool SetTOXBaseName(const SwTOXBase& rTOXBase, const OUString& rName);
954
955 // After reading file update all tables/indices
956 void SetUpdateTOX( bool bFlag ) { mbUpdateTOX = bFlag; }
957 bool IsUpdateTOX() const { return mbUpdateTOX; }
958
959 const OUString& GetTOIAutoMarkURL() const {return msTOIAutoMarkURL;}
960 void SetTOIAutoMarkURL(const OUString& rSet) {msTOIAutoMarkURL = rSet;}
961
962 bool IsInReading() const { return mbInReading; }
963 void SetInReading( bool bNew ) { mbInReading = bNew; }
964
965 bool IsInWriting() const { return mbInWriting; }
966 void SetInWriting(bool bNew) { mbInWriting = bNew; }
967
968 bool IsInMailMerge() const { return mbInMailMerge; }
969 void SetInMailMerge( bool bNew ) { mbInMailMerge = bNew; }
970
971 bool IsClipBoard() const { return mbClipBoard; }
972 // N.B.: must be called right after constructor! (@see GetXmlIdRegistry)
973 void SetClipBoard( bool bNew ) { mbClipBoard = bNew; }
974
975 bool IsColumnSelection() const { return mbColumnSelection; }
976 void SetColumnSelection( bool bNew ) { mbColumnSelection = bNew; }
977
978 bool IsInXMLImport() const { return mbInXMLImport; }
979 void SetInXMLImport( bool bNew ) { mbInXMLImport = bNew; }
980 bool IsInWriterfilterImport() const { return mbInWriterfilterImport; }
981 void SetInWriterfilterImport(bool const b) { mbInWriterfilterImport = b; }
982
983 // Manage types of tables/indices
984 sal_uInt16 GetTOXTypeCount( TOXTypes eTyp ) const;
985 const SwTOXType* GetTOXType( TOXTypes eTyp, sal_uInt16 nId ) const;
986 const SwTOXType* InsertTOXType( const SwTOXType& rTyp );
987 const SwTOXTypes& GetTOXTypes() const { return *mpTOXTypes; }
988
989 const SwTOXBase* GetDefaultTOXBase( TOXTypes eTyp, bool bCreate );
990 void SetDefaultTOXBase(const SwTOXBase& rBase);
991
992 // Key for management of index.
993 void GetTOIKeys(SwTOIKeyType eTyp, std::vector<OUString>& rArr,
994 SwRootFrame const& rLayout) const;
995
996 // Sort table text.
997 bool SortTable(const SwSelBoxes& rBoxes, const SwSortOptions&);
998 bool SortText(const SwPaM&, const SwSortOptions&);
999
1000 // Correct the SwPosition-Objects that are registered with the document
1001 // e. g. Bookmarks or tables/indices.
1002 // If bMoveCursor is set move Cursor too.
1003
1004 // Set everything in rOldNode on rNewPos + Offset.
1005 void CorrAbs(
1006 const SwNode& rOldNode,
1007 const SwPosition& rNewPos,
1008 const sal_Int32 nOffset = 0,
1009 bool bMoveCursor = false );
1010
1011 // Set everything in the range of [rStartNode, rEndNode] to rNewPos.
1012 static void CorrAbs(
1013 const SwNodeIndex& rStartNode,
1014 const SwNodeIndex& rEndNode,
1015 const SwPosition& rNewPos,
1016 bool bMoveCursor = false );
1017
1018 // Set everything in this range from rRange to rNewPos.
1019 static void CorrAbs(
1020 const SwPaM& rRange,
1021 const SwPosition& rNewPos,
1022 bool bMoveCursor = false );
1023
1024 // Set everything in rOldNode to relative Pos.
1025 void CorrRel(
1026 const SwNode& rOldNode,
1027 const SwPosition& rNewPos,
1028 const sal_Int32 nOffset = 0,
1029 bool bMoveCursor = false );
1030
1031 // Query / set rules for Outline.
1033 {
1034 return mpOutlineRule;
1035 }
1036 void SetOutlineNumRule( const SwNumRule& rRule );
1037 void PropagateOutlineRule();
1038
1039 // Outline - promote / demote.
1040 bool OutlineUpDown(const SwPaM& rPam, short nOffset, SwRootFrame const* pLayout = nullptr);
1041
1043 bool MoveOutlinePara( const SwPaM& rPam, SwOutlineNodes::difference_type nOffset);
1044
1045 bool GotoOutline(SwPosition& rPos, const OUString& rName, SwRootFrame const* = nullptr) const;
1046
1057 OUString SetNumRule( const SwPaM&,
1058 const SwNumRule&,
1059 bool bCreateNewList,
1060 SwRootFrame const* pLayout = nullptr,
1061 const OUString& sContinuedListId = OUString(),
1062 bool bSetItem = true,
1063 const bool bResetIndentAttrs = false );
1064 void SetCounted(const SwPaM&, bool bCounted, SwRootFrame const* pLayout);
1065
1066 void MakeUniqueNumRules(const SwPaM & rPaM);
1067
1068 void SetNumRuleStart( const SwPosition& rPos, bool bFlag = true );
1069 void SetNodeNumStart( const SwPosition& rPos, sal_uInt16 nStt );
1070
1071 // sw_redlinehide: may set rPos to different node (the one with the NumRule)
1072 static SwNumRule* GetNumRuleAtPos(SwPosition& rPos, SwRootFrame const* pLayout = nullptr);
1073
1074 const SwNumRuleTable& GetNumRuleTable() const { return *mpNumRuleTable; }
1075
1081 void AddNumRule(SwNumRule * pRule);
1082
1083 // add optional parameter <eDefaultNumberFormatPositionAndSpaceMode>
1084 sal_uInt16 MakeNumRule( const OUString &rName,
1085 const SwNumRule* pCpy = nullptr,
1086 bool bBroadcast = false,
1087 const SvxNumberFormat::SvxNumPositionAndSpaceMode eDefaultNumberFormatPositionAndSpaceMode =
1089 sal_uInt16 FindNumRule( std::u16string_view rName ) const;
1090 SwNumRule* FindNumRulePtr( const OUString& rName ) const;
1091
1092 // Deletion only possible if Rule is not used!
1093 bool RenameNumRule(const OUString & aOldName, const OUString & aNewName,
1094 bool bBroadcast = false);
1095 bool DelNumRule( const OUString& rName, bool bBroadCast = false );
1096 OUString GetUniqueNumRuleName( const OUString* pChkStr = nullptr, bool bAutoNum = true ) const;
1097
1098 void UpdateNumRule(); // Update all invalids.
1099 void ChgNumRuleFormats( const SwNumRule& rRule );
1100 void ReplaceNumRule( const SwPosition& rPos, const OUString& rOldRule,
1101 const OUString& rNewRule );
1102
1103 // Goto next/previous on same level.
1104 static bool GotoNextNum( SwPosition&, SwRootFrame const* pLayout,
1105 bool bOverUpper = true,
1106 sal_uInt8* pUpper = nullptr, sal_uInt8* pLower = nullptr );
1107 static bool GotoPrevNum( SwPosition&, SwRootFrame const* pLayout,
1108 bool bOverUpper = true );
1109
1133 const SwNumRule * SearchNumRule(const SwPosition & rPos,
1134 const bool bForward,
1135 const bool bNum,
1136 const bool bOutline,
1137 int nNonEmptyAllowed,
1138 OUString& sListId,
1139 SwRootFrame const* pLayout,
1140 const bool bInvestigateStartNode = false );
1141
1142 // Paragraphs without numbering but with indents.
1143 bool NoNum( const SwPaM& );
1144
1145 // Delete, splitting of numbering list.
1146 void DelNumRules(const SwPaM&, SwRootFrame const* pLayout = nullptr);
1147
1148 // Invalidates all numrules
1149 void InvalidateNumRules();
1150
1151 bool NumUpDown(const SwPaM&, bool bDown, SwRootFrame const* pLayout = nullptr);
1152
1155 bool MoveParagraph(SwPaM&, SwNodeOffset nOffset, bool bIsOutlMv = false);
1156 bool MoveParagraphImpl(SwPaM&, SwNodeOffset nOffset, bool bIsOutlMv, SwRootFrame const*);
1157
1158 bool NumOrNoNum( SwNode& rIdx, bool bDel = false);
1159
1160 void StopNumRuleAnimations( const OutputDevice* );
1161
1172 const SwTable* InsertTable( const SwInsertTableOptions& rInsTableOpts, // HeadlineNoBorder
1173 const SwPosition& rPos, sal_uInt16 nRows,
1174 sal_uInt16 nCols, sal_Int16 eAdjust,
1175 const SwTableAutoFormat* pTAFormat = nullptr,
1176 const std::vector<sal_uInt16> *pColArr = nullptr,
1177 bool bCalledFromShell = false,
1178 bool bNewModel = true );
1179
1180 // If index is in a table, return TableNode, else 0.
1181 static SwTableNode* IsIdxInTable( const SwNodeIndex& rIdx );
1182 static SwTableNode* IsInTable( const SwNode& );
1183
1184 // Create a balanced table out of the selected range.
1185 const SwTable* TextToTable( const SwInsertTableOptions& rInsTableOpts, // HeadlineNoBorder,
1186 const SwPaM& rRange, sal_Unicode cCh,
1187 sal_Int16 eAdjust,
1188 const SwTableAutoFormat* );
1189
1190 // text to table conversion - API support
1191 const SwTable* TextToTable( const std::vector< std::vector<SwNodeRange> >& rTableNodes );
1192
1193 bool TableToText( const SwTableNode* pTableNd, sal_Unicode cCh );
1194
1195 // Create columns / rows in table.
1196 void InsertCol( const SwCursor& rCursor,
1197 sal_uInt16 nCnt = 1, bool bBehind = true );
1198 bool InsertCol( const SwSelBoxes& rBoxes,
1199 sal_uInt16 nCnt = 1, bool bBehind = true );
1200 void InsertRow( const SwCursor& rCursor,
1201 sal_uInt16 nCnt = 1, bool bBehind = true );
1202 bool InsertRow( const SwSelBoxes& rBoxes,
1203 sal_uInt16 nCnt = 1, bool bBehind = true );
1204
1205 // Delete Columns/Rows in table.
1206 enum class RowColMode { DeleteRow = 0, DeleteColumn = 1, DeleteProtected = 2 };
1207 bool DeleteRowCol(const SwSelBoxes& rBoxes, RowColMode eMode = RowColMode::DeleteRow);
1208 void DeleteRow( const SwCursor& rCursor );
1209 void DeleteCol( const SwCursor& rCursor );
1210
1211 // Split / concatenate boxes in table.
1212 bool SplitTable( const SwSelBoxes& rBoxes, bool bVert,
1213 sal_uInt16 nCnt, bool bSameHeight = false );
1214
1215 TableMergeErr MergeTable( SwPaM& rPam );
1216 OUString GetUniqueTableName() const;
1217 bool IsInsTableFormatNum() const;
1218 bool IsInsTableChangeNumFormat() const;
1219 bool IsInsTableAlignNum() const;
1220 bool IsSplitVerticalByDefault() const;
1221 void SetSplitVerticalByDefault(bool value);
1222
1223 // From FEShell (for Undo and BModified).
1224 static void GetTabCols( SwTabCols &rFill, const SwCellFrame* pBoxFrame );
1225 void SetTabCols( const SwTabCols &rNew, bool bCurRowOnly,
1226 const SwCellFrame* pBoxFrame );
1227 static void GetTabRows( SwTabCols &rFill, const SwCellFrame* pBoxFrame );
1228 void SetTabRows( const SwTabCols &rNew, bool bCurColOnly,
1229 const SwCellFrame* pBoxFrame );
1230
1231 // Direct access for UNO.
1232 void SetTabCols(SwTable& rTab, const SwTabCols &rNew, const SwTabCols &rOld,
1233 const SwTableBox *pStart, bool bCurRowOnly);
1234
1235 void SetRowsToRepeat( SwTable &rTable, sal_uInt16 nSet );
1236
1239 bool SetTableAutoFormat(const SwSelBoxes& rBoxes, const SwTableAutoFormat& rNew, bool bResetDirect = false, bool isSetStyleName = false);
1240
1241 // Query attributes.
1242 bool GetTableAutoFormat( const SwSelBoxes& rBoxes, SwTableAutoFormat& rGet );
1243
1245 SwTableAutoFormatTable& GetTableStyles();
1247 {
1248 return const_cast<SwDoc*>(this)->GetTableStyles();
1249 }
1251 bool HasTableStyles() const { return m_pTableStyles != nullptr; }
1252 // Create a new table style. Tracked by Undo.
1253 SwTableAutoFormat* MakeTableStyle(const OUString& rName, bool bBroadcast = false);
1254 // Delete table style named rName. Tracked by undo.
1255 std::unique_ptr<SwTableAutoFormat> DelTableStyle(const OUString& rName, bool bBroadcast = false);
1256 // Change (replace) a table style named rName. Tracked by undo.
1257 void ChgTableStyle(const OUString& rName, const SwTableAutoFormat& rNewFormat);
1258
1259 const SwCellStyleTable& GetCellStyles() const { return *mpCellStyles; }
1260 SwCellStyleTable& GetCellStyles() { return *mpCellStyles; }
1261
1262 void AppendUndoForInsertFromDB( const SwPaM& rPam, bool bIsTable );
1263
1264 void SetColRowWidthHeight( SwTableBox& rCurrentBox, TableChgWidthHeightType eType,
1265 SwTwips nAbsDiff, SwTwips nRelDiff );
1266 SwTableBoxFormat* MakeTableBoxFormat();
1267 SwTableLineFormat* MakeTableLineFormat();
1268
1269 // helper function: cleanup before checking number value
1270 bool IsNumberFormat( std::u16string_view aString, sal_uInt32& F_Index, double& fOutNumber);
1271 // Check if box has numerical value. Change format of box if required.
1272 void ChkBoxNumFormat( SwTableBox& rCurrentBox, bool bCallUpdate );
1273 void SetTableBoxFormulaAttrs( SwTableBox& rBox, const SfxItemSet& rSet );
1274 void ClearBoxNumAttrs( SwNode& rNode );
1275 void ClearLineNumAttrs( SwPosition const & rPos );
1276
1277 bool InsCopyOfTable( SwPosition& rInsPos, const SwSelBoxes& rBoxes,
1278 const SwTable* pCpyTable, bool bCpyName = false,
1279 bool bCorrPos = false, const OUString& rStyleName = "" );
1280
1281 void UnProtectCells( const OUString& rTableName );
1282 bool UnProtectCells( const SwSelBoxes& rBoxes );
1283 void UnProtectTables( const SwPaM& rPam );
1284 bool HasTableAnyProtection( const SwPosition* pPos,
1285 const OUString* pTableName,
1286 bool* pFullTableProtection );
1287
1288 // Split table at baseline position, i.e. create a new table.
1289 void SplitTable( const SwPosition& rPos, SplitTable_HeadlineOption eMode,
1290 bool bCalcNewSize );
1291
1294 bool MergeTable( const SwPosition& rPos, bool bWithPrev );
1295
1296 // Make charts of given table update.
1297 void UpdateCharts( const OUString& rName ) const;
1298
1299 // Update all charts, for that exists any table.
1300 void UpdateAllCharts() { DoUpdateAllCharts(); }
1301
1302 // Table is renamed and refreshes charts.
1303 void SetTableName( SwFrameFormat& rTableFormat, const OUString &rNewName );
1304
1305 // @return the reference in document that is set for name.
1306 const SwFormatRefMark* GetRefMark( std::u16string_view rName ) const;
1307
1308 // @return RefMark via index - for UNO.
1309 const SwFormatRefMark* GetRefMark( sal_uInt16 nIndex ) const;
1310
1313 sal_uInt16 GetRefMarks( std::vector<OUString>* = nullptr ) const;
1314
1315 // Insert label. If a FlyFormat is created, return it.
1316 SwFlyFrameFormat* InsertLabel( const SwLabelType eType, const OUString &rText, const OUString& rSeparator,
1317 const OUString& rNumberingSeparator,
1318 const bool bBefore, const sal_uInt16 nId, const SwNodeOffset nIdx,
1319 const OUString& rCharacterStyle,
1320 const bool bCpyBrd );
1321 SwFlyFrameFormat* InsertDrawLabel(
1322 const OUString &rText, const OUString& rSeparator, const OUString& rNumberSeparator,
1323 const sal_uInt16 nId, const OUString& rCharacterStyle, SdrObject& rObj );
1324
1325 // Query attribute pool.
1326 const SwAttrPool& GetAttrPool() const { return *mpAttrPool; }
1327 SwAttrPool& GetAttrPool() { return *mpAttrPool; }
1328
1329 // Search for an EditShell.
1330 SwEditShell const * GetEditShell() const;
1331 SwEditShell* GetEditShell();
1332 ::sw::IShellCursorSupplier * GetIShellCursorSupplier();
1333
1334 // OLE 2.0-notification.
1335 void SetOle2Link(const Link<bool,void>& rLink) {maOle2Link = rLink;}
1336 const Link<bool,void>& GetOle2Link() const {return maOle2Link;}
1337
1338 // insert section (the ODF kind of section, not the nodesarray kind)
1339 SwSection * InsertSwSection(SwPaM const& rRange, SwSectionData &,
1340 std::tuple<SwTOXBase const*, sw::RedlineMode, sw::FieldmarkMode> const* pTOXBase,
1341 SfxItemSet const*const pAttr, bool const bUpdate = true);
1342 static sal_uInt16 IsInsRegionAvailable( const SwPaM& rRange,
1343 const SwNode** ppSttNd = nullptr );
1344 static SwSection* GetCurrSection( const SwPosition& rPos );
1345 SwSectionFormats& GetSections() { return *mpSectionFormatTable; }
1346 const SwSectionFormats& GetSections() const { return *mpSectionFormatTable; }
1347 SwSectionFormat *MakeSectionFormat();
1348 void DelSectionFormat( SwSectionFormat *pFormat, bool bDelNodes = false );
1349 void UpdateSection(size_t const nSect, SwSectionData &,
1350 SfxItemSet const*const = nullptr, bool const bPreventLinkUpdate = false);
1351 OUString GetUniqueSectionName( const OUString* pChkStr = nullptr ) const;
1352
1353 /* @@@MAINTAINABILITY-HORROR@@@
1354 The model should not have anything to do with a shell.
1355 Unnecessary compile/link time dependency.
1356 */
1357
1358 // Pointer to SfxDocShell from Doc. Can be 0!!
1359 SwDocShell* GetDocShell() { return mpDocShell; }
1360 const SwDocShell* GetDocShell() const { return mpDocShell; }
1361 void SetDocShell( SwDocShell* pDSh );
1362
1365 void SetTmpDocShell( SfxObjectShellLock rLock ) { mxTmpDocShell = rLock; }
1366 const SfxObjectShellLock& GetTmpDocShell() const { return mxTmpDocShell; }
1367
1368 // For Autotexts? (text modules) They have only one SVPersist at their disposal.
1369 SfxObjectShell* GetPersist() const;
1370
1371 // Pointer to storage of SfxDocShells. Can be 0!!!
1372 css::uno::Reference< css::embed::XStorage > GetDocStorage();
1373
1374 // Query / set flag indicating if document is loaded asynchronously at this moment.
1375 bool IsInLoadAsynchron() const { return mbInLoadAsynchron; }
1376 void SetInLoadAsynchron( bool bFlag ) { mbInLoadAsynchron = bFlag; }
1377
1378 // For Drag&Move: (e.g. allow "moving" of RefMarks)
1379 bool IsCopyIsMove() const { return mbCopyIsMove; }
1380 void SetCopyIsMove( bool bFlag ) { mbCopyIsMove = bFlag; }
1381
1382 SwDrawContact* GroupSelection( SdrView& );
1383 void UnGroupSelection( SdrView& );
1384 bool DeleteSelection( SwDrawView& );
1385
1386 // Invalidates OnlineSpell-WrongLists.
1387 void SpellItAgainSam( bool bInvalid, bool bOnlyWrong, bool bSmartTags );
1388 void InvalidateAutoCompleteFlag();
1389
1390 void SetCalcFieldValueHdl(Outliner* pOutliner);
1391
1392 // Query if URL was visited.
1393 // Query via Doc, if only a Bookmark has been given.
1394 // In this case the document name has to be set in front.
1395 bool IsVisitedURL( std::u16string_view rURL );
1396
1397 // Save current values for automatic registration of exceptions in Autocorrection.
1398 void SetAutoCorrExceptWord( std::unique_ptr<SwAutoCorrExceptWord> pNew );
1399 SwAutoCorrExceptWord* GetAutoCorrExceptWord() { return mpACEWord.get(); }
1400 void DeleteAutoCorrExceptWord();
1401
1402 const SwFormatINetFormat* FindINetAttr( std::u16string_view rName ) const;
1403
1404 // Call into intransparent Basic; expect possible Return String.
1405 void ExecMacro( const SvxMacro& rMacro, OUString* pRet, SbxArray* pArgs );
1406
1407 // Call into intransparent Basic / JavaScript.
1408 sal_uInt16 CallEvent( SvMacroItemId nEvent, const SwCallMouseEvent& rCallEvent,
1409 bool bChkPtr = false );
1410
1414 void MoveLeftMargin(const SwPaM& rPam, bool bRight, bool bModulus,
1415 SwRootFrame const* pLayout = nullptr);
1416
1417 // Query NumberFormatter.
1419 {
1420 std::scoped_lock lock(mNumberFormatterMutex);
1421 if (bCreate)
1422 EnsureNumberFormatter();
1423 return mpNumberFormatter;
1424 }
1425
1426 const SvNumberFormatter* GetNumberFormatter(bool bCreate = true) const
1427 {
1428 return const_cast<SwDoc*>(this)->GetNumberFormatter(bCreate);
1429 }
1430
1431 bool HasInvisibleContent() const;
1432 // delete invisible content, like hidden sections and paragraphs
1433 bool RemoveInvisibleContent();
1434 // restore the invisible content if it's available on the undo stack
1435 bool RestoreInvisibleContent();
1436
1437 bool ConvertFieldsToText(SwRootFrame const& rLayout);
1438
1439 // Create sub-documents according to given collection.
1440 // If no collection is given, use chapter styles for 1st level.
1441 bool GenerateGlobalDoc( const OUString& rPath,
1442 const SwTextFormatColl* pSplitColl );
1443 bool GenerateGlobalDoc( const OUString& rPath, int nOutlineLevel );
1444 bool GenerateHTMLDoc( const OUString& rPath,
1445 const SwTextFormatColl* pSplitColl );
1446 bool GenerateHTMLDoc( const OUString& rPath, int nOutlineLevel );
1447
1448 // Compare two documents.
1449 tools::Long CompareDoc( const SwDoc& rDoc );
1450
1451 // Merge two documents.
1452 tools::Long MergeDoc( const SwDoc& rDoc );
1453
1454 bool IsAutoFormatRedline() const { return mbIsAutoFormatRedline; }
1455 void SetAutoFormatRedline( bool bFlag ) { mbIsAutoFormatRedline = bFlag; }
1456
1457 // For AutoFormat: with Undo/Redlining.
1458 void SetTextFormatCollByAutoFormat( const SwPosition& rPos, sal_uInt16 nPoolId,
1459 const SfxItemSet* pSet );
1460 void SetFormatItemByAutoFormat( const SwPaM& rPam, const SfxItemSet& );
1461
1462 // Only for SW-textbloxks! Does not pay any attention to layout!
1463 void ClearDoc(); // Deletes all content!
1464
1465 // Query /set data for PagePreview.
1466 const SwPagePreviewPrtData* GetPreviewPrtData() const { return m_pPgPViewPrtData.get(); }
1467
1468 // If pointer == 0 destroy pointer in document.
1469 // Else copy object.
1470 // Pointer is not transferred to ownership by document!
1471 void SetPreviewPrtData( const SwPagePreviewPrtData* pData );
1472
1475 void SetOLEObjModified();
1476
1477 // Uno - Interfaces
1478 std::shared_ptr<SwUnoCursor> CreateUnoCursor( const SwPosition& rPos, bool bTableCursor = false );
1479
1480 // FeShell - Interfaces
1481 // !!! These assume always an existing layout !!!
1482 bool ChgAnchor( const SdrMarkList& _rMrkList,
1483 RndStdIds _eAnchorType,
1484 const bool _bSameOnly,
1485 const bool _bPosCorr );
1486
1487 void SetRowHeight( const SwCursor& rCursor, const SwFormatFrameSize &rNew );
1488 static std::unique_ptr<SwFormatFrameSize> GetRowHeight( const SwCursor& rCursor );
1489 void SetRowSplit( const SwCursor& rCursor, const SwFormatRowSplit &rNew );
1490 static std::unique_ptr<SwFormatRowSplit> GetRowSplit( const SwCursor& rCursor );
1491
1495 bool BalanceRowHeight( const SwCursor& rCursor, bool bTstOnly, const bool bOptimize );
1496 void SetRowBackground( const SwCursor& rCursor, const SvxBrushItem &rNew );
1497 static bool GetRowBackground( const SwCursor& rCursor, std::unique_ptr<SvxBrushItem>& rToFill );
1501 void SetRowNotTracked( const SwCursor& rCursor,
1502 const SvxPrintItem &rNotTracked, bool bAll = false, bool bIns = false );
1504 static bool HasRowNotTracked( const SwCursor& rCursor );
1505 void SetTabBorders( const SwCursor& rCursor, const SfxItemSet& rSet );
1506 void SetTabLineStyle( const SwCursor& rCursor,
1507 const Color* pColor, bool bSetLine,
1508 const editeng::SvxBorderLine* pBorderLine );
1509 static void GetTabBorders( const SwCursor& rCursor, SfxItemSet& rSet );
1510 void SetBoxAttr( const SwCursor& rCursor, const SfxPoolItem &rNew );
1521 static bool GetBoxAttr( const SwCursor& rCursor, std::unique_ptr<SfxPoolItem>& rToFill );
1522 void SetBoxAlign( const SwCursor& rCursor, sal_uInt16 nAlign );
1523 static sal_uInt16 GetBoxAlign( const SwCursor& rCursor );
1527 void AdjustCellWidth( const SwCursor& rCursor, const bool bBalance, const bool bNoShrink );
1528
1529 SwChainRet Chainable( const SwFrameFormat &rSource, const SwFrameFormat &rDest );
1530 SwChainRet Chain( SwFrameFormat &rSource, const SwFrameFormat &rDest );
1531 void Unchain( SwFrameFormat &rFormat );
1532
1533 // For Copy/Move from FrameShell.
1534 SdrObject* CloneSdrObj( const SdrObject&, bool bMoveWithinDoc = false,
1535 bool bInsInPage = true );
1536
1537 // FeShell - Interface end
1538
1539 // Interface for TextInputData - for text input of Chinese and Japanese.
1540 SwExtTextInput* CreateExtTextInput( const SwPaM& rPam );
1541 void DeleteExtTextInput( SwExtTextInput* pDel );
1542 SwExtTextInput* GetExtTextInput( const SwNode& rNd,
1543 sal_Int32 nContentPos = -1) const;
1544 SwExtTextInput* GetExtTextInput() const;
1545
1546 // Interface for access to AutoComplete-List.
1547 static SwAutoCompleteWord& GetAutoCompleteWords() { return *s_pAutoCompleteWords; }
1548
1549 bool ContainsMSVBasic() const { return mbContains_MSVBasic; }
1550 void SetContainsMSVBasic( bool bFlag ) { mbContains_MSVBasic = bFlag; }
1551
1552 // Interface for the list of Ruby - texts/attributes
1553 static sal_uInt16 FillRubyList( const SwPaM& rPam, SwRubyList& rList );
1554 void SetRubyList( const SwPaM& rPam, const SwRubyList& rList );
1555
1556 void ReadLayoutCache( SvStream& rStream );
1557 void WriteLayoutCache( SvStream& rStream );
1558 SwLayoutCache* GetLayoutCache() const { return mpLayoutCache.get(); }
1559
1564 bool ContainsHiddenChars() const;
1565
1566 std::unique_ptr<sw::GrammarContact> const& getGrammarContact() const { return mpGrammarContact; }
1567 std::unique_ptr<sw::OnlineAccessibilityCheck> const& getOnlineAccessibilityCheck() const
1568 {
1569 return mpOnlineAccessibilityCheck;
1570 }
1571
1581 void MarkListLevel( const OUString& sListId,
1582 const int nListLevel,
1583 const bool bValue );
1584
1585 // Change a format undoable.
1586 void ChgFormat(SwFormat & rFormat, const SfxItemSet & rSet);
1587
1588 void RenameFormat(SwFormat & rFormat, const OUString & sNewName,
1589 bool bBroadcast = false);
1590
1591 // Change a TOX undoable.
1592 void ChangeTOX(SwTOXBase & rTOX, const SwTOXBase & rNew);
1593
1611 static OUString GetPaMDescr(const SwPaM & rPaM);
1612
1613 static bool IsFirstOfNumRuleAtPos(const SwPosition & rPos, SwRootFrame const& rLayout);
1614
1615 // access methods for XForms model(s)
1616
1617 // access container for XForms model; will be NULL if !isXForms()
1618 const css::uno::Reference<css::container::XNameContainer>&
1619 getXForms() const { return mxXForms;}
1620
1621 css::uno::Reference< css::linguistic2::XProofreadingIterator > const & GetGCIterator() const;
1622
1623 // #i31958# is this an XForms document?
1624 bool isXForms() const;
1625
1626 // #i31958# initialize XForms models; turn this into an XForms document
1627 void initXForms( bool bCreateDefaultModel );
1628
1629 // #i113606# for disposing XForms
1630 void disposeXForms( );
1631
1632 //Update all the page masters
1633 void SetDefaultPageMode(bool bSquaredPageMode);
1634 bool IsSquaredPageMode() const;
1635
1636 const css::uno::Reference< ooo::vba::word::XFind >& getVbaFind() const { return mxVbaFind; }
1637 void setVbaFind( const css::uno::Reference< ooo::vba::word::XFind > &xFind) { mxVbaFind = xFind; }
1638 css::uno::Reference< css::script::vba::XVBAEventProcessor > const & GetVbaEventProcessor();
1639 void SetVbaEventProcessor();
1640 void SetVBATemplateToProjectCache( css::uno::Reference< css::container::XNameContainer > const & xCache ) { m_xTemplateToProjectCache = xCache; };
1641 const css::uno::Reference< css::container::XNameContainer >& GetVBATemplateToProjectCache() const { return m_xTemplateToProjectCache; };
1642 ::sfx2::IXmlIdRegistry& GetXmlIdRegistry();
1643 ::sw::MetaFieldManager & GetMetaFieldManager();
1644 ::SwContentControlManager& GetContentControlManager();
1645 ::sw::UndoManager & GetUndoManager();
1646 ::sw::UndoManager const& GetUndoManager() const;
1647
1648 SfxObjectShell* CreateCopy(bool bCallInitNew, bool bEmpty) const;
1649 SwNodeIndex AppendDoc(const SwDoc& rSource, sal_uInt16 nStartPageNumber,
1650 bool bDeletePrevious, int physicalPageOffset,
1651 const sal_uLong nDocNo);
1652
1656 void dumpAsXml(xmlTextWriterPtr = nullptr) const;
1657
1658 std::set<Color> GetDocColors();
1659 std::vector< std::weak_ptr<SwUnoCursor> > mvUnoCursorTable;
1660
1661 // Remove expired UnoCursor weak pointers the document keeps to notify about document death.
1663 {
1664 auto & rTable = const_cast<SwDoc*>(this)->mvUnoCursorTable;
1665 // In most cases we'll remove most of the elements.
1666 rTable.erase( std::remove_if(rTable.begin(),
1667 rTable.end(),
1668 [] (std::weak_ptr<SwUnoCursor> const & x) { return x.expired(); }),
1669 rTable.end());
1670 }
1671
1676 bool StartGrammarChecking( bool bSkipStart = false );
1677
1679 void SetMissingDictionaries( bool bIsMissing );
1681 bool IsDictionaryMissing() const { return meDictionaryMissing == MissingDictionary::True; }
1682
1683 void SetLanguage(const LanguageType eLang, const sal_uInt16 nId);
1684
1685private:
1686 // Copies master header to left / first one, if necessary - used by ChgPageDesc().
1687 void CopyMasterHeader(const SwPageDesc &rChged, const SwFormatHeader &rHead, SwPageDesc &pDesc, bool bLeft, bool bFirst);
1688 // Copies master footer to left / first one, if necessary - used by ChgPageDesc().
1689 void CopyMasterFooter(const SwPageDesc &rChged, const SwFormatFooter &rFoot, SwPageDesc &pDesc, bool bLeft, bool bFirst);
1690
1691};
1692
1693namespace o3tl {
1694 template<> struct typed_flags<SwDoc::RowColMode> : is_typed_flags<SwDoc::RowColMode, 3> {};
1695}
1696
1697// This method is called in Dtor of SwDoc and deletes cache of ContourObjects.
1698void ClrContourCache();
1699
1700inline void SwDoc::SetOLEPrtNotifyPending( bool bSet )
1701{
1702 mbOLEPrtNotifyPending = bSet;
1703 if( !bSet )
1704 mbAllOLENotify = false;
1705}
1706
1707bool sw_GetPostIts(const IDocumentFieldsAccess& rIDFA, SetGetExpFields * pSrtLst);
1708
1709#endif //_DOC_HXX
1710
1711/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
struct _xmlTextWriter * xmlTextWriterPtr
Give access to the data-provider for chart.
Text operation/manipulation interface.
Provides access to the formatting devices of a document.
Document fields related interfaces.
Provides access to the layout of a document.
Document links administration interface.
Provides numbered items of a document.
Provides access to the lists of a document.
Provides access to the marks of a document.
Provides outline nodes of a document.
Provides access to settings of a document.
Get information about the current document state.
Document statistics information.
Access to the style pool.
Handle the background jobs of a Writer document.
SwCellFrame is one table cell in the document layout.
Definition: cellfrm.hxx:31
Represents the style of a text portion.
Definition: charfmt.hxx:27
Knows all the text content controls in the document.
Definition: doc.hxx:194
bool mbDtor
TRUE: is in SwDoc DTOR.
Definition: doc.hxx:309
bool IsInReading() const
Definition: doc.hxx:962
const std::unique_ptr< ::sw::MetaFieldManager > m_pMetaFieldManager
Definition: doc.hxx:217
std::unique_ptr< SwFrameFormat > mpColumnContFormat
Definition: doc.hxx:241
css::uno::Reference< css::linguistic2::XProofreadingIterator > m_xGCIterator
Definition: doc.hxx:214
bool mbIsAutoFormatRedline
Definition: doc.hxx:321
void SetInReading(bool bNew)
Definition: doc.hxx:963
bool IsCopyIsMove() const
Definition: doc.hxx:1379
oslInterlockedCount mReferenceCount
Definition: doc.hxx:307
std::unique_ptr< SwFrameFormat > mpEmptyPageFormat
Definition: doc.hxx:240
SwFrameFormat * GetDfltFrameFormat()
Definition: doc.hxx:756
DocumentType
Definition: doc.hxx:400
@ DOCTYPE_NATIVE
Definition: doc.hxx:401
std::unique_ptr< SwFrameFormats > mpTableFrameFormatTable
Definition: doc.hxx:250
SwTextFormatColl * GetDfltTextFormatColl()
Definition: doc.hxx:785
std::unique_ptr< sw::OnlineAccessibilityCheck > const & getOnlineAccessibilityCheck() const
Definition: doc.hxx:1567
RowColMode
Definition: doc.hxx:1206
SwSectionFormats & GetSections()
Definition: doc.hxx:1345
const std::unique_ptr< ::sw::DocumentFieldsManager > m_pDocumentFieldsManager
Definition: doc.hxx:232
const std::unique_ptr< ::sw::DocumentStateManager > m_pDocumentStateManager
Definition: doc.hxx:221
std::unordered_map< OUString, SwNumRule * > maNumRuleMap
Definition: doc.hxx:279
const SwFootnoteInfo & GetFootnoteInfo() const
Definition: doc.hxx:638
const std::unique_ptr< ::SwContentControlManager > m_pContentControlManager
Definition: doc.hxx:218
std::unique_ptr< SwGrfFormatColl > mpDfltGrfFormatColl
Definition: doc.hxx:244
SwDocShell * mpDocShell
Definition: doc.hxx:266
const SwSectionFormats & GetSections() const
Definition: doc.hxx:1346
void SetClipBoard(bool bNew)
Definition: doc.hxx:973
SwDoc(const SwDoc &)=delete
MissingDictionary meDictionaryMissing
Definition: doc.hxx:332
css::uno::Reference< css::container::XNameContainer > mxXForms
Definition: doc.hxx:213
std::unique_ptr< SwTOXTypes > mpTOXTypes
Definition: doc.hxx:254
std::vector< OUString > m_PatternNames
Definition: doc.hxx:211
std::vector< std::weak_ptr< SwUnoCursor > > mvUnoCursorTable
Definition: doc.hxx:1659
static SwAutoCompleteWord & GetAutoCompleteWords()
Definition: doc.hxx:1547
SwAutoCorrExceptWord * GetAutoCorrExceptWord()
Definition: doc.hxx:1399
void SetCopyIsMove(bool bFlag)
Definition: doc.hxx:1380
std::unique_ptr< SwAutoCorrExceptWord > mpACEWord
For the automated takeover of auto-corrected words that are "re-corrected".
Definition: doc.hxx:269
SwFrameFormats * GetFrameFormats()
Definition: doc.hxx:747
const SwCharFormat * GetDfltCharFormat() const
Definition: doc.hxx:761
bool mbInWriterfilterImport
Definition: doc.hxx:318
bool IsInDtor() const
Definition: doc.hxx:412
std::unique_ptr< SwTextFormatColls > mpTextFormatCollTable
Definition: doc.hxx:251
const SwDocShell * GetDocShell() const
Definition: doc.hxx:1360
const std::unique_ptr< ::sw::UndoManager > m_pUndoManager
Definition: doc.hxx:222
bool mbIsPrepareSelAll
Definition: doc.hxx:329
bool mbClipBoard
Definition: doc.hxx:327
void SetUpdateTOX(bool bFlag)
Definition: doc.hxx:956
const SwTableAutoFormatTable & GetTableStyles() const
Definition: doc.hxx:1246
const SvNumberFormatter * GetNumberFormatter(bool bCreate=true) const
Definition: doc.hxx:1426
const SwFrameFormat * GetColumnContFormat() const
Definition: doc.hxx:759
const std::unique_ptr< ::sw::DocumentListItemsManager > m_pDocumentListItemsManager
Definition: doc.hxx:228
const std::unique_ptr< ::sw::DocumentLayoutManager > m_pDocumentLayoutManager
Definition: doc.hxx:234
rtl::Reference< SwAttrPool > mpAttrPool
Definition: doc.hxx:202
SwGrfFormatColl * GetDfltGrfFormatColl()
Definition: doc.hxx:813
std::unique_ptr< SwLineNumberInfo > mpLineNumberInfo
Definition: doc.hxx:263
SwLayoutCache * GetLayoutCache() const
Definition: doc.hxx:1558
const css::uno::Reference< ooo::vba::word::XFind > & getVbaFind() const
Definition: doc.hxx:1636
const SwCellStyleTable & GetCellStyles() const
Definition: doc.hxx:1259
bool mbColumnSelection
Definition: doc.hxx:328
bool mbInLoadAsynchron
Definition: doc.hxx:320
bool mbContains_MSVBasic
Definition: doc.hxx:326
void setDocAccTitle(const OUString &rTitle)
Definition: doc.hxx:563
SvNumberFormatter * mpNumberFormatter
Definition: doc.hxx:274
void SetInMailMerge(bool bNew)
Definition: doc.hxx:969
const SwGrfFormatColl * GetDfltGrfFormatColl() const
Definition: doc.hxx:812
bool mbInMailMerge
Definition: doc.hxx:316
size_t GetPageDescCnt() const
Definition: doc.hxx:888
bool IsClipBoard() const
Definition: doc.hxx:971
bool mbInXMLImport
Definition: doc.hxx:317
bool mbCopyIsMove
Definition: doc.hxx:313
bool mbInReading
Definition: doc.hxx:314
const SwFootnoteIdxs & GetFootnoteIdxs() const
Definition: doc.hxx:643
std::unique_ptr< SwNodes > m_pNodes
Definition: doc.hxx:201
std::unique_ptr< SwURLStateChanged > mpURLStateChgd
Definition: doc.hxx:271
SwDBManager * GetDBManager() const
Definition: doc.hxx:678
std::unique_ptr< SwTableAutoFormatTable > m_pTableStyles
Table styles (autoformats that are applied with table changes).
Definition: doc.hxx:296
const SwNumRuleTable & GetNumRuleTable() const
Definition: doc.hxx:1074
DocumentType meDocType
Definition: doc.hxx:404
void SetOLEPrtNotifyPending(bool bSet=true)
Definition: doc.hxx:1700
void cleanupUnoCursorTable() const
Definition: doc.hxx:1662
std::unique_ptr< sw::GrammarContact > const & getGrammarContact() const
Definition: doc.hxx:1566
static SwAutoCompleteWord * s_pAutoCompleteWords
Definition: doc.hxx:338
std::unique_ptr< SwCharFormats > mpCharFormatTable
Definition: doc.hxx:247
SwNumRule * GetOutlineNumRule() const
Definition: doc.hxx:1032
std::unique_ptr< ::sw::DocumentDeviceManager > m_pDeviceAccess
Definition: doc.hxx:225
std::unique_ptr< ::sfx2::IXmlIdRegistry > m_pXmlIdRegistry
Definition: doc.hxx:300
SwCharFormat * FindCharFormatByName(const OUString &rName) const
Definition: doc.hxx:779
bool mbContainsAtPageObjWithContentAnchor
Definition: doc.hxx:336
bool IsColumnSelection() const
Definition: doc.hxx:975
const SwCharFormats * GetCharFormats() const
Definition: doc.hxx:748
SwFormat *(SwDoc::* FNCopyFormat)(const OUString &, SwFormat *, bool, bool)
Definition: doc.hxx:347
const SwTOXTypes & GetTOXTypes() const
Definition: doc.hxx:987
void SetDocumentType(DocumentType eDocType)
Definition: doc.hxx:406
bool IsAutoFormatRedline() const
Definition: doc.hxx:1454
SwDBData maDBData
Definition: doc.hxx:209
void SetOle2Link(const Link< bool, void > &rLink)
Definition: doc.hxx:1335
SwNumRule * mpOutlineRule
Definition: doc.hxx:260
SwPageDescs m_PageDescs
Definition: doc.hxx:203
SwNodes & GetNodes()
Definition: doc.hxx:417
IStyleAccess & GetIStyleAccess()
Definition: doc.hxx:765
void SetDBManager(SwDBManager *pNewMgr)
Definition: doc.hxx:677
std::unique_ptr< SwFrameFormats > mpFrameFormatTable
Definition: doc.hxx:246
void UpdateAllCharts()
Definition: doc.hxx:1300
std::unique_ptr< SwFootnoteInfo > mpFootnoteInfo
Definition: doc.hxx:261
css::uno::Reference< ooo::vba::word::XFind > mxVbaFind
Definition: doc.hxx:292
void SetTmpDocShell(SfxObjectShellLock rLock)
in case during copying of embedded object a new shell is created, it should be set here and cleaned l...
Definition: doc.hxx:1365
sal_uInt32 mnRsid
Definition: doc.hxx:304
bool IsInXMLImport() const
Definition: doc.hxx:978
SwTextFormatColls * GetTextFormatColls()
Definition: doc.hxx:787
std::unique_ptr< SwDBManager > m_pOwnDBManager
Definition: doc.hxx:257
sal_uInt32 mnRsidRoot
Definition: doc.hxx:305
SwCharFormats * GetCharFormats()
Definition: doc.hxx:749
bool ContainsMSVBasic() const
Definition: doc.hxx:1549
const std::unique_ptr< ::sw::DocumentDrawModelManager > m_pDocumentDrawModelManager
Definition: doc.hxx:219
std::unique_ptr< SwFrameFormats > mpSpzFrameFormatTable
Definition: doc.hxx:248
const std::unique_ptr< ::sw::DocumentListsManager > m_pDocumentListsManager
Definition: doc.hxx:229
void SetTOIAutoMarkURL(const OUString &rSet)
Definition: doc.hxx:960
void SetContainsAtPageObjWithContentAnchor(const bool bFlag)
Definition: doc.hxx:577
SwAttrPool & GetAttrPool()
Definition: doc.hxx:1327
const css::uno::Reference< css::container::XNameContainer > & getXForms() const
Definition: doc.hxx:1619
DECL_DLLPRIVATE_LINK(DoUpdateModifiedOLE, Timer *, void)
std::unique_ptr< SwTextFormatColl > mpDfltTextFormatColl
Definition: doc.hxx:243
SwFootnoteIdxs & GetFootnoteIdxs()
Definition: doc.hxx:642
const OUString & GetTOIAutoMarkURL() const
Definition: doc.hxx:959
const std::unique_ptr< ::sw::DocumentLinksAdministrationManager > m_pDocumentLinksAdministrationManager
Definition: doc.hxx:227
const std::unique_ptr< ::sw::DocumentStatisticsManager > m_pDocumentStatisticsManager
Definition: doc.hxx:233
const SwTextFormatColls * GetTextFormatColls() const
Definition: doc.hxx:786
bool DoesContainAtPageObjWithContentAnchor()
Definition: doc.hxx:581
const Link< bool, void > & GetOle2Link() const
Definition: doc.hxx:1336
void SetInXMLImport(bool bNew)
Definition: doc.hxx:979
const SwEndNoteInfo & GetEndNoteInfo() const
Definition: doc.hxx:640
SwCellStyleTable & GetCellStyles()
Definition: doc.hxx:1260
MissingDictionary
Definition: doc.hxx:331
const SwPagePreviewPrtData * GetPreviewPrtData() const
Definition: doc.hxx:1466
void SetAutoFormatRedline(bool bFlag)
Definition: doc.hxx:1455
SwExtTextInput * mpExtInputRing
Definition: doc.hxx:282
void SetInWriterfilterImport(bool const b)
Definition: doc.hxx:981
const T & GetDefault(TypedWhichId< T > nWhich) const
Definition: doc.hxx:737
SwPageDesc & GetPageDesc(size_t const i)
Definition: doc.hxx:890
SwCharFormat * GetDfltCharFormat()
Definition: doc.hxx:762
bool IsDictionaryMissing() const
Returns true if no dictionary can be found for any content.
Definition: doc.hxx:1681
void SetPrepareSelAll()
Definition: doc.hxx:575
const std::unique_ptr< ::sw::mark::MarkManager > mpMarkManager
Definition: doc.hxx:216
const SwTextFormatColl * GetDfltTextFormatColl() const
Definition: doc.hxx:784
std::unique_ptr< SwNumRuleTable > mpNumRuleTable
Definition: doc.hxx:276
const SwFrameFormat * GetEmptyPageFormat() const
Definition: doc.hxx:757
std::unique_ptr< SwDefTOXBase_Impl > mpDefTOXBases
Definition: doc.hxx:255
const SwFrameFormats * GetFrameFormats() const
Definition: doc.hxx:746
void SetInLoadAsynchron(bool bFlag)
Definition: doc.hxx:1376
bool IsPrepareSelAll() const
Definition: doc.hxx:574
css::uno::Reference< css::script::vba::XVBAEventProcessor > mxVbaEvents
Definition: doc.hxx:291
std::unique_ptr< SwLayoutCache > mpLayoutCache
Layout cache to read and save with the document for a faster formatting.
Definition: doc.hxx:285
void SetVBATemplateToProjectCache(css::uno::Reference< css::container::XNameContainer > const &xCache)
Definition: doc.hxx:1640
SwFrameFormats * GetSpzFrameFormats()
Definition: doc.hxx:753
css::uno::Reference< css::container::XNameContainer > m_xTemplateToProjectCache
Definition: doc.hxx:293
SwTextFormatColl * FindTextFormatCollByName(const OUString &rName) const
Definition: doc.hxx:807
std::unique_ptr< SwCellStyleTable > mpCellStyles
Cell Styles not assigned to a Table Style.
Definition: doc.hxx:298
std::unique_ptr< SwSectionFormats > mpSectionFormatTable
Definition: doc.hxx:249
bool mbInWriting
Definition: doc.hxx:315
const std::unique_ptr< ::sw::DocumentChartDataProviderManager > m_pDocumentChartDataProviderManager
Definition: doc.hxx:224
bool mbUpdateTOX
Definition: doc.hxx:319
bool mbInsOnlyTextGlssry
Definition: doc.hxx:325
const std::unique_ptr< ::sw::DocumentExternalDataManager > m_pDocumentExternalDataManager
Definition: doc.hxx:236
const SwGrfFormatColls * GetGrfFormatColls() const
Definition: doc.hxx:814
const css::uno::Reference< css::container::XNameContainer > & GetVBATemplateToProjectCache() const
Definition: doc.hxx:1641
std::unique_ptr< SwPagePreviewPrtData > m_pPgPViewPrtData
Definition: doc.hxx:281
const SwAttrPool & GetAttrPool() const
Definition: doc.hxx:1326
SfxObjectShellLock mxTmpDocShell
Definition: doc.hxx:267
const std::unique_ptr< ::sw::DocumentRedlineManager > m_pDocumentRedlineManager
Definition: doc.hxx:220
bool IsInWriting() const
Definition: doc.hxx:965
SwFrameFormat * GetEmptyPageFormat()
Definition: doc.hxx:758
std::unique_ptr< SwCharFormat > mpDfltCharFormat
Definition: doc.hxx:242
std::unique_ptr< SwEndNoteInfo > mpEndNoteInfo
Definition: doc.hxx:262
std::unique_ptr< SwFrameFormat > mpDfltFrameFormat
Definition: doc.hxx:239
const SwFrameFormat * GetDfltFrameFormat() const
Definition: doc.hxx:755
OUString msDocAccTitle
Definition: doc.hxx:395
SwFrameFormats * GetTableFrameFormats()
Definition: doc.hxx:820
std::mutex mNumberFormatterMutex
Definition: doc.hxx:273
const SwFrameFormats * GetSpzFrameFormats() const
Definition: doc.hxx:752
bool IsInMailMerge() const
Definition: doc.hxx:968
bool mbAllOLENotify
Definition: doc.hxx:324
bool IsInLoadAsynchron() const
Definition: doc.hxx:1375
const SfxObjectShellLock & GetTmpDocShell() const
Definition: doc.hxx:1366
const std::unique_ptr< ::sw::DocumentStylePoolManager > m_pDocumentStylePoolManager
Definition: doc.hxx:235
const std::unique_ptr< ::sw::DocumentSettingManager > m_pDocumentSettingManager
Definition: doc.hxx:223
SwFrameFormat * GetColumnContFormat()
Definition: doc.hxx:760
DocumentType GetDocumentType() const
Definition: doc.hxx:405
bool IsOLEPrtNotifyPending() const
Definition: doc.hxx:570
bool IsUpdateTOX() const
Definition: doc.hxx:957
bool IsInsOnlyTextGlossary() const
Definition: doc.hxx:665
DECL_DLLPRIVATE_LINK(CalcFieldValueHdl, EditFieldInfo *, void)
std::unique_ptr< IStyleAccess > mpStyleAccess
Definition: doc.hxx:284
void CopyFooter(const SwFrameFormat &rSrcFormat, SwFrameFormat &rDestFormat)
Copy footer (with contents) from SrcFormat to DestFormat.
Definition: doc.hxx:907
const SwFrameFormats * GetTableFrameFormats() const
Definition: doc.hxx:819
SvNumberFormatter * GetNumberFormatter(bool bCreate=true)
Definition: doc.hxx:1418
SwDocShell * GetDocShell()
Definition: doc.hxx:1359
bool mbOLEPrtNotifyPending
TRUE: Printer has changed.
Definition: doc.hxx:322
const std::unique_ptr< ::sw::DocumentOutlineNodesManager > m_pDocumentOutlineNodesManager
Definition: doc.hxx:230
void SetInWriting(bool bNew)
Definition: doc.hxx:966
const std::unique_ptr< ::sw::DocumentContentOperationsManager > m_pDocumentContentOperationsManager
Definition: doc.hxx:231
const SwPageDesc & GetPageDesc(const size_t i) const
Definition: doc.hxx:889
bool IsInWriterfilterImport() const
Definition: doc.hxx:980
std::unique_ptr< sw::OnlineAccessibilityCheck > mpOnlineAccessibilityCheck
Definition: doc.hxx:289
bool HasTableStyles() const
Counts table styles without triggering lazy-load of them.
Definition: doc.hxx:1251
std::unique_ptr< SwFootnoteIdxs > mpFootnoteIdxs
Definition: doc.hxx:264
Link< bool, void > maOle2Link
Definition: doc.hxx:204
const std::unique_ptr< ::sw::DocumentTimerManager > m_pDocumentTimerManager
Definition: doc.hxx:226
SwDBManager * m_pDBManager
Definition: doc.hxx:258
std::unique_ptr< sw::GrammarContact > mpGrammarContact
Definition: doc.hxx:288
void CopyHeader(const SwFrameFormat &rSrcFormat, SwFrameFormat &rDestFormat)
Copy header (with contents) from SrcFormat to DestFormat (can also be copied into other document).
Definition: doc.hxx:902
const OUString & getDocAccTitle() const
Definition: doc.hxx:564
void setVbaFind(const css::uno::Reference< ooo::vba::word::XFind > &xFind)
Definition: doc.hxx:1637
OUString msTOIAutoMarkURL
Definition: doc.hxx:210
Idle maOLEModifiedIdle
Definition: doc.hxx:208
std::unique_ptr< SwGrfFormatColls > mpGrfFormatCollTable
Definition: doc.hxx:252
void SetColumnSelection(bool bNew)
Definition: doc.hxx:976
void SetContainsMSVBasic(bool bFlag)
Definition: doc.hxx:1550
ContactObject for connection of formats as representatives of draw objects in SwClient and the object...
Definition: dcontact.hxx:304
Base class of all fields.
Definition: fldbas.hxx:292
Footer, for pageformats Client of FrameFormat describing the footer.
Definition: fmthdft.hxx:65
Header, for PageFormats Client of FrameFormat describing the header.
Definition: fmthdft.hxx:34
Base class for various Writer styles.
Definition: format.hxx:47
provides some methods for generic operations on lists that contain SwFormat* subclasses.
Definition: docary.hxx:44
Style of a layout element.
Definition: frmfmt.hxx:62
Specific frame formats (frames, DrawObjects).
< purpose of derivation from SwClient: character style for displaying the numbers.
Definition: lineinfo.hxx:39
Marks a node in the document model.
Definition: ndindex.hxx:31
Base class of the Writer document model elements.
Definition: node.hxx:98
PaM is Point and Mark: a selection of the document model.
Definition: pam.hxx:187
size_t size() const
Definition: pagedesc.hxx:442
A class that stores temporary data that is needed for rendering the document.
Definition: printdata.hxx:204
The root element of a Writer document layout.
Definition: rootfrm.hxx:82
Array of Undo-history.
Definition: docary.hxx:192
SwTableBox is one table cell in the document model.
Definition: swtable.hxx:426
SwTable is one table in the document model, containing rows (which contain cells).
Definition: swtable.hxx:113
Represents the style of a paragraph.
Definition: fmtcol.hxx:59
SwTextNode is a paragraph in the document model.
Definition: ndtxt.hxx:111
std::vector< Value >::difference_type difference_type
The Undo actions need to create new Shell cursors.
knows all meta-fields in the document.
Definition: fmtmeta.hxx:195
Stores the undo/redo information, implementing the IDocumentUndoRedo interface.
Definition: UndoManager.hxx:44
bool sw_GetPostIts(const IDocumentFieldsAccess &rIDFA, SetGetExpFields *pSrtLst)
Definition: doc.cxx:521
void SetAllScriptItem(SfxItemSet &rSet, const SfxPoolItem &rItem)
Definition: poolfmt.cxx:41
void ClrContourCache()
Definition: txtfly.cxx:148
std::vector< std::unique_ptr< SwRubyListEntry > > SwRubyList
Definition: doc.hxx:190
float x
SvMacroItemId
SwFieldIds
Definition: fldbas.hxx:45
SwChainRet
Definition: flyenum.hxx:34
FlyCntType
Definition: flyenum.hxx:24
std::set< SwPosFlyFrame, SwPosFlyFrameCmp > SwPosFlyFrames
Definition: flypos.hxx:45
SvxFrameDirection
SfxHintId
static SwPageDesc * FindPageDesc(SwDoc *pDoc, sal_uInt16 nPoolId)
Definition: htmlcss1.cxx:1311
void InitCore()
Definition: init.cxx:449
void FinitCore()
Definition: init.cxx:668
void SetLanguage(SwWrtShell &rWrtSh, std::u16string_view rLangText, bool bIsForSelection, SfxItemSet &rCoreSet)
Definition: langhelper.cxx:214
void SetTextFormatColl(const css::uno::Any &rAny, SwPaM &rPaM)
std::shared_ptr< osl::Mutex > const & lock()
int i
Dialog to specify the properties of date form field.
FieldmarkMode
Definition: rootfrm.hxx:49
RedlineMode
Definition: rootfrm.hxx:45
long Long
SwNodeType
Definition: ndtyp.hxx:28
static SfxItemSet & rSet
sal_uIntPtr sal_uLong
Marks a position in the document model.
Definition: pam.hxx:37
SfxStyleFamily
#define SW_DLLPUBLIC
Definition: swdllapi.h:28
RndStdIds
tools::Long SwTwips
Definition: swtypes.hxx:51
SwLabelType
Definition: swtypes.hxx:85
SplitTable_HeadlineOption
Definition: tblenum.hxx:55
TableMergeErr
Definition: tblenum.hxx:64
TableChgWidthHeightType
Definition: tblenum.hxx:27
std::vector< SwTOXMark * > SwTOXMarks
Definition: tox.hxx:46
SwTOIKeyType
Definition: toxe.hxx:31
TOXTypes
Definition: toxe.hxx:40
SwTOXSearch
Definition: toxe.hxx:23
unsigned char sal_uInt8
sal_uInt16 sal_Unicode
signed char sal_Int8