merged tag ooo/OOO330_m14
[LibreOffice.git] / sw / inc / hints.hxx
blobb706dbdeab2126ffe10983321db8a5bd1da9ea74
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org. If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
26 ************************************************************************/
27 #ifndef _HINTS_HXX
28 #define _HINTS_HXX
30 #ifndef _TABLE_HXX //autogen
31 #include <tools/table.hxx>
32 #endif
33 #include <swatrset.hxx>
35 class SwFmt;
36 class OutputDevice;
37 class SwTable;
38 class SwNode;
39 class SwNodes;
40 class SwCntntNode;
41 class SwPageFrm;
42 class SwFrm;
43 class SwTxtNode;
44 class SwHistory;
46 // Basis-Klasse fuer alle Message-Hints:
47 // "Overhead" vom SfxPoolItem wird hier behandelt
48 class SwMsgPoolItem : public SfxPoolItem
50 public:
51 SwMsgPoolItem( USHORT nWhich );
53 // "Overhead" vom SfxPoolItem
54 virtual int operator==( const SfxPoolItem& ) const;
55 virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
59 // ---------------------------------------
60 // SwPtrMsgPoolItem (altes SwObjectDying!)
61 // ---------------------------------------
63 class SwPtrMsgPoolItem : public SwMsgPoolItem
65 public:
66 void * pObject;
68 SwPtrMsgPoolItem( USHORT nId, void * pObj )
69 : SwMsgPoolItem( nId ), pObject( pObj )
76 * SwFmtChg wird verschickt, wenn ein Format gegen ein anderes
77 * Format ausgewechselt worden ist. Es werden immer 2. Hints verschickt,
78 * das alte und neue Format.
80 class SwFmtChg: public SwMsgPoolItem
82 public:
83 SwFmt *pChangedFmt;
84 SwFmtChg( SwFmt *pFmt );
88 class SwInsTxt: public SwMsgPoolItem
90 public:
91 xub_StrLen nPos;
92 xub_StrLen nLen;
94 SwInsTxt( xub_StrLen nP, xub_StrLen nL );
97 class SwDelChr: public SwMsgPoolItem
99 public:
100 xub_StrLen nPos;
102 SwDelChr( xub_StrLen nP );
105 class SwDelTxt: public SwMsgPoolItem
107 public:
108 xub_StrLen nStart;
109 xub_StrLen nLen;
111 SwDelTxt( xub_StrLen nS, xub_StrLen nL );
114 class SwUpdateAttr: public SwMsgPoolItem
116 public:
117 xub_StrLen nStart;
118 xub_StrLen nEnd;
119 USHORT nWhichAttr;
120 SwUpdateAttr( xub_StrLen nS, xub_StrLen nE, USHORT nW );
124 // SwRefMarkFldUpdate wird verschickt, wenn sich die ReferenzMarkierungen
125 // Updaten sollen. Um Seiten-/KapitelNummer feststellen zu koennen, muss
126 // der akt. Frame befragt werden. Dafuer wird das akt. OutputDevice benoetigt.
127 class SwRefMarkFldUpdate : public SwMsgPoolItem
129 public:
130 const OutputDevice* pOut; // Pointer auf das aktuelle Output-Device
131 SwRefMarkFldUpdate( const OutputDevice* );
134 // SwDocPosUpdate wird verschickt, um zu signalisieren, dass nur die
135 // Frames ab oder bis zu einer bestimmten dokument-globalen Position
136 // geupdated werden brauchen. Zur Zeit wird dies nur beim Updaten
137 // von Seitennummernfeldern benoetigt.
139 class SwDocPosUpdate : public SwMsgPoolItem
141 public:
142 const long nDocPos;
143 SwDocPosUpdate( const long nDocPos );
146 // SwTableFmlUpdate wird verschickt, wenn sich die Tabelle neu berechnen soll
147 // JP 16.02.99: oder wenn die Tabelle selbst gemergt oder gesplittet wird
148 enum TableFmlUpdtFlags { TBL_CALC = 0,
149 TBL_BOXNAME,
150 TBL_BOXPTR,
151 TBL_RELBOXNAME,
152 TBL_MERGETBL,
153 TBL_SPLITTBL
155 class SwTableFmlUpdate : public SwMsgPoolItem
157 public:
158 const SwTable* pTbl; // Pointer auf die zu aktuelle Tabelle
159 union {
160 const SwTable* pDelTbl; // Merge: Ptr auf die zu loeschende Tabelle
161 const String* pNewTblNm; // Split: der Name der neuen Tabelle
162 } DATA;
163 SwHistory* pHistory;
164 USHORT nSplitLine; // Split: ab dieser BaseLine wird gespl.
165 TableFmlUpdtFlags eFlags;
166 BOOL bModified : 1;
167 BOOL bBehindSplitLine : 1;
169 SwTableFmlUpdate( const SwTable* );
173 class SwAutoFmtGetDocNode: public SwMsgPoolItem
175 public:
176 const SwCntntNode* pCntntNode;
177 const SwNodes* pNodes;
179 SwAutoFmtGetDocNode( const SwNodes* pNds );
183 * SwAttrSetChg wird verschicht, wenn sich in dem SwAttrSet rTheChgdSet
184 * etwas veraendert hat. Es werden immer 2. Hints
185 * verschickt, die alten und neuen Items in dem rTheChgdSet.
187 class SwAttrSetChg: public SwMsgPoolItem
189 BOOL bDelSet;
190 SwAttrSet* pChgSet; // was sich veraendert hat
191 const SwAttrSet* pTheChgdSet; // wird nur zum Vergleichen gebraucht !!
192 public:
193 SwAttrSetChg( const SwAttrSet& rTheSet, SwAttrSet& rSet );
194 SwAttrSetChg( const SwAttrSetChg& );
195 ~SwAttrSetChg();
197 // was sich veraendert hat
198 const SwAttrSet* GetChgSet() const { return pChgSet; }
199 SwAttrSet* GetChgSet() { return pChgSet; }
201 // wo es sich geaendert hat
202 const SwAttrSet* GetTheChgdSet() const { return pTheChgdSet; }
204 USHORT Count() const { return pChgSet->Count(); }
205 void ClearItem( USHORT nWhichL = 0 )
206 #ifndef DBG_UTIL
207 { pChgSet->ClearItem( nWhichL ); }
208 #else
210 #endif
213 class SwCondCollCondChg: public SwMsgPoolItem
215 public:
216 SwFmt *pChangedFmt;
217 SwCondCollCondChg( SwFmt *pFmt );
220 class SwVirtPageNumInfo: public SwMsgPoolItem
222 const SwPageFrm *pPage;
223 const SwPageFrm *pOrigPage;
224 const SwFrm *pFrm; //An einem Absatz/Tabelle koennen mehrere
225 //Attribute sitzen. Der Frame muss dann
226 //muss dann letztlich bei bestimmen
227 //welches Attribut gilt und um welche physikalische
228 //Seite es sich handelt.
229 public:
230 SwVirtPageNumInfo( const SwPageFrm *pPg );
232 const SwPageFrm *GetPage() { return pPage; }
233 const SwPageFrm *GetOrigPage() { return pOrigPage;}
234 const SwFrm *GetFrm() { return pFrm; }
235 void SetInfo( const SwPageFrm *pPg,
236 const SwFrm *pF ) { pFrm = pF, pPage = pPg; }
240 // --> OD 2008-02-19 #refactorlists#
241 //DECLARE_TABLE( SwTxtNodeTable, SwTxtNode* )
243 //class SwNumRuleInfo : public SwMsgPoolItem
245 // SwTxtNodeTable aList;
246 // const String& rName;
247 //public:
248 // SwNumRuleInfo( const String& rRuleName );
250 // const String& GetName() const { return rName; }
251 // void AddNode( SwTxtNode& rNd );
253 // // erzeuge die Liste aller Nodes der NumRule in dem angegebenem Doc
254 // // Der Code steht im docnum.cxx
255 // // #111955#
256 // void MakeList( SwDoc& rDoc, BOOL bOutline = FALSE );
258 // const SwTxtNodeTable& GetTxtNodeList() const { return aList; }
259 //};
260 // <--
262 class SwFindNearestNode : public SwMsgPoolItem
264 const SwNode *pNd, *pFnd;
265 public:
266 SwFindNearestNode( const SwNode& rNd );
267 void CheckNode( const SwNode& rNd );
269 const SwNode* GetFoundNode() const { return pFnd; }
272 class SwStringMsgPoolItem : public SwMsgPoolItem
274 String sStr;
275 public:
277 const String& GetString() const { return sStr; }
279 SwStringMsgPoolItem( USHORT nId, const String& rStr )
280 : SwMsgPoolItem( nId ), sStr( rStr )
284 #endif