diff options
Diffstat (limited to 'sw/inc')
59 files changed, 1761 insertions, 357 deletions
diff --git a/sw/inc/IDocumentLayoutAccess.hxx b/sw/inc/IDocumentLayoutAccess.hxx index 8ff2f4c52588..ee04ec055f1a 100644 --- a/sw/inc/IDocumentLayoutAccess.hxx +++ b/sw/inc/IDocumentLayoutAccess.hxx @@ -30,6 +30,7 @@ #include <swtypes.hxx> +class ViewShell; class SwRootFrm; class SwFrmFmt; class SfxItemSet; @@ -44,12 +45,15 @@ public: /** Returns the layout set at the document. */ - virtual const SwRootFrm* GetRootFrm() const = 0; - virtual SwRootFrm* GetRootFrm() = 0; + virtual const ViewShell* GetCurrentViewShell() const = 0; + virtual ViewShell* GetCurrentViewShell() = 0; //swmod 071107//swmod 071225 + virtual const SwRootFrm* GetCurrentLayout() const = 0; + virtual SwRootFrm* GetCurrentLayout() = 0; //swmod 080218 + virtual bool HasLayout() const = 0; /** !!!The old layout must be deleted!!! */ - virtual void SetRootFrm( SwRootFrm* pNew ) = 0; + virtual void SetCurrentViewShell( ViewShell* pNew ) = 0; //swmod 071107//swmod 071225 /** */ diff --git a/sw/inc/authfld.hxx b/sw/inc/authfld.hxx index 03ef2af83cea..67ca9eb2b02f 100644 --- a/sw/inc/authfld.hxx +++ b/sw/inc/authfld.hxx @@ -89,13 +89,15 @@ class SW_DLLPUBLIC SwAuthorityFieldType : public SwFieldType // @@@ private copy assignment, but public copy ctor? @@@ const SwAuthorityFieldType& operator=( const SwAuthorityFieldType& ); +protected: +virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ); + public: SwAuthorityFieldType(SwDoc* pDoc); SwAuthorityFieldType( const SwAuthorityFieldType& ); ~SwAuthorityFieldType(); virtual SwFieldType* Copy() const; - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew ); virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId ) const; virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId ); diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx index 407688df2a5f..17e01f2b78b2 100644 --- a/sw/inc/calbck.hxx +++ b/sw/inc/calbck.hxx @@ -25,45 +25,70 @@ * ************************************************************************/ -/************************************************************* -#* Service-Klassen - *************************************************************/ - -/* -#* Aendert sich ein Attribut in einem Format, so muss diese -#* Aenderung an alle abhaengigen Formate und ueber sie an -#* alle betroffenen Nodes propagiert werden. Dabei muss -#* festgestellt werden, ob die Aenderung einen Effekt haben -#* kann, oder ob das geaenderte Attribut von dem abhaengigen -#* Format ueberdefiniert wird (so dass ohnehin der -#* Attributwert des abhaengigen Formates den geaenderten -#* Wert verdeckt). Weiterhin kann der betroffene Node -#* feststellen, ob er von dem geaenderten Attribut Gebrauch -#* macht (Beispiel: Linienabstand fuer Unterstreichung wurde -#* geaendert, das Attribut Unterstreichung wurde aber nicht -#* verwendet). So wird bei Aenderungen der minimale Aufwand -#* zum Reformatieren erkannt. - */ #ifndef _CALBCK_HXX #define _CALBCK_HXX #include <tools/rtti.hxx> #include "swdllapi.h" +#include <boost/noncopyable.hpp> class SwModify; class SwClientIter; class SfxPoolItem; -class SvStream; +class SfxHint; + +/* + SwModify and SwClient cooperate in propagating attribute changes. + If an attribute changes, the change is notified to all dependent + formats and other interested objects, e.g. Nodes. The clients will detect + if the change affects them. It could be that the changed attribute is + overruled in the receiving object so that its change does not become + effective or that the receiver is not interested in the particular attribute + in general (though probably in other attributes of the SwModify object they + are registered in). + As SwModify objects are derived from SwClient, they can create a chain of SwClient + objects where changes can get propagated through. + Each SwClient can be registered at only one SwModify object, while each SwModify + object is connected to a list of SwClient objects. If an object derived from SwClient + wants to get notifications from more than one SwModify object, it must create additional + SwClient objects. The SwDepend class allows to handle their notifications in the same + notification callback as it forwards the Modify() calls it receives to a "master" + SwClient implementation. + The SwClientIter class allows to iterate over the SwClient objects registered at an + SwModify. For historical reasons its ability to use TypeInfo to restrict this iteration + to objects of a particular type created a lot of code that misuses SwClient-SwModify + relationships that basically should be used only for Modify() callbacks. + This is still subject to refactoring. + Until this gets resolved, new SwClientIter base code should be reduced to the absolute + minimum and it also should be wrapped by SwIterator templates that prevent that the + code gets polluted by pointer casts (see switerator.hxx). + */ // ---------- // SwClient // ---------- -class SW_DLLPUBLIC SwClient +class SW_DLLPUBLIC SwClient : ::boost::noncopyable { + // avoids making the details of the linked list and the callback method public friend class SwModify; friend class SwClientIter; +<<<<<<< local + SwClient *pLeft, *pRight; // double-linked list of other clients + SwModify *pRegisteredIn; // event source + + // in general clients should not be removed when their SwModify sends out Modify() + // notifications; in some rare cases this is necessary, but only the concrete SwClient + // sub class will know that; this flag allows to make that known + bool mbIsAllowedToBeRemovedInModifyCall; + + // callbacks received from SwModify (friend class - so these methods can be private) + // should be called only from SwModify the client is registered in + // mba: IMHO these methods should be pure virtual + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint ); +======= SwClient *pLeft, *pRight; // fuer die AVL-Sortierung sal_Bool bModifyLocked : 1; // wird in SwModify::Modify benutzt, // eigentlich ein Member des SwModify @@ -73,25 +98,40 @@ class SW_DLLPUBLIC SwClient sal_Bool bInCache : 1; // Ist im BorderAttrCache des Layout, // Traegt sich dann im Modify aus! sal_Bool bInSwFntCache : 1; // Ist im SwFont-Cache der Formatierung +>>>>>>> other protected: - SwModify *pRegisteredIn; - // single argument ctors shall be explicit. explicit SwClient(SwModify *pToRegisterIn); + // write access to pRegisteredIn shall be granted only to the object itself (protected access) + SwModify* GetRegisteredInNonConst() const { return pRegisteredIn; } + void SetIsAllowedToBeRemovedInModifyCall( bool bSet ) { mbIsAllowedToBeRemovedInModifyCall = bSet; } + public: + inline SwClient(); virtual ~SwClient(); - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + // in case an SwModify object is destroyed that itself is registered in another SwModify, + // its SwClient objects can decide to get registered to the latter instead by calling this method + void CheckRegistration( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue ); + + // controlled access to Modify method + // mba: this is still considered a hack and it should be fixed; the name makes grep-ing easier + void ModifyNotification( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue ) { Modify ( pOldValue, pNewValue ); } + void SwClientNotifyCall( const SwModify& rModify, const SfxHint& rHint ) { SwClientNotify( rModify, rHint ); } + const SwModify* GetRegisteredIn() const { return pRegisteredIn; } + bool IsLast() const { return !pLeft && !pRight; } - //rtti, abgeleitete moegens gleichtun oder nicht. Wenn sie es gleichtun - //kann ueber die Abhaengigkeitsliste eines Modify typsicher gecastet - //werden. + // needed for class SwClientIter TYPEINFO(); +<<<<<<< local + // get information about attribute + virtual BOOL GetInfo( SfxPoolItem& ) const; +======= void LockModify() { bModifyLocked = sal_True; } void UnlockModify() { bModifyLocked = sal_False; } void SetInCache( sal_Bool bNew ) { bInCache = bNew; } @@ -107,61 +147,91 @@ public: private: SwClient( const SwClient& ); SwClient &operator=( const SwClient& ); +>>>>>>> other }; inline SwClient::SwClient() : +<<<<<<< local + pLeft(0), pRight(0), pRegisteredIn(0), mbIsAllowedToBeRemovedInModifyCall(false) +{} +======= pLeft(0), pRight(0), pRegisteredIn(0) { bModifyLocked = bInModify = bInDocDTOR = bInCache = bInSwFntCache = sal_False; } +>>>>>>> other // ---------- // SwModify // ---------- -// Klasse hat eine doppelt Verkette Liste fuer die Abhaengigen. - class SW_DLLPUBLIC SwModify: public SwClient { - friend SvStream& operator<<( SvStream& aS, SwModify & ); +// friend class SwClientIter; - friend class SwClientIter; - SwClient* pRoot; + SwClient* pRoot; // the start of the linked list of clients + BOOL bModifyLocked : 1; // don't broadcast changes now + BOOL bLockClientList : 1; // may be set when this instance notifies its clients + BOOL bInDocDTOR : 1; // workaround for problems when a lot of objects are destroyed + BOOL bInCache : 1; + BOOL bInSwFntCache : 1; - SwClient *_Remove(SwClient *pDepend); + // mba: IMHO this method should be pure virtual + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); public: - SwModify() : pRoot(0) {} + SwModify(); + + // broadcasting: send notifications to all clients + void NotifyClients( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue ); + + // the same, but without setting bModifyLocked or checking for any of the flags + // mba: it would be interesting to know why this is necessary + // also allows to limit callback to certain type (HACK) + void ModifyBroadcast( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue, TypeId nType = TYPE(SwClient) ); + + // a more universal broadcasting mechanism + void CallSwClientNotify( const SfxHint& rHint ) const; // single argument ctors shall be explicit. - explicit SwModify(SwModify *pToRegisterIn ); + explicit SwModify( SwModify *pToRegisterIn ); virtual ~SwModify(); - virtual void Modify( SfxPoolItem *pOldValue, SfxPoolItem *pNewValue ); void Add(SwClient *pDepend); - SwClient *Remove(SwClient *pDepend) - { return bInDocDTOR ? 0 : _Remove( pDepend ); } - + SwClient* Remove(SwClient *pDepend); const SwClient* GetDepends() const { return pRoot; } +<<<<<<< local + // get information about attribute + virtual BOOL GetInfo( SfxPoolItem& ) const; +======= // erfrage vom Client Informationen virtual sal_Bool GetInfo( SfxPoolItem& ) const; - +>>>>>>> other + +<<<<<<< local + void LockModify() { bModifyLocked = TRUE; } + void UnlockModify() { bModifyLocked = FALSE; } + void SetInCache( BOOL bNew ) { bInCache = bNew; } + void SetInSwFntCache( BOOL bNew ) { bInSwFntCache = bNew; } + void SetInDocDTOR() { bInDocDTOR = TRUE; } + BOOL IsModifyLocked() const { return bModifyLocked; } + BOOL IsInDocDTOR() const { return bInDocDTOR; } + BOOL IsInCache() const { return bInCache; } + BOOL IsInSwFntCache() const { return bInSwFntCache; } +======= void SetInDocDTOR() { bInDocDTOR = sal_True; } +>>>>>>> other void CheckCaching( const sal_uInt16 nWhich ); +<<<<<<< local + bool IsLastDepend() { return pRoot && pRoot->IsLast(); } +======= sal_Bool IsLastDepend() const { return pRoot && !pRoot->pLeft && !pRoot->pRight; } +>>>>>>> other -private: - // forbidden and not implemented (see @ SwClient). - SwModify & operator= (const SwModify &); - -protected: - // forbidden and not implemented (see @ SwClient), - // but GCC >= 3.4 needs an accessible "T (const T&)" - // to pass a "T" as a "const T&" argument - SwModify (const SwModify &); + int GetClientCount() const; }; // ---------- @@ -169,9 +239,7 @@ protected: // ---------- /* - * Sehr sinnvolle Klasse, wenn ein Objekt von mehreren Objekten - * abhaengig ist. Diese sollte fuer jede Abhaengigkeit ein Objekt - * der Klasse SwDepend als Member haben. + * Helper class for objects that need to depend on more than one SwClient */ class SW_DLLPUBLIC SwDepend: public SwClient { @@ -182,69 +250,68 @@ public: SwDepend(SwClient *pTellHim, SwModify *pDepend); SwClient* GetToTell() { return pToTell; } - virtual void Modify( SfxPoolItem *pOldValue, SfxPoolItem *pNewValue ); +<<<<<<< local + virtual BOOL GetInfo( SfxPoolItem & ) const; +======= // erfrage vom Client Informationen virtual sal_Bool GetInfo( SfxPoolItem & ) const; +>>>>>>> other -private: - // forbidden and not implemented (see @ SwClient). - SwDepend (const SwDepend &); - SwDepend & operator= (const SwDepend &); +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNewValue ); + virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint ); }; class SwClientIter { - friend SwClient* SwModify::_Remove(SwClient *); // fuer Ptr-Korrektur - friend void SwModify::Add(SwClient *); // nur fuer ASSERT ! + friend SwClient* SwModify::Remove(SwClient *); // for pointer adjustments + friend void SwModify::Add(SwClient *pDepend); // for pointer adjustments - SwModify const& rRoot; - SwClient *pAkt, *pDelNext; - // fuers Updaten der aller Iteratoren beim Einfuegen/Loeschen von - // Clients, wenn der Iterator gerade draufsteht. - SwClientIter *pNxtIter; + const SwModify& rRoot; - SwClient* mpWatchClient; // if set, SwModify::_Remove checks if this client is removed + // the current object in an iteration + SwClient* pAct; - TypeId aSrchId; // fuer First/Next - suche diesen Type + // in case the current object is already removed, the next object in the list + // is marked down to become the current object in the next step + // this is necessary because iteration requires access to members of the current object + SwClient* pDelNext; -public: - SW_DLLPUBLIC SwClientIter( SwModify const& ); - SW_DLLPUBLIC ~SwClientIter(); + // SwClientIter objects are tracked in linked list so that they can react + // when the current (pAct) or marked down (pDelNext) SwClient is removed + // from its SwModify + SwClientIter *pNxtIter; - const SwModify& GetModify() const { return rRoot; } + // iterator can be limited to return only SwClient objects of a certain type + TypeId aSrchId; -#ifndef CFRONT - SwClient* operator++(int); // zum Naechsten - SwClient* operator--(int); // zum Vorherigen -#endif - SwClient* operator++(); // zum Naechsten - SwClient* operator--(); // zum Vorherigen +public: + SW_DLLPUBLIC SwClientIter( const SwModify& ); + SW_DLLPUBLIC ~SwClientIter(); - SwClient* GoStart(); // zum Anfang - SwClient* GoEnd(); // zum Ende + const SwModify& GetModify() const { return rRoot; } - inline SwClient* GoRoot(); // wieder ab Root (==Start) anfangen + SwClient* operator++(int); + SwClient* GoStart(); + SwClient* GoEnd(); + // returns the current SwClient object; + // in case this was already removed, the object marked down to become + // the next current one is returned SwClient* operator()() const - { return pDelNext == pAkt ? pAkt : pDelNext; } + { return pDelNext == pAct ? pAct : pDelNext; } - int IsChanged() const { return pDelNext != pAkt; } + // return "true" if an object was removed from a client chain in iteration + // adding objects to a client chain in iteration is forbidden + // SwModify::Add() asserts this + bool IsChanged() const { return pDelNext != pAct; } SW_DLLPUBLIC SwClient* First( TypeId nType ); SW_DLLPUBLIC SwClient* Next(); - - const SwClient* GetWatchClient() const { return mpWatchClient; } - void SetWatchClient( SwClient* pWatch ) { mpWatchClient = pWatch; } + SW_DLLPUBLIC SwClient* Last( TypeId nType ); + SW_DLLPUBLIC SwClient* Previous(); }; -inline SwClient* SwClientIter::GoRoot() // wieder ab Root anfangen -{ - pAkt = rRoot.pRoot; - return (pDelNext = pAkt); -} - - - #endif diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx index 4ae1650e8538..69bbb7e82143 100644 --- a/sw/inc/crsrsh.hxx +++ b/sw/inc/crsrsh.hxx @@ -327,6 +327,9 @@ protected: */ SW_DLLPRIVATE void UpdateMarkedListLevel(); +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: TYPEINFO(); SwCrsrShell( SwDoc& rDoc, Window *pWin, const SwViewOption *pOpt = 0 ); @@ -334,12 +337,15 @@ public: SwCrsrShell( SwCrsrShell& rShell, Window *pWin ); virtual ~SwCrsrShell(); +<<<<<<< local +======= virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); // IShellCursorSupplier virtual SwPaM & CreateNewShellCursor(); virtual SwPaM & GetCurrentShellCursor(); +>>>>>>> other // neuen Cusror erzeugen und den alten anhaengen SwPaM * CreateCrsr(); // loesche den aktuellen Cursor und der folgende wird zum Aktuellen diff --git a/sw/inc/dcontact.hxx b/sw/inc/dcontact.hxx index 7d5fec3e37c0..e5754c510360 100644 --- a/sw/inc/dcontact.hxx +++ b/sw/inc/dcontact.hxx @@ -28,17 +28,14 @@ #define _DCONTACT_HXX #include <svx/svdobj.hxx> -// OD 14.05.2003 #108784# #include <svx/svdovirt.hxx> -// OD 2004-01-16 #110582# #include <swtypes.hxx> #include <fmtanchr.hxx> #include <frmfmt.hxx> - -// OD 17.06.2003 #108784# #include <list> #include "calbck.hxx" +#include <anchoreddrawobject.hxx> class SfxPoolItem; class SwFrmFmt; @@ -50,13 +47,10 @@ class SwVirtFlyDrawObj; class SwFmtAnchor; class SwFlyDrawObj; class SwRect; -// OD 17.06.2003 #108784# - forward declaration for class <SwDrawVirtObj> class SwDrawContact; -// OD 2004-01-16 #110582# struct SwPosition; class SwIndex; -// OD 2004-03-25 #i26791# -#include <anchoreddrawobject.hxx> +class SdrTextObj; //Der Umgekehrte Weg: Sucht das Format zum angegebenen Objekt. //Wenn das Object ein SwVirtFlyDrawObj ist so wird das Format von @@ -212,7 +206,7 @@ public: @author */ - virtual void GetAnchoredObjs( std::vector<SwAnchoredObject*>& _roAnchoredObjs ) const = 0; + virtual void GetAnchoredObjs( std::list<SwAnchoredObject*>& _roAnchoredObjs ) const = 0; /** get minimum order number of anchored objects handled by with contact @@ -240,14 +234,9 @@ private: // OD 2004-04-01 #i26791# SwFlyDrawObj* mpMasterObj; - /** method to determine new order number for new instance of <SwVirtFlyDrawObj> - - OD 2004-08-16 #i27030# - Used in method <CreateNewRef(..)>. - - @author OD - */ - sal_uInt32 _GetOrdNumForNewRef( const SwFlyFrm* pFlyFrm ); +protected: + // virtuelle Methoden von SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ); public: TYPEINFO(); @@ -265,11 +254,6 @@ public: virtual SdrObject* GetMaster(); virtual void SetMaster( SdrObject* _pNewMaster ); - SwVirtFlyDrawObj* CreateNewRef( SwFlyFrm* pFly ); - - // virtuelle Methoden von SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew ); - // OD 2004-01-16 #110582# - override methods to control Writer fly frames, // which are linked, and to assure that all objects anchored at/inside the // Writer fly frame are also made visible/invisible. @@ -282,7 +266,7 @@ public: @author */ - virtual void GetAnchoredObjs( std::vector<SwAnchoredObject*>& _roAnchoredObjs ) const; + virtual void GetAnchoredObjs( std::list<SwAnchoredObject*>& _roAnchoredObjs ) const; }; // OD 16.05.2003 #108784# - new class for re-direct methods calls at a 'virtual' @@ -468,6 +452,11 @@ class SwDrawContact : public SwContact SwDrawContact( const SwDrawContact& ); SwDrawContact& operator=( const SwDrawContact& ); // <-- + + protected: + // virtuelle Methoden von SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ); + public: TYPEINFO(); @@ -530,9 +519,6 @@ class SwDrawContact : public SwContact // by frame. SdrObject* GetDrawObjectByAnchorFrm( const SwFrm& _rAnchorFrm ); - // virtuelle Methoden von SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew ); - // virtuelle Methoden von SdrObjUserCall virtual void Changed(const SdrObject& rObj, SdrUserCallType eType, const Rectangle& rOldBoundRect); @@ -555,7 +541,9 @@ class SwDrawContact : public SwContact @author */ - virtual void GetAnchoredObjs( std::vector<SwAnchoredObject*>& _roAnchoredObjs ) const; + + static void GetTextObjectsFromFmt( std::list<SdrTextObj*>&, SwDoc* ); + virtual void GetAnchoredObjs( std::list<SwAnchoredObject*>& _roAnchoredObjs ) const; }; #endif diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index 8ac03ff109bd..a72f4f46ec32 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -328,7 +328,7 @@ class SW_DLLPUBLIC SwDoc : SwTOXTypes *pTOXTypes; // Verzeichnisse SwDefTOXBase_Impl * pDefTOXBases; // defaults of SwTOXBase's - SwRootFrm *pLayout; // Rootframe des spezifischen Layouts. + ViewShell *pCurrentView; // SwDoc should get a new member pCurrentView//swmod 071225 SdrModel *pDrawModel; // StarView Drawing SwDocUpdtFld *pUpdtFlds; // Struktur zum Field-Update @@ -458,7 +458,6 @@ private: bool mbNewFldLst : 1; // TRUE: Felder-Liste neu aufbauen bool mbCopyIsMove : 1; // TRUE: Copy ist ein verstecktes Move bool mbVisibleLinks : 1; // TRUE: Links werden sichtbar eingefuegt - bool mbBrowseMode : 1; // TRUE: Dokument im BrowseModus anzeigen bool mbInReading : 1; // TRUE: Dokument wird gerade gelesen bool mbInXMLImport : 1; // TRUE: During xml import, attribute portion building is not necessary bool mbUpdateTOX : 1; // TRUE: nach Dokument laden die TOX Updaten @@ -590,6 +589,8 @@ private: bool mbProtectForm : 1; bool mbTabAtLeftIndentForParagraphsInList; // OD 2008-06-05 #i89181# - see above + bool mbLastBrowseMode : 1; + // #i78591# sal_uInt32 n32DummyCompatabilityOptions1; sal_uInt32 n32DummyCompatabilityOptions2; @@ -948,15 +949,18 @@ public: /** IDocumentLayoutAccess */ - virtual const SwRootFrm* GetRootFrm() const ; - virtual SwRootFrm* GetRootFrm(); - virtual void SetRootFrm( SwRootFrm* pNew ); + virtual void SetCurrentViewShell( ViewShell* pNew );//swmod 071225 virtual SwLayouter* GetLayouter(); virtual const SwLayouter* GetLayouter() const; virtual void SetLayouter( SwLayouter* pNew ); virtual SwFrmFmt* MakeLayoutFmt( RndStdIds eRequest, const SfxItemSet* pSet ); virtual void DelLayoutFmt( SwFrmFmt *pFmt ); virtual SwFrmFmt* CopyLayoutFmt( const SwFrmFmt& rSrc, const SwFmtAnchor& rNewAnchor, bool bSetTxtFlyAtt, bool bMakeFrms ); + virtual const ViewShell *GetCurrentViewShell() const; //swmod 080219 + virtual ViewShell *GetCurrentViewShell();//swmod 080219 It must be able to communicate to a ViewShell.This is going to be removerd later. + virtual const SwRootFrm *GetCurrentLayout() const; + virtual SwRootFrm *GetCurrentLayout();//swmod 080219 + virtual bool HasLayout() const; /** IDocumentTimerAccess */ @@ -1158,6 +1162,8 @@ public: String GetUniqueOLEName() const; String GetUniqueFrameName() const; + std::set<SwRootFrm*> GetAllLayouts();//swmod 080225 + void SetFlyName( SwFlyFrmFmt& rFmt, const String& rName ); const SwFlyFrmFmt* FindFlyByName( const String& rName, sal_Int8 nNdTyp = 0 ) const; @@ -1326,16 +1332,13 @@ public: // get the set of printable pages for the XRenderable API by // evaluating the respective settings (see implementation) - void CalculatePagesForPrinting( SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport, + void CalculatePagesForPrinting( const SwRootFrm& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport, sal_Int32 nDocPageCount ); void UpdatePagesForPrintingWithPostItData( SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport, sal_Int32 nDocPageCount ); - void CalculatePagePairsForProspectPrinting( SwRenderData &rData, const SwPrintUIOptions &rOptions, + void CalculatePagePairsForProspectPrinting( const SwRootFrm& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions, sal_Int32 nDocPageCount ); - sal_uInt16 GetPageCount() const; - const Size GetPageSize( sal_uInt16 nPageNum, bool bSkipEmptyPages ) const; - //PageDescriptor-Schnittstelle sal_uInt16 GetPageDescCnt() const { return aPageDescs.Count(); } const SwPageDesc& GetPageDesc( const sal_uInt16 i ) const { return *aPageDescs[i]; } @@ -1898,7 +1901,7 @@ public: // update all modified OLE-Objects. The modification is called over the // StarOne - Interface --> Bug 67026 void SetOLEObjModified() - { if( GetRootFrm() ) aOLEModifiedTimer.Start(); } + { if( GetCurrentViewShell() ) aOLEModifiedTimer.Start(); } //swmod 071107//swmod 071225 // -------------------- Uno - Schnittstellen --------------------------- const SwUnoCrsrTbl& GetUnoCrsrTbl() const { return *pUnoCrsrTbl; } diff --git a/sw/inc/dochdl.hrc b/sw/inc/dochdl.hrc index 47b0b8014240..47b0b8014240 100644..100755 --- a/sw/inc/dochdl.hrc +++ b/sw/inc/dochdl.hrc diff --git a/sw/inc/docsh.hxx b/sw/inc/docsh.hxx index 1b6091668c67..037002afbd20 100644 --- a/sw/inc/docsh.hxx +++ b/sw/inc/docsh.hxx @@ -278,7 +278,11 @@ public: void EnterWait( sal_Bool bLockDispatcher ); void LeaveWait( sal_Bool bLockDispatcher ); +<<<<<<< local + void ToggleBrowserMode(BOOL bOn, SwView* pView); +======= void ToggleBrowserMode(sal_Bool bOn, SwView* pView = 0); +>>>>>>> other sal_uLong LoadStylesFromFile( const String& rURL, SwgReaderOption& rOpt, sal_Bool bUnoCall ); diff --git a/sw/inc/docufld.hxx b/sw/inc/docufld.hxx index af61eeec61dd..70dbd5c0576e 100644 --- a/sw/inc/docufld.hxx +++ b/sw/inc/docufld.hxx @@ -639,8 +639,10 @@ public: SwRefPageSetFieldType(); virtual SwFieldType* Copy() const; + +protected: // ueberlagert, weil es nichts zum Updaten gibt! - virtual void Modify( SfxPoolItem *, SfxPoolItem * ); + virtual void Modify( const SfxPoolItem*, const SfxPoolItem * ); }; /*-------------------------------------------------------------------- @@ -680,15 +682,21 @@ class SwRefPageGetFieldType : public SwFieldType sal_Int16 nNumberingType; void UpdateField( SwTxtFld* pTxtFld, _SetGetExpFlds& rSetList ); - +protected: + // ueberlagert, um alle RefPageGet-Felder zu updaten + virtual void Modify( const SfxPoolItem*, const SfxPoolItem * ); public: SwRefPageGetFieldType( SwDoc* pDoc ); virtual SwFieldType* Copy() const; +<<<<<<< local + USHORT MakeSetList( _SetGetExpFlds& rTmpLst ); +======= // ueberlagert, um alle RefPageGet-Felder zu updaten virtual void Modify( SfxPoolItem *, SfxPoolItem * ); sal_uInt16 MakeSetList( _SetGetExpFlds& rTmpLst ); +>>>>>>> other SwDoc* GetDoc() const { return pDoc; } }; diff --git a/sw/inc/expfld.hxx b/sw/inc/expfld.hxx index 38d9c56b3213..567e92b84e9b 100644 --- a/sw/inc/expfld.hxx +++ b/sw/inc/expfld.hxx @@ -82,8 +82,8 @@ public: // ueberlagert, weil das Get-Field nicht veraendert werden kann // und dann auch nicht aktualisiert werden muss. Aktualisierung // erfolgt beim Aendern von Set-Werten ! - - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew ); +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ); }; /*-------------------------------------------------------------------- @@ -162,9 +162,17 @@ class SW_DLLPUBLIC SwSetExpFieldType : public SwValueFieldType const SwNode* pOutlChgNd; // sal_Unicode cDelim; String sDelim; +<<<<<<< local + USHORT nType; + BYTE nLevel; + BOOL bDeleted; +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ); +======= sal_uInt16 nType; sal_uInt8 nLevel; sal_Bool bDeleted; +>>>>>>> other public: SwSetExpFieldType( SwDoc* pDoc, const String& rName, @@ -183,7 +191,6 @@ public: // ueberlagert, weil das Set-Field selbst dafuer sorgt, das // es aktualisiert wird. - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew ); inline const String& GetSetRefName() const; sal_uInt16 SetSeqRefNo( SwSetExpField& rFld ); diff --git a/sw/inc/fchrfmt.hxx b/sw/inc/fchrfmt.hxx index 0b9cc9150227..0fa469cbd046 100644 --- a/sw/inc/fchrfmt.hxx +++ b/sw/inc/fchrfmt.hxx @@ -53,6 +53,9 @@ public: // @@@ public copy ctor, but no copy assignment? SwFmtCharFmt( const SwFmtCharFmt& rAttr ); +protected: + virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ); + private: // @@@ public copy ctor, but no copy assignment? SwFmtCharFmt & operator= (const SwFmtCharFmt &); @@ -73,8 +76,12 @@ public: virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ); // an das SwTxtCharFmt weiterleiten (vom SwClient) +<<<<<<< local + virtual BOOL GetInfo( SfxPoolItem& rInfo ) const; +======= virtual void Modify( SfxPoolItem*, SfxPoolItem* ); virtual sal_Bool GetInfo( SfxPoolItem& rInfo ) const; +>>>>>>> other void SetCharFmt( SwFmt* pFmt ) { pFmt->Add(this); } SwCharFmt* GetCharFmt() const { return (SwCharFmt*)GetRegisteredIn(); } diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx index fc375b3401c3..d248c74a53f5 100644 --- a/sw/inc/fldbas.hxx +++ b/sw/inc/fldbas.hxx @@ -288,7 +288,7 @@ public: inline void SwFieldType::UpdateFlds() const { - ((SwFieldType*)this)->Modify( 0, 0 ); + ((SwFieldType*)this)->ModifyNotification( 0, 0 ); } /*-------------------------------------------------------------------- diff --git a/sw/inc/fmtcol.hxx b/sw/inc/fmtcol.hxx index f7725cb6294a..2ef671b8463a 100644 --- a/sw/inc/fmtcol.hxx +++ b/sw/inc/fmtcol.hxx @@ -96,10 +96,11 @@ protected: //nOutlineLevel( NO_NUMBERING ) //<-#outline level,removed by zhaojianwei mbAssignedToOutlineStyle(false) //<-#outline level,added by zhaojianwei { pNextTxtFmtColl = this; } -public: // zum "abfischen" von UL-/LR-/FontHeight Aenderungen - virtual void Modify( SfxPoolItem*, SfxPoolItem* ); + virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ); + +public: TYPEINFO(); //Bereits in Basisklasse Client drin. @@ -255,6 +256,7 @@ public: void SetCondition( sal_uLong nCond, sal_uLong nSubCond ); SwTxtFmtColl* GetTxtFmtColl() const { return (SwTxtFmtColl*)GetRegisteredIn(); } + void RegisterToFormat( SwFmt& ); }; @@ -281,9 +283,6 @@ public: virtual ~SwConditionTxtFmtColl(); - // zum "abfischen" von Aenderungen -// virtual void Modify( SfxPoolItem*, SfxPoolItem* ); - const SwCollCondition* HasCondition( const SwCollCondition& rCond ) const; const SwFmtCollConditions& GetCondColls() const { return aCondColls; } void InsertCondition( const SwCollCondition& rCond ); diff --git a/sw/inc/fmtfld.hxx b/sw/inc/fmtfld.hxx index a6289406c505..a0534c01573f 100644 --- a/sw/inc/fmtfld.hxx +++ b/sw/inc/fmtfld.hxx @@ -27,6 +27,7 @@ #ifndef _FMTFLD_HXX #define _FMTFLD_HXX +#include <list> #include <svl/poolitem.hxx> #include <svl/brdcst.hxx> #include <svl/smplhint.hxx> @@ -37,6 +38,7 @@ class SwField; class SwTxtFld; class SwView; +class SwFieldType; // ATT_FLD *********************************** class SW_DLLPUBLIC SwFmtFld : public SfxPoolItem, public SwClient, public SfxBroadcaster @@ -53,6 +55,10 @@ class SW_DLLPUBLIC SwFmtFld : public SfxPoolItem, public SwClient, public SfxBro // @@@ copy construction allowed, but copy assignment is not? @@@ SwFmtFld& operator=(const SwFmtFld& rFld); +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint ); + public: TYPEINFO(); @@ -68,8 +74,12 @@ public: virtual int operator==( const SfxPoolItem& ) const; virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const; +<<<<<<< local + virtual BOOL GetInfo( SfxPoolItem& rInfo ) const; +======= virtual void Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ); virtual sal_Bool GetInfo( SfxPoolItem& rInfo ) const; +>>>>>>> other const SwField *GetFld() const { return pField; } SwField *GetFld() { return pField; } @@ -87,8 +97,14 @@ public: const SwTxtFld *GetTxtFld() const { return pTxtAttr; } SwTxtFld *GetTxtFld() { return pTxtAttr; } +<<<<<<< local + BOOL IsFldInDoc() const; + BOOL IsProtect() const; + void RegisterToFieldType( SwFieldType& ); +======= sal_Bool IsFldInDoc() const; sal_Bool IsProtect() const; +>>>>>>> other }; class SW_DLLPUBLIC SwFmtFldHint : public SfxHint diff --git a/sw/inc/fmthdft.hxx b/sw/inc/fmthdft.hxx index c8773d61d1d5..9db05e8c7ac1 100644 --- a/sw/inc/fmthdft.hxx +++ b/sw/inc/fmthdft.hxx @@ -34,7 +34,7 @@ class SwFrmFmt; class IntlWrapper; - +class SwFmt; //Kopfzeile, fuer Seitenformate //Client von FrmFmt das den Header beschreibt. @@ -61,13 +61,20 @@ public: String &rText, const IntlWrapper* pIntl = 0 ) const; - const SwFrmFmt *GetHeaderFmt() const { return (SwFrmFmt*)pRegisteredIn; } - SwFrmFmt *GetHeaderFmt() { return (SwFrmFmt*)pRegisteredIn; } + const SwFrmFmt *GetHeaderFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } + SwFrmFmt *GetHeaderFmt() { return (SwFrmFmt*)GetRegisteredIn(); } +<<<<<<< local + BOOL IsActive() const { return bActive; } + void SetActive( BOOL bNew = TRUE ) { bActive = bNew; } + void RegisterToFormat( SwFmt& rFmt ); +======= sal_Bool IsActive() const { return bActive; } void SetActive( sal_Bool bNew = sal_True ) { bActive = bNew; } +>>>>>>> other }; + //Fusszeile, fuer Seitenformate //Client von FrmFmt das den Footer beschreibt. @@ -93,14 +100,25 @@ public: String &rText, const IntlWrapper* pIntl = 0 ) const; - const SwFrmFmt *GetFooterFmt() const { return (SwFrmFmt*)pRegisteredIn; } - SwFrmFmt *GetFooterFmt() { return (SwFrmFmt*)pRegisteredIn; } + const SwFrmFmt *GetFooterFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } + SwFrmFmt *GetFooterFmt() { return (SwFrmFmt*)GetRegisteredIn(); } +<<<<<<< local + BOOL IsActive() const { return bActive; } + void SetActive( BOOL bNew = TRUE ) { bActive = bNew; } + void RegisterToFormat( SwFmt& rFmt ); +======= sal_Bool IsActive() const { return bActive; } void SetActive( sal_Bool bNew = sal_True ) { bActive = bNew; } +>>>>>>> other }; +<<<<<<< local + +inline const SwFmtHeader &SwAttrSet::GetHeader(BOOL bInP) const +======= inline const SwFmtHeader &SwAttrSet::GetHeader(sal_Bool bInP) const +>>>>>>> other { return (const SwFmtHeader&)Get( RES_HEADER,bInP); } inline const SwFmtFooter &SwAttrSet::GetFooter(sal_Bool bInP) const { return (const SwFmtFooter&)Get( RES_FOOTER,bInP); } diff --git a/sw/inc/fmtmeta.hxx b/sw/inc/fmtmeta.hxx index b486434d19df..f70036e312f2 100755 --- a/sw/inc/fmtmeta.hxx +++ b/sw/inc/fmtmeta.hxx @@ -162,13 +162,13 @@ protected: ::com::sun::star::rdf::XMetadatable> const& xMeta) { m_wXMeta = xMeta; } + // SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ); + public: explicit Meta(SwFmtMeta * const i_pFmt = 0); virtual ~Meta(); - // SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew ); - // sfx2::Metadatable virtual ::sfx2::IXmlIdRegistry& GetRegistry(); virtual bool IsInClipboard() const; diff --git a/sw/inc/fmtpdsc.hxx b/sw/inc/fmtpdsc.hxx index 8305b9b98954..2363fddddf34 100644 --- a/sw/inc/fmtpdsc.hxx +++ b/sw/inc/fmtpdsc.hxx @@ -38,6 +38,7 @@ class SwPageDesc; class SwHistory; class SwPaM; class IntlWrapper; +class SwEndNoteInfo; //Pagedescriptor //Client vom SwPageDesc der durch das Attribut "beschrieben" wird. @@ -55,6 +56,9 @@ class SW_DLLPUBLIC SwFmtPageDesc : public SfxPoolItem, public SwClient sal_uInt16 nDescNameIdx; // SW3-Reader: Stringpool-Index des Vorlagennamens SwModify* pDefinedIn; // Verweis auf das Objekt, in dem das // Attribut gesetzt wurde (CntntNode/Format) +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ); + virtual void SwClientNotify( const SwModify&, const SfxHint& rHint ); public: SwFmtPageDesc( const SwPageDesc *pDesc = 0 ); @@ -75,8 +79,6 @@ public: virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const; virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ); - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew ); - SwPageDesc *GetPageDesc() { return (SwPageDesc*)GetRegisteredIn(); } const SwPageDesc *GetPageDesc() const { return (SwPageDesc*)GetRegisteredIn(); } @@ -86,6 +88,9 @@ public: // erfrage/setze, wo drin das Attribut verankert ist inline const SwModify* GetDefinedIn() const { return pDefinedIn; } void ChgDefinedIn( const SwModify* pNew ) { pDefinedIn = (SwModify*)pNew; } + void RegisterToEndNotInfo( SwEndNoteInfo& ); + void RegisterToPageDesc( SwPageDesc& ); + bool KnowsPageDesc() const; }; diff --git a/sw/inc/format.hxx b/sw/inc/format.hxx index d6e51aa6a617..64a8aa1dc5d9 100644 --- a/sw/inc/format.hxx +++ b/sw/inc/format.hxx @@ -44,9 +44,6 @@ class SwDoc; class SW_DLLPUBLIC SwFmt : public SwModify { -// friend class SwSwgReader; -// friend class SwSwgWriter; - String aFmtName; SwAttrSet aSet; @@ -70,6 +67,7 @@ protected: SwFmt( SwAttrPool& rPool, const String &rFmtNm, const sal_uInt16* pWhichRanges, SwFmt *pDrvdFrm, sal_uInt16 nFmtWhich ); SwFmt( const SwFmt& rFmt ); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNewValue ); public: TYPEINFO(); //Bereits in Basisklasse Client drin. @@ -80,7 +78,6 @@ public: // fuer die Abfrage der Writer-Funktionen sal_uInt16 Which() const { return nWhichId; } - virtual void Modify( SfxPoolItem* pOldValue, SfxPoolItem* pNewValue ); // erfrage vom Format Informationen virtual sal_Bool GetInfo( SfxPoolItem& ) const; @@ -114,8 +111,13 @@ public: virtual sal_uInt16 ResetAllFmtAttr(); // <-- +<<<<<<< local + inline SwFmt* DerivedFrom() const { return (SwFmt*)GetRegisteredIn(); } + inline BOOL IsDefault() const { return DerivedFrom() == 0; } +======= inline SwFmt* DerivedFrom() const { return (SwFmt*)pRegisteredIn; } inline sal_Bool IsDefault() const { return DerivedFrom() == 0; } +>>>>>>> other inline const String& GetName() const { return aFmtName; } void SetName( const String& rNewName, sal_Bool bBroadcast=sal_False ); diff --git a/sw/inc/frmfmt.hxx b/sw/inc/frmfmt.hxx index 16c72e1a9d19..526ee8f9a6de 100644 --- a/sw/inc/frmfmt.hxx +++ b/sw/inc/frmfmt.hxx @@ -27,15 +27,10 @@ #ifndef _FRMFMT_HXX #define _FRMFMT_HXX -// --> OD 2004-08-06 #i28749# #include <com/sun/star/text/PositionLayoutDir.hpp> -// <-- - #include <cppuhelper/weakref.hxx> #include <tools/gen.hxx> - #include <format.hxx> - #include "swdllapi.h" class SwFlyFrm; @@ -71,6 +66,8 @@ protected: pDrvdFrm, nFmtWhich ) {} + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNewValue ); + public: TYPEINFO(); //Bereits in Basisklasse Client drin. @@ -82,8 +79,6 @@ public: virtual Graphic MakeGraphic( ImageMap* pMap = NULL ); - virtual void Modify( SfxPoolItem* pOldValue, SfxPoolItem* pNewValue ); - // returnt das IMapObject, das an dem Format (Fly), in der ImageMap // an der Point Position definiert ist. // rPoint - teste auf der DocPosition @@ -146,6 +141,7 @@ public: { m_wXObject = xObject; } DECL_FIXEDMEMPOOL_NEWDEL_DLL(SwFrmFmt) + void RegisterToFormat( SwFmt& rFmt ); }; //Das FlyFrame-Format ------------------------------ diff --git a/sw/inc/ftninfo.hxx b/sw/inc/ftninfo.hxx index 6a5a5c583eba..ee208c428799 100644 --- a/sw/inc/ftninfo.hxx +++ b/sw/inc/ftninfo.hxx @@ -29,9 +29,6 @@ #include <tools/string.hxx> #include "swdllapi.h" -//#ifndef _NUMRULE_HXX -//#include <numrule.hxx> -//#endif #include <calbck.hxx> #include <editeng/numitem.hxx> @@ -48,13 +45,16 @@ class SW_DLLPUBLIC SwEndNoteInfo : public SwClient String sSuffix; protected: bool m_bEndNote; + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); + public: SvxNumberType aFmt; sal_uInt16 nFtnOffset; void ChgPageDesc( SwPageDesc *pDesc ); - SwPageDesc *GetPageDesc( SwDoc &rDoc ) const; - SwClient *GetPageDescDep() const { return (SwClient*)&aPageDescDep; } + SwPageDesc* GetPageDesc( SwDoc &rDoc ) const; + bool KnowsPageDesc() const; + bool DependsOn( const SwPageDesc* ) const; void SetFtnTxtColl(SwTxtFmtColl& rColl); SwTxtFmtColl* GetFtnTxtColl() const { return (SwTxtFmtColl*) GetRegisteredIn(); } // kann 0 sein @@ -67,8 +67,6 @@ public: void SetAnchorCharFmt( SwCharFmt* ); SwClient *GetAnchorCharFmtDep() const { return (SwClient*)&aAnchorCharFmtDep; } - virtual void Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ); - SwEndNoteInfo & operator=(const SwEndNoteInfo&); sal_Bool operator==( const SwEndNoteInfo &rInf ) const; @@ -80,6 +78,7 @@ public: void SetPrefix(const String& rSet) { sPrefix = rSet; } void SetSuffix(const String& rSet) { sSuffix = rSet; } + void ReleaseCollection() { if ( GetRegisteredInNonConst() ) GetRegisteredInNonConst()->Remove( this ); } }; enum SwFtnPos diff --git a/sw/inc/lineinfo.hxx b/sw/inc/lineinfo.hxx index 51d6a8c18c9a..91f5ac7712de 100644 --- a/sw/inc/lineinfo.hxx +++ b/sw/inc/lineinfo.hxx @@ -28,9 +28,6 @@ #define SW_LINEINFO_HXX #include "calbck.hxx" -//#ifndef _NUMRULE_HXX -//#include <numrule.hxx> -//#endif #include <editeng/numitem.hxx> #include "swdllapi.h" @@ -60,6 +57,8 @@ class SW_DLLPUBLIC SwLineNumberInfo : public SwClient //purpose of derivation fr sal_Bool bCountInFlys; //Count also within FlyFrames? sal_Bool bRestartEachPage; //Restart counting at the first paragraph of each page //(even on follows when paragraphs are splitted) +protected: + virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ); public: SwLineNumberInfo(); @@ -100,7 +99,7 @@ public: sal_Bool IsRestartEachPage() const { return bRestartEachPage; } void SetRestartEachPage( sal_Bool b ) { bRestartEachPage = b; } - virtual void Modify( SfxPoolItem*, SfxPoolItem* ); + bool HasCharFormat() const { return GetRegisteredIn() != 0; } }; diff --git a/sw/inc/ndnotxt.hxx b/sw/inc/ndnotxt.hxx index b61e46325bc5..5aab4f9a5708 100644 --- a/sw/inc/ndnotxt.hxx +++ b/sw/inc/ndnotxt.hxx @@ -63,7 +63,7 @@ protected: public: ~SwNoTxtNode(); - virtual SwCntntFrm *MakeFrm(); + virtual SwCntntFrm *MakeFrm( SwFrm* ); inline SwGrfFmtColl *GetGrfColl() const { return (SwGrfFmtColl*)GetRegisteredIn(); } diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx index 5ccaf0329f70..26dbd29870b4 100644 --- a/sw/inc/ndtxt.hxx +++ b/sw/inc/ndtxt.hxx @@ -44,15 +44,11 @@ #include <vector> #include <set> - +class SfxHint; class SwNumRule; class SwNodeNum; -// --> OD 2008-05-06 #refactorlists# class SwList; -// <-- -// --> OD 2008-12-02 #i96772# class SvxLRSpaceItem; -// <-- namespace utl { class TransliterationWrapper; @@ -228,6 +224,10 @@ public: // // End: Data collected during idle time // +protected: + // fuers Umhaengen der TxtFmtCollections (Outline-Nummerierung!!) + virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ); + virtual void SwClientNotify( const SwModify&, const SfxHint& ); public: using SwCntntNode::GetAttr; @@ -356,7 +356,7 @@ public: const ::com::sun::star::uno::Sequence<sal_Int32>& rOffsets ); // virtuelle Methoden aus dem CntntNode - virtual SwCntntFrm *MakeFrm(); + virtual SwCntntFrm *MakeFrm( SwFrm* ); virtual SwCntntNode *SplitCntntNode( const SwPosition & ); virtual SwCntntNode *JoinNext(); virtual SwCntntNode *JoinPrev(); @@ -794,9 +794,6 @@ public: TYPEINFO(); // fuer rtti - // fuers Umhaengen der TxtFmtCollections (Outline-Nummerierung!!) - virtual void Modify( SfxPoolItem*, SfxPoolItem* ); - // override SwIndexReg virtual void Update( SwIndex const & rPos, const xub_StrLen nChangeLen, const bool bNegative = false, const bool bDelete = false ); diff --git a/sw/inc/node.hxx b/sw/inc/node.hxx index 9ee05188898c..4ff69260b044 100644 --- a/sw/inc/node.hxx +++ b/sw/inc/node.hxx @@ -64,6 +64,7 @@ class SwTOXBase; class SwSectionNode; class SwStartNode; class SwTabFrm; +class SwRootFrm; class SwTable; class SwTableNode; class SwTableBox; @@ -81,9 +82,8 @@ class IDocumentLineNumberAccess; class IDocumentLinksAdministration; class IDocumentFieldsAccess; class IDocumentContentOperations; -// --> OD 2007-10-31 #i83479# class IDocumentListItems; -// <-- +class SwOLENodes; // -------------------- // class SwNode @@ -397,13 +397,17 @@ protected: // SwAttrSet (handle): sal_uInt16 ClearItemsFromAttrSet( const std::vector<sal_uInt16>& rWhichIds ); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: TYPEINFO(); //Bereits in Basisklasse Client drin. - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + // MakeFrm will be called for a certain layout + // pSib is another SwFrm of the same layout (e.g. the SwRootFrm itself, a sibling, the parent) + virtual SwCntntFrm *MakeFrm( SwFrm* pSib ) = 0; - virtual SwCntntFrm *MakeFrm() = 0; virtual SwCntntNode *SplitCntntNode(const SwPosition & ) = 0; + virtual SwCntntNode *JoinNext(); virtual SwCntntNode *JoinPrev(); // koennen 2 Nodes zusammengefasst werden ? @@ -417,7 +421,9 @@ public: sal_Bool GoNext(SwIndex *, sal_uInt16 nMode ) const; sal_Bool GoPrevious(SwIndex *, sal_uInt16 nMode ) const; - SwCntntFrm *GetFrm( const Point* pDocPos = 0, + // Replacement for good old GetFrm(..): + SwCntntFrm *getLayoutFrm( const SwRootFrm*, + const Point* pDocPos = 0, const SwPosition *pPos = 0, const sal_Bool bCalcFrm = sal_True ) const; // Gibt die tatsaechlcheGroesse des Frames zurueck bzw. ein leeres @@ -501,11 +507,12 @@ public: inline void SetModifyAtAttr( bool bSetModifyAtAttr ) const { mbSetModifyAtAttr = bSetModifyAtAttr; } inline bool GetModifyAtAttr() const { return mbSetModifyAtAttr; } + static SwOLENodes* CreateOLENodesArray( const SwFmtColl& rColl, bool bOnlyWithInvalidSize ); + private: // privater Constructor, weil nie kopiert werden darf !! SwCntntNode( const SwCntntNode & rNode ); SwCntntNode & operator= ( const SwCntntNode & rNode ); - }; @@ -525,7 +532,7 @@ public: const SwTable& GetTable() const { return *pTable; } SwTable& GetTable() { return *pTable; } - SwTabFrm *MakeFrm(); + SwTabFrm *MakeFrm( SwFrm* ); //Legt die Frms fuer den TableNode (also die TabFrms) an. void MakeFrms( SwNodeIndex* pIdxBehind ); @@ -572,7 +579,7 @@ public: const SwSection& GetSection() const { return *m_pSection; } SwSection& GetSection() { return *m_pSection; } - SwFrm *MakeFrm(); + SwFrm *MakeFrm( SwFrm* ); //Legt die Frms fuer den SectionNode (also die SectionFrms) an. //Im Defaultfall wird bis die Frames bis zum Ende des Bereichs angelegt, diff --git a/sw/inc/numrule.hxx b/sw/inc/numrule.hxx index d1125a0f4130..ba8f0d5f22b8 100644 --- a/sw/inc/numrule.hxx +++ b/sw/inc/numrule.hxx @@ -35,23 +35,17 @@ #include "swdllapi.h" #include <swtypes.hxx> #include <calbck.hxx> -#include <errhdl.hxx> // Fuer die inline-ASSERTs -#include <error.h> // Fuer die inline-ASSERTs +#include <errhdl.hxx> +#include <error.h> #include <hints.hxx> #include <hash_map> #include <stringhash.hxx> -// --> OD 2008-02-21 #refactorlists# -class SwNodeNum; #include <SwNumberTreeTypes.hxx> -// <-- -// --> OD 2008-02-19 #refactorlists# #include <vector> + class SwTxtFmtColl; -// <-- -// --> OD 2008-07-08 #i91400# class IDocumentListsAccess; -// <-- - +class SwNodeNum; class Font; class SvxBrushItem; class SvxNumRule; @@ -72,6 +66,9 @@ class SW_DLLPUBLIC SwNumFmt : public SvxNumberFormat, public SwClient using SvxNumberFormat::operator ==; using SvxNumberFormat::operator !=; +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); + public: SwNumFmt(); SwNumFmt( const SwNumFmt& ); @@ -84,9 +81,9 @@ public: sal_Bool operator==( const SwNumFmt& ) const; sal_Bool operator!=( const SwNumFmt& r ) const { return !(*this == r); } - SwCharFmt* GetCharFmt() const { return (SwCharFmt*)pRegisteredIn; } + SwCharFmt* GetCharFmt() const { return (SwCharFmt*)GetRegisteredIn(); } void SetCharFmt( SwCharFmt* ); - virtual void Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ); + void ForgetCharFmt(); virtual void SetCharFmtName(const String& rSet); virtual const String& GetCharFmtName()const; @@ -168,9 +165,6 @@ private: String msDefaultListId; // <-- - // forbidden and not implemented. - SwNumRule(); - public: // --> OD 2008-02-08 #newlistlevelattrs# // add parameter <eDefaultNumberFormatPositionAndSpaceMode> diff --git a/sw/inc/pagedesc.hxx b/sw/inc/pagedesc.hxx index 8ba32064c3ba..af6f73f9d133 100644 --- a/sw/inc/pagedesc.hxx +++ b/sw/inc/pagedesc.hxx @@ -160,6 +160,9 @@ class SW_DLLPUBLIC SwPageDesc : public SwModify SW_DLLPRIVATE SwPageDesc(const String&, SwFrmFmt*, SwDoc *pDc ); +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNewValue ); + public: const String &GetName() const { return aDescName; } void SetName( const String& rNewName ) { aDescName = rNewName; } @@ -213,7 +216,6 @@ public: void SetRegisterFmtColl( const SwTxtFmtColl* rFmt ); const SwTxtFmtColl* GetRegisterFmtColl() const; - virtual void Modify( SfxPoolItem *pOldValue, SfxPoolItem *pNewValue ); void RegisterChange(); // erfragen und setzen der PoolFormat-Id diff --git a/sw/inc/paratr.hxx b/sw/inc/paratr.hxx index bdd4a0155614..8a7f119bb539 100644 --- a/sw/inc/paratr.hxx +++ b/sw/inc/paratr.hxx @@ -69,6 +69,10 @@ public: private: // @@@ public copy ctor, but no copy assignment? SwFmtDrop & operator= (const SwFmtDrop &); + +protected: + virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ); + public: // "pure virtual Methoden" vom SfxPoolItem @@ -94,10 +98,9 @@ public: inline sal_uInt16 GetDistance() const { return nDistance; } inline sal_uInt16 &GetDistance() { return nDistance; } - inline const SwCharFmt *GetCharFmt() const { return (SwCharFmt*)pRegisteredIn; } - inline SwCharFmt *GetCharFmt() { return (SwCharFmt*)pRegisteredIn; } + inline const SwCharFmt *GetCharFmt() const { return (SwCharFmt*)GetRegisteredIn(); } + inline SwCharFmt *GetCharFmt() { return (SwCharFmt*)GetRegisteredIn(); } void SetCharFmt( SwCharFmt *pNew ); - virtual void Modify( SfxPoolItem*, SfxPoolItem* ); // erfrage vom Client Informationen virtual sal_Bool GetInfo( SfxPoolItem& ) const; diff --git a/sw/inc/printdata.hxx b/sw/inc/printdata.hxx index 02df0280cdbf..1e16d3d782e9 100644 --- a/sw/inc/printdata.hxx +++ b/sw/inc/printdata.hxx @@ -45,7 +45,8 @@ class _SetGetExpFlds; class SwViewOption; class OutputDevice; class SwViewOptionAdjust_Impl; -class SwWrtShell; +class SwPrtOptions; +class ViewShell; class SfxViewShell; // forward declarations @@ -266,9 +267,9 @@ public: void DeletePostItData(); bool IsViewOptionAdjust() const { return m_pViewOptionAdjust != 0; } - bool NeedNewViewOptionAdjust( const SwWrtShell& ) const; - void ViewOptionAdjustStart( SwWrtShell &rSh, const SwViewOption &rViewOptions ); - void ViewOptionAdjust( SwPrintData const*const pPrtOptions ); + bool NeedNewViewOptionAdjust( const ViewShell& ) const; + void ViewOptionAdjustStart( ViewShell &rSh, const SwViewOption &rViewOptions ); + void ViewOptionAdjust( SwPrintData const* const pPrtOptions ); void ViewOptionAdjustStop(); bool HasSwPrtOptions() const { return m_pPrtOptions != 0; } diff --git a/sw/inc/reffld.hxx b/sw/inc/reffld.hxx index fcd8ba2c70b8..e2b1f5bbb97b 100644 --- a/sw/inc/reffld.hxx +++ b/sw/inc/reffld.hxx @@ -77,14 +77,20 @@ public: virtual SwFieldType* Copy() const; SwDoc* GetDoc() const { return pDoc; } - // ueberlagert, um alle Ref-Felder zu updaten - virtual void Modify( SfxPoolItem *, SfxPoolItem * ); void MergeWithOtherDoc( SwDoc& rDestDoc ); static SwTxtNode* FindAnchor( SwDoc* pDoc, const String& rRefMark, +<<<<<<< local + USHORT nSubType, USHORT nSeqNo, + USHORT* pStt, USHORT* pEnd = 0 ); +protected: + // ueberlagert, um alle Ref-Felder zu updaten + virtual void Modify( const SfxPoolItem*, const SfxPoolItem * ); +======= sal_uInt16 nSubType, sal_uInt16 nSeqNo, sal_uInt16* pStt, sal_uInt16* pEnd = 0 ); +>>>>>>> other }; /*-------------------------------------------------------------------- diff --git a/sw/inc/section.hxx b/sw/inc/section.hxx index 98948c228678..ad8bddde0007 100644 --- a/sw/inc/section.hxx +++ b/sw/inc/section.hxx @@ -161,7 +161,6 @@ public: class SW_DLLPUBLIC SwSection : public SwClient - , private ::boost::noncopyable { // damit beim Anlegen/Loeschen von Frames das Flag richtig gepflegt wird! friend class SwSectionNode; @@ -177,6 +176,9 @@ private: SW_DLLPRIVATE void ImplSetHiddenFlag( bool const bHidden, bool const bCondition); +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); + public: TYPEINFO(); // rtti @@ -193,10 +195,8 @@ public: SectionType GetType() const { return m_Data.GetType(); } void SetType(SectionType const eType) { return m_Data.SetType(eType); } - SwSectionFmt* GetFmt() { return (SwSectionFmt*)pRegisteredIn; } - SwSectionFmt* GetFmt() const { return (SwSectionFmt*)pRegisteredIn; } - - virtual void Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ); + SwSectionFmt* GetFmt() { return (SwSectionFmt*)GetRegisteredIn(); } + SwSectionFmt* GetFmt() const { return (SwSectionFmt*)GetRegisteredIn(); } // setze die Hidden/Protected -> gesamten Baum updaten ! // (Attribute/Flags werden gesetzt/erfragt) @@ -300,6 +300,7 @@ class SW_DLLPUBLIC SwSectionFmt protected: SwSectionFmt( SwSectionFmt* pDrvdFrm, SwDoc *pDoc ); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); public: TYPEINFO(); //Bereits in Basisklasse Client drin. @@ -311,7 +312,6 @@ public: //Erzeugt die Ansichten virtual void MakeFrms(); - virtual void Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ); // erfrage vom Format Informationen virtual sal_Bool GetInfo( SfxPoolItem& ) const; diff --git a/sw/inc/swcrsr.hxx b/sw/inc/swcrsr.hxx index daa33e4f232a..d9cb307e5ad8 100644 --- a/sw/inc/swcrsr.hxx +++ b/sw/inc/swcrsr.hxx @@ -95,11 +95,7 @@ public: // @@@ semantic: no copy ctor. SwCursor( SwCursor& rCpy); -private: - // forbidden and not implemented. - //SwCursor( const SwCursor& ); - // @@@ used e.g. in core/frmedt/fetab.cxx @@@ - // SwCursor & operator= ( const SwCursor& ); + public: virtual SwCursor* Create( SwPaM* pRing = 0 ) const; @@ -131,6 +127,17 @@ public: const SfxItemSet* rReplSet = 0 ); // UI versions +<<<<<<< local + BOOL IsStartWord( sal_Int16 nWordType = com::sun::star::i18n::WordType::ANYWORD_IGNOREWHITESPACES ) const; + BOOL IsEndWord( sal_Int16 nWordType = com::sun::star::i18n::WordType::ANYWORD_IGNOREWHITESPACES ) const; + BOOL IsInWord( sal_Int16 nWordType = com::sun::star::i18n::WordType::ANYWORD_IGNOREWHITESPACES ) const; + BOOL IsStartEndSentence( bool bEnd ) const; + BOOL GoStartWord(); + BOOL GoEndWord(); + BOOL GoNextWord(); + BOOL GoPrevWord(); + BOOL SelectWord( ViewShell* pViewShell, const Point* pPt = 0 ); +======= sal_Bool IsStartWord( sal_Int16 nWordType = com::sun::star::i18n::WordType::ANYWORD_IGNOREWHITESPACES ) const; sal_Bool IsEndWord( sal_Int16 nWordType = com::sun::star::i18n::WordType::ANYWORD_IGNOREWHITESPACES ) const; sal_Bool IsInWord( sal_Int16 nWordType = com::sun::star::i18n::WordType::ANYWORD_IGNOREWHITESPACES ) const; @@ -140,9 +147,20 @@ public: sal_Bool GoNextWord(); sal_Bool GoPrevWord(); sal_Bool SelectWord( const Point* pPt = 0 ); +>>>>>>> other // API versions of above functions (will be used with a different // WordType for the break iterator) +<<<<<<< local + BOOL IsStartWordWT( sal_Int16 nWordType ) const; + BOOL IsEndWordWT( sal_Int16 nWordType ) const; + BOOL IsInWordWT( sal_Int16 nWordType ) const; + BOOL GoStartWordWT( sal_Int16 nWordType ); + BOOL GoEndWordWT( sal_Int16 nWordType ); + BOOL GoNextWordWT( sal_Int16 nWordType ); + BOOL GoPrevWordWT( sal_Int16 nWordType ); + BOOL SelectWordWT( ViewShell* pViewShell, sal_Int16 nWordType, const Point* pPt = 0 ); +======= sal_Bool IsStartWordWT( sal_Int16 nWordType ) const; sal_Bool IsEndWordWT( sal_Int16 nWordType ) const; sal_Bool IsInWordWT( sal_Int16 nWordType ) const; @@ -151,6 +169,7 @@ public: sal_Bool GoNextWordWT( sal_Int16 nWordType ); sal_Bool GoPrevWordWT( sal_Int16 nWordType ); sal_Bool SelectWordWT( sal_Int16 nWordType, const Point* pPt = 0 ); +>>>>>>> other enum SentenceMoveType { diff --git a/sw/inc/swddetbl.hxx b/sw/inc/swddetbl.hxx index f7e7bb56f97d..a06f8b08e073 100644 --- a/sw/inc/swddetbl.hxx +++ b/sw/inc/swddetbl.hxx @@ -42,12 +42,14 @@ public: sal_Bool bUpdate = sal_True ); ~SwDDETable(); - void Modify( SfxPoolItem*, SfxPoolItem* ); void ChangeContent(); sal_Bool NoDDETable(); SwDDEFieldType* GetDDEFldType(); inline const SwDDEFieldType* GetDDEFldType() const; +protected: + virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ); + virtual void SwClientNotify( const SwModify&, const SfxHint& ); }; diff --git a/sw/inc/switerator.hxx b/sw/inc/switerator.hxx new file mode 100755 index 000000000000..be729771b54b --- /dev/null +++ b/sw/inc/switerator.hxx @@ -0,0 +1,47 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * 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 _SWITERATOR_HXX +#define _SWITERATOR_HXX + +#include <calbck.hxx> +#include <tools/debug.hxx> + +template< class TElementType, class TSource > class SwIterator +{ + SwClientIter aClientIter; +public: + + SwIterator( const TSource& rSrc ) : aClientIter(rSrc) { DBG_ASSERT( TElementType::IsOf( TYPE(SwClient) ), "Incompatible types!" ); } + TElementType* First() { SwClient* p = aClientIter.First(TYPE(TElementType)); return PTR_CAST(TElementType,p); } + TElementType* Last() { SwClient* p = aClientIter.Last( TYPE(TElementType)); return PTR_CAST(TElementType,p); } + TElementType* Next() { SwClient* p = aClientIter.Next(); return PTR_CAST(TElementType,p); } + TElementType* Previous() { SwClient* p = aClientIter.Previous(); return PTR_CAST(TElementType,p); } + static TElementType* FirstElement( const TSource& rMod ) { SwClient* p = SwClientIter(rMod).First(TYPE(TElementType)); return PTR_CAST(TElementType,p); } + bool IsChanged() { return aClientIter.IsChanged(); } +}; + +#endif diff --git a/sw/inc/swtable.hxx b/sw/inc/swtable.hxx index 2dd3bfaf7467..80e54c7e7468 100644 --- a/sw/inc/swtable.hxx +++ b/sw/inc/swtable.hxx @@ -27,9 +27,7 @@ #ifndef _SWTABLE_HXX #define _SWTABLE_HXX #include <tools/mempool.hxx> -#ifndef _TOOLS_REF_HXX #include <tools/ref.hxx> -#endif #include <svl/svarray.hxx> #include <tblenum.hxx> #include <swtypes.hxx> @@ -43,6 +41,7 @@ class SwStartNode; #include <boost/noncopyable.hpp> #endif +class SwFmt; class Color; class SwFrmFmt; class SwTableFmt; @@ -86,7 +85,7 @@ typedef SwTableLine* SwTableLinePtr; class SW_DLLPUBLIC SwTable: public SwClient //Client vom FrmFmt { - using SwClient::IsModifyLocked; + protected: SwTableLines aLines; @@ -116,6 +115,8 @@ protected: sal_Bool IsModifyLocked(){ return bModifyLocked;} + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); + public: enum SearchType { @@ -175,10 +176,9 @@ public: SwTableLines &GetTabLines() { return aLines; } const SwTableLines &GetTabLines() const { return aLines; } - SwFrmFmt* GetFrmFmt() { return (SwFrmFmt*)pRegisteredIn; } - SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)pRegisteredIn; } - - virtual void Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ); + SwFrmFmt* GetFrmFmt() { return (SwFrmFmt*)GetRegisteredIn(); } + SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } + SwTableFmt* GetTableFmt() const { return (SwTableFmt*)GetRegisteredIn(); } void GetTabCols( SwTabCols &rToFill, const SwTableBox *pStart, sal_Bool bHidden = sal_False, sal_Bool bCurRowOnly = sal_False ) const; @@ -322,6 +322,7 @@ public: SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo ); sal_Bool SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType, SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo ); + void RegisterToFormat( SwFmt& rFmt ); #ifdef DBG_UTIL void CheckConsistency() const; #endif @@ -348,8 +349,8 @@ public: void SetUpper( SwTableBox *pNew ) { pUpper = pNew; } - SwFrmFmt* GetFrmFmt() { return (SwFrmFmt*)pRegisteredIn; } - SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)pRegisteredIn; } + SwFrmFmt* GetFrmFmt() { return (SwFrmFmt*)GetRegisteredIn(); } + SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } //Macht ein eingenes FrmFmt wenn noch mehr Lines von ihm abhaengen. SwFrmFmt* ClaimFrmFmt(); @@ -364,6 +365,7 @@ public: SwTwips GetTableLineHeight( bool& bLayoutAvailable ) const; bool hasSoftPageBreak() const; + void RegisterToFormat( SwFmt& rFmt ); }; class SW_DLLPUBLIC SwTableBox: public SwClient //Client vom FrmFmt @@ -402,8 +404,8 @@ public: const SwTableLine *GetUpper() const { return pUpper; } void SetUpper( SwTableLine *pNew ) { pUpper = pNew; } - SwFrmFmt* GetFrmFmt() { return (SwFrmFmt*)pRegisteredIn; } - SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)pRegisteredIn; } + SwFrmFmt* GetFrmFmt() { return (SwFrmFmt*)GetRegisteredIn(); } + SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } //Macht ein eingenes FrmFmt wenn noch mehr Boxen von ihm abhaengen. SwFrmFmt* ClaimFrmFmt(); @@ -468,6 +470,8 @@ public: const SwTableBox& FindEndOfRowSpan( const SwTable& rTable, sal_uInt16 nMaxStep = USHRT_MAX ) const { return const_cast<SwTableBox*>(this)->FindEndOfRowSpan( rTable, nMaxStep ); } + void RegisterToFormat( SwFmt& rFmt ) ; + void ForgetFrmFmt(); }; class SwCellFrm; diff --git a/sw/inc/swtblfmt.hxx b/sw/inc/swtblfmt.hxx index 96479197cde6..86ace11c4e6b 100644 --- a/sw/inc/swtblfmt.hxx +++ b/sw/inc/swtblfmt.hxx @@ -86,12 +86,12 @@ protected: : SwFrmFmt( rPool, rFmtNm, pDrvdFrm, RES_FRMFMT, aTableBoxSetRange ) {} + // zum Erkennen von Veraenderungen (haupts. TableBoxAttribute) + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNewValue ); + public: TYPEINFO(); //Bereits in Basisklasse Client drin. - // zum Erkennen von Veraenderungen (haupts. TableBoxAttribute) - virtual void Modify( SfxPoolItem* pOldValue, SfxPoolItem* pNewValue ); - DECL_FIXEDMEMPOOL_NEWDEL(SwTableBoxFmt) }; diff --git a/sw/inc/tox.hxx b/sw/inc/tox.hxx index f8bdb12f113b..88e5cea8a8fb 100644 --- a/sw/inc/tox.hxx +++ b/sw/inc/tox.hxx @@ -91,6 +91,10 @@ class SW_DLLPUBLIC SwTOXMark SwTOXMark(); // to create the dflt. atr. in _InitCore +protected: + // SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); + public: TYPEINFO(); // rtti @@ -105,9 +109,6 @@ public: virtual int operator==( const SfxPoolItem& ) const; virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const; - // SwClient - virtual void Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ); - void InvalidateTOXMark(); String GetText() const; @@ -151,7 +152,9 @@ public: SW_DLLPRIVATE void SetXTOXMark(::com::sun::star::uno::Reference< ::com::sun::star::text::XDocumentIndexMark> const& xMark) { m_wXDocumentIndexMark = xMark; } - + void DeRegister() { GetRegisteredInNonConst()->Remove( this ); } + void RegisterToTOXType( SwTOXType& rMark ); + static void InsertTOXMarks( SwTOXMarks& aMarks, const SwTOXType& rType ); }; /*-------------------------------------------------------------------- @@ -592,6 +595,7 @@ public: // #i21237# void AdjustTabStops(SwDoc & rDoc, sal_Bool bDefaultRightTabStop); SwTOXBase& operator=(const SwTOXBase& rSource); + void RegisterToTOXType( SwTOXType& rMark ); }; diff --git a/sw/inc/txtatr.hxx b/sw/inc/txtatr.hxx index f074a8696fdf..ee41569cf50a 100644 --- a/sw/inc/txtatr.hxx +++ b/sw/inc/txtatr.hxx @@ -45,9 +45,15 @@ public: SwTxtCharFmt( SwFmtCharFmt& rAttr, xub_StrLen nStart, xub_StrLen nEnd ); virtual ~SwTxtCharFmt( ); +<<<<<<< local + // werden vom SwFmtCharFmt hierher weitergeleitet (no derivation from SwClient!) + void ModifyNotification( const SfxPoolItem*, const SfxPoolItem* ); + bool GetInfo( SfxPoolItem& rInfo ) const; +======= // werden vom SwFmtCharFmt hierher weitergeleitet virtual void Modify( SfxPoolItem*, SfxPoolItem* ); // SwClient virtual sal_Bool GetInfo( SfxPoolItem& rInfo ) const; +>>>>>>> other // get and set TxtNode pointer void ChgTxtNode( SwTxtNode* pNew ) { m_pTxtNode = pNew; } @@ -88,14 +94,21 @@ public: class SW_DLLPUBLIC SwTxtRuby : public SwTxtAttrNesting, public SwClient { SwTxtNode* m_pTxtNode; - +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); public: SwTxtRuby( SwFmtRuby& rAttr, xub_StrLen nStart, xub_StrLen nEnd ); virtual ~SwTxtRuby(); TYPEINFO(); +<<<<<<< local + virtual BOOL GetInfo( SfxPoolItem& rInfo ) const; +======= virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); virtual sal_Bool GetInfo( SfxPoolItem& rInfo ) const; +>>>>>>> other + + SW_DLLPRIVATE void InitRuby(SwTxtNode & rNode); /// get and set TxtNode pointer const SwTxtNode* GetpTxtNode() const { return m_pTxtNode; } diff --git a/sw/inc/txtftn.hxx b/sw/inc/txtftn.hxx index 4f19924172ef..e8c7c77e8f86 100644 --- a/sw/inc/txtftn.hxx +++ b/sw/inc/txtftn.hxx @@ -33,6 +33,7 @@ class SwNodeIndex; class SwTxtNode; class SwNodes; class SwDoc; +class SwFrm; // ATT_FTN ********************************************************** @@ -59,7 +60,7 @@ public: void MakeNewTextSection( SwNodes& rNodes ); // loesche die FtnFrame aus der Seite - void DelFrms(); + void DelFrms( const SwFrm* ); // bedingten Absatzvorlagen checken void CheckCondColl(); diff --git a/sw/inc/txtinet.hxx b/sw/inc/txtinet.hxx index 62d48320bf06..c5459453604e 100644 --- a/sw/inc/txtinet.hxx +++ b/sw/inc/txtinet.hxx @@ -42,16 +42,22 @@ class SW_DLLPUBLIC SwTxtINetFmt : public SwTxtAttrNesting, public SwClient bool m_bVisited : 1; // visited link? bool m_bVisitedValid : 1; // is m_bVisited valid? - // forbidden and not implemented. - SwTxtINetFmt(); +protected: +virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); public: SwTxtINetFmt( SwFmtINetFmt& rAttr, xub_StrLen nStart, xub_StrLen nEnd ); virtual ~SwTxtINetFmt(); TYPEINFO(); +<<<<<<< local + virtual BOOL GetInfo( SfxPoolItem& rInfo ) const; +======= virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); virtual sal_Bool GetInfo( SfxPoolItem& rInfo ) const; +>>>>>>> other + + SW_DLLPRIVATE void InitINetFmt(SwTxtNode & rNode); // get and set TxtNode pointer const SwTxtNode* GetpTxtNode() const { return m_pTxtNode; } diff --git a/sw/inc/undobj.hxx b/sw/inc/undobj.hxx index 9d447c18034f..76cc31ba4c4f 100644 --- a/sw/inc/undobj.hxx +++ b/sw/inc/undobj.hxx @@ -234,7 +234,471 @@ public: class SwUndoInsLayFmt; +<<<<<<< local +public: + SwUndoStart( SwUndoId nId ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + // -> #111827# + virtual String GetComment() const; + void SetRewriter(const SwRewriter & rRewriter); + virtual SwRewriter GetRewriter() const; + // <- #111827# + + virtual SwUndoId GetEffectiveId() const; + SwUndoId GetUserId() const { return nUserId; } + // Setzen vom End-Undo-Offset geschieht im Doc::EndUndo + USHORT GetEndOffset() const { return nEndOffset; } + void SetEndOffset( USHORT n ) { nEndOffset = n; } +}; + +class SwUndoEnd: public SwUndo +{ + // Um innerhalb von Undo zuerkennen, wann ein Ende vorliegt, gibt + // GetId() immer die UNDO_END zurueck. Die UserId kann ueber + // GetUserId() erfragt werden. + SwUndoId nUserId; + // fuer die "Verpointerung" von Start- und End-Undos + USHORT nSttOffset; + + SwRewriter mRewriter; + +public: + SwUndoEnd( SwUndoId nId ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + // -> #111827# + virtual String GetComment() const; + void SetRewriter(const SwRewriter & rRewriter); + virtual SwRewriter GetRewriter() const; + // <- #111827# + + virtual SwUndoId GetEffectiveId() const; + SwUndoId GetUserId() const { return nUserId; } + + // Setzen vom Start-Undo-Offset geschieht im Doc::EndUndo + void SetSttOffset(USHORT _nSttOffSet) { nSttOffset = _nSttOffSet; } + USHORT GetSttOffset() const { return nSttOffset; } +}; + +class SwUndoInsert: public SwUndo, private SwUndoSaveCntnt +{ + SwPosition *pPos; // Inhalt fuers Redo + String *pTxt, *pUndoTxt; + SwRedlineData* pRedlData; + ULONG nNode; + xub_StrLen nCntnt, nLen; + BOOL bIsWordDelim : 1; + BOOL bIsAppend : 1; + + const IDocumentContentOperations::InsertFlags m_nInsertFlags; + + friend class SwDoc; // eigentlich nur SwDoc::Insert( String ) + BOOL CanGrouping( sal_Unicode cIns ); + BOOL CanGrouping( const SwPosition& rPos ); + + SwDoc * pDoc; + + void Init(const SwNodeIndex & rNode); + String * GetTxtFromDoc() const; + +public: + SwUndoInsert( const SwNodeIndex& rNode, xub_StrLen nCntnt, xub_StrLen nLen, + const IDocumentContentOperations::InsertFlags nInsertFlags, + BOOL bWDelim = TRUE ); + SwUndoInsert( const SwNodeIndex& rNode ); + virtual ~SwUndoInsert(); + + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + // #111827# + /** + Returns rewriter for this undo object. + + The returned rewriter has the following rule: + + $1 -> '<inserted text>' + + <inserted text> is shortened to a length of nUndoStringLength. + + @return rewriter for this undo object + */ + virtual SwRewriter GetRewriter() const; + + + DECL_FIXEDMEMPOOL_NEWDEL(SwUndoInsert) +}; + + +class SwUndoDelete: public SwUndo, private SwUndRng, private SwUndoSaveCntnt +{ + SwNodeIndex* pMvStt; // Position der Nodes im UndoNodes-Array + String *pSttStr, *pEndStr; + SwRedlineData* pRedlData; + SwRedlineSaveDatas* pRedlSaveData; + ::boost::shared_ptr< ::sfx2::MetadatableUndo > m_pMetadataUndoStart; + ::boost::shared_ptr< ::sfx2::MetadatableUndo > m_pMetadataUndoEnd; + + String sTableName; + + ULONG nNode; + ULONG nNdDiff; // Differenz von Nodes vor-nach Delete + ULONG nSectDiff; // Diff. von Nodes vor/nach Move mit SectionNodes + ULONG nReplaceDummy; // Diff. to a temporary dummy object + USHORT nSetPos; + + BOOL bGroup : 1; // TRUE: ist schon eine Gruppe; wird in CanGrouping() ausgwertet !! + BOOL bBackSp : 1; // TRUE: wenn Gruppierung und der Inhalt davor geloescht wird + BOOL bJoinNext: 1; // TRUE: wenn der Bereich von Oben nach unten geht + BOOL bTblDelLastNd : 1; // TRUE: TextNode hinter der Tabelle einf./loeschen + BOOL bDelFullPara : 1; // TRUE: gesamte Nodes wurden geloescht + BOOL bResetPgDesc : 1; // TRUE: am nachfolgenden Node das PgDsc zuruecksetzen + BOOL bResetPgBrk : 1; // TRUE: am nachfolgenden Node das PgBreak zuruecksetzen + BOOL bFromTableCopy : 1; // TRUE: called by SwUndoTblCpyTbl + + BOOL SaveCntnt( const SwPosition* pStt, const SwPosition* pEnd, + SwTxtNode* pSttTxtNd, SwTxtNode* pEndTxtNd ); +public: + SwUndoDelete( SwPaM&, BOOL bFullPara = FALSE, BOOL bCalledByTblCpy = FALSE ); + virtual ~SwUndoDelete(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + // #111827# + /** + Returns rewriter for this undo object. + + The rewriter consists of the following rule: + + $1 -> '<deleted text>' + + <deleted text> is shortened to nUndoStringLength characters. + + @return rewriter for this undo object + */ + virtual SwRewriter GetRewriter() const; + + BOOL CanGrouping( SwDoc*, const SwPaM& ); + + void SetTblDelLastNd() { bTblDelLastNd = TRUE; } + + // fuer die PageDesc/PageBreak Attribute einer Tabelle + void SetPgBrkFlags( BOOL bPageBreak, BOOL bPageDesc ) + { bResetPgDesc = bPageDesc; bResetPgBrk = bPageBreak; } + + void SetTableName(const String & rName); + + // SwUndoTblCpyTbl needs this information: + long NodeDiff() const { return nSttNode - nEndNode; } + xub_StrLen ContentStart() const { return nSttCntnt; } + BOOL IsDelFullPara() const { return bDelFullPara; } + + DECL_FIXEDMEMPOOL_NEWDEL(SwUndoDelete) +}; + + +class SwUndoOverwrite: public SwUndo, private SwUndoSaveCntnt +{ + String aDelStr, aInsStr; + SwRedlineSaveDatas* pRedlSaveData; + ULONG nSttNode; + xub_StrLen nSttCntnt; + BOOL bInsChar : 1; // kein Overwrite mehr; sondern Insert + BOOL bGroup : 1; // TRUE: ist schon eine Gruppe; wird in + // CanGrouping() ausgwertet !! +public: + SwUndoOverwrite( SwDoc*, SwPosition&, sal_Unicode cIns ); + virtual ~SwUndoOverwrite(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + // #111827# + /** + Returns the rewriter of this undo object. + + The rewriter contains the following rule: + + $1 -> '<overwritten text>' + + <overwritten text> is shortened to nUndoStringLength characters. + + @return the rewriter of this undo object + */ + virtual SwRewriter GetRewriter() const; + + BOOL CanGrouping( SwDoc*, SwPosition&, sal_Unicode cIns ); +}; + + +class SwUndoSplitNode: public SwUndo +{ + SwHistory* pHistory; + SwRedlineData* pRedlData; + ULONG nNode; + xub_StrLen nCntnt; + BOOL bTblFlag : 1; + BOOL bChkTblStt : 1; +public: + SwUndoSplitNode( SwDoc* pDoc, const SwPosition& rPos, BOOL bChkTbl ); + virtual ~SwUndoSplitNode(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + void SetTblFlag() { bTblFlag = TRUE; } +}; + + +class SwUndoMove : public SwUndo, private SwUndRng, private SwUndoSaveCntnt +{ + // nDest.. - Bereich, in den verschoben wurde (nach dem Move!) + // nIns.. - Position, von der verschoben wurde und wieder die neue InsPos. ist + // nMv.. Position auf die verschoben wird (vor dem Move!) ; fuers REDO + ULONG nDestSttNode, nDestEndNode, nInsPosNode, nMvDestNode; + xub_StrLen nDestSttCntnt, nDestEndCntnt, nInsPosCntnt, nMvDestCntnt; + + USHORT nFtnStt; // StartPos der Fussnoten in der History + + BOOL bJoinNext : 1, + bJoinPrev : 1, + bMoveRange : 1; + + bool bMoveRedlines; // use DOC_MOVEREDLINES when calling SwDoc::Move + + void DelFtn( const SwPaM& ); +public: + SwUndoMove( const SwPaM&, const SwPosition& ); + SwUndoMove( SwDoc* pDoc, const SwNodeRange&, const SwNodeIndex& ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + // setze den Destination-Bereich nach dem Verschieben. + void SetDestRange( const SwPaM&, const SwPosition&, BOOL, BOOL ); + void SetDestRange( const SwNodeIndex& rStt, const SwNodeIndex& rEnd, + const SwNodeIndex& rInsPos ); + + BOOL IsMoveRange() const { return bMoveRange; } + ULONG GetEndNode() const { return nEndNode; } + ULONG GetDestSttNode() const { return nDestSttNode; } + xub_StrLen GetDestSttCntnt() const { return nDestSttCntnt; } + + void SetMoveRedlines( bool b ) { bMoveRedlines = b; } + +}; + + +class SwUndoAttr : public SwUndo, private SwUndRng +{ + SfxItemSet m_AttrSet; // attributes for Redo + const ::std::auto_ptr<SwHistory> m_pHistory; // History for Undo + ::std::auto_ptr<SwRedlineData> m_pRedlineData; // Redlining + ::std::auto_ptr<SwRedlineSaveDatas> m_pRedlineSaveData; + ULONG m_nNodeIndex; // Offset: for Redlining + const SetAttrMode m_nInsertFlags; // insert flags + + void RemoveIdx( SwDoc& rDoc ); + +public: + SwUndoAttr( const SwPaM&, const SfxItemSet &, const SetAttrMode nFlags ); + SwUndoAttr( const SwPaM&, const SfxPoolItem&, const SetAttrMode nFlags ); + virtual ~SwUndoAttr(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + void SaveRedlineData( const SwPaM& rPam, BOOL bInsCntnt ); + + SwHistory& GetHistory() { return *m_pHistory; } + +}; + +class SwUndoResetAttr : public SwUndo, private SwUndRng +{ + const ::std::auto_ptr<SwHistory> m_pHistory; + SvUShortsSort m_Ids; + const USHORT m_nFormatId; // Format-Id for Redo + +public: + SwUndoResetAttr( const SwPaM&, USHORT nFmtId ); + SwUndoResetAttr( const SwPosition&, USHORT nFmtId ); + virtual ~SwUndoResetAttr(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + void SetAttrs( const SvUShortsSort& rArr ); + + SwHistory& GetHistory() { return *m_pHistory; } + +}; + +class SwUndoFmtAttr : public SwUndo +{ + friend class SwUndoDefaultAttr; + SwFmt * m_pFmt; + ::std::auto_ptr<SfxItemSet> m_pOldSet; // old attributes + ULONG m_nNodeIndex; + const USHORT m_nFmtWhich; + const bool m_bSaveDrawPt; + + bool IsFmtInDoc( SwDoc* ); //is the attribute format still in the Doc? + void SaveFlyAnchor( bool bSaveDrawPt = false ); + // --> OD 2004-10-26 #i35443# - Add return value, type <bool>. + // Return value indicates, if anchor attribute is restored. + // Notes: - If anchor attribute is restored, all other existing attributes + // are also restored. + // - Anchor attribute isn't restored successfully, if it contains + // an invalid anchor position and all other existing attributes + // aren't restored. + // This situation occurs for undo of styles. + bool RestoreFlyAnchor( SwUndoIter& rIter ); + // <-- + // --> OD 2008-02-27 #refactorlists# - removed <rAffectedItemSet> + void Init(); + // <-- + +public: + // register at the Format and save old attributes + // --> OD 2008-02-27 #refactorlists# - removed <rNewSet> + SwUndoFmtAttr( const SfxItemSet& rOldSet, + SwFmt& rFmt, + bool bSaveDrawPt = true ); + // <-- + SwUndoFmtAttr( const SfxPoolItem& rItem, + SwFmt& rFmt, + bool bSaveDrawPt = true ); + virtual ~SwUndoFmtAttr(); + virtual void Undo( SwUndoIter& ); + // --> OD 2004-10-26 #i35443# - <Redo(..)> calls <Undo(..)> - nothing else + virtual void Redo( SwUndoIter& ); + // <-- + virtual void Repeat( SwUndoIter& ); + virtual SwRewriter GetRewriter() const; + + void PutAttr( const SfxPoolItem& rItem ); + SwFmt* GetFmt( SwDoc& rDoc ); // checks if it is still in the Doc! +}; + +// --> OD 2008-02-12 #newlistlevelattrs# +class SwUndoFmtResetAttr : public SwUndo +{ + public: + SwUndoFmtResetAttr( SwFmt& rChangedFormat, + const USHORT nWhichId ); + ~SwUndoFmtResetAttr(); + + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + + private: + // format at which a certain attribute is reset. + SwFmt * const m_pChangedFormat; + // which ID of the reset attribute + const USHORT m_nWhichId; + // old attribute which has been reset - needed for undo. + ::std::auto_ptr<SfxPoolItem> m_pOldItem; +}; +// <-- + +class SwUndoDontExpandFmt : public SwUndo +{ + const ULONG m_nNodeIndex; + const xub_StrLen m_nContentIndex; + +public: + SwUndoDontExpandFmt( const SwPosition& rPos ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); +}; + +// helper class to receive changed attribute sets +class SwUndoFmtAttrHelper : public SwClient +{ + ::std::auto_ptr<SwUndoFmtAttr> m_pUndo; + const bool m_bSaveDrawPt; +protected: + virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ); + +public: + SwUndoFmtAttrHelper( SwFmt& rFmt, bool bSaveDrawPt = true ); + + SwUndoFmtAttr* GetUndo() const { return m_pUndo.get(); } + // release the undo object (so it is not deleted here), and return it + SwUndoFmtAttr* ReleaseUndo() { return m_pUndo.release(); } +}; + + +class SwUndoFmtColl : public SwUndo, private SwUndRng +{ + String aFmtName; + SwHistory* pHistory; + SwFmtColl* pFmtColl; + // --> OD 2008-04-15 #refactorlists# - for correct <ReDo(..)> and <Repeat(..)> + // boolean, which indicates that the attributes are reseted at the nodes + // before the format has been applied. + const bool mbReset; + // boolean, which indicates that the list attributes had been reseted at + // the nodes before the format has been applied. + const bool mbResetListAttrs; + // <-- +public: + // --> OD 2008-04-15 #refactorlists# +// SwUndoFmtColl( const SwPaM&, SwFmtColl* ); + SwUndoFmtColl( const SwPaM&, SwFmtColl*, + const bool bReset, + const bool bResetListAttrs ); + // <-- + virtual ~SwUndoFmtColl(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + // #111827# + /** + Returns the rewriter for this undo object. + + The rewriter contains one rule: + + $1 -> <name of format collection> + + <name of format collection> is the name of the format + collection that is applied by the action recorded by this undo + object. + + @return the rewriter for this undo object + */ + virtual SwRewriter GetRewriter() const; + + SwHistory* GetHistory() { return pHistory; } + +}; + + +class SwUndoMoveLeftMargin : public SwUndo, private SwUndRng +{ + const ::std::auto_ptr<SwHistory> m_pHistory; + const bool m_bModulus; + +public: + SwUndoMoveLeftMargin( const SwPaM&, BOOL bRight, BOOL bModulus ); + virtual ~SwUndoMoveLeftMargin(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + SwHistory& GetHistory() { return *m_pHistory; } + +}; + +// Basis-Klasse fuer Insert von Dokument, Glossaries und Kopieren +======= // base class for insertion of Document, Glossaries and Copy +>>>>>>> other class SwUndoInserts : public SwUndo, public SwUndRng, private SwUndoSaveCntnt { SwTxtFmtColl *pTxtFmtColl, *pLastNdColl; @@ -332,4 +796,696 @@ public: }; +<<<<<<< local + +class SwUndoSetFlyFmt : public SwUndo, public SwClient +{ + SwFrmFmt* pFrmFmt; // das gespeicherte FlyFormat + SwFrmFmt* pOldFmt; // die alte Fly Vorlage + SwFrmFmt* pNewFmt; // die neue Fly Vorlage + SfxItemSet* pItemSet; // die zurueck-/ gesetzten Attribute + ULONG nOldNode, nNewNode; + xub_StrLen nOldCntnt, nNewCntnt; + USHORT nOldAnchorTyp, nNewAnchorTyp; + BOOL bAnchorChgd; + + void PutAttr( USHORT nWhich, const SfxPoolItem* pItem ); + void GetAnchor( SwFmtAnchor& rAnhor, ULONG nNode, xub_StrLen nCntnt ); + +protected: + virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ); + +public: + SwUndoSetFlyFmt( SwFrmFmt& rFlyFmt, SwFrmFmt& rNewFrmFmt ); + virtual ~SwUndoSetFlyFmt(); + + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + + virtual SwRewriter GetRewriter() const; + void DeRegisterFromFormat( SwFmt& ); +}; + +//-------------------------------------------------------------------- + +class _UnReplaceData; +SV_DECL_PTRARR_DEL( _UnReplaceDatas, _UnReplaceData*, 10, 25 ) + +class SwUndoReplace : public SwUndo +{ + friend class SwDoc; + + BOOL bOldIterFlag; // Status vom Undo-Iter vorm 1. Aufruf + USHORT nAktPos; // fuer GetUndoRange und Undo/Redo + _UnReplaceDatas aArr; + SwRedlineData* pRedlData; + +public: + SwUndoReplace(); + virtual ~SwUndoReplace(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + + // #111827# + /** + Returns the rewriter of this undo object. + + If this undo object represents several replacements the + rewriter contains the following rules: + + $1 -> <number of replacements> + $2 -> occurrences of + $3 -> <replaced text> + + If this undo object represents one replacement the rewriter + contains these rules: + + $1 -> <replaced text> + $2 -> "->" (STR_YIELDS) + $3 -> <replacing text> + + @return the rewriter of this undo object + */ + virtual SwRewriter GetRewriter() const; + + void AddEntry( const SwPaM& rPam, const String& rInsert, BOOL bRegExp ); + void SetEntryEnd( const SwPaM& rPam ); + + BOOL IsFull() const + { return ((USHRT_MAX / sizeof( void* )) - 50 ) < aArr.Count(); } + +}; + + +//-------------------------------------------------------------------- + + +class SwUndoTblHeadline : public SwUndo +{ + ULONG nTblNd; + USHORT nOldHeadline; + USHORT nNewHeadline; +public: + SwUndoTblHeadline( const SwTable&, USHORT nOldHdl, USHORT nNewHdl ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); +}; + + +//------------ Undo von Insert-/Delete-Sections ---------------------- + +class SwUndoInsSection : public SwUndo, private SwUndRng +{ +private: + const ::std::auto_ptr<SwSectionData> m_pSectionData; + const ::std::auto_ptr<SwTOXBase> m_pTOXBase; /// set iff section is TOX + const ::std::auto_ptr<SfxItemSet> m_pAttrSet; + ::std::auto_ptr<SwHistory> m_pHistory; + ::std::auto_ptr<SwRedlineData> m_pRedlData; + ULONG m_nSectionNodePos; + bool m_bSplitAtStart : 1; + bool m_bSplitAtEnd : 1; + bool m_bUpdateFtn : 1; + + void Join( SwDoc& rDoc, ULONG nNode ); + +public: + SwUndoInsSection(SwPaM const&, SwSectionData const&, + SfxItemSet const*const pSet, SwTOXBase const*const pTOXBase); + virtual ~SwUndoInsSection(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + void SetSectNdPos(ULONG const nPos) { m_nSectionNodePos = nPos; } + void SaveSplitNode(SwTxtNode *const pTxtNd, bool const bAtStart); + void SetUpdtFtnFlag(bool const bFlag) { m_bUpdateFtn = bFlag; } +}; + +SW_DLLPRIVATE SwUndo * MakeUndoDelSection(SwSectionFmt const&); + +SW_DLLPRIVATE SwUndo * MakeUndoUpdateSection(SwSectionFmt const&, bool const); + + +//------------ Undo von verschieben/stufen von Gliederung ---------------- + +class SwUndoOutlineLeftRight : public SwUndo, private SwUndRng +{ + short nOffset; +public: + SwUndoOutlineLeftRight( const SwPaM& rPam, short nOffset ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); +}; + +//-------------------------------------------------------------------- + +class SwUndoDefaultAttr : public SwUndo +{ + ::std::auto_ptr<SfxItemSet> m_pOldSet; // the old attributes + ::std::auto_ptr<SvxTabStopItem> m_pTabStop; + +public: + // registers at the format and saves old attributes + SwUndoDefaultAttr( const SfxItemSet& rOldSet ); + virtual ~SwUndoDefaultAttr(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); +}; + +//-------------------------------------------------------------------- +// ---------- Undo fuer Numerierung ---------------------------------- + +class SwUndoInsNum : public SwUndo, private SwUndRng +{ + SwNumRule aNumRule; + SwHistory* pHistory; + ULONG nSttSet; + SwNumRule* pOldNumRule; + String sReplaceRule; + USHORT nLRSavePos; +public: + SwUndoInsNum( const SwPaM& rPam, const SwNumRule& rRule ); + SwUndoInsNum( const SwNumRule& rOldRule, const SwNumRule& rNewRule, + SwUndoId nUndoId = UNDO_INSFMTATTR ); + SwUndoInsNum( const SwPosition& rPos, const SwNumRule& rRule, + const String& rReplaceRule ); + virtual ~SwUndoInsNum(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + virtual SwRewriter GetRewriter() const; + + SwHistory* GetHistory(); // wird ggfs. neu angelegt! + void SetSttNum( ULONG nNdIdx ) { nSttSet = nNdIdx; } + void SaveOldNumRule( const SwNumRule& rOld ); + + void SetLRSpaceEndPos(); + +}; + +class SwUndoDelNum : public SwUndo, private SwUndRng +{ + SvULongs aNodeIdx; + SvBytes aLevels; + SvBools aRstLRSpaces; + SwHistory* pHistory; +public: + SwUndoDelNum( const SwPaM& rPam ); + virtual ~SwUndoDelNum(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + void AddNode( const SwTxtNode& rNd, BOOL bResetLRSpace ); + SwHistory* GetHistory() { return pHistory; } + +}; + +class SwUndoMoveNum : public SwUndo, private SwUndRng +{ + ULONG nNewStt; + long nOffset; +public: + SwUndoMoveNum( const SwPaM& rPam, long nOffset, BOOL bIsOutlMv = FALSE ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + void SetStartNode( ULONG nValue ) { nNewStt = nValue; } +}; + +class SwUndoNumUpDown : public SwUndo, private SwUndRng +{ + short nOffset; +public: + SwUndoNumUpDown( const SwPaM& rPam, short nOffset ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); +}; + +class SwUndoNumOrNoNum : public SwUndo +{ + ULONG nIdx; + BOOL mbNewNum, mbOldNum; + +public: + SwUndoNumOrNoNum( const SwNodeIndex& rIdx, BOOL mbOldNum, + BOOL mbNewNum ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); +}; + +class SwUndoNumRuleStart : public SwUndo +{ + ULONG nIdx; + USHORT nOldStt, nNewStt; + BOOL bSetSttValue : 1; + BOOL bFlag : 1; +public: + SwUndoNumRuleStart( const SwPosition& rPos, BOOL bDelete ); + SwUndoNumRuleStart( const SwPosition& rPos, USHORT nStt ); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); +}; + +//-------------------------------------------------------------------- +// ---------- Undo fuer DrawObjecte ---------------------------------- + +class SwSdrUndo : public SwUndo +{ + SdrUndoAction* pSdrUndo; + SdrMarkList* pMarkList; // MarkList for all selected SdrObjects +public: + SwSdrUndo( SdrUndoAction* , const SdrMarkList* pMarkList ); + virtual ~SwSdrUndo(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + + String GetComment() const; +}; + +class SwUndoDrawGroup : public SwUndo +{ + SwUndoGroupObjImpl* pObjArr; + USHORT nSize; + BOOL bDelFmt; + +public: + SwUndoDrawGroup( USHORT nCnt ); + virtual ~SwUndoDrawGroup(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + + void AddObj( USHORT nPos, SwDrawFrmFmt*, SdrObject* ); + void SetGroupFmt( SwDrawFrmFmt* ); +}; + +// --> OD 2006-11-01 #130889# +// Action "ungroup drawing object" is now splitted into three parts - see +// method <SwDoc::UnGroupSelection(..)>: +// - creation for <SwDrawFrmFmt> instances for the group members of the +// selected group objects +// - intrinsic ungroup of the selected group objects +// - creation of <SwDrawContact> instances for the former group members and +// connection to the Writer layout. +// Thus, two undo actions (instances of <SwUndo>) are needed: +// - Existing class <SwUndoDrawUnGroup> takes over the part for the formats. +// - New class <SwUndoDrawUnGroupConnectToLayout> takes over the part for +// contact object. +class SwUndoDrawUnGroup : public SwUndo +{ + SwUndoGroupObjImpl* pObjArr; + USHORT nSize; + BOOL bDelFmt; + +public: + SwUndoDrawUnGroup( SdrObjGroup* ); + virtual ~SwUndoDrawUnGroup(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + + void AddObj( USHORT nPos, SwDrawFrmFmt* ); +}; + +// --> OD 2006-11-01 #130889# +class SwUndoDrawUnGroupConnectToLayout : public SwUndo +{ + private: + std::vector< std::pair< SwDrawFrmFmt*, SdrObject* > > aDrawFmtsAndObjs; + + public: + SwUndoDrawUnGroupConnectToLayout(); + virtual ~SwUndoDrawUnGroupConnectToLayout(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + + void AddFmtAndObj( SwDrawFrmFmt* pDrawFrmFmt, + SdrObject* pDrawObject ); +}; +// <-- + + +class SwUndoDrawDelete : public SwUndo +{ + SwUndoGroupObjImpl* pObjArr; + SdrMarkList* pMarkLst; // MarkList for all selected SdrObjects + USHORT nSize; + BOOL bDelFmt; + +public: + SwUndoDrawDelete( USHORT nCnt ); + virtual ~SwUndoDrawDelete(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + + void AddObj( USHORT nPos, SwDrawFrmFmt*, const SdrMark& ); +}; + +//-------------------------------------------------------------------- + +class SwUndoReRead : public SwUndo +{ + Graphic *pGrf; + String *pNm, *pFltr; + ULONG nPos; + USHORT nMirr; + + void SaveGraphicData( const SwGrfNode& ); + void SetAndSave( SwUndoIter& ); + +public: + SwUndoReRead( const SwPaM& rPam, const SwGrfNode& pGrfNd ); + virtual ~SwUndoReRead(); + + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); +}; + +//-------------------------------------------------------------------- + +class SwUndoInsertLabel : public SwUndo +{ + union { + struct { + // fuer NoTxtFrms + SwUndoInsLayFmt* pUndoFly; + SwUndoFmtAttr* pUndoAttr; + } OBJECT; + struct { + // fuer Tabelle/TextRahmen + SwUndoDelete* pUndoInsNd; + ULONG nNode; + } NODE; + }; + + String sText; + // --> PB 2005-01-06 #i39983# - the separator will be drawed with a character style + String sSeparator; + // <-- + String sNumberSeparator; + String sCharacterStyle; + // OD 2004-04-15 #i26791# - re-store of drawing object position no longer needed + USHORT nFldId; + SwLabelType eType; + BYTE nLayerId; // fuer Zeichen-Objekte + BOOL bBefore :1; + BOOL bUndoKeep :1; + BOOL bCpyBrd :1; + +public: + SwUndoInsertLabel( const SwLabelType eTyp, const String &rText, + // --> PB 2005-01-06 #i39983# - the separator will be drawed with a character style + const String& rSeparator, + // <-- + const String& rNumberSeparator, //#i61007# order of captions + const BOOL bBefore, const USHORT nId, + const String& rCharacterStyle, + const BOOL bCpyBrd ); + virtual ~SwUndoInsertLabel(); + + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + // #111827# + /** + Returns the rewriter of this undo object. + + The rewriter contains this rule: + + $1 -> '<text of inserted label>' + + <text of inserted label> is shortened to nUndoStringLength + characters. + + @return the rewriter of this undo object + */ + virtual SwRewriter GetRewriter() const; + + void SetNodePos( ULONG nNd ) + { if( LTYPE_OBJECT != eType ) NODE.nNode = nNd; } + + void SetUndoKeep() { bUndoKeep = TRUE; } + void SetFlys( SwFrmFmt& rOldFly, SfxItemSet& rChgSet, SwFrmFmt& rNewFly ); + void SetDrawObj( BYTE nLayerId ); +}; + +//-------------------------------------------------------------------- + +class SwUndoChangeFootNote : public SwUndo, private SwUndRng +{ + const ::std::auto_ptr<SwHistory> m_pHistory; + const String m_Text; + const USHORT m_nNumber; + const bool m_bEndNote; + +public: + SwUndoChangeFootNote( const SwPaM& rRange, const String& rTxt, + USHORT nNum, bool bIsEndNote ); + virtual ~SwUndoChangeFootNote(); + + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + virtual void Repeat( SwUndoIter& ); + + SwHistory& GetHistory() { return *m_pHistory; } +}; + +class SwUndoFootNoteInfo : public SwUndo +{ + ::std::auto_ptr<SwFtnInfo> m_pFootNoteInfo; + +public: + SwUndoFootNoteInfo( const SwFtnInfo &rInfo ); + virtual ~SwUndoFootNoteInfo(); + + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); +}; + +class SwUndoEndNoteInfo : public SwUndo +{ + ::std::auto_ptr<SwEndNoteInfo> m_pEndNoteInfo; + +public: + SwUndoEndNoteInfo( const SwEndNoteInfo &rInfo ); + virtual ~SwUndoEndNoteInfo(); + + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); +}; + + +//-------------------------------------------------------------------- + +struct _UndoTransliterate_Data; +class SwUndoTransliterate : public SwUndo, public SwUndRng +{ + std::vector< _UndoTransliterate_Data * > aChanges; + sal_uInt32 nType; + +public: + SwUndoTransliterate( const SwPaM& rPam, + const utl::TransliterationWrapper& rTrans ); + virtual ~SwUndoTransliterate(); + + virtual void Undo( SwUndoIter& rUndoIter ); + virtual void Redo( SwUndoIter& rUndoIter ); + virtual void Repeat( SwUndoIter& rUndoIter ); + + void AddChanges( SwTxtNode& rTNd, xub_StrLen nStart, xub_StrLen nLen, + ::com::sun::star::uno::Sequence <sal_Int32>& rOffsets ); + BOOL HasData() const { return aChanges.size() > 0; } +}; + +//-------------------------------------------------------------------- + +class SwUndoRedline : public SwUndo, public SwUndRng +{ +protected: + SwRedlineData* pRedlData; + SwRedlineSaveDatas* pRedlSaveData; + SwUndoId nUserId; + BOOL bHiddenRedlines; + + virtual void _Undo( SwUndoIter& ); + virtual void _Redo( SwUndoIter& ); + +public: + SwUndoRedline( SwUndoId nUserId, const SwPaM& rRange ); + virtual ~SwUndoRedline(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); + + SwUndoId GetUserId() const { return nUserId; } + USHORT GetRedlSaveCount() const + { return pRedlSaveData ? pRedlSaveData->Count() : 0; } +}; + +class SwUndoRedlineDelete : public SwUndoRedline +{ + BOOL bCanGroup : 1; + BOOL bIsDelim : 1; + BOOL bIsBackspace : 1; + + virtual void _Undo( SwUndoIter& ); + virtual void _Redo( SwUndoIter& ); + +public: + SwUndoRedlineDelete( const SwPaM& rRange, SwUndoId nUserId = UNDO_EMPTY ); + + BOOL CanGrouping( const SwUndoRedlineDelete& rPrev ); +}; + +class SwUndoRedlineSort : public SwUndoRedline +{ + SwSortOptions* pOpt; + ULONG nSaveEndNode, nOffset; + xub_StrLen nSaveEndCntnt; + + virtual void _Undo( SwUndoIter& ); + virtual void _Redo( SwUndoIter& ); + +public: + SwUndoRedlineSort( const SwPaM& rRange, const SwSortOptions& rOpt ); + virtual ~SwUndoRedlineSort(); + virtual void Repeat( SwUndoIter& ); + + void SetSaveRange( const SwPaM& rRange ); + void SetOffset( const SwNodeIndex& rIdx ); +}; + +class SwUndoAcceptRedline : public SwUndoRedline +{ + virtual void _Redo( SwUndoIter& ); +public: + SwUndoAcceptRedline( const SwPaM& rRange ); + virtual void Repeat( SwUndoIter& ); +}; + +class SwUndoRejectRedline : public SwUndoRedline +{ + virtual void _Redo( SwUndoIter& ); +public: + SwUndoRejectRedline( const SwPaM& rRange ); + virtual void Repeat( SwUndoIter& ); +}; + +//-------------------------------------------------------------------- + +class SwUndoCompDoc : public SwUndo, public SwUndRng +{ + SwRedlineData* pRedlData; + SwUndoDelete* pUnDel, *pUnDel2; + SwRedlineSaveDatas* pRedlSaveData; + BOOL bInsert; +public: + SwUndoCompDoc( const SwPaM& rRg, BOOL bIns ); + SwUndoCompDoc( const SwRedline& rRedl ); + + virtual ~SwUndoCompDoc(); + virtual void Undo( SwUndoIter& ); + virtual void Redo( SwUndoIter& ); +}; + + +//-------------------------------------------------------------------- + +// Object der als Iterator durch die Undo-Liste laeuft, bis die +// letze oder die angegebene Klammerung/Id erreicht ist. + +class SwUndoIter +{ + friend class SwDoc; // um im SwDoc::Undo bWeiter zu stezen + friend void SwUndoEnd::Undo( SwUndoIter& ); + friend void SwUndoStart::Undo( SwUndoIter& ); + friend void SwUndoEnd::Redo( SwUndoIter& ); + friend void SwUndoStart::Redo( SwUndoIter& ); + friend void SwUndoEnd::Repeat( SwUndoIter& ); + friend void SwUndoStart::Repeat( SwUndoIter& ); + friend void SwUndoReplace::Undo( SwUndoIter& ); + friend void SwUndoReplace::Redo( SwUndoIter& ); + + SwUndoId nUndoId; + USHORT nEndCnt; + BOOL bWeiter : 1; + BOOL bUpdateAttr : 1; // Setze das GCAttr an der CursorShell + +public: + SwPaM * pAktPam; // Member fuer das Undo + SwUndo* pLastUndoObj; // fuers Redo, das vorherige UndoObj. + SwFrmFmt* pSelFmt; // ggfs. das Format Rahmen/Object-Selektionen + SdrMarkList* pMarkList; // MarkList for all selected SdrObjects + + SwUndoIter( SwPaM * pPam, SwUndoId nId = UNDO_EMPTY ); + + BOOL IsNextUndo() const { return bWeiter; } + BOOL IsUpdateAttr() const { return bUpdateAttr; } + void SetUpdateAttr( BOOL bNew ) { bUpdateAttr = bNew; } + + inline SwDoc& GetDoc() const; + SwUndoId GetId() const { return nUndoId; } + SwUndoId GetLastUndoId() const + { return pLastUndoObj ? pLastUndoObj->GetId() : UNDO_EMPTY ; } + void ClearSelections() { pSelFmt = 0; pMarkList = 0; } +}; + + +// -> #111827# +const int nUndoStringLength = 20; + +/** + Shortens a string to a maximum length. + + @param rStr the string to be shortened + @param nLength the maximum length for rStr + @param rFillStr string to replace cut out characters with + + If rStr has less than nLength characters it will be returned unaltered. + + If rStr has more than nLength characters the following algorithm + generates the shortened string: + + frontLength = (nLength - length(rFillStr)) / 2 + rearLength = nLength - length(rFillStr) - frontLength + shortenedString = concat(<first frontLength characters of rStr, + rFillStr, + <last rearLength characters of rStr>) + + Preconditions: + - nLength - length(rFillStr) >= 2 + + @return the shortened string + */ +String ShortenString(const String & rStr, xub_StrLen nLength, const String & rFillStr); +// <- #111827# + +// #16487# +/** + Denotes special characters in a string. + + The rStr is split into parts containing special characters and + parts not containing special characters. In a part containing + special characters all characters are equal. These parts are + maximal. + + @param rStr the string to denote in + + The resulting string is generated by concatenating the found + parts. The parts without special characters are surrounded by + "'". The parts containing special characters are denoted as "n x", + where n is the length of the part and x is the representation of + the special character (i. e. "tab(s)"). + + @return the denoted string +*/ +String DenoteSpecialCharacters(const String & rStr); + +======= +>>>>>>> other #endif diff --git a/sw/inc/unobaseclass.hxx b/sw/inc/unobaseclass.hxx index 6c12a01b0d47..9e3425e04c90 100644 --- a/sw/inc/unobaseclass.hxx +++ b/sw/inc/unobaseclass.hxx @@ -98,7 +98,7 @@ class UnoActionRemoveContext ::com::sun::star::uno::Sequence< sal_Int8 > CreateUnoTunnelId(); /// helper function for implementing SwClient::Modify -void ClientModify(SwClient* pClient, SfxPoolItem *pOld, SfxPoolItem *pNew); +void ClientModify(SwClient* pClient, const SfxPoolItem *pOld, const SfxPoolItem *pNew); #include <boost/utility.hpp> diff --git a/sw/inc/unobookmark.hxx b/sw/inc/unobookmark.hxx index fdd5df4c8a6c..a212efd933f3 100644 --- a/sw/inc/unobookmark.hxx +++ b/sw/inc/unobookmark.hxx @@ -220,8 +220,9 @@ class SwXFieldmarkParameters // XElementAccess virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException); virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException); + protected: //SwClient - virtual void Modify(SfxPoolItem *pOld, SfxPoolItem *pNew); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ); private: ::sw::mark::IFieldmark::parameter_map_t* getCoreParameters() throw (::com::sun::star::uno::RuntimeException); }; diff --git a/sw/inc/unochart.hxx b/sw/inc/unochart.hxx index 01e45671a3c0..de8a78610bf5 100644 --- a/sw/inc/unochart.hxx +++ b/sw/inc/unochart.hxx @@ -171,6 +171,10 @@ class SwChartDataProvider : rtl::OUString GetBrokenCellRangeForExport( const rtl::OUString &rCellRangeRepresentation ); +protected: + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwChartDataProvider( const SwDoc* pDoc ); virtual ~SwChartDataProvider(); @@ -197,10 +201,6 @@ public: virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - - SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } void AddDataSequence( const SwTable &rTable, ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XDataSequence > &rxDataSequence ); @@ -292,6 +292,10 @@ class SwChartDataSequence : SwChartDataSequence( const SwChartDataSequence &rObj ); SwChartDataSequence & operator = ( const SwChartDataSequence & ); +protected: + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwChartDataSequence( SwChartDataProvider &rProvider, SwFrmFmt &rTblFmt, @@ -348,11 +352,6 @@ public: virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); - - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - - SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } sal_Bool DeleteBox( const SwTableBox &rBox ); diff --git a/sw/inc/unocrsr.hxx b/sw/inc/unocrsr.hxx index 91fbc0a1d552..05738f4fd3c4 100644 --- a/sw/inc/unocrsr.hxx +++ b/sw/inc/unocrsr.hxx @@ -40,13 +40,6 @@ public: SwUnoCrsr( const SwPosition &rPos, SwPaM* pRing = 0 ); virtual ~SwUnoCrsr(); - // @@@ semantic: no copy ctor. - SwUnoCrsr( SwUnoCrsr& ); -private: - // forbidden and not implemented. - //SwUnoCrsr( const SwUnoCrsr& ); - SwUnoCrsr & operator= ( const SwUnoCrsr& ); - protected: virtual const SwCntntFrm* DoSetBidiLevelLeftRight( diff --git a/sw/inc/unodraw.hxx b/sw/inc/unodraw.hxx index f0168d632f51..b1307f9678a0 100644 --- a/sw/inc/unodraw.hxx +++ b/sw/inc/unodraw.hxx @@ -257,6 +257,9 @@ class SwXShape : public SwXShapeBaseClass, protected: virtual ~SwXShape(); + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwXShape(::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & xShape); @@ -310,9 +313,6 @@ public: virtual ::rtl::OUString SAL_CALL getShapeType( ) throw (::com::sun::star::uno::RuntimeException); // <-- - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - SwShapeDescriptor_Impl* GetDescImpl() {return pImpl;} ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > GetAggregationInterface() {return xShapeAgg;} diff --git a/sw/inc/unofield.hxx b/sw/inc/unofield.hxx index 66fe2cb92a99..02b57aff8c17 100644 --- a/sw/inc/unofield.hxx +++ b/sw/inc/unofield.hxx @@ -77,6 +77,9 @@ class SwXFieldMaster : public cppu::WeakImplHelper4 protected: virtual ~SwXFieldMaster(); + //SwClient +virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwXFieldMaster(SwDoc* pDoc, sal_uInt16 nResId); @@ -109,9 +112,6 @@ public: virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException ); virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - static rtl::OUString GetProgrammaticName(const SwFieldType& rType, SwDoc& rDoc); static rtl::OUString LocalizeFormula(const SwSetExpField& rFld, const rtl::OUString& rFormula, sal_Bool bQuery); @@ -122,9 +122,6 @@ public: sal_uInt16 GetResId() const {return nResTypeId;} }; -/* -----------------04.12.98 12:49------------------- - * - * --------------------------------------------------*/ struct SwFieldProperties_Impl; class SwXTextField : public cppu::WeakImplHelper5 < @@ -153,6 +150,9 @@ class SwXTextField : public cppu::WeakImplHelper5 SwDoc* GetDoc() {return m_pDoc;} protected: virtual ~SwXTextField(); + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwXTextField(sal_uInt16 nServiceId, SwDoc* pDoc=0); SwXTextField(const SwFmtFld& rFmt, SwDoc* pDoc); @@ -198,24 +198,18 @@ public: //XUpdatable virtual void SAL_CALL update( ) throw (::com::sun::star::uno::RuntimeException); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - void attachToRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange)throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException ); const SwField* GetField() const; const SwFmtFld* GetFldFmt(){return GetField() ? pFmtFld : 0; }; void Invalidate(); -}; -/// @return a SwXTextField, either an already existing one or a new one -SwXTextField * CreateSwXTextField(SwDoc & rDoc, SwFmtFld const& rFmt); + /// @return an SwXTextField, either an already existing one or a new one + static SwXTextField* CreateSwXTextField(SwDoc & rDoc, SwFmtFld const& rFmt); +}; -/* -----------------21.12.98 10:26------------------- - * - * --------------------------------------------------*/ typedef cppu::WeakImplHelper2 < @@ -292,9 +286,6 @@ public: virtual void Invalidate(); }; -/* -----------------21.12.98 14:49------------------- - * - * --------------------------------------------------*/ class SwXFieldEnumeration : public cppu::WeakImplHelper2 < ::com::sun::star::container::XEnumeration, @@ -309,6 +300,8 @@ class SwXFieldEnumeration : public cppu::WeakImplHelper2 protected: virtual ~SwXFieldEnumeration(); + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); public: SwXFieldEnumeration(SwDoc* pDoc); @@ -321,8 +314,6 @@ public: virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException ); virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); }; #endif diff --git a/sw/inc/unoflatpara.hxx b/sw/inc/unoflatpara.hxx index b69fb448c102..0662be96fdd6 100644 --- a/sw/inc/unoflatpara.hxx +++ b/sw/inc/unoflatpara.hxx @@ -122,8 +122,9 @@ public: virtual css::uno::Reference< css::text::XFlatParagraph > SAL_CALL getParaBefore(const css::uno::Reference< css::text::XFlatParagraph > & xPara) throw (css::uno::RuntimeException, css::lang::IllegalArgumentException); virtual css::uno::Reference< css::text::XFlatParagraph > SAL_CALL getParaAfter(const css::uno::Reference< css::text::XFlatParagraph > & xPara) throw (css::uno::RuntimeException, css::lang::IllegalArgumentException); +protected: // SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew ); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ); private: SwXFlatParagraphIterator( const SwXFlatParagraphIterator & ); // not defined diff --git a/sw/inc/unoframe.hxx b/sw/inc/unoframe.hxx index 269401e3d28f..297cb561cf88 100644 --- a/sw/inc/unoframe.hxx +++ b/sw/inc/unoframe.hxx @@ -55,10 +55,6 @@ class SwDoc; class SwFmt; class SwFlyFrmFmt; - -/*-----------------12.02.98 11:21------------------- - ---------------------------------------------------*/ class BaseFrameProperties_Impl; class SwXFrame : public cppu::WeakImplHelper6 < @@ -87,6 +83,7 @@ class SwXFrame : public cppu::WeakImplHelper6 protected: com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxStyleData; com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > mxStyleFamily; + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); virtual ~SwXFrame(); public: @@ -145,9 +142,6 @@ public: virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException ); virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - void attachToRange(const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & xTextRange)throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException ); void attach( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& xTextRange ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); @@ -163,9 +157,7 @@ public: void SetSelection(SwPaM& rCopySource); static SW_DLLPUBLIC SdrObject *GetOrCreateSdrObject( SwFlyFrmFmt *pFmt ); }; -/*-----------------20.02.98 11:28------------------- ---------------------------------------------------*/ typedef cppu::WeakImplHelper3 < ::com::sun::star::text::XTextFrame, @@ -244,9 +236,7 @@ public: void * SAL_CALL operator new( size_t ) throw(); void SAL_CALL operator delete( void * ) throw(); }; -/*-----------------20.02.98 11:28------------------- ---------------------------------------------------*/ typedef cppu::WeakImplHelper2 < ::com::sun::star::text::XTextContent, @@ -370,7 +360,8 @@ public: // ::com::sun::star::util::XModifyListener virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException); - void Modify( SfxPoolItem*, SfxPoolItem* ); +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); }; diff --git a/sw/inc/unoport.hxx b/sw/inc/unoport.hxx index 9071a388a5b8..bb48c64b208b 100644 --- a/sw/inc/unoport.hxx +++ b/sw/inc/unoport.hxx @@ -133,9 +133,9 @@ private: SwFmtFld * GetFldFmt(bool bInit = false); -protected: + void init(const SwUnoCrsr* pPortionCursor); - //SfxItemPropertySet& GetPropSet() { return aPropSet; } +protected: void SAL_CALL SetPropertyValues_Impl( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, @@ -145,9 +145,6 @@ protected: const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); -// ::com::sun::star::uno::Any GetPropertyValue( const SfxItemPropertyMap *pEntry, -// SwUnoCrsr *pUnoCrsr, -// SfxItemSet *pSet ); void GetPropertyValues( const ::rtl::OUString *pPropertyNames, ::com::sun::star::uno::Any *pValues, sal_Int32 nLength ); @@ -161,6 +158,9 @@ protected: virtual ~SwXTextPortion(); + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwXTextPortion(const SwUnoCrsr* pPortionCrsr, ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > const& rParent, SwTextPortionType eType ); SwXTextPortion(const SwUnoCrsr* pPortionCrsr, ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > const& rParent, SwFrmFmt& rFmt ); @@ -229,9 +229,6 @@ public: virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createContentEnumeration(const rtl::OUString& aServiceName) throw( ::com::sun::star::uno::RuntimeException ); virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getAvailableServiceNames() throw( ::com::sun::star::uno::RuntimeException ); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - void SetRefMark( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > xMark) { m_xRefMark = xMark; } @@ -317,9 +314,9 @@ public: virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException ); - +protected: //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); }; #endif diff --git a/sw/inc/unoredline.hxx b/sw/inc/unoredline.hxx index 65c14d82bbbf..cda88eb01aa7 100644 --- a/sw/inc/unoredline.hxx +++ b/sw/inc/unoredline.hxx @@ -148,9 +148,9 @@ public: virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException); virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - const SwRedline* GetRedline() const {return pRedline;} +protected: + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); }; #endif diff --git a/sw/inc/unoredlines.hxx b/sw/inc/unoredlines.hxx index 49db8cf27761..c0ce98d80336 100644 --- a/sw/inc/unoredlines.hxx +++ b/sw/inc/unoredlines.hxx @@ -95,9 +95,9 @@ public: virtual rtl::OUString SAL_CALL getImplementationName(void) throw( ::com::sun::star::uno::RuntimeException ); virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException ); virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); - +protected: //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); }; diff --git a/sw/inc/unosett.hxx b/sw/inc/unosett.hxx index 4c2d66868420..92f52d5ad190 100644 --- a/sw/inc/unosett.hxx +++ b/sw/inc/unosett.hxx @@ -176,6 +176,10 @@ class SwXNumberingRules : public cppu::WeakAggImplHelper5 static String sInvalidStyle; protected: virtual ~SwXNumberingRules(); + + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwXNumberingRules(SwDocShell& rDocSh); // chapter numbering SwXNumberingRules(const SwNumRule& rRule); // NumRule for paragraphs, numbering styles @@ -223,9 +227,6 @@ public: const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& rProperties, sal_Int32 nIndex) throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IllegalArgumentException ); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - const String* GetNewCharStyleNames() const {return sNewCharStyleNames;} const String* GetBulletFontNames() const {return sNewBulletFontNames;} const SwNumRule* GetNumRule() {return pNumRule;} diff --git a/sw/inc/unostyle.hxx b/sw/inc/unostyle.hxx index 740b909f1f7a..080d2e03bc4b 100644 --- a/sw/inc/unostyle.hxx +++ b/sw/inc/unostyle.hxx @@ -211,6 +211,7 @@ protected: void SAL_CALL SetPropertyValues_Impl( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aValues ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL GetPropertyValues_Impl( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); public: SwXStyle(SwDoc* pDoc, SfxStyleFamily eFam = SFX_STYLE_FAMILY_PARA, sal_Bool bConditional = sal_False); SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam, @@ -286,7 +287,6 @@ public: StartListening(*pBasePool); } SwDoc* GetDoc() const { return m_pDoc; } - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); }; /* -----------------------------15.12.00 14:25-------------------------------- @@ -377,10 +377,12 @@ class SwXAutoStyleFamily : public cppu::WeakImplHelper1< com::sun::star::style:: SwDocShell *pDocShell; IStyleAccess::SwAutoStyleFamily eFamily; +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwXAutoStyleFamily(SwDocShell* pDocShell, IStyleAccess::SwAutoStyleFamily eFamily); virtual ~SwXAutoStyleFamily(); - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); //XAutoStyleFamily virtual ::com::sun::star::uno::Reference< ::com::sun::star::style::XAutoStyle > SAL_CALL insertStyle( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& Values ) throw (::com::sun::star::uno::RuntimeException); @@ -400,13 +402,14 @@ class SwXAutoStylesEnumerator : public cppu::WeakImplHelper1< ::com::sun::star:: public: SwXAutoStylesEnumerator( SwDoc* pDoc, IStyleAccess::SwAutoStyleFamily eFam ); virtual ~SwXAutoStylesEnumerator(); - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); //XEnumeration virtual sal_Bool SAL_CALL hasMoreElements( ) throw (::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Any SAL_CALL nextElement( ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); - +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); }; + /*-- 19.05.2006 11:20:02--------------------------------------------------- an automatic style -----------------------------------------------------------------------*/ @@ -428,7 +431,6 @@ public: SwXAutoStyle( SwDoc* pDoc, SfxItemSet_Pointer_t pInitSet, IStyleAccess::SwAutoStyleFamily eFam ); virtual ~SwXAutoStyle(); - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); //XPropertySet virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException); @@ -461,6 +463,9 @@ public: // Special virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getProperties() throw (::com::sun::star::uno::RuntimeException); +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + }; #endif diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx index e359726f94dc..b875a8798f0f 100644 --- a/sw/inc/unotbl.hxx +++ b/sw/inc/unotbl.hxx @@ -115,6 +115,9 @@ protected: virtual ~SwXCell(); + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwXCell(SwFrmFmt* pTblFmt, SwTableBox* pBox, sal_uInt16 nPos=USHRT_MAX ); SwXCell(SwFrmFmt* pTblFmt, const SwStartNode& rStartNode); // XML import interface @@ -162,9 +165,6 @@ public: virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException ); virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - //XEnumerationAccess - frueher XParagraphEnumerationAccess virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration(void) throw( ::com::sun::star::uno::RuntimeException ); @@ -194,6 +194,9 @@ class SwXTextTableRow : public cppu::WeakImplHelper2 SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } protected: virtual ~SwXTextTableRow(); + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + public: SwXTextTableRow(SwFrmFmt* pFmt, SwTableLine* pLine); @@ -214,9 +217,6 @@ public: virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( ::com::sun::star::uno::RuntimeException ); virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - const SwTableLine* GetTblRow() const {return pLine;} static SwTableLine* FindLine(SwTable* pTable, SwTableLine* pLine); }; @@ -274,7 +274,7 @@ public: virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); // ITextCursorHelper virtual const SwPaM* GetPaM() const; @@ -418,7 +418,7 @@ public: SwRangeDescriptor& rDesc); //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } }; @@ -503,7 +503,7 @@ public: virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); SwFrmFmt* GetFrmFmt() const { return (SwFrmFmt*)GetRegisteredIn(); } sal_uInt16 getRowCount(void); @@ -565,7 +565,7 @@ public: virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); }; /* -----------------03.02.99 07:31------------------- @@ -613,7 +613,7 @@ public: virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException ); //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); }; #endif diff --git a/sw/inc/unotextmarkup.hxx b/sw/inc/unotextmarkup.hxx index 98bb3416d385..7d48595e8e3b 100644 --- a/sw/inc/unotextmarkup.hxx +++ b/sw/inc/unotextmarkup.hxx @@ -65,14 +65,14 @@ public: // ::com::sun::star::text::XMultiTextMarkup: virtual void SAL_CALL commitMultiTextMarkup( const ::com::sun::star::uno::Sequence< ::com::sun::star::text::TextMarkupDescriptor >& aMarkups ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); - //SwClient - virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew); - private: SwXTextMarkup( const SwXTextMarkup & ); // not defined SwXTextMarkup & operator =( const SwXTextMarkup & ); // not defined protected: + //SwClient + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew); + SwTxtNode* mpTxtNode; const ModelToViewHelper::ConversionMap* mpConversionMap; diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx index f51e4a7892f0..bb5168a16c1c 100644 --- a/sw/inc/unotxdoc.hxx +++ b/sw/inc/unotxdoc.hxx @@ -129,8 +129,7 @@ class SfxViewFrame; class SwPrintUIOptions; class SwPrintData; class SwRenderData; -class SwWrtShell; - +class ViewShell; typedef UnoActionContext* UnoActionContextPtr; SV_DECL_PTRARR(ActionContextArr, UnoActionContextPtr, 4, 4) @@ -596,18 +595,16 @@ public: -----------------------------------------------------------------------*/ class SwViewOptionAdjust_Impl { - SwWrtShell & m_rShell; + ViewShell & m_rShell; SwViewOption m_aOldViewOptions; // SwViewOption m_aRenderViewOptions; // view options to use when rendering for PDF export or printing // bool m_bRestoreViewOptions; public: - SwViewOptionAdjust_Impl( SwWrtShell& rSh, const SwViewOption &rViewOptions ); + SwViewOptionAdjust_Impl( ViewShell& rSh, const SwViewOption &rViewOptions ); ~SwViewOptionAdjust_Impl(); - - void AdjustViewOptions( SwPrintData const*const pPrtOptions ); - - bool checkShell( const SwWrtShell& rCompare ) const + void AdjustViewOptions( SwPrintData const* const pPrtOptions ); + bool checkShell( const ViewShell& rCompare ) const { return &rCompare == &m_rShell; } }; diff --git a/sw/inc/usrfld.hxx b/sw/inc/usrfld.hxx index 21243589daf1..75e717122150 100644 --- a/sw/inc/usrfld.hxx +++ b/sw/inc/usrfld.hxx @@ -61,8 +61,6 @@ public: inline sal_Bool IsValid() const; inline void ChgValid( sal_Bool bNew ); - virtual void Modify( SfxPoolItem* pOld, SfxPoolItem* pNew ); - double GetValue(SwCalc& rCalc); // Member nValue neu berrechnen inline double GetValue() const; inline void SetValue(const double nVal); @@ -73,8 +71,15 @@ public: sal_Bool IsDeleted() const { return bDeleted; } void SetDeleted( sal_Bool b ) { bDeleted = b; } +<<<<<<< local + virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, USHORT nMId ) const; + virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, USHORT nMId ); +protected: + virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); +======= virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nMId ) const; virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nMId ); +>>>>>>> other }; inline sal_Bool SwUserFieldType::IsValid() const diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx index 8bacf2ee8f67..8ba1d1b5195b 100644 --- a/sw/inc/viewopt.hxx +++ b/sw/inc/viewopt.hxx @@ -159,10 +159,20 @@ protected: sal_Bool bIsPagePreview : 1; // the preview mustn't print field/footnote/... shadings sal_Bool bSelectionInReadonly : 1; //determines whether selection is switched on in readonly documents // --> FME 2004-06-29 #114856# Formular view +<<<<<<< local + BOOL mbFormView : 1; +======= sal_Bool bFormView : 1; +>>>>>>> other // <-- +<<<<<<< local + BOOL mbBookview : 1; // view mode for page preview + BOOL mbBrowseMode : 1; //swmod 080130 + BOOL mbViewLayoutBookMode : 1; // book view mode for edit view +======= sal_Bool bBookview : 1; // view mode for page preview sal_Bool mbViewLayoutBookMode : 1; // book view mode for edit view +>>>>>>> other sal_Bool bShowPlaceHolderFields : 1; //only used in printing! mutable bool bIdle; @@ -410,12 +420,25 @@ public: void SetSelectionInReadonly(sal_Bool bSet) {bSelectionInReadonly = bSet;} // --> FME 2004-06-29 #114856# Formular view +<<<<<<< local + BOOL IsFormView() const { return mbFormView; } + void SetFormView( BOOL bSet ) { mbFormView = bSet; } +======= sal_Bool IsFormView() const { return bFormView; } void SetFormView( sal_Bool bSet ) { bFormView = bSet; } +>>>>>>> other // <-- +<<<<<<< local + inline BOOL IsPagePrevBookview() const { return mbBookview; } + inline void SetPagePrevBookview(BOOL bSet) { mbBookview = bSet; } + + inline BOOL getBrowseMode() const { return mbBrowseMode; } + inline void setBrowseMode(BOOL bSet) { mbBrowseMode = bSet; } +======= inline sal_Bool IsPagePrevBookview() const { return bBookview; } inline void SetPagePrevBookview(sal_Bool bSet) { bBookview = bSet; } +>>>>>>> other sal_Bool IsAutoCompleteWords() const; diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx index fd1224e41d32..647a8f7f2048 100644 --- a/sw/inc/viewsh.hxx +++ b/sw/inc/viewsh.hxx @@ -36,6 +36,7 @@ #include <ring.hxx> #include <swrect.hxx> #include <errhdl.hxx> +#include <boost/shared_ptr.hpp>// swmod 080115 #include <vcl/mapmod.hxx> #include <vcl/print.hxx> @@ -98,7 +99,8 @@ namespace vcl // benoetigt werden. // Zur Zeit wird fuer die DrawPage das PreView Flag benoetigt #define VSHELLFLAG_ISPREVIEW ((long)0x1) - +#define VSHELLFLAG_SHARELAYOUT ((long)0x2)//swmod 080125 flag +typedef boost::shared_ptr<SwRootFrm> SwRootFrmPtr; class SW_DLLPUBLIC ViewShell : public Ring { @@ -170,6 +172,8 @@ class SW_DLLPUBLIC ViewShell : public Ring SdrPaintWindow* mpTargetPaintWindow; OutputDevice* mpBufferedOut; + SwRootFrmPtr pLayout; //swmod 080116 + //Initialisierung, wird von den verschiedenen Konstruktoren gerufen. SW_DLLPRIVATE void Init( const SwViewOption *pNewOpt ); @@ -277,7 +281,7 @@ public: //Invalidierung der ersten Sichtbaren Seite fuer alle Shells im Ring. void SetFirstVisPageInvalid(); - SwRootFrm *GetLayout() const; + SwRootFrm *GetLayout() const;//swmod 080116 sal_Bool IsNewLayout() const; //Wurde das Layout geladen oder neu //erzeugt? @@ -285,6 +289,10 @@ public: void CalcLayout(); //Durchformatierung des Layouts erzwingen. + sal_uInt16 GetPageCount() const; + + const Size GetPageSize( sal_uInt16 nPageNum, bool bSkipEmptyPages ) const; + inline SwDoc *GetDoc() const { return pDoc; } //niemals 0. /** Provides access to the document setting interface |