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>
37 #include <swatrset.hxx>
53 // Basis-Klasse fuer alle Message-Hints:
54 // "Overhead" vom SfxPoolItem wird hier behandelt
55 class SwMsgPoolItem
: public SfxPoolItem
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
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
91 SwFmtChg( SwFmt
*pFmt
);
95 class SwInsChr
: public SwMsgPoolItem
100 SwInsChr( USHORT nP
);
103 class SwInsTxt
: public SwMsgPoolItem
109 SwInsTxt( xub_StrLen nP
, xub_StrLen nL
);
112 class SwDelChr
: public SwMsgPoolItem
117 SwDelChr( xub_StrLen nP
);
120 class SwDelTxt
: public SwMsgPoolItem
126 SwDelTxt( xub_StrLen nS
, xub_StrLen nL
);
129 class SwUpdateAttr
: public SwMsgPoolItem
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
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,
164 class SwTableFmlUpdate
: public SwMsgPoolItem
167 const SwTable
* pTbl
; // Pointer auf die zu aktuelle Tabelle
169 const SwTable
* pDelTbl
; // Merge: Ptr auf die zu loeschende Tabelle
170 const String
* pNewTblNm
; // Split: der Name der neuen Tabelle
173 USHORT nSplitLine
; // Split: ab dieser BaseLine wird gespl.
174 TableFmlUpdtFlags eFlags
;
176 BOOL bBehindSplitLine
: 1;
178 SwTableFmlUpdate( const SwTable
* );
182 class SwAutoFmtGetDocNode
: public SwMsgPoolItem
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
199 SwAttrSet
* pChgSet
; // was sich veraendert hat
200 const SwAttrSet
* pTheChgdSet
; // wird nur zum Vergleichen gebraucht !!
202 SwAttrSetChg( const SwAttrSet
& rTheSet
, SwAttrSet
& rSet
);
203 SwAttrSetChg( const 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 )
220 { pChgSet
->ClearItem( nWhich
); }
226 class SwCondCollCondChg
: public SwMsgPoolItem
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.
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
;
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
278 const String
& GetString() const { return sStr
; }
280 SwStringMsgPoolItem( USHORT nId
, const String
& rStr
)
281 : SwMsgPoolItem( nId
), sStr( rStr
)
285 } //namespace binfilter