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