xref: /trunk/main/sw/inc/hints.hxx (revision 56b35d86)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 #ifndef _HINTS_HXX
24 #define _HINTS_HXX
25 
26 #ifndef _TABLE_HXX //autogen
27 #include <tools/table.hxx>
28 #endif
29 #include <swatrset.hxx>
30 
31 class SwFmt;
32 class OutputDevice;
33 class SwTable;
34 class SwNode;
35 class SwNodes;
36 class SwCntntNode;
37 class SwPageFrm;
38 class SwFrm;
39 class SwTxtNode;
40 class SwHistory;
41 
42 // Basis-Klasse fuer alle Message-Hints:
43 //	"Overhead" vom SfxPoolItem wird hier behandelt
44 class SwMsgPoolItem : public SfxPoolItem
45 {
46 public:
47 	SwMsgPoolItem( sal_uInt16 nWhich );
48 
49 	// "Overhead" vom SfxPoolItem
50 	virtual int             operator==( const SfxPoolItem& ) const;
51 	virtual SfxPoolItem*	Clone( SfxItemPool* pPool = 0 ) const;
52 };
53 
54 
55 // ---------------------------------------
56 // SwPtrMsgPoolItem (altes SwObjectDying!)
57 // ---------------------------------------
58 
59 class SwPtrMsgPoolItem : public SwMsgPoolItem
60 {
61 public:
62 	void * pObject;
63 
SwPtrMsgPoolItem(sal_uInt16 nId,void * pObj)64 	SwPtrMsgPoolItem( sal_uInt16 nId, void * pObj )
65 		: SwMsgPoolItem( nId ), pObject( pObj )
66 	{}
67 };
68 
69 
70 
71 /*
72  * SwFmtChg wird verschickt, wenn ein Format gegen ein anderes
73  * Format ausgewechselt worden ist. Es werden immer 2. Hints verschickt,
74  * das alte und neue Format.
75  */
76 class SwFmtChg: public SwMsgPoolItem
77 {
78 public:
79 	SwFmt *pChangedFmt;
80 	SwFmtChg( SwFmt *pFmt );
81 };
82 
83 
84 class SwInsTxt: public SwMsgPoolItem
85 {
86 public:
87 	xub_StrLen nPos;
88 	xub_StrLen nLen;
89 
90 	SwInsTxt( xub_StrLen nP, xub_StrLen nL );
91 };
92 
93 class SwDelChr: public SwMsgPoolItem
94 {
95 public:
96 	xub_StrLen nPos;
97 
98 	SwDelChr( xub_StrLen nP );
99 };
100 
101 class SwDelTxt: public SwMsgPoolItem
102 {
103 public:
104 	xub_StrLen nStart;
105 	xub_StrLen nLen;
106 
107 	SwDelTxt( xub_StrLen nS, xub_StrLen nL );
108 };
109 
110 class SwUpdateAttr : public SwMsgPoolItem
111 {
112 private:
113     xub_StrLen nStart;
114     xub_StrLen nEnd;
115     sal_uInt16 nWhichAttr;
116 
117 public:
118     SwUpdateAttr(
119         xub_StrLen nS,
120         xub_StrLen nE,
121         sal_uInt16 nW);
122 
getStart() const123     xub_StrLen getStart() const
124     {
125         return nStart;
126     }
127 
getEnd() const128     xub_StrLen getEnd() const
129     {
130         return nEnd;
131     }
132 
getWhichAttr() const133     sal_uInt16 getWhichAttr() const
134     {
135         return nWhichAttr;
136     }
137 };
138 
139 
140 // SwRefMarkFldUpdate wird verschickt, wenn sich die ReferenzMarkierungen
141 // Updaten sollen. Um Seiten-/KapitelNummer feststellen zu koennen, muss
142 // der akt. Frame befragt werden. Dafuer wird das akt. OutputDevice benoetigt.
143 class SwRefMarkFldUpdate : public SwMsgPoolItem
144 {
145 public:
146 	const OutputDevice* pOut;		// Pointer auf das aktuelle Output-Device
147 	SwRefMarkFldUpdate( const OutputDevice* );
148 };
149 
150 // SwDocPosUpdate wird verschickt, um zu signalisieren, dass nur die
151 // Frames ab oder bis zu einer bestimmten dokument-globalen Position
152 // geupdated werden brauchen. Zur Zeit wird dies nur beim Updaten
153 // von Seitennummernfeldern benoetigt.
154 
155 class SwDocPosUpdate : public SwMsgPoolItem
156 {
157 public:
158 	const long nDocPos;
159 	SwDocPosUpdate( const long nDocPos );
160 };
161 
162 // SwTableFmlUpdate wird verschickt, wenn sich die Tabelle neu berechnen soll
163 // JP 16.02.99: oder wenn die Tabelle selbst gemergt oder gesplittet wird
164 enum TableFmlUpdtFlags { TBL_CALC = 0,
165 						 TBL_BOXNAME,
166 						 TBL_BOXPTR,
167 						 TBL_RELBOXNAME,
168 						 TBL_MERGETBL,
169 						 TBL_SPLITTBL
170 					   };
171 class SwTableFmlUpdate : public SwMsgPoolItem
172 {
173 public:
174 	const SwTable* pTbl;		// Pointer auf die zu aktuelle Tabelle
175 	union {
176 		const SwTable* pDelTbl;		// Merge: Ptr auf die zu loeschende Tabelle
177 		const String* pNewTblNm;	// Split: der Name der neuen Tabelle
178 	} DATA;
179 	SwHistory* pHistory;
180 	sal_uInt16 nSplitLine;			// Split: ab dieser BaseLine wird gespl.
181 	TableFmlUpdtFlags eFlags;
182 	sal_Bool bModified : 1;
183 	sal_Bool bBehindSplitLine : 1;
184 
185 	SwTableFmlUpdate( const SwTable* );
186 };
187 
188 
189 class SwAutoFmtGetDocNode: public SwMsgPoolItem
190 {
191 public:
192 	const SwCntntNode* pCntntNode;
193 	const SwNodes* pNodes;
194 
195 	SwAutoFmtGetDocNode( const SwNodes* pNds );
196 };
197 
198 /*
199  * SwAttrSetChg wird verschicht, wenn sich in dem SwAttrSet rTheChgdSet
200  * etwas veraendert hat. Es werden immer 2. Hints
201  * verschickt, die alten und neuen Items in dem rTheChgdSet.
202  */
203 class SwAttrSetChg: public SwMsgPoolItem
204 {
205 	sal_Bool bDelSet;
206 	SwAttrSet* pChgSet;				// was sich veraendert hat
207 	const SwAttrSet* pTheChgdSet;	// wird nur zum Vergleichen gebraucht !!
208 public:
209 	SwAttrSetChg( const SwAttrSet& rTheSet, SwAttrSet& rSet );
210 	SwAttrSetChg( const SwAttrSetChg& );
211 	~SwAttrSetChg();
212 
213 	// was sich veraendert hat
GetChgSet() const214 	const SwAttrSet* GetChgSet() const	{ return pChgSet; }
GetChgSet()215 		  SwAttrSet* GetChgSet() 		{ return pChgSet; }
216 
217 	// wo es sich geaendert hat
GetTheChgdSet() const218 	const SwAttrSet* GetTheChgdSet() const	{ return pTheChgdSet; }
219 
Count() const220     sal_uInt16 Count() const { return pChgSet->Count(); }
ClearItem(sal_uInt16 nWhichL=0)221     void ClearItem( sal_uInt16 nWhichL = 0 )
222 #ifndef DBG_UTIL
223     { pChgSet->ClearItem( nWhichL ); }
224 #else
225 		;
226 #endif
227 };
228 
229 class SwCondCollCondChg: public SwMsgPoolItem
230 {
231 public:
232 	SwFmt *pChangedFmt;
233 	SwCondCollCondChg( SwFmt *pFmt );
234 };
235 
236 class SwVirtPageNumInfo: public SwMsgPoolItem
237 {
238 	const SwPageFrm *pPage;
239 	const SwPageFrm *pOrigPage;
240 	const SwFrm 	*pFrm;		//An einem Absatz/Tabelle koennen mehrere
241 								//Attribute sitzen. Der Frame muss dann
242 								//muss dann letztlich bei bestimmen
243 								//welches Attribut gilt und um welche physikalische
244 								//Seite es sich handelt.
245 public:
246 	SwVirtPageNumInfo( const SwPageFrm *pPg );
247 
GetPage()248 	const SwPageFrm *GetPage()			{ return pPage;    }
GetOrigPage()249 	const SwPageFrm *GetOrigPage()		{ return pOrigPage;}
GetFrm()250 	const SwFrm *GetFrm()				{ return pFrm; }
SetInfo(const SwPageFrm * pPg,const SwFrm * pF)251 	void  SetInfo( const SwPageFrm *pPg,
252 				   const SwFrm *pF	) 	{ pFrm = pF, pPage = pPg; }
253 };
254 
255 
256 // --> OD 2008-02-19 #refactorlists#
257 //DECLARE_TABLE( SwTxtNodeTable, SwTxtNode* )
258 
259 //class SwNumRuleInfo : public SwMsgPoolItem
260 //{
261 //    SwTxtNodeTable aList;
262 //    const String& rName;
263 //public:
264 //  SwNumRuleInfo( const String& rRuleName );
265 
266 //  const String& GetName() const { return rName; }
267 //  void AddNode( SwTxtNode& rNd );
268 
269 //  // erzeuge die Liste aller Nodes der NumRule in dem angegebenem Doc
270 //  // Der Code steht im docnum.cxx
271 //    // #111955#
272 //  void MakeList( SwDoc& rDoc, sal_Bool bOutline = sal_False );
273 
274 //    const SwTxtNodeTable& GetTxtNodeList() const { return aList; }
275 //};
276 // <--
277 
278 class SwFindNearestNode : public SwMsgPoolItem
279 {
280 	const SwNode *pNd, *pFnd;
281 public:
282 	SwFindNearestNode( const SwNode& rNd );
283 	void CheckNode( const SwNode& rNd );
284 
GetFoundNode() const285 	const SwNode* GetFoundNode() const 		{ return pFnd; }
286 };
287 
288 class SwStringMsgPoolItem : public SwMsgPoolItem
289 {
290 	String sStr;
291 public:
292 
GetString() const293 	const String& GetString() const { return sStr; }
294 
SwStringMsgPoolItem(sal_uInt16 nId,const String & rStr)295 	SwStringMsgPoolItem( sal_uInt16 nId, const String& rStr )
296 		: SwMsgPoolItem( nId ), sStr( rStr )
297 	{}
298 };
299 
300 #endif
301