merge the formfield patch from ooo-build
[ooovba.git] / sw / inc / hints.hxx
blob731791b881dcaad01ec1b8af7dda3a6f53e2c3dc
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: hints.hxx,v $
10 * $Revision: 1.10 $
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 ************************************************************************/
30 #ifndef _HINTS_HXX
31 #define _HINTS_HXX
33 #ifndef _TABLE_HXX //autogen
34 #include <tools/table.hxx>
35 #endif
36 #include <swatrset.hxx>
38 class SwFmt;
39 class OutputDevice;
40 class SwTable;
41 class SwNode;
42 class SwNodes;
43 class SwCntntNode;
44 class SwPageFrm;
45 class SwFrm;
46 class SwTxtNode;
47 class SwHistory;
49 // Basis-Klasse fuer alle Message-Hints:
50 // "Overhead" vom SfxPoolItem wird hier behandelt
51 class SwMsgPoolItem : public SfxPoolItem
53 public:
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
68 public:
69 void * pObject;
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
85 public:
86 SwFmt *pChangedFmt;
87 SwFmtChg( SwFmt *pFmt );
91 class SwInsChr: public SwMsgPoolItem
93 public:
94 xub_StrLen nPos;
96 SwInsChr( USHORT nP );
99 class SwInsTxt: public SwMsgPoolItem
101 public:
102 xub_StrLen nPos;
103 xub_StrLen nLen;
105 SwInsTxt( xub_StrLen nP, xub_StrLen nL );
108 class SwDelChr: public SwMsgPoolItem
110 public:
111 xub_StrLen nPos;
113 SwDelChr( xub_StrLen nP );
116 class SwDelTxt: public SwMsgPoolItem
118 public:
119 xub_StrLen nStart;
120 xub_StrLen nLen;
122 SwDelTxt( xub_StrLen nS, xub_StrLen nL );
125 class SwUpdateAttr: public SwMsgPoolItem
127 public:
128 xub_StrLen nStart;
129 xub_StrLen nEnd;
130 USHORT nWhichAttr;
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
140 public:
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
152 public:
153 const long nDocPos;
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,
160 TBL_BOXNAME,
161 TBL_BOXPTR,
162 TBL_RELBOXNAME,
163 TBL_MERGETBL,
164 TBL_SPLITTBL
166 class SwTableFmlUpdate : public SwMsgPoolItem
168 public:
169 const SwTable* pTbl; // Pointer auf die zu aktuelle Tabelle
170 union {
171 const SwTable* pDelTbl; // Merge: Ptr auf die zu loeschende Tabelle
172 const String* pNewTblNm; // Split: der Name der neuen Tabelle
173 } DATA;
174 SwHistory* pHistory;
175 USHORT nSplitLine; // Split: ab dieser BaseLine wird gespl.
176 TableFmlUpdtFlags eFlags;
177 BOOL bModified : 1;
178 BOOL bBehindSplitLine : 1;
180 SwTableFmlUpdate( const SwTable* );
184 class SwAutoFmtGetDocNode: public SwMsgPoolItem
186 public:
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
200 BOOL bDelSet;
201 SwAttrSet* pChgSet; // was sich veraendert hat
202 const SwAttrSet* pTheChgdSet; // wird nur zum Vergleichen gebraucht !!
203 public:
204 SwAttrSetChg( const SwAttrSet& rTheSet, SwAttrSet& rSet );
205 SwAttrSetChg( const SwAttrSetChg& );
206 ~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 )
217 #ifdef PRODUCT
218 { pChgSet->ClearItem( nWhichL ); }
219 #else
221 #endif
224 class SwCondCollCondChg: public SwMsgPoolItem
226 public:
227 SwFmt *pChangedFmt;
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.
240 public:
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;
258 //public:
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
266 // // #111955#
267 // void MakeList( SwDoc& rDoc, BOOL bOutline = FALSE );
269 // const SwTxtNodeTable& GetTxtNodeList() const { return aList; }
270 //};
271 // <--
273 class SwNRuleLowerLevel : public SwMsgPoolItem
275 const String& rName;
276 BYTE nLvl;
277 public:
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;
287 public:
288 SwFindNearestNode( const SwNode& rNd );
289 void CheckNode( const SwNode& rNd );
291 const SwNode* GetFoundNode() const { return pFnd; }
294 class SwStringMsgPoolItem : public SwMsgPoolItem
296 String sStr;
297 public:
299 const String& GetString() const { return sStr; }
301 SwStringMsgPoolItem( USHORT nId, const String& rStr )
302 : SwMsgPoolItem( nId ), sStr( rStr )
306 #endif