1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: hints.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
33 #ifndef _TABLE_HXX //autogen
34 #include <tools/table.hxx>
36 #include <swatrset.hxx>
49 // Basis-Klasse fuer alle Message-Hints:
50 // "Overhead" vom SfxPoolItem wird hier behandelt
51 class SwMsgPoolItem
: public SfxPoolItem
54 SwMsgPoolItem( USHORT nWhich
);
56 // "Overhead" vom SfxPoolItem
57 virtual int operator==( const SfxPoolItem
& ) const;
58 virtual SfxPoolItem
* Clone( SfxItemPool
* pPool
= 0 ) const;
62 // ---------------------------------------
63 // SwPtrMsgPoolItem (altes SwObjectDying!)
64 // ---------------------------------------
66 class SwPtrMsgPoolItem
: public SwMsgPoolItem
71 SwPtrMsgPoolItem( USHORT nId
, void * pObj
)
72 : SwMsgPoolItem( nId
), pObject( pObj
)
79 * SwFmtChg wird verschickt, wenn ein Format gegen ein anderes
80 * Format ausgewechselt worden ist. Es werden immer 2. Hints verschickt,
81 * das alte und neue Format.
83 class SwFmtChg
: public SwMsgPoolItem
87 SwFmtChg( SwFmt
*pFmt
);
91 class SwInsChr
: public SwMsgPoolItem
96 SwInsChr( USHORT nP
);
99 class SwInsTxt
: public SwMsgPoolItem
105 SwInsTxt( xub_StrLen nP
, xub_StrLen nL
);
108 class SwDelChr
: public SwMsgPoolItem
113 SwDelChr( xub_StrLen nP
);
116 class SwDelTxt
: public SwMsgPoolItem
122 SwDelTxt( xub_StrLen nS
, xub_StrLen nL
);
125 class SwUpdateAttr
: public SwMsgPoolItem
131 SwUpdateAttr( xub_StrLen nS
, xub_StrLen nE
, USHORT nW
);
135 // SwRefMarkFldUpdate wird verschickt, wenn sich die ReferenzMarkierungen
136 // Updaten sollen. Um Seiten-/KapitelNummer feststellen zu koennen, muss
137 // der akt. Frame befragt werden. Dafuer wird das akt. OutputDevice benoetigt.
138 class SwRefMarkFldUpdate
: public SwMsgPoolItem
141 const OutputDevice
* pOut
; // Pointer auf das aktuelle Output-Device
142 SwRefMarkFldUpdate( const OutputDevice
* );
145 // SwDocPosUpdate wird verschickt, um zu signalisieren, dass nur die
146 // Frames ab oder bis zu einer bestimmten dokument-globalen Position
147 // geupdated werden brauchen. Zur Zeit wird dies nur beim Updaten
148 // von Seitennummernfeldern benoetigt.
150 class SwDocPosUpdate
: public SwMsgPoolItem
154 SwDocPosUpdate( const long nDocPos
);
157 // SwTableFmlUpdate wird verschickt, wenn sich die Tabelle neu berechnen soll
158 // JP 16.02.99: oder wenn die Tabelle selbst gemergt oder gesplittet wird
159 enum TableFmlUpdtFlags
{ TBL_CALC
= 0,
166 class SwTableFmlUpdate
: public SwMsgPoolItem
169 const SwTable
* pTbl
; // Pointer auf die zu aktuelle Tabelle
171 const SwTable
* pDelTbl
; // Merge: Ptr auf die zu loeschende Tabelle
172 const String
* pNewTblNm
; // Split: der Name der neuen Tabelle
175 USHORT nSplitLine
; // Split: ab dieser BaseLine wird gespl.
176 TableFmlUpdtFlags eFlags
;
178 BOOL bBehindSplitLine
: 1;
180 SwTableFmlUpdate( const SwTable
* );
184 class SwAutoFmtGetDocNode
: public SwMsgPoolItem
187 const SwCntntNode
* pCntntNode
;
188 const SwNodes
* pNodes
;
190 SwAutoFmtGetDocNode( const SwNodes
* pNds
);
194 * SwAttrSetChg wird verschicht, wenn sich in dem SwAttrSet rTheChgdSet
195 * etwas veraendert hat. Es werden immer 2. Hints
196 * verschickt, die alten und neuen Items in dem rTheChgdSet.
198 class SwAttrSetChg
: public SwMsgPoolItem
201 SwAttrSet
* pChgSet
; // was sich veraendert hat
202 const SwAttrSet
* pTheChgdSet
; // wird nur zum Vergleichen gebraucht !!
204 SwAttrSetChg( const SwAttrSet
& rTheSet
, SwAttrSet
& rSet
);
205 SwAttrSetChg( const SwAttrSetChg
& );
208 // was sich veraendert hat
209 const SwAttrSet
* GetChgSet() const { return pChgSet
; }
210 SwAttrSet
* GetChgSet() { return pChgSet
; }
212 // wo es sich geaendert hat
213 const SwAttrSet
* GetTheChgdSet() const { return pTheChgdSet
; }
215 USHORT
Count() const { return pChgSet
->Count(); }
216 void ClearItem( USHORT nWhichL
= 0 )
218 { pChgSet
->ClearItem( nWhichL
); }
224 class SwCondCollCondChg
: public SwMsgPoolItem
228 SwCondCollCondChg( SwFmt
*pFmt
);
231 class SwVirtPageNumInfo
: public SwMsgPoolItem
233 const SwPageFrm
*pPage
;
234 const SwPageFrm
*pOrigPage
;
235 const SwFrm
*pFrm
; //An einem Absatz/Tabelle koennen mehrere
236 //Attribute sitzen. Der Frame muss dann
237 //muss dann letztlich bei bestimmen
238 //welches Attribut gilt und um welche physikalische
239 //Seite es sich handelt.
241 SwVirtPageNumInfo( const SwPageFrm
*pPg
);
243 const SwPageFrm
*GetPage() { return pPage
; }
244 const SwPageFrm
*GetOrigPage() { return pOrigPage
;}
245 const SwFrm
*GetFrm() { return pFrm
; }
246 void SetInfo( const SwPageFrm
*pPg
,
247 const SwFrm
*pF
) { pFrm
= pF
, pPage
= pPg
; }
251 // --> OD 2008-02-19 #refactorlists#
252 //DECLARE_TABLE( SwTxtNodeTable, SwTxtNode* )
254 //class SwNumRuleInfo : public SwMsgPoolItem
256 // SwTxtNodeTable aList;
257 // const String& rName;
259 // SwNumRuleInfo( const String& rRuleName );
261 // const String& GetName() const { return rName; }
262 // void AddNode( SwTxtNode& rNd );
264 // // erzeuge die Liste aller Nodes der NumRule in dem angegebenem Doc
265 // // Der Code steht im docnum.cxx
267 // void MakeList( SwDoc& rDoc, BOOL bOutline = FALSE );
269 // const SwTxtNodeTable& GetTxtNodeList() const { return aList; }
273 class SwNRuleLowerLevel
: public SwMsgPoolItem
278 SwNRuleLowerLevel( const String
& rRuleName
, BYTE nLevel
);
280 const String
& GetName() const { return rName
; }
281 BYTE
GetLevel() const { return nLvl
; }
284 class SwFindNearestNode
: public SwMsgPoolItem
286 const SwNode
*pNd
, *pFnd
;
288 SwFindNearestNode( const SwNode
& rNd
);
289 void CheckNode( const SwNode
& rNd
);
291 const SwNode
* GetFoundNode() const { return pFnd
; }
294 class SwStringMsgPoolItem
: public SwMsgPoolItem
299 const String
& GetString() const { return sStr
; }
301 SwStringMsgPoolItem( USHORT nId
, const String
& rStr
)
302 : SwMsgPoolItem( nId
), sStr( rStr
)