diff options
Diffstat (limited to 'sw/inc/hints.hxx')
-rw-r--r-- | sw/inc/hints.hxx | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/sw/inc/hints.hxx b/sw/inc/hints.hxx new file mode 100644 index 000000000000..b706dbdeab21 --- /dev/null +++ b/sw/inc/hints.hxx @@ -0,0 +1,284 @@ +/************************************************************************* + * + * 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 _HINTS_HXX +#define _HINTS_HXX + +#ifndef _TABLE_HXX //autogen +#include <tools/table.hxx> +#endif +#include <swatrset.hxx> + +class SwFmt; +class OutputDevice; +class SwTable; +class SwNode; +class SwNodes; +class SwCntntNode; +class SwPageFrm; +class SwFrm; +class SwTxtNode; +class SwHistory; + +// Basis-Klasse fuer alle Message-Hints: +// "Overhead" vom SfxPoolItem wird hier behandelt +class SwMsgPoolItem : public SfxPoolItem +{ +public: + SwMsgPoolItem( USHORT nWhich ); + + // "Overhead" vom SfxPoolItem + virtual int operator==( const SfxPoolItem& ) const; + virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const; +}; + + +// --------------------------------------- +// SwPtrMsgPoolItem (altes SwObjectDying!) +// --------------------------------------- + +class SwPtrMsgPoolItem : public SwMsgPoolItem +{ +public: + void * pObject; + + SwPtrMsgPoolItem( USHORT nId, void * pObj ) + : SwMsgPoolItem( nId ), pObject( pObj ) + {} +}; + + + +/* + * SwFmtChg wird verschickt, wenn ein Format gegen ein anderes + * Format ausgewechselt worden ist. Es werden immer 2. Hints verschickt, + * das alte und neue Format. + */ +class SwFmtChg: public SwMsgPoolItem +{ +public: + SwFmt *pChangedFmt; + SwFmtChg( SwFmt *pFmt ); +}; + + +class SwInsTxt: public SwMsgPoolItem +{ +public: + xub_StrLen nPos; + xub_StrLen nLen; + + SwInsTxt( xub_StrLen nP, xub_StrLen nL ); +}; + +class SwDelChr: public SwMsgPoolItem +{ +public: + xub_StrLen nPos; + + SwDelChr( xub_StrLen nP ); +}; + +class SwDelTxt: public SwMsgPoolItem +{ +public: + xub_StrLen nStart; + xub_StrLen nLen; + + SwDelTxt( xub_StrLen nS, xub_StrLen nL ); +}; + +class SwUpdateAttr: public SwMsgPoolItem +{ +public: + xub_StrLen nStart; + xub_StrLen nEnd; + USHORT nWhichAttr; + SwUpdateAttr( xub_StrLen nS, xub_StrLen nE, USHORT nW ); +}; + + +// SwRefMarkFldUpdate wird verschickt, wenn sich die ReferenzMarkierungen +// Updaten sollen. Um Seiten-/KapitelNummer feststellen zu koennen, muss +// der akt. Frame befragt werden. Dafuer wird das akt. OutputDevice benoetigt. +class SwRefMarkFldUpdate : public SwMsgPoolItem +{ +public: + const OutputDevice* pOut; // Pointer auf das aktuelle Output-Device + SwRefMarkFldUpdate( const OutputDevice* ); +}; + +// SwDocPosUpdate wird verschickt, um zu signalisieren, dass nur die +// Frames ab oder bis zu einer bestimmten dokument-globalen Position +// geupdated werden brauchen. Zur Zeit wird dies nur beim Updaten +// von Seitennummernfeldern benoetigt. + +class SwDocPosUpdate : public SwMsgPoolItem +{ +public: + const long nDocPos; + SwDocPosUpdate( const long nDocPos ); +}; + +// SwTableFmlUpdate wird verschickt, wenn sich die Tabelle neu berechnen soll +// JP 16.02.99: oder wenn die Tabelle selbst gemergt oder gesplittet wird +enum TableFmlUpdtFlags { TBL_CALC = 0, + TBL_BOXNAME, + TBL_BOXPTR, + TBL_RELBOXNAME, + TBL_MERGETBL, + TBL_SPLITTBL + }; +class SwTableFmlUpdate : public SwMsgPoolItem +{ +public: + const SwTable* pTbl; // Pointer auf die zu aktuelle Tabelle + union { + const SwTable* pDelTbl; // Merge: Ptr auf die zu loeschende Tabelle + const String* pNewTblNm; // Split: der Name der neuen Tabelle + } DATA; + SwHistory* pHistory; + USHORT nSplitLine; // Split: ab dieser BaseLine wird gespl. + TableFmlUpdtFlags eFlags; + BOOL bModified : 1; + BOOL bBehindSplitLine : 1; + + SwTableFmlUpdate( const SwTable* ); +}; + + +class SwAutoFmtGetDocNode: public SwMsgPoolItem +{ +public: + const SwCntntNode* pCntntNode; + const SwNodes* pNodes; + + SwAutoFmtGetDocNode( const SwNodes* pNds ); +}; + +/* + * SwAttrSetChg wird verschicht, wenn sich in dem SwAttrSet rTheChgdSet + * etwas veraendert hat. Es werden immer 2. Hints + * verschickt, die alten und neuen Items in dem rTheChgdSet. + */ +class SwAttrSetChg: public SwMsgPoolItem +{ + BOOL bDelSet; + SwAttrSet* pChgSet; // was sich veraendert hat + const SwAttrSet* pTheChgdSet; // wird nur zum Vergleichen gebraucht !! +public: + SwAttrSetChg( const SwAttrSet& rTheSet, SwAttrSet& rSet ); + SwAttrSetChg( const SwAttrSetChg& ); + ~SwAttrSetChg(); + + // was sich veraendert hat + const SwAttrSet* GetChgSet() const { return pChgSet; } + SwAttrSet* GetChgSet() { return pChgSet; } + + // wo es sich geaendert hat + const SwAttrSet* GetTheChgdSet() const { return pTheChgdSet; } + + USHORT Count() const { return pChgSet->Count(); } + void ClearItem( USHORT nWhichL = 0 ) +#ifndef DBG_UTIL + { pChgSet->ClearItem( nWhichL ); } +#else + ; +#endif +}; + +class SwCondCollCondChg: public SwMsgPoolItem +{ +public: + SwFmt *pChangedFmt; + SwCondCollCondChg( SwFmt *pFmt ); +}; + +class SwVirtPageNumInfo: public SwMsgPoolItem +{ + const SwPageFrm *pPage; + const SwPageFrm *pOrigPage; + const SwFrm *pFrm; //An einem Absatz/Tabelle koennen mehrere + //Attribute sitzen. Der Frame muss dann + //muss dann letztlich bei bestimmen + //welches Attribut gilt und um welche physikalische + //Seite es sich handelt. +public: + SwVirtPageNumInfo( const SwPageFrm *pPg ); + + const SwPageFrm *GetPage() { return pPage; } + const SwPageFrm *GetOrigPage() { return pOrigPage;} + const SwFrm *GetFrm() { return pFrm; } + void SetInfo( const SwPageFrm *pPg, + const SwFrm *pF ) { pFrm = pF, pPage = pPg; } +}; + + +// --> OD 2008-02-19 #refactorlists# +//DECLARE_TABLE( SwTxtNodeTable, SwTxtNode* ) + +//class SwNumRuleInfo : public SwMsgPoolItem +//{ +// SwTxtNodeTable aList; +// const String& rName; +//public: +// SwNumRuleInfo( const String& rRuleName ); + +// const String& GetName() const { return rName; } +// void AddNode( SwTxtNode& rNd ); + +// // erzeuge die Liste aller Nodes der NumRule in dem angegebenem Doc +// // Der Code steht im docnum.cxx +// // #111955# +// void MakeList( SwDoc& rDoc, BOOL bOutline = FALSE ); + +// const SwTxtNodeTable& GetTxtNodeList() const { return aList; } +//}; +// <-- + +class SwFindNearestNode : public SwMsgPoolItem +{ + const SwNode *pNd, *pFnd; +public: + SwFindNearestNode( const SwNode& rNd ); + void CheckNode( const SwNode& rNd ); + + const SwNode* GetFoundNode() const { return pFnd; } +}; + +class SwStringMsgPoolItem : public SwMsgPoolItem +{ + String sStr; +public: + + const String& GetString() const { return sStr; } + + SwStringMsgPoolItem( USHORT nId, const String& rStr ) + : SwMsgPoolItem( nId ), sStr( rStr ) + {} +}; + +#endif |