Files
libreoffice/sw/inc/IDocumentContentOperations.hxx

206 lines
7.1 KiB
C++
Raw Normal View History

/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: IDocumentContentOperations.hxx,v $
* $Revision: 1.6 $
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef IDOCUMENTCONTENTOPERATIONS_HXX_INCLUDED
#define IDOCUMENTCONTENTOPERATIONS_HXX_INCLUDED
#ifndef _SAL_TYPES_H_
#include <sal/types.h>
#endif
class SwPaM;
struct SwPosition;
class SwNode;
class SwNodeRange;
class String;
class Graphic;
class SfxItemSet;
class SfxPoolItem;
class GraphicObject;
class SdrObject;
class SwFrmFmt;
class SwDrawFrmFmt;
class SwFlyFrmFmt;
class SwNodeIndex;
namespace utl { class TransliterationWrapper; }
namespace svt { class EmbeddedObjectRef; }
/** Text operation/manipulation interface
*/
class IDocumentContentOperations
{
public:
enum SwMoveFlags
{
DOC_MOVEDEFAULT = 0x00,
DOC_MOVEALLFLYS = 0x01,
DOC_CREATEUNDOOBJ = 0x02,
DOC_MOVEREDLINES = 0x04,
DOC_NO_DELFRMS = 0x08
};
public:
/** Kopieren eines Bereiches im oder in ein anderes Dokument !
Die Position kann auch im Bereich liegen !!
*/
virtual bool Copy(SwPaM&, SwPosition&, bool bCopyAll ) const = 0;
/** Loesche die Section, in der der Node steht.
*/
virtual void DeleteSection(SwNode* pNode) = 0;
/** loeschen eines BereichesSwFlyFrmFmt
*/
virtual bool Delete(SwPaM&) = 0;
/** loeschen gesamter Absaetze
*/
virtual bool DelFullPara(SwPaM&) = 0;
CWS-TOOLING: integrate CWS sw32bf02 2009-08-25 15:52:04 +0200 hde r275366 : reactived testcases hit by issue 102752 2009-08-21 13:52:17 +0200 od r275245 : #i102921# delete files whose deletion has been forgotten in cws impress172 2009-08-21 11:20:47 +0200 od r275225 : CWS-TOOLING: rebase CWS sw32bf02 to trunk@275001 (milestone: DEV300:m55) 2009-08-20 16:21:30 +0200 od r275191 : #i92511# method <lcl_MoveAllLowerObjs(..)> - invalidation of cache for object rectangle inclusive spaces is needed. 2009-08-20 15:50:40 +0200 od r275188 : #i96726# method <SwPagePreView::DocSzChgd(..)> - trigger recalculation of page preview layout even if the count of pages is not changing 2009-08-20 12:37:32 +0200 od r275172 : #i100466# correction for showing and hiding redlines 2009-08-18 13:25:18 +0200 od r275100 : #i103817# method <XMLTextImportHelper::SetStyleAndAttrs(..) - assure that a heading applies the outline style, if no other list style is applied. 2009-08-18 13:21:38 +0200 od r275098 : #i103817# allow the outline style - list style for outline numbering - to be set directly at the paragraph 2009-08-17 14:13:02 +0200 od r275052 : #i103684# add missing documentation for new optional OutlineLevel attribute introduced in OOo 3.1 2009-08-17 14:00:25 +0200 od r275049 : #i100481# method <XMLTextFrameContext_Impl::CreateChildContext(..)># - correct condition for handling embedded documents and embedded math objects 2009-08-12 14:11:34 +0200 od r274891 : #i97379# assure that columns are not applied to fly frames, which represent graphics or embedded objects 2009-08-12 12:51:43 +0200 od r274889 : #i101870# method <SwTxtNode::_MakeNewTxtNode(..)> - perform action on different paragraph styles before applying new paragraph style 2009-08-12 12:24:44 +0200 od r274888 : #i101092# method <ViewShell::Paint(..)> - encapsulate paint of document background and document into pre and post drawing layer paint calls 2009-08-12 11:38:48 +0200 od r274886 : #i98766# minor adjustment in order to be warning free under Mac port builds 2009-08-12 11:33:54 +0200 od r274885 : #i99267# method <SwTabFrm::MakeAll()> - reset <bSplit> after forward move to assure that follows can be joined, if further space is available. 2009-08-12 11:11:49 +0200 od r274882 : #i98766# method <ViewShell::SmoothScroll(..) - disable smooth scroll for Mac port builds 2009-08-10 12:17:58 +0200 od r274801 : CWS-TOOLING: rebase CWS sw32bf02 to trunk@274622 (milestone: DEV300:m54) 2009-07-21 16:56:45 +0200 od r274206 : #i103685# method <SwTxtFormatter::NewTabPortion(..)> - adjust condition to apply automatic tab stop at left margin correctly in case that tab stops are not relative to indent 2009-07-10 11:53:53 +0200 od r273883 : #i102752 method <SwDrawContact::Modify(..)> - assure that a ShapePropertyChangeNotifier exists 2009-07-07 12:01:58 +0200 mst r273788 : #i103304# apply patch by dtardon to fix bogus conditional 2009-07-07 09:01:13 +0200 od r273767 : CWS-TOOLING: rebase CWS sw32bf02 to trunk@273468 (milestone: DEV300:m51)
2009-08-27 14:36:29 +00:00
/** complete delete of a given PaM
OD 2009-08-20 #i100466#
Add optional parameter <bForceJoinNext>, default value <false>
Needed for hiding of deletion redlines
*/
CWS-TOOLING: integrate CWS sw32bf02 2009-08-25 15:52:04 +0200 hde r275366 : reactived testcases hit by issue 102752 2009-08-21 13:52:17 +0200 od r275245 : #i102921# delete files whose deletion has been forgotten in cws impress172 2009-08-21 11:20:47 +0200 od r275225 : CWS-TOOLING: rebase CWS sw32bf02 to trunk@275001 (milestone: DEV300:m55) 2009-08-20 16:21:30 +0200 od r275191 : #i92511# method <lcl_MoveAllLowerObjs(..)> - invalidation of cache for object rectangle inclusive spaces is needed. 2009-08-20 15:50:40 +0200 od r275188 : #i96726# method <SwPagePreView::DocSzChgd(..)> - trigger recalculation of page preview layout even if the count of pages is not changing 2009-08-20 12:37:32 +0200 od r275172 : #i100466# correction for showing and hiding redlines 2009-08-18 13:25:18 +0200 od r275100 : #i103817# method <XMLTextImportHelper::SetStyleAndAttrs(..) - assure that a heading applies the outline style, if no other list style is applied. 2009-08-18 13:21:38 +0200 od r275098 : #i103817# allow the outline style - list style for outline numbering - to be set directly at the paragraph 2009-08-17 14:13:02 +0200 od r275052 : #i103684# add missing documentation for new optional OutlineLevel attribute introduced in OOo 3.1 2009-08-17 14:00:25 +0200 od r275049 : #i100481# method <XMLTextFrameContext_Impl::CreateChildContext(..)># - correct condition for handling embedded documents and embedded math objects 2009-08-12 14:11:34 +0200 od r274891 : #i97379# assure that columns are not applied to fly frames, which represent graphics or embedded objects 2009-08-12 12:51:43 +0200 od r274889 : #i101870# method <SwTxtNode::_MakeNewTxtNode(..)> - perform action on different paragraph styles before applying new paragraph style 2009-08-12 12:24:44 +0200 od r274888 : #i101092# method <ViewShell::Paint(..)> - encapsulate paint of document background and document into pre and post drawing layer paint calls 2009-08-12 11:38:48 +0200 od r274886 : #i98766# minor adjustment in order to be warning free under Mac port builds 2009-08-12 11:33:54 +0200 od r274885 : #i99267# method <SwTabFrm::MakeAll()> - reset <bSplit> after forward move to assure that follows can be joined, if further space is available. 2009-08-12 11:11:49 +0200 od r274882 : #i98766# method <ViewShell::SmoothScroll(..) - disable smooth scroll for Mac port builds 2009-08-10 12:17:58 +0200 od r274801 : CWS-TOOLING: rebase CWS sw32bf02 to trunk@274622 (milestone: DEV300:m54) 2009-07-21 16:56:45 +0200 od r274206 : #i103685# method <SwTxtFormatter::NewTabPortion(..)> - adjust condition to apply automatic tab stop at left margin correctly in case that tab stops are not relative to indent 2009-07-10 11:53:53 +0200 od r273883 : #i102752 method <SwDrawContact::Modify(..)> - assure that a ShapePropertyChangeNotifier exists 2009-07-07 12:01:58 +0200 mst r273788 : #i103304# apply patch by dtardon to fix bogus conditional 2009-07-07 09:01:13 +0200 od r273767 : CWS-TOOLING: rebase CWS sw32bf02 to trunk@273468 (milestone: DEV300:m51)
2009-08-27 14:36:29 +00:00
virtual bool DeleteAndJoin( SwPaM&,
const bool bForceJoinNext = false ) = 0;
/** verschieben eines Bereiches
*/
virtual bool Move(SwPaM&, SwPosition&, SwMoveFlags) = 0;
/** verschieben ganzer Nodes
*/
virtual bool Move(SwNodeRange&, SwNodeIndex&, SwMoveFlags) = 0;
/** verschieben eines Bereiches
*/
virtual bool MoveAndJoin(SwPaM&, SwPosition&, SwMoveFlags) = 0;
/** Ueberschreiben eines einzelnen Zeichens. rRg.Start() bezeichnet
den Node und die Position in dem Node, an der eingefuegt wird,
*/
virtual bool Overwrite(const SwPaM &rRg, sal_Unicode c) = 0;
/** Ueberschreiben eines Strings in einem bestehenden Textnode.
*/
virtual bool Overwrite(const SwPaM &rRg, const String& rStr) = 0;
/** Einfuegen eines einzelnen Zeichens. rRg.Start() bezeichnet
den Node und die Position in dem Node, an der eingefuegt wird.
*/
virtual bool Insert(const SwPaM &rRg, sal_Unicode c) = 0;
/** Einfuegen eines Strings in einen bestehenden
Textnode. Der Text wird kopiert.
*/
virtual bool Insert(const SwPaM &rRg, const String&, bool bHintExpand) = 0;
/** change text to Upper/Lower/Hiragana/Katagana/...
*/
virtual void TransliterateText(const SwPaM& rPaM, utl::TransliterationWrapper&) = 0;
/** Einfuegen einer Grafik, Formel. Die XXXX werden kopiert.
*/
virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const String& rGrfName, const String& rFltName, const Graphic* pGraphic,
const SfxItemSet* pFlyAttrSet, const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
/**
*/
virtual SwFlyFrmFmt* Insert(const SwPaM& rRg, const GraphicObject& rGrfObj, const SfxItemSet* pFlyAttrSet,
const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
/** austauschen einer Grafik (mit Undo)
*/
virtual void ReRead(SwPaM&, const String& rGrfName, const String& rFltName, const Graphic* pGraphic, const GraphicObject* pGrfObj) = 0;
/** Einfuegen eines DrawObjectes. Das Object muss bereits im DrawModel
angemeldet sein.
*/
virtual SwDrawFrmFmt* Insert(const SwPaM &rRg, SdrObject& rDrawObj, const SfxItemSet* pFlyAttrSet, SwFrmFmt*) = 0;
/** Einfuegen von OLE-Objecten.
*/
virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const svt::EmbeddedObjectRef& xObj, const SfxItemSet* pFlyAttrSet,
const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
virtual SwFlyFrmFmt* InsertOLE(const SwPaM &rRg, const String& rObjName, sal_Int64 nAspect, const SfxItemSet* pFlyAttrSet,
const SfxItemSet* pGrfAttrSet, SwFrmFmt*) = 0;
/** Aufspalten eines Nodes an rPos (nur fuer den TxtNode implementiert)
*/
virtual bool SplitNode(const SwPosition &rPos, bool bChkTableStart) = 0;
/**
*/
virtual bool AppendTxtNode(SwPosition& rPos) = 0;
/** Ersetz einen selektierten Bereich in einem TextNode mit dem
String. Ist fuers Suchen&Ersetzen gedacht.
bRegExpRplc - ersetze Tabs (\\t) und setze den gefundenen String
ein ( nicht \& )
z.B.: Fnd: "zzz", Repl: "xx\t\\t..&..\&"
--> "xx\t<Tab>..zzz..&"
*/
virtual bool Replace(SwPaM& rPam, const String& rNewStr, bool bRegExpRplc) = 0;
/** Einfuegen eines Attributs. Erstreckt sich rRg ueber
mehrere Nodes, wird das Attribut aufgespaltet, sofern
dieses Sinn macht. Nodes, in denen dieses Attribut keinen
Sinn macht, werden ignoriert. In vollstaendig in der
Selektion eingeschlossenen Nodes wird das Attribut zu
harter Formatierung, in den anderen (Text-)Nodes wird das
Attribut in das Attributearray eingefuegt. Bei einem
Zeichenattribut wird ein "leerer" Hint eingefuegt,
wenn keine Selektion
vorliegt; andernfalls wird das Attribut als harte
Formatierung dem durch rRg.Start() bezeichneten Node
hinzugefuegt. Wenn das Attribut nicht eingefuegt werden
konnte, liefert die Methode sal_False.
*/
virtual bool Insert(const SwPaM &rRg, const SfxPoolItem&, sal_uInt16 nFlags) = 0;
/**
*/
virtual bool Insert(const SwPaM &rRg, const SfxItemSet&, sal_uInt16 nFlags) = 0;
/** Removes any leading white space from the paragraph
*/
virtual void RemoveLeadingWhiteSpace(const SwPosition & rPos ) = 0;
protected:
virtual ~IDocumentContentOperations() {};
};
#endif // IDOCUMENTCONTENTOPERATIONS_HXX_INCLUDED