LibreOffice Module sw (master)  1
IDocumentContentOperations.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 
20 #ifndef INCLUDED_SW_INC_IDOCUMENTCONTENTOPERATIONS_HXX
21 #define INCLUDED_SW_INC_IDOCUMENTCONTENTOPERATIONS_HXX
22 
23 #include <sal/types.h>
24 #include <rtl/ustring.hxx>
25 #include "swtypes.hxx"
26 
27 class SwPaM;
28 struct SwPosition;
29 class SwNode;
30 class SwNodeRange;
31 class Graphic;
32 class SfxItemSet;
33 class SfxPoolItem;
34 class GraphicObject;
35 class SdrObject;
36 class SwFrameFormat;
37 class SwDrawFrameFormat;
38 class SwFlyFrameFormat;
39 class SwNodeIndex;
40 class SwRootFrame;
41 class SwTextAttr;
42 
43 namespace utl { class TransliterationWrapper; }
44 namespace svt { class EmbeddedObjectRef; }
45 
46 enum class SwMoveFlags
47 {
48  DEFAULT = 0x00,
49  ALLFLYS = 0x01,
50  CREATEUNDOOBJ = 0x02,
51  REDLINES = 0x04,
52  NO_DELFRMS = 0x08
53 };
54 namespace o3tl
55 {
56  template<> struct typed_flags<SwMoveFlags> : is_typed_flags<SwMoveFlags, 0x0f> {};
57 }
58 
59 // constants for inserting text
60 enum class SwInsertFlags
61 {
62  DEFAULT = 0x00, // no extras
63  EMPTYEXPAND = 0x01, // expand empty hints at insert position
64  NOHINTEXPAND = 0x02, // do not expand any hints at insert pos
65  FORCEHINTEXPAND = 0x04 // expand all hints at insert position
66 };
67 namespace o3tl
68 {
69  template<> struct typed_flags<SwInsertFlags> : is_typed_flags<SwInsertFlags, 0x07> {};
70 }
71 
75 {
76 public:
77 public:
112  virtual bool CopyRange(SwPaM& rPam, SwPosition& rPos, const bool bCopyAll, bool bCheckPos ) const = 0;
113 
116  virtual void DeleteSection(SwNode* pNode) = 0;
117 
120  virtual void DeleteRange(SwPaM&) = 0;
121 
124  virtual bool DelFullPara(SwPaM&) = 0;
125 
132  virtual bool DeleteAndJoin( SwPaM&,
133  const bool bForceJoinNext = false ) = 0;
134 
135  virtual bool MoveRange(SwPaM&, SwPosition&, SwMoveFlags) = 0;
136 
137  virtual bool MoveNodeRange(SwNodeRange&, SwNodeIndex&, SwMoveFlags) = 0;
138 
141  virtual bool MoveAndJoin(SwPaM&, SwPosition&) = 0;
142 
145  virtual bool Overwrite(const SwPaM &rRg, const OUString& rStr) = 0;
146 
149  virtual bool InsertString(const SwPaM &rRg, const OUString&,
150  const SwInsertFlags nInsertMode = SwInsertFlags::EMPTYEXPAND ) = 0;
151 
154  virtual void TransliterateText(const SwPaM& rPaM, utl::TransliterationWrapper&) = 0;
155 
159  const SwPaM &rRg, const OUString& rGrfName,
160  const OUString& rFltName, const Graphic* pGraphic,
161  const SfxItemSet* pFlyAttrSet, const SfxItemSet* pGrfAttrSet,
162  SwFrameFormat*) = 0;
163 
165  const SwPaM& rRg, const GraphicObject& rGrfObj,
166  const SfxItemSet* pFlyAttrSet,
167  const SfxItemSet* pGrfAttrSet) = 0;
168 
171  virtual void ReRead(SwPaM&, const OUString& rGrfName, const OUString& rFltName, const Graphic* pGraphic) = 0;
172 
177  const SwPaM &rRg, SdrObject& rDrawObj, const SfxItemSet& rFlyAttrSet) = 0;
178 
182  const SwPaM &rRg, const svt::EmbeddedObjectRef& xObj,
183  const SfxItemSet* pFlyAttrSet) = 0;
184 
185  virtual SwFlyFrameFormat* InsertOLE(
186  const SwPaM &rRg, const OUString& rObjName, sal_Int64 nAspect,
187  const SfxItemSet* pFlyAttrSet, const SfxItemSet* pGrfAttrSet) = 0;
188 
191  virtual bool SplitNode(const SwPosition &rPos, bool bChkTableStart) = 0;
192 
193  virtual bool AppendTextNode(SwPosition& rPos) = 0;
194 
201  virtual bool ReplaceRange(SwPaM& rPam, const OUString& rNewStr,
202  const bool bRegExReplace) = 0;
203 
216  virtual bool InsertPoolItem(const SwPaM &rRg, const SfxPoolItem&,
217  const SetAttrMode nFlags = SetAttrMode::DEFAULT,
218  SwRootFrame const* pLayout = nullptr,
219  bool bExpandCharToPara = false,
220  SwTextAttr **ppNewTextAttr = nullptr) = 0;
221 
222  virtual void InsertItemSet (const SwPaM &rRg, const SfxItemSet&,
223  const SetAttrMode nFlags = SetAttrMode::DEFAULT,
224  SwRootFrame const* pLayout = nullptr) = 0;
225 
228  virtual void RemoveLeadingWhiteSpace(const SwPosition & rPos ) = 0;
229 
230 protected:
232 };
233 
234 #endif // INCLUDED_SW_INC_IDOCUMENTCONTENTOPERATIONS_HXX
235 
236 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Marks a position in the document model.
Definition: pam.hxx:35
virtual SwFlyFrameFormat * InsertGraphic(const SwPaM &rRg, const OUString &rGrfName, const OUString &rFltName, const Graphic *pGraphic, const SfxItemSet *pFlyAttrSet, const SfxItemSet *pGrfAttrSet, SwFrameFormat *)=0
Insert graphic or formula.
virtual void InsertItemSet(const SwPaM &rRg, const SfxItemSet &, const SetAttrMode nFlags=SetAttrMode::DEFAULT, SwRootFrame const *pLayout=nullptr)=0
virtual void DeleteRange(SwPaM &)=0
Delete a range SwFlyFrameFormat.
virtual bool MoveRange(SwPaM &, SwPosition &, SwMoveFlags)=0
virtual bool DeleteAndJoin(SwPaM &, const bool bForceJoinNext=false)=0
complete delete of a given PaM
The root element of a Writer document layout.
Definition: rootfrm.hxx:79
virtual void TransliterateText(const SwPaM &rPaM, utl::TransliterationWrapper &)=0
change text to Upper/Lower/Hiragana/Katakana/...
virtual void DeleteSection(SwNode *pNode)=0
Delete section containing the node.
virtual SwFlyFrameFormat * InsertGraphicObject(const SwPaM &rRg, const GraphicObject &rGrfObj, const SfxItemSet *pFlyAttrSet, const SfxItemSet *pGrfAttrSet)=0
virtual SwFlyFrameFormat * InsertOLE(const SwPaM &rRg, const OUString &rObjName, sal_Int64 nAspect, const SfxItemSet *pFlyAttrSet, const SfxItemSet *pGrfAttrSet)=0
PaM is Point and Mark: a selection of the document model.
Definition: pam.hxx:136
virtual bool InsertString(const SwPaM &rRg, const OUString &, const SwInsertFlags nInsertMode=SwInsertFlags::EMPTYEXPAND)=0
Insert string into existing text node at position rRg.Point().
virtual bool Overwrite(const SwPaM &rRg, const OUString &rStr)=0
Overwrite string in an existing text node.
Style of a layout element.
Definition: frmfmt.hxx:57
virtual SwFlyFrameFormat * InsertEmbObject(const SwPaM &rRg, const svt::EmbeddedObjectRef &xObj, const SfxItemSet *pFlyAttrSet)=0
Insert OLE-objects.
SetAttrMode
Definition: swtypes.hxx:143
virtual void ReRead(SwPaM &, const OUString &rGrfName, const OUString &rFltName, const Graphic *pGraphic)=0
Transpose graphic (with undo)
Marks a node in the document model.
Definition: ndindex.hxx:31
virtual bool ReplaceRange(SwPaM &rPam, const OUString &rNewStr, const bool bRegExReplace)=0
Replace selected range in a TextNode with string.
Text operation/manipulation interface.
virtual bool MoveNodeRange(SwNodeRange &, SwNodeIndex &, SwMoveFlags)=0
virtual bool MoveAndJoin(SwPaM &, SwPosition &)=0
Move a range.
virtual SwDrawFrameFormat * InsertDrawObj(const SwPaM &rRg, SdrObject &rDrawObj, const SfxItemSet &rFlyAttrSet)=0
Insert a DrawObject.
virtual bool InsertPoolItem(const SwPaM &rRg, const SfxPoolItem &, const SetAttrMode nFlags=SetAttrMode::DEFAULT, SwRootFrame const *pLayout=nullptr, bool bExpandCharToPara=false, SwTextAttr **ppNewTextAttr=nullptr)=0
Insert an attribute.
virtual bool DelFullPara(SwPaM &)=0
Delete full paragraphs.
virtual bool AppendTextNode(SwPosition &rPos)=0
virtual bool SplitNode(const SwPosition &rPos, bool bChkTableStart)=0
Split a node at rPos (implemented only for TextNode).
virtual void RemoveLeadingWhiteSpace(const SwPosition &rPos)=0
Removes any leading white space from the paragraph.
Base class of the Writer document model elements.
Definition: node.hxx:79
virtual bool CopyRange(SwPaM &rPam, SwPosition &rPos, const bool bCopyAll, bool bCheckPos) const =0
Copy a selected content range to a position.