Update ooo320-m1
[ooovba.git] / binfilter / inc / bf_sw / hints.hxx
blobcbc20dc031ab9652d1a5d466dcedf73dc47430c9
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.5 $
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 #ifndef _SWATRSET_HXX
37 #include <swatrset.hxx>
38 #endif
39 class OutputDevice;
40 namespace binfilter {
42 class SwFmt;
44 class SwTable;
45 class SwNode;
46 class SwNodes;
47 class SwCntntNode;
48 class SwPageFrm;
49 class SwFrm;
50 class SwTxtNode;
51 class SwHistory;
53 // Basis-Klasse fuer alle Message-Hints:
54 // "Overhead" vom SfxPoolItem wird hier behandelt
55 class SwMsgPoolItem : public SfxPoolItem
57 public:
58 SwMsgPoolItem( USHORT nWhich );
60 // "Overhead" vom SfxPoolItem
61 virtual int operator==( const SfxPoolItem& ) const;
62 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
66 // ---------------------------------------
67 // SwPtrMsgPoolItem (altes SwObjectDying!)
68 // ---------------------------------------
70 class SwPtrMsgPoolItem : public SwMsgPoolItem
72 public:
73 void * pObject;
75 SwPtrMsgPoolItem( USHORT nId, void * pObj )
76 : SwMsgPoolItem( nId ), pObject( pObj )
83 * SwFmtChg wird verschickt, wenn ein Format gegen ein anderes
84 * Format ausgewechselt worden ist. Es werden immer 2. Hints verschickt,
85 * das alte und neue Format.
87 class SwFmtChg: public SwMsgPoolItem
89 public:
90 SwFmt *pChangedFmt;
91 SwFmtChg( SwFmt *pFmt );
95 class SwInsChr: public SwMsgPoolItem
97 public:
98 xub_StrLen nPos;
100 SwInsChr( USHORT nP );
103 class SwInsTxt: public SwMsgPoolItem
105 public:
106 xub_StrLen nPos;
107 xub_StrLen nLen;
109 SwInsTxt( xub_StrLen nP, xub_StrLen nL );
112 class SwDelChr: public SwMsgPoolItem
114 public:
115 xub_StrLen nPos;
117 SwDelChr( xub_StrLen nP );
120 class SwDelTxt: public SwMsgPoolItem
122 public:
123 xub_StrLen nStart;
124 xub_StrLen nLen;
126 SwDelTxt( xub_StrLen nS, xub_StrLen nL );
129 class SwUpdateAttr: public SwMsgPoolItem
131 public:
132 xub_StrLen nStart;
133 xub_StrLen nEnd;
134 USHORT nWhichAttr;
135 SwUpdateAttr( xub_StrLen nS, xub_StrLen nE, USHORT nW );
139 // SwRefMarkFldUpdate wird verschickt, wenn sich die ReferenzMarkierungen
140 // Updaten sollen. Um Seiten-/KapitelNummer feststellen zu koennen, muss
141 // der akt. Frame befragt werden. Dafuer wird das akt. OutputDevice benoetigt.
143 // SwDocPosUpdate wird verschickt, um zu signalisieren, dass nur die
144 // Frames ab oder bis zu einer bestimmten dokument-globalen Position
145 // geupdated werden brauchen. Zur Zeit wird dies nur beim Updaten
146 // von Seitennummernfeldern benoetigt.
148 class SwDocPosUpdate : public SwMsgPoolItem
150 public:
151 const long nDocPos;
152 SwDocPosUpdate( const long nDocPos );
155 // SwTableFmlUpdate wird verschickt, wenn sich die Tabelle neu berechnen soll
156 // JP 16.02.99: oder wenn die Tabelle selbst gemergt oder gesplittet wird
157 enum TableFmlUpdtFlags { TBL_CALC = 0,
158 TBL_BOXNAME,
159 TBL_BOXPTR,
160 TBL_RELBOXNAME,
161 TBL_MERGETBL,
162 TBL_SPLITTBL
164 class SwTableFmlUpdate : public SwMsgPoolItem
166 public:
167 const SwTable* pTbl; // Pointer auf die zu aktuelle Tabelle
168 union {
169 const SwTable* pDelTbl; // Merge: Ptr auf die zu loeschende Tabelle
170 const String* pNewTblNm; // Split: der Name der neuen Tabelle
171 } DATA;
172 SwHistory* pHistory;
173 USHORT nSplitLine; // Split: ab dieser BaseLine wird gespl.
174 TableFmlUpdtFlags eFlags;
175 BOOL bModified : 1;
176 BOOL bBehindSplitLine : 1;
178 SwTableFmlUpdate( const SwTable* );
182 class SwAutoFmtGetDocNode: public SwMsgPoolItem
184 public:
185 const SwCntntNode* pCntntNode;
186 const SwNodes* pNodes;
188 SwAutoFmtGetDocNode( const SwNodes* pNds );
192 * SwAttrSetChg wird verschicht, wenn sich in dem SwAttrSet rTheChgdSet
193 * etwas veraendert hat. Es werden immer 2. Hints
194 * verschickt, die alten und neuen Items in dem rTheChgdSet.
196 class SwAttrSetChg: public SwMsgPoolItem
198 BOOL bDelSet;
199 SwAttrSet* pChgSet; // was sich veraendert hat
200 const SwAttrSet* pTheChgdSet; // wird nur zum Vergleichen gebraucht !!
201 public:
202 SwAttrSetChg( const SwAttrSet& rTheSet, SwAttrSet& rSet );
203 SwAttrSetChg( const SwAttrSetChg& );
204 ~SwAttrSetChg();
206 // was sich veraendert hat
207 const SwAttrSet* GetChgSet() const { return pChgSet; }
208 SwAttrSet* GetChgSet() { return pChgSet; }
210 // wo es sich geaendert hat
211 const SwAttrSet* GetTheChgdSet() const { return pTheChgdSet; }
213 SfxItemState GetItemState( USHORT nWhich, BOOL bSrchInParent = TRUE,
214 const SfxPoolItem **ppItem = 0 ) const
215 { return pChgSet->GetItemState( nWhich, bSrchInParent, ppItem ); }
217 USHORT Count() const { return pChgSet->Count(); }
218 void ClearItem( USHORT nWhich = 0 )
219 #ifdef PRODUCT
220 { pChgSet->ClearItem( nWhich ); }
221 #else
223 #endif
226 class SwCondCollCondChg: public SwMsgPoolItem
228 public:
229 SwFmt *pChangedFmt;
230 SwCondCollCondChg( SwFmt *pFmt );
233 class SwVirtPageNumInfo: public SwMsgPoolItem
235 const SwPageFrm *pPage;
236 const SwPageFrm *pOrigPage;
237 const SwFrm *pFrm; //An einem Absatz/Tabelle koennen mehrere
238 //Attribute sitzen. Der Frame muss dann
239 //muss dann letztlich bei bestimmen
240 //welches Attribut gilt und um welche physikalische
241 //Seite es sich handelt.
242 public:
243 SwVirtPageNumInfo( const SwPageFrm *pPg );
245 const SwPageFrm *GetPage() { return pPage; }
246 const SwPageFrm *GetOrigPage() { return pOrigPage;}
247 const SwFrm *GetFrm() { return pFrm; }
248 void SetInfo( const SwPageFrm *pPg,
249 const SwFrm *pF ) { pFrm = pF, pPage = pPg; }
253 DECLARE_TABLE( SwTxtNodeTable, SwTxtNode* )
255 class SwNumRuleInfo : public SwMsgPoolItem
257 SwTxtNodeTable aList;
258 const String& rName;
259 public:
260 SwNumRuleInfo( const String& rRuleName );
262 const String& GetName() const { return rName; }
263 void AddNode( SwTxtNode& rNd );
265 // erzeuge die Liste aller Nodes der NumRule in dem angegebenem Doc
266 // Der Code steht im docnum.cxx
267 void MakeList( SwDoc& rDoc );
268 SwTxtNodeTable& GetList() const { return (SwTxtNodeTable&)aList; }
273 class SwStringMsgPoolItem : public SwMsgPoolItem
275 String sStr;
276 public:
278 const String& GetString() const { return sStr; }
280 SwStringMsgPoolItem( USHORT nId, const String& rStr )
281 : SwMsgPoolItem( nId ), sStr( rStr )
285 } //namespace binfilter
286 #endif