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