xref: /aoo42x/main/sw/source/core/inc/frame.hxx (revision 56b35d86)
11d2dbeb0SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
31d2dbeb0SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
41d2dbeb0SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
51d2dbeb0SAndrew Rist  * distributed with this work for additional information
61d2dbeb0SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
71d2dbeb0SAndrew Rist  * to you under the Apache License, Version 2.0 (the
81d2dbeb0SAndrew Rist  * "License"); you may not use this file except in compliance
91d2dbeb0SAndrew Rist  * with the License.  You may obtain a copy of the License at
101d2dbeb0SAndrew Rist  *
111d2dbeb0SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
121d2dbeb0SAndrew Rist  *
131d2dbeb0SAndrew Rist  * Unless required by applicable law or agreed to in writing,
141d2dbeb0SAndrew Rist  * software distributed under the License is distributed on an
151d2dbeb0SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
161d2dbeb0SAndrew Rist  * KIND, either express or implied.  See the License for the
171d2dbeb0SAndrew Rist  * specific language governing permissions and limitations
181d2dbeb0SAndrew Rist  * under the License.
191d2dbeb0SAndrew Rist  *
201d2dbeb0SAndrew Rist  *************************************************************/
211d2dbeb0SAndrew Rist 
221d2dbeb0SAndrew Rist 
23cdf0e10cSrcweir #ifndef SW_FRAME_HXX
24cdf0e10cSrcweir #define SW_FRAME_HXX
25cdf0e10cSrcweir 
263f09c2ceSJürgen Schmidt #include "boost/shared_ptr.hpp"
27cdf0e10cSrcweir #include <svl/svarray.hxx>
28cdf0e10cSrcweir #include "swtypes.hxx"	// fuer SwTwips
29cdf0e10cSrcweir #include "swrect.hxx"
30cdf0e10cSrcweir #include "calbck.hxx"	// fuer SwClient
31cdf0e10cSrcweir #include <svl/brdcst.hxx>
32cdf0e10cSrcweir 
33ca62e2c2SSteve Yin #include <com/sun/star/style/TabStop.hpp>
34ca62e2c2SSteve Yin #include <comphelper/stlunosequence.hxx>
35ca62e2c2SSteve Yin using namespace ::com::sun::star;
36cdf0e10cSrcweir class SwLayoutFrm;
37cdf0e10cSrcweir class SwRootFrm;
38cdf0e10cSrcweir class SwPageFrm;
39cdf0e10cSrcweir class SwFlyFrm;
40cdf0e10cSrcweir class SwSectionFrm;
41cdf0e10cSrcweir class SdrObject;
42cdf0e10cSrcweir class SwFtnFrm;
43cdf0e10cSrcweir class SwFtnBossFrm;
44cdf0e10cSrcweir class SwTabFrm;
45cdf0e10cSrcweir class SwRowFrm;
46cdf0e10cSrcweir class SwFlowFrm;
47cdf0e10cSrcweir class SwCntntFrm;
48cdf0e10cSrcweir class SfxPoolItem;
49cdf0e10cSrcweir class SwAttrSet;
50cdf0e10cSrcweir class ViewShell;
51cdf0e10cSrcweir class Color;
52cdf0e10cSrcweir class SwBorderAttrs;
53cdf0e10cSrcweir class SwCache;
54cdf0e10cSrcweir class SvxBrushItem;
55cdf0e10cSrcweir class SwSelectionList;
56cdf0e10cSrcweir struct SwPosition;
57cdf0e10cSrcweir struct SwCrsrMoveState;
58cdf0e10cSrcweir class SwFmt;
59cdf0e10cSrcweir class SwPrintData;
60cdf0e10cSrcweir class SwSortedObjs;
61cdf0e10cSrcweir class SwAnchoredObject;
62cdf0e10cSrcweir 
63cdf0e10cSrcweir //Jeder FrmTyp findet sich hier in einem Bit wieder.
64cdf0e10cSrcweir //Die Bits muessen so gesetzt werden, dass mit einer Maskierung festgestellt
65cdf0e10cSrcweir //werden kann was fuer ein FrmTyp eine Instanz ist _und_ von welchen Klassen
66cdf0e10cSrcweir //sie abgeleitet ist.
67cdf0e10cSrcweir //Der Frm hat in der Basisklasse einen Member der von den CToren der
68cdf0e10cSrcweir //einzelnen Frms entsprechend gesetzt werden muss.
69cdf0e10cSrcweir #define	FRM_ROOT		0x0001
70cdf0e10cSrcweir #define	FRM_PAGE		0x0002
71cdf0e10cSrcweir #define	FRM_COLUMN		0x0004
72cdf0e10cSrcweir #define	FRM_HEADER		0x0008
73cdf0e10cSrcweir #define FRM_FOOTER		0x0010
74cdf0e10cSrcweir #define	FRM_FTNCONT		0x0020
75cdf0e10cSrcweir #define	FRM_FTN			0x0040
76cdf0e10cSrcweir #define	FRM_BODY		0x0080
77cdf0e10cSrcweir #define	FRM_FLY     	0x0100
78cdf0e10cSrcweir #define	FRM_SECTION  	0x0200
79cdf0e10cSrcweir #define	FRM_UNUSED    	0x0400
80cdf0e10cSrcweir #define	FRM_TAB			0x0800
81cdf0e10cSrcweir #define	FRM_ROW			0x1000
82cdf0e10cSrcweir #define	FRM_CELL		0x2000
83cdf0e10cSrcweir #define	FRM_TXT			0x4000
84cdf0e10cSrcweir #define	FRM_NOTXT		0x8000
85cdf0e10cSrcweir 
86cdf0e10cSrcweir //Fuer den internen Gebrauch ein paar gebraeuchliche Verknuepfungen.
87cdf0e10cSrcweir #define FRM_LAYOUT		0x3FFF
88cdf0e10cSrcweir #define FRM_CNTNT		0xC000
89cdf0e10cSrcweir #define FRM_FTNBOSS		0x0006
90cdf0e10cSrcweir #define FRM_ACCESSIBLE (FRM_HEADER|FRM_FOOTER|FRM_FTN|FRM_TXT|FRM_ROOT|FRM_FLY|FRM_TAB|FRM_CELL|FRM_PAGE)
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 		//Weils so schon ist das ganze als Bitfeld....
93cdf0e10cSrcweir //0000 0000 0000 0001	ROOT
94cdf0e10cSrcweir //0000 0000 0000 0010	PAGE
95cdf0e10cSrcweir //0000 0000 0000 0100	COLUMN
96cdf0e10cSrcweir //0000 0000 0000 1000	HEADER
97cdf0e10cSrcweir //0000 0000 0001 0000	FOOTER
98cdf0e10cSrcweir //0000 0000 0010 0000	FTNCONT
99cdf0e10cSrcweir //0000 0000 0100 0000	FTN
100cdf0e10cSrcweir //0000 0000 1000 0000	BODY
101cdf0e10cSrcweir //0000 0001 0000 0000	FLY
102cdf0e10cSrcweir //0000 0010 0000 0000	SECTION
103cdf0e10cSrcweir //0000 0100 0000 0000	UNUSED
104cdf0e10cSrcweir //0000 1000 0000 0000	TAB
105cdf0e10cSrcweir //0001 0000 0000 0000	ROW
106cdf0e10cSrcweir //0010 0000 0000 0000	CELL
107cdf0e10cSrcweir //0100 0000 0000 0000	TXT
108cdf0e10cSrcweir //1000 0000 0000 0000	NOTXT
109cdf0e10cSrcweir 
110cdf0e10cSrcweir // The type of the frame is internal represented by the 4-bit value nType,
111cdf0e10cSrcweir // which can expanded to the types above by shifting a bit (0x1 << nType)
112cdf0e10cSrcweir // Here are the corresponding defines for the compressed representation:
113cdf0e10cSrcweir 
114cdf0e10cSrcweir #define FRMC_ROOT        0
115cdf0e10cSrcweir #define FRMC_PAGE        1
116cdf0e10cSrcweir #define FRMC_COLUMN      2
117cdf0e10cSrcweir #define FRMC_HEADER      3
118cdf0e10cSrcweir #define FRMC_FOOTER      4
119cdf0e10cSrcweir #define FRMC_FTNCONT     5
120cdf0e10cSrcweir #define FRMC_FTN         6
121cdf0e10cSrcweir #define FRMC_BODY        7
122cdf0e10cSrcweir #define FRMC_FLY         8
123cdf0e10cSrcweir #define FRMC_SECTION     9
124cdf0e10cSrcweir #define FRMC_UNUSED      10
125cdf0e10cSrcweir #define FRMC_TAB         11
126cdf0e10cSrcweir #define FRMC_ROW         12
127cdf0e10cSrcweir #define FRMC_CELL        13
128cdf0e10cSrcweir #define FRMC_TXT         14
129cdf0e10cSrcweir #define FRMC_NOTXT       15
130cdf0e10cSrcweir 
131cdf0e10cSrcweir #define FRM_NEIGHBOUR   0x2004
132cdf0e10cSrcweir #define FRM_NOTE_VERT   0x7a60
133cdf0e10cSrcweir #define FRM_HEADFOOT    0x0018
134cdf0e10cSrcweir #define FRM_BODYFTNC    0x00a0
135cdf0e10cSrcweir 
136cdf0e10cSrcweir class SwFrm;
137cdf0e10cSrcweir typedef long (SwFrm:: *SwFrmGet)() const;
138cdf0e10cSrcweir typedef sal_Bool (SwFrm:: *SwFrmMax)( long );
139cdf0e10cSrcweir typedef void (SwFrm:: *SwFrmMakePos)( const SwFrm*, const SwFrm*, sal_Bool );
140cdf0e10cSrcweir typedef long (*SwOperator)( long, long );
141cdf0e10cSrcweir typedef void (SwFrm:: *SwFrmSet)( long, long );
142cdf0e10cSrcweir 
1435766e809SHerbert Dürr SwFrm* SaveCntnt( SwLayoutFrm*, SwFrm* pStart = NULL );
1445766e809SHerbert Dürr 
145cdf0e10cSrcweir struct SwRectFnCollection
146cdf0e10cSrcweir {
147cdf0e10cSrcweir     SwRectGet     fnGetTop;
148cdf0e10cSrcweir     SwRectGet     fnGetBottom;
149cdf0e10cSrcweir     SwRectGet     fnGetLeft;
150cdf0e10cSrcweir     SwRectGet     fnGetRight;
151cdf0e10cSrcweir     SwRectGet     fnGetWidth;
152cdf0e10cSrcweir     SwRectGet     fnGetHeight;
153cdf0e10cSrcweir     SwRectPoint   fnGetPos;
154cdf0e10cSrcweir     SwRectSize    fnGetSize;
155cdf0e10cSrcweir 
156cdf0e10cSrcweir     SwRectSet     fnSetTop;
157cdf0e10cSrcweir     SwRectSet     fnSetBottom;
158cdf0e10cSrcweir     SwRectSet     fnSetLeft;
159cdf0e10cSrcweir     SwRectSet     fnSetRight;
160cdf0e10cSrcweir     SwRectSet     fnSetWidth;
161cdf0e10cSrcweir     SwRectSet     fnSetHeight;
162cdf0e10cSrcweir 
163cdf0e10cSrcweir     SwRectSet     fnSubTop;
164cdf0e10cSrcweir     SwRectSet     fnAddBottom;
165cdf0e10cSrcweir     SwRectSet     fnSubLeft;
166cdf0e10cSrcweir     SwRectSet     fnAddRight;
167cdf0e10cSrcweir     SwRectSet     fnAddWidth;
168cdf0e10cSrcweir     SwRectSet     fnAddHeight;
169cdf0e10cSrcweir 
170cdf0e10cSrcweir     SwRectSet     fnSetPosX;
171cdf0e10cSrcweir     SwRectSet     fnSetPosY;
172cdf0e10cSrcweir 
173cdf0e10cSrcweir     SwFrmGet      fnGetTopMargin;
174cdf0e10cSrcweir     SwFrmGet      fnGetBottomMargin;
175cdf0e10cSrcweir     SwFrmGet      fnGetLeftMargin;
176cdf0e10cSrcweir     SwFrmGet      fnGetRightMargin;
177cdf0e10cSrcweir     SwFrmSet      fnSetXMargins;
178cdf0e10cSrcweir     SwFrmSet      fnSetYMargins;
179cdf0e10cSrcweir     SwFrmGet      fnGetPrtTop;
180cdf0e10cSrcweir     SwFrmGet      fnGetPrtBottom;
181cdf0e10cSrcweir     SwFrmGet      fnGetPrtLeft;
182cdf0e10cSrcweir     SwFrmGet      fnGetPrtRight;
183cdf0e10cSrcweir     SwRectDist    fnTopDist;
184cdf0e10cSrcweir     SwRectDist    fnBottomDist;
185cdf0e10cSrcweir     SwRectDist    fnLeftDist;
186cdf0e10cSrcweir     SwRectDist    fnRightDist;
187cdf0e10cSrcweir     SwFrmMax      fnSetLimit;
188cdf0e10cSrcweir     SwRectMax     fnOverStep;
189cdf0e10cSrcweir 
190cdf0e10cSrcweir     SwRectSetPos  fnSetPos;
191cdf0e10cSrcweir     SwFrmMakePos  fnMakePos;
192cdf0e10cSrcweir     SwOperator    fnXDiff;
193cdf0e10cSrcweir     SwOperator    fnYDiff;
194cdf0e10cSrcweir     SwOperator    fnXInc;
195cdf0e10cSrcweir     SwOperator    fnYInc;
196cdf0e10cSrcweir 
197cdf0e10cSrcweir     SwRectSetTwice fnSetLeftAndWidth;
198cdf0e10cSrcweir     SwRectSetTwice fnSetTopAndHeight;
199cdf0e10cSrcweir };
200cdf0e10cSrcweir 
201cdf0e10cSrcweir typedef SwRectFnCollection* SwRectFn;
202cdf0e10cSrcweir /*
203cdf0e10cSrcweir extern SwRectFn fnRectHori, fnRectVert, fnRectB2T, fnRectVL2R;
204cdf0e10cSrcweir #define SWRECTFN( pFrm )    sal_Bool bVert = pFrm->IsVertical(); \
205cdf0e10cSrcweir                             sal_Bool bRev = pFrm->IsReverse(); \
206cdf0e10cSrcweir                             SwRectFn fnRect = bVert ? \
207cdf0e10cSrcweir                                 ( bRev ? fnRectVL2R : fnRectVert ): \
208cdf0e10cSrcweir                                 ( bRev ? fnRectB2T : fnRectHori );
209cdf0e10cSrcweir #define SWRECTFNX( pFrm )   sal_Bool bVertX = pFrm->IsVertical(); \
210cdf0e10cSrcweir                             sal_Bool bRevX = pFrm->IsReverse(); \
211cdf0e10cSrcweir                             SwRectFn fnRectX = bVertX ? \
212cdf0e10cSrcweir                                 ( bRevX ? fnRectVL2R : fnRectVert ): \
213cdf0e10cSrcweir                                 ( bRevX ? fnRectB2T : fnRectHori );
214cdf0e10cSrcweir #define SWREFRESHFN( pFrm ) { if( bVert != pFrm->IsVertical() || \
215cdf0e10cSrcweir                                   bRev  != pFrm->IsReverse() ) \
216cdf0e10cSrcweir                                 bVert = pFrm->IsVertical(); \
217cdf0e10cSrcweir                                 bRev = pFrm->IsReverse(); \
218cdf0e10cSrcweir                                 fnRect = bVert ? \
219cdf0e10cSrcweir                                     ( bRev ? fnRectVL2R : fnRectVert ): \
220cdf0e10cSrcweir                                     ( bRev ? fnRectB2T : fnRectHori ); }
221cdf0e10cSrcweir #define SWRECTFN2( pFrm )   sal_Bool bVert = pFrm->IsVertical(); \
222cdf0e10cSrcweir                             sal_Bool bNeighb = pFrm->IsNeighbourFrm(); \
223cdf0e10cSrcweir                             SwRectFn fnRect = bVert == bNeighb ? \
224cdf0e10cSrcweir                                 fnRectHori : fnRectVert;
225cdf0e10cSrcweir */
226cdf0e10cSrcweir 
227cdf0e10cSrcweir //Badaa: 2008-04-18 * Support for Classical Mongolian Script (SCMS) joint with Jiayanmin
228cdf0e10cSrcweir extern SwRectFn fnRectHori, fnRectVert, fnRectB2T, fnRectVL2R, fnRectVertL2R;
229cdf0e10cSrcweir #define SWRECTFN( pFrm )    sal_Bool bVert = pFrm->IsVertical(); \
230cdf0e10cSrcweir                             sal_Bool bRev = pFrm->IsReverse(); \
231cdf0e10cSrcweir                             sal_Bool bVertL2R = pFrm->IsVertLR(); \
232cdf0e10cSrcweir                             SwRectFn fnRect = bVert ? \
233cdf0e10cSrcweir                                 ( bRev ? fnRectVL2R : ( bVertL2R ? fnRectVertL2R : fnRectVert ) ): \
234cdf0e10cSrcweir                                 ( bRev ? fnRectB2T : fnRectHori );
235cdf0e10cSrcweir #define SWRECTFNX( pFrm )   sal_Bool bVertX = pFrm->IsVertical(); \
236cdf0e10cSrcweir                             sal_Bool bRevX = pFrm->IsReverse(); \
237cdf0e10cSrcweir                             sal_Bool bVertL2RX = pFrm->IsVertLR(); \
238cdf0e10cSrcweir                             SwRectFn fnRectX = bVertX ? \
239cdf0e10cSrcweir                                 ( bRevX ? fnRectVL2R : ( bVertL2RX ? fnRectVertL2R : fnRectVert ) ): \
240cdf0e10cSrcweir                                 ( bRevX ? fnRectB2T : fnRectHori );
241cdf0e10cSrcweir #define SWREFRESHFN( pFrm ) { if( bVert != pFrm->IsVertical() || \
242cdf0e10cSrcweir                                   bRev  != pFrm->IsReverse() ) \
243cdf0e10cSrcweir                                 bVert = pFrm->IsVertical(); \
244cdf0e10cSrcweir                                 bRev = pFrm->IsReverse(); \
245cdf0e10cSrcweir                                 bVertL2R = pFrm->IsVertLR(); \
246cdf0e10cSrcweir                                 fnRect = bVert ? \
247cdf0e10cSrcweir                                     ( bRev ? fnRectVL2R : ( bVertL2R ? fnRectVertL2R : fnRectVert ) ): \
248cdf0e10cSrcweir                                     ( bRev ? fnRectB2T : fnRectHori ); }
249cdf0e10cSrcweir #define SWRECTFN2( pFrm )   sal_Bool bVert = pFrm->IsVertical(); \
250cdf0e10cSrcweir 			    sal_Bool bVertL2R = pFrm->IsVertLR(); \
251cdf0e10cSrcweir                             sal_Bool bNeighb = pFrm->IsNeighbourFrm(); \
252cdf0e10cSrcweir                             SwRectFn fnRect = bVert == bNeighb ? \
253cdf0e10cSrcweir                                 fnRectHori : ( bVertL2R ? fnRectVertL2R : fnRectVert );
254cdf0e10cSrcweir //End of SCMS
255cdf0e10cSrcweir #define POS_DIFF( aFrm1, aFrm2 ) \
256cdf0e10cSrcweir             ( (aFrm1.*fnRect->fnGetTop)() != (aFrm2.*fnRect->fnGetTop)() || \
257cdf0e10cSrcweir             (aFrm1.*fnRect->fnGetLeft)() != (aFrm2.*fnRect->fnGetLeft)() )
258cdf0e10cSrcweir 
259cdf0e10cSrcweir 
260cdf0e10cSrcweir //Fuer GetNextLeaf/GetPrevLeaf.
261cdf0e10cSrcweir enum MakePageType
262cdf0e10cSrcweir {
263cdf0e10cSrcweir 	MAKEPAGE_NONE,		//Keine Seite bzw. Fussnote anlegen
264cdf0e10cSrcweir 	MAKEPAGE_APPEND,	//Nur ggf. Seite anhaengen
265cdf0e10cSrcweir 	MAKEPAGE_INSERT,	//Seite ggf. anhaengen oder einfuegen.
266cdf0e10cSrcweir 	MAKEPAGE_FTN,		//Fussnote ggf. einfuegen.
267cdf0e10cSrcweir 	MAKEPAGE_NOSECTION	// Don't create section frames
268cdf0e10cSrcweir };
269cdf0e10cSrcweir 
270cdf0e10cSrcweir // OD 2004-05-06 #i28701# - replaced by new class <SwSortedObjs>
271cdf0e10cSrcweir //typedef SdrObject* SdrObjectPtr;
272cdf0e10cSrcweir //SV_DECL_PTRARR(SwDrawObjs,SdrObjectPtr,1,1);
273cdf0e10cSrcweir 
274*56b35d86SArmin Le Grand //UUUU
275*56b35d86SArmin Le Grand namespace drawinglayer { namespace attribute {
276*56b35d86SArmin Le Grand     class SdrAllFillAttributesHelper;
277*56b35d86SArmin Le Grand     typedef boost::shared_ptr< SdrAllFillAttributesHelper > SdrAllFillAttributesHelperPtr;
278*56b35d86SArmin Le Grand }}
279*56b35d86SArmin Le Grand 
280cdf0e10cSrcweir class SwFrm: public SwClient, public SfxBroadcaster
281cdf0e10cSrcweir {
282cdf0e10cSrcweir 	//Der verkappte Frm
283cdf0e10cSrcweir 	friend class SwFlowFrm;
284cdf0e10cSrcweir 	friend class SwLayoutFrm;		// Sw3FrameIo: fuer pNext, pPrev
285cdf0e10cSrcweir 	friend class SwLooping;         // LoopControlling  (layouter.cxx)
286cdf0e10cSrcweir 
287cdf0e10cSrcweir     //Hebt die Lower waehrend eines Spaltenumbaus auf.
2885766e809SHerbert Dürr 	friend SwFrm *SaveCntnt( SwLayoutFrm*, SwFrm* pStart );
2895766e809SHerbert Dürr         friend void   RestoreCntnt( SwFrm *, SwLayoutFrm *, SwFrm *pSibling, bool bGrow );
290cdf0e10cSrcweir 
291cdf0e10cSrcweir #if OSL_DEBUG_LEVEL > 1
292cdf0e10cSrcweir 	//entfernt leere SwSectionFrms aus einer Kette
293cdf0e10cSrcweir 	friend SwFrm* SwClearDummies( SwFrm* pFrm );
294cdf0e10cSrcweir #endif
295cdf0e10cSrcweir 
296cdf0e10cSrcweir 		//Zum validieren eines unsinnig invalidierten in SwCntntFrm::MakeAll
297cdf0e10cSrcweir 	friend void ValidateSz( SwFrm *pFrm );
298cdf0e10cSrcweir 		// Implementiert in text/txtftn.cxx, verhindert Ftn-Oszillation
299cdf0e10cSrcweir 	friend void ValidateTxt( SwFrm *pFrm );
300cdf0e10cSrcweir 
301cdf0e10cSrcweir //	friend void CalcAnchorAndKeep( SwFlyFrm * );
302cdf0e10cSrcweir 
303cdf0e10cSrcweir 	friend void MakeNxt( SwFrm *pFrm, SwFrm *pNxt );
304cdf0e10cSrcweir 
305cdf0e10cSrcweir 	//Cache fuer (Umrandungs-)Attribute.
306cdf0e10cSrcweir 	static SwCache *pCache;
307ca62e2c2SSteve Yin 	//Solution:Member to identify if acc table should be disposed
308ca62e2c2SSteve Yin 	sal_Bool bIfAccTableShouldDisposing;
309cdf0e10cSrcweir 
310cdf0e10cSrcweir     // --> OD 2006-05-10 #i65250#
311cdf0e10cSrcweir     // frame ID is now in general available - used for layout loop control
312cdf0e10cSrcweir     static sal_uInt32 mnLastFrmId;
313cdf0e10cSrcweir     const  sal_uInt32 mnFrmId;
314cdf0e10cSrcweir     // <--
315cdf0e10cSrcweir 
316cdf0e10cSrcweir     SwRootFrm   *mpRoot;
317cdf0e10cSrcweir 	SwLayoutFrm *pUpper;
318cdf0e10cSrcweir     SwFrm       *pNext;
319cdf0e10cSrcweir     SwFrm       *pPrev;
320cdf0e10cSrcweir 
321cdf0e10cSrcweir     SwFrm *_FindNext();
322cdf0e10cSrcweir 	SwFrm *_FindPrev();
323cdf0e10cSrcweir 
324cdf0e10cSrcweir     /** method to determine next content frame in the same environment
325cdf0e10cSrcweir         for a flow frame (content frame, table frame, section frame)
326cdf0e10cSrcweir 
327cdf0e10cSrcweir         OD 2005-11-30 #i27138# - adding documentation:
328cdf0e10cSrcweir         Travelling downwards through the layout to determine the next content
329cdf0e10cSrcweir         frame in the same environment. There are several environments in a
330cdf0e10cSrcweir         document, which form a closed context regarding this function. These
331cdf0e10cSrcweir         environments are:
332cdf0e10cSrcweir         - Each page header
333cdf0e10cSrcweir         - Each page footer
334cdf0e10cSrcweir         - Each unlinked fly frame
335cdf0e10cSrcweir         - Each group of linked fly frames
336cdf0e10cSrcweir         - All footnotes
337cdf0e10cSrcweir         - All document body frames
338cdf0e10cSrcweir         OD 2005-11-30 #i27138# - adding parameter <_bInSameFtn>
339cdf0e10cSrcweir         Its default value is <false>. If its value is <true>, the environment
340cdf0e10cSrcweir         'All footnotes' is no longer treated. Instead each footnote is treated
341cdf0e10cSrcweir         as an own environment.
342cdf0e10cSrcweir 
343cdf0e10cSrcweir         @author OD
344cdf0e10cSrcweir 
345cdf0e10cSrcweir         @param _bInSameFtn
346cdf0e10cSrcweir         input parameter - boolean indicating, that the found next content
347cdf0e10cSrcweir         frame has to be in the same footnote frame. This parameter is only
348cdf0e10cSrcweir         relevant for flow frames in footnotes.
349cdf0e10cSrcweir 
350cdf0e10cSrcweir         @return SwCntntFrm*
351cdf0e10cSrcweir         pointer to the found next content frame. It's NULL, if none exists.
352cdf0e10cSrcweir     */
353cdf0e10cSrcweir     SwCntntFrm* _FindNextCnt( const bool _bInSameFtn = false );
354cdf0e10cSrcweir 
355cdf0e10cSrcweir     /** method to determine previous content frame in the same environment
356cdf0e10cSrcweir         for a flow frame (content frame, table frame, section frame)
357cdf0e10cSrcweir 
358cdf0e10cSrcweir         OD 2005-11-30 #i27138#
359cdf0e10cSrcweir         Travelling upwards through the layout to determine the previous content
360cdf0e10cSrcweir         frame in the same environment. There are several environments in a
361cdf0e10cSrcweir         document, which form a closed context regarding this function. These
362cdf0e10cSrcweir         environments are:
363cdf0e10cSrcweir         - Each page header
364cdf0e10cSrcweir         - Each page footer
365cdf0e10cSrcweir         - Each unlinked fly frame
366cdf0e10cSrcweir         - Each group of linked fly frames
367cdf0e10cSrcweir         - All footnotes
368cdf0e10cSrcweir         - All document body frames
369cdf0e10cSrcweir         OD 2005-11-30 #i27138# - adding parameter <_bInSameFtn>
370cdf0e10cSrcweir         Its default value is <false>. If its value is <true>, the environment
371cdf0e10cSrcweir         'All footnotes' is no longer treated. Instead each footnote is treated
372cdf0e10cSrcweir         as an own environment.
373cdf0e10cSrcweir 
374cdf0e10cSrcweir         @author OD
375cdf0e10cSrcweir 
376cdf0e10cSrcweir         @param _bInSameFtn
377cdf0e10cSrcweir         input parameter - boolean indicating, that the found previous content
378cdf0e10cSrcweir         frame has to be in the same footnote frame. This parameter is only
379cdf0e10cSrcweir         relevant for flow frames in footnotes.
380cdf0e10cSrcweir 
381cdf0e10cSrcweir         @return SwCntntFrm*
382cdf0e10cSrcweir         pointer to the found previous content frame. It's NULL, if none exists.
383cdf0e10cSrcweir     */
384cdf0e10cSrcweir     SwCntntFrm* _FindPrevCnt( const bool _bInSameFtn = false );
385cdf0e10cSrcweir 
386cdf0e10cSrcweir 
387cdf0e10cSrcweir 	void _UpdateAttrFrm( const SfxPoolItem*, const SfxPoolItem*, sal_uInt8 & );
388cdf0e10cSrcweir 	SwFrm* _GetIndNext();
389cdf0e10cSrcweir     void SetDirFlags( sal_Bool bVert );
390cdf0e10cSrcweir 
391cdf0e10cSrcweir 	SwFrm( SwFrm & );		//Kopieren ist nicht erlaubt.
392cdf0e10cSrcweir 
393cdf0e10cSrcweir     const SwLayoutFrm* ImplGetNextLayoutLeaf( bool bFwd ) const;
394cdf0e10cSrcweir 
395cdf0e10cSrcweir protected:
396cdf0e10cSrcweir     SwSortedObjs* pDrawObjs;    //Hier haengen die DrawObjs, kann 0 sein
397cdf0e10cSrcweir 
398cdf0e10cSrcweir 	SwRect	aFrm;	//Absolute Dokumentposition und groesse des Frm
399cdf0e10cSrcweir 	SwRect	aPrt;	//Position der PrtArea rel zum Frm und groesse der PrtArea
400cdf0e10cSrcweir 
401cdf0e10cSrcweir     sal_uInt16 bFlag01:         1;
402cdf0e10cSrcweir     sal_uInt16 bFlag02:         1;
403cdf0e10cSrcweir     sal_uInt16 bFlag03:         1;
404cdf0e10cSrcweir     sal_uInt16 bFlag04:         1;
405cdf0e10cSrcweir     sal_uInt16 bFlag05:         1;
406cdf0e10cSrcweir     sal_uInt16 bReverse:        1; // Next line above/at the right side instead
407cdf0e10cSrcweir                                // under/at the left side of the previous line.
408cdf0e10cSrcweir     sal_uInt16 bInvalidR2L:     1;
409cdf0e10cSrcweir     sal_uInt16 bDerivedR2L:     1;
410cdf0e10cSrcweir     sal_uInt16 bRightToLeft:    1;
411cdf0e10cSrcweir     sal_uInt16 bInvalidVert:    1;
412cdf0e10cSrcweir     sal_uInt16 bDerivedVert:    1;
413cdf0e10cSrcweir     sal_uInt16 bVertical:       1;
414cdf0e10cSrcweir     //Badaa: 2008-04-18 * Support for Classical Mongolian Script (SCMS) joint with Jiayanmin
415cdf0e10cSrcweir     sal_uInt16 bVertLR:         1;
416cdf0e10cSrcweir     //End of SCMS
417cdf0e10cSrcweir     sal_uInt16 nType:         4;  //Who am I?
418cdf0e10cSrcweir 
419cdf0e10cSrcweir 	sal_Bool bValidPos:			1;
420cdf0e10cSrcweir 	sal_Bool bValidPrtArea:		1;
421cdf0e10cSrcweir 	sal_Bool bValidSize:		1;
422cdf0e10cSrcweir 	sal_Bool bValidLineNum:		1;
423cdf0e10cSrcweir     sal_Bool bFixSize:          1;
424cdf0e10cSrcweir     sal_Bool bUnUsed1:          1;
425cdf0e10cSrcweir 	sal_Bool bCompletePaint:	1;	//Frame wird ganz gepaintet wenn sal_True, auch
426cdf0e10cSrcweir 								//wenn der Inhalt nur teilw. veraendert ist;
427cdf0e10cSrcweir 								//Bei CntntFrms wird ausschliesslich wenn sal_True
428cdf0e10cSrcweir 								//der Border (von Action) gemalt.
429cdf0e10cSrcweir 	sal_Bool bRetouche:			1;	//Der Frame ist fuer Retusche verantwortlich
430cdf0e10cSrcweir 								//wenn sal_True.
431cdf0e10cSrcweir public:
GetTabStopInfo(SwTwips)432ca62e2c2SSteve Yin 	virtual uno::Sequence< style::TabStop >  GetTabStopInfo( SwTwips )
433ca62e2c2SSteve Yin 	{
434ca62e2c2SSteve Yin 		return uno::Sequence< style::TabStop >();
435ca62e2c2SSteve Yin 	}
436cdf0e10cSrcweir     sal_Bool bUnUsed2:          1;
437cdf0e10cSrcweir protected:
438cdf0e10cSrcweir 	sal_Bool bInfInvalid:		1;	//InfoFlags sind Invalid.
439cdf0e10cSrcweir 	sal_Bool bInfBody:			1;	//Frm steht im DokumentBody.
440cdf0e10cSrcweir 	sal_Bool bInfTab:			1;	//Frm steht in einer Tabelle.
441cdf0e10cSrcweir 	sal_Bool bInfFly:			1;	//Frm steht in einem Fly.
442cdf0e10cSrcweir 	sal_Bool bInfFtn:			1;	//Frm steht in einer Fussnote.
443cdf0e10cSrcweir 	sal_Bool bInfSct:			1;  //Frm steht in einem Bereich.
444cdf0e10cSrcweir 	sal_Bool bColLocked:		1;  //Grow/Shrink sperren bei spaltigen Section-
445cdf0e10cSrcweir 								//oder Fly-Frames, wird im Format gesetzt
446cdf0e10cSrcweir 
ColLock()447cdf0e10cSrcweir 	void ColLock()		{ bColLocked = sal_True; }
ColUnlock()448cdf0e10cSrcweir 	void ColUnlock()   	{ bColLocked = sal_False; }
449cdf0e10cSrcweir 
450cdf0e10cSrcweir     // Only used by SwRootFrm Ctor to get 'this' into mpRoot...
setRootFrm(SwRootFrm * pRoot)451cdf0e10cSrcweir 	void setRootFrm( SwRootFrm* pRoot )	{ mpRoot = pRoot; }
452cdf0e10cSrcweir 
453cdf0e10cSrcweir 	SwPageFrm *InsertPage( SwPageFrm *pSibling, sal_Bool bFtn );
454cdf0e10cSrcweir 	void PrepareMake();
455cdf0e10cSrcweir 	void OptPrepareMake();
456cdf0e10cSrcweir 	void MakePos();
457cdf0e10cSrcweir     // --> OD 2005-09-28 #b6329202#
458cdf0e10cSrcweir     // method formats next frame of table frame to assure keep attribute.
459cdf0e10cSrcweir     // in case of nested tables method <SwFrm::MakeAll()> is called to
460cdf0e10cSrcweir     // avoid format of superior table frame.
461cdf0e10cSrcweir     friend SwFrm* lcl_FormatNextCntntForKeep( SwTabFrm* pTabFrm );
462cdf0e10cSrcweir     // <--
463cdf0e10cSrcweir     virtual void MakeAll() = 0;
464cdf0e10cSrcweir 		//Adjustierung der Frames einer Seite
465cdf0e10cSrcweir 	SwTwips AdjustNeighbourhood( SwTwips nDiff, sal_Bool bTst = sal_False );
466cdf0e10cSrcweir 
467cdf0e10cSrcweir 
468cdf0e10cSrcweir 		//Aendern nur die Framesize, nicht die PrtArea-SSize
469cdf0e10cSrcweir     virtual SwTwips ShrinkFrm( SwTwips, sal_Bool bTst = sal_False, sal_Bool bInfo = sal_False ) = 0;
470cdf0e10cSrcweir     virtual SwTwips GrowFrm  ( SwTwips, sal_Bool bTst = sal_False, sal_Bool bInfo = sal_False ) = 0;
471cdf0e10cSrcweir 
GetDep()472cdf0e10cSrcweir 	SwModify	  	*GetDep()		{ return GetRegisteredInNonConst(); }
GetDep() const473cdf0e10cSrcweir 	const SwModify	*GetDep() const { return GetRegisteredIn(); }
474cdf0e10cSrcweir 
475cdf0e10cSrcweir 	SwFrm( SwModify*, SwFrm* );
476cdf0e10cSrcweir 
477cdf0e10cSrcweir     void CheckDir( sal_uInt16 nDir, sal_Bool bVert, sal_Bool bOnlyBiDi, sal_Bool bBrowse );
478cdf0e10cSrcweir 
479cdf0e10cSrcweir     /** enumeration for the different invalidations
480cdf0e10cSrcweir 
481cdf0e10cSrcweir         OD 2004-05-19 #i28701#
482cdf0e10cSrcweir 
483cdf0e10cSrcweir         @author OD
484cdf0e10cSrcweir     */
485cdf0e10cSrcweir     enum InvalidationType
486cdf0e10cSrcweir     {
487cdf0e10cSrcweir         INVALID_SIZE, INVALID_PRTAREA, INVALID_POS, INVALID_LINENUM, INVALID_ALL
488cdf0e10cSrcweir     };
489cdf0e10cSrcweir 
490cdf0e10cSrcweir     /** method to determine, if an invalidation is allowed.
491cdf0e10cSrcweir 
492cdf0e10cSrcweir         OD 2004-05-19 #i28701
493cdf0e10cSrcweir 
494cdf0e10cSrcweir         @author OD
495cdf0e10cSrcweir     */
496cdf0e10cSrcweir     virtual bool _InvalidationAllowed( const InvalidationType _nInvalid ) const;
497cdf0e10cSrcweir 
498cdf0e10cSrcweir     /** method to perform additional actions on an invalidation
499cdf0e10cSrcweir 
500cdf0e10cSrcweir         OD 2004-05-19 #i28701#
501cdf0e10cSrcweir         Method has *only* to contain actions, which has to be performed on
502cdf0e10cSrcweir         *every* assignment of the corresponding flag to <sal_False>.
503cdf0e10cSrcweir 
504cdf0e10cSrcweir         @author OD
505cdf0e10cSrcweir     */
506cdf0e10cSrcweir     virtual void _ActionOnInvalidation( const InvalidationType _nInvalid );
507cdf0e10cSrcweir 
508cdf0e10cSrcweir         //Schatten und Umrandung painten
509cdf0e10cSrcweir     void PaintShadow( const SwRect&, SwRect&, const SwBorderAttrs& ) const;
510cdf0e10cSrcweir 	virtual	void  Modify( const SfxPoolItem*, const SfxPoolItem* );
511cdf0e10cSrcweir 
512cdf0e10cSrcweir public:
513cdf0e10cSrcweir 	TYPEINFO();	//Bereits in Basisklasse Client drin.
514cdf0e10cSrcweir 
GetType() const515cdf0e10cSrcweir     sal_uInt16 GetType() const { return 0x1 << nType; }
516cdf0e10cSrcweir 
GetCache()517cdf0e10cSrcweir 	static SwCache &GetCache() 				  { return *pCache; }
GetCachePtr()518cdf0e10cSrcweir 	static SwCache *GetCachePtr()			  { return pCache;	}
SetCache(SwCache * pNew)519cdf0e10cSrcweir 	static void		SetCache( SwCache *pNew ) { pCache = pNew;	}
520cdf0e10cSrcweir 
521cdf0e10cSrcweir 		//Aendern die PrtArea-SSize und die FrmSize.
522cdf0e10cSrcweir     SwTwips Shrink( SwTwips, sal_Bool bTst = sal_False, sal_Bool bInfo = sal_False );
523cdf0e10cSrcweir     SwTwips Grow  ( SwTwips, sal_Bool bTst = sal_False, sal_Bool bInfo = sal_False );
524cdf0e10cSrcweir 
525cdf0e10cSrcweir 	//Wir brauchen unterschiedliche Methoden (wg. Performance) fuer das
526cdf0e10cSrcweir 	//Einfuegenin den Layout Baum:
527cdf0e10cSrcweir 
528cdf0e10cSrcweir 	//Einfuegen vor pBehind  oder am Ende der Kette unter pUpper
529cdf0e10cSrcweir 	void InsertBefore( SwLayoutFrm* pParent, SwFrm* pBehind );
530cdf0e10cSrcweir 	//Einfuegen hinter pBefore oder am Anfang der Kette unter pUpper
531cdf0e10cSrcweir 	void InsertBehind( SwLayoutFrm *pParent, SwFrm *pBefore );
532cdf0e10cSrcweir 	//Einfuegen vor pBehind oder am Ende der Kette, unter Beruecksichtigung
533cdf0e10cSrcweir 	//der Geschwister von pSct
534cdf0e10cSrcweir 	void InsertGroupBefore( SwFrm* pParent, SwFrm* pWhere, SwFrm* pSct );
535cdf0e10cSrcweir 	void Remove();
536cdf0e10cSrcweir 
537cdf0e10cSrcweir 	//For internal use only; wer es anders macht wird
538cdf0e10cSrcweir 	//in einen Sack gesteckt und muss zwei Tage drin hocken bleiben.
539cdf0e10cSrcweir 	//Fuert Spezialbehandlung fuer _Get[Next|Prev]Leaf() durch (Tabellen).
540cdf0e10cSrcweir 	SwLayoutFrm *GetLeaf( MakePageType eMakePage, sal_Bool bFwd );
541cdf0e10cSrcweir 	SwLayoutFrm *GetNextLeaf   ( MakePageType eMakePage );
542cdf0e10cSrcweir 	SwLayoutFrm *GetNextFtnLeaf( MakePageType eMakePage );
543cdf0e10cSrcweir 	SwLayoutFrm *GetNextSctLeaf( MakePageType eMakePage );
544cdf0e10cSrcweir     SwLayoutFrm *GetNextCellLeaf( MakePageType eMakePage );
545cdf0e10cSrcweir     SwLayoutFrm *GetPrevLeaf   ( MakePageType eMakeFtn = MAKEPAGE_FTN );
546cdf0e10cSrcweir 	SwLayoutFrm *GetPrevFtnLeaf( MakePageType eMakeFtn = MAKEPAGE_FTN );
547cdf0e10cSrcweir 	SwLayoutFrm *GetPrevSctLeaf( MakePageType eMakeFtn = MAKEPAGE_FTN );
548cdf0e10cSrcweir     SwLayoutFrm *GetPrevCellLeaf( MakePageType eMakeFtn = MAKEPAGE_FTN );
549cdf0e10cSrcweir     const SwLayoutFrm *GetLeaf ( MakePageType eMakePage, sal_Bool bFwd,
550cdf0e10cSrcweir 								 const SwFrm *pAnch ) const;
551cdf0e10cSrcweir 
552cdf0e10cSrcweir     sal_Bool WrongPageDesc( SwPageFrm* pNew );
553cdf0e10cSrcweir 
554cdf0e10cSrcweir     // --> OD 2004-07-02 #i28701# - new methods to append/remove drawing objects
555cdf0e10cSrcweir     void AppendDrawObj( SwAnchoredObject& _rNewObj );
556cdf0e10cSrcweir     void RemoveDrawObj( SwAnchoredObject& _rToRemoveObj );
557cdf0e10cSrcweir     // <--
558cdf0e10cSrcweir 
559cdf0e10cSrcweir 	//Arbeiten mit der Kette der FlyFrms
560cdf0e10cSrcweir 	void  AppendFly( SwFlyFrm *pNew );
561cdf0e10cSrcweir 	void  RemoveFly( SwFlyFrm *pToRemove );
GetDrawObjs() const562cdf0e10cSrcweir     const SwSortedObjs *GetDrawObjs() const { return pDrawObjs; }
GetDrawObjs()563cdf0e10cSrcweir           SwSortedObjs *GetDrawObjs()         { return pDrawObjs; }
564cdf0e10cSrcweir     // --> OD 2004-07-01 #i28701# - change purpose of method and adjust its name
565cdf0e10cSrcweir     void InvalidateObjs( const bool _bInvaPosOnly,
566cdf0e10cSrcweir                          const bool _bNoInvaOfAsCharAnchoredObjs = true );
567cdf0e10cSrcweir 
568cdf0e10cSrcweir 	virtual	void PaintBorder( const SwRect&, const SwPageFrm *pPage,
569cdf0e10cSrcweir 							  const SwBorderAttrs & ) const;
570cdf0e10cSrcweir 	void PaintBaBo( const SwRect&, const SwPageFrm *pPage = 0,
571cdf0e10cSrcweir 					const sal_Bool bLowerBorder = sal_False ) const;
572cdf0e10cSrcweir 	void PaintBackground( const SwRect&, const SwPageFrm *pPage,
573cdf0e10cSrcweir 						  const SwBorderAttrs &,
574cdf0e10cSrcweir 						  const sal_Bool bLowerMode = sal_False,
575cdf0e10cSrcweir 						  const sal_Bool bLowerBorder = sal_False ) const;
576cdf0e10cSrcweir 	void PaintBorderLine( const SwRect&, const SwRect&, const SwPageFrm*,
577cdf0e10cSrcweir 						  const Color *pColor ) const;
578cdf0e10cSrcweir 
579cdf0e10cSrcweir 	//Retouche, nicht im Bereich des uebergebenen Rect!
580cdf0e10cSrcweir 	void Retouche( const SwPageFrm *pPage, const SwRect &rRect ) const;
581cdf0e10cSrcweir 
58264b14621SArmin Le Grand 	sal_Bool GetBackgroundBrush(
583*56b35d86SArmin Le Grand         drawinglayer::attribute::SdrAllFillAttributesHelperPtr& rFillAttributes,
58464b14621SArmin Le Grand         const SvxBrushItem*& rpBrush,
58564b14621SArmin Le Grand         const Color*& rpColor,
58664b14621SArmin Le Grand         SwRect &rOrigRect,
58764b14621SArmin Le Grand         sal_Bool bLowerMode ) const;
588cdf0e10cSrcweir 
589cdf0e10cSrcweir 	inline void SetCompletePaint() const;
590cdf0e10cSrcweir 	inline void ResetCompletePaint() const;
IsCompletePaint() const591cdf0e10cSrcweir 	inline sal_Bool IsCompletePaint() const { return bCompletePaint; }
592cdf0e10cSrcweir 
593cdf0e10cSrcweir 	inline void SetRetouche() const;
594cdf0e10cSrcweir 	inline void ResetRetouche() const;
IsRetouche() const595cdf0e10cSrcweir 	inline sal_Bool IsRetouche() const { return bRetouche; }
596cdf0e10cSrcweir 
597cdf0e10cSrcweir 	void SetInfFlags();					//Setzen der InfoFlags
InvalidateInfFlags()598cdf0e10cSrcweir 	inline void InvalidateInfFlags() { bInfInvalid = sal_True; }
599cdf0e10cSrcweir 	inline sal_Bool	IsInDocBody() const;	//Benutzen die InfoFlags.
600cdf0e10cSrcweir 	inline sal_Bool	IsInFtn() const;		//ggf. werden die Flags ermittelt.
601cdf0e10cSrcweir 	inline sal_Bool IsInTab() const;
602cdf0e10cSrcweir 	inline sal_Bool IsInFly() const;
603cdf0e10cSrcweir 	inline sal_Bool IsInSct() const;
604cdf0e10cSrcweir 
605cdf0e10cSrcweir     // If frame is inside a split table row, this function returns
606cdf0e10cSrcweir     // the corresponding row frame in the follow table.
607cdf0e10cSrcweir     const SwRowFrm* IsInSplitTableRow() const;
608cdf0e10cSrcweir 
609cdf0e10cSrcweir     // If frame is inside a follow flow row, this function returns
610cdf0e10cSrcweir     // the corresponding row frame master table
611cdf0e10cSrcweir     const SwRowFrm* IsInFollowFlowRow() const;
612cdf0e10cSrcweir 
613cdf0e10cSrcweir     bool IsInBalancedSection() const;
614cdf0e10cSrcweir 
IsReverse() const615cdf0e10cSrcweir     inline sal_Bool IsReverse() const { return bReverse; }
SetReverse(sal_Bool bNew)616cdf0e10cSrcweir     inline void SetReverse( sal_Bool bNew ){ bReverse = bNew ? 1 : 0; }
617cdf0e10cSrcweir     inline sal_Bool IsVertical() const;
618cdf0e10cSrcweir     //Badaa: 2008-04-18 * Support for Classical Mongolian Script (SCMS) joint with Jiayanmin
619cdf0e10cSrcweir     inline sal_Bool IsVertLR() const;
620cdf0e10cSrcweir     //End of SCMS
621cdf0e10cSrcweir     inline sal_Bool GetVerticalFlag() const;
SetVertical(sal_Bool bNew)622cdf0e10cSrcweir     inline void SetVertical( sal_Bool bNew ){ bVertical = bNew ? 1 : 0; }
623cdf0e10cSrcweir     //Badaa: 2008-04-18 * Support for Classical Mongolian Script (SCMS) joint with Jiayanmin
SetbVertLR(sal_Bool bNew)624cdf0e10cSrcweir     inline void SetbVertLR( sal_Bool bNew ) { bVertLR = bNew ? 1 : 0; }
625cdf0e10cSrcweir     //End of SCMS
SetDerivedVert(sal_Bool bNew)626cdf0e10cSrcweir     inline void SetDerivedVert( sal_Bool bNew ){ bDerivedVert = bNew ? 1 : 0; }
SetInvalidVert(sal_Bool bNew)627cdf0e10cSrcweir     inline void SetInvalidVert( sal_Bool bNew) { bInvalidVert = bNew ? 1 : 0; }
628cdf0e10cSrcweir     inline sal_Bool IsRightToLeft() const;
629cdf0e10cSrcweir     inline sal_Bool GetRightToLeftFlag() const;
SetRightToLeft(sal_Bool bNew)630cdf0e10cSrcweir     inline void SetRightToLeft( sal_Bool bNew ){ bRightToLeft = bNew ? 1 : 0; }
SetDerivedR2L(sal_Bool bNew)631cdf0e10cSrcweir     inline void SetDerivedR2L( sal_Bool bNew ) { bDerivedR2L  = bNew ? 1 : 0; }
SetInvalidR2L(sal_Bool bNew)632cdf0e10cSrcweir     inline void SetInvalidR2L( sal_Bool bNew ) { bInvalidR2L  = bNew ? 1 : 0; }
633cdf0e10cSrcweir 
634cdf0e10cSrcweir     void CheckDirChange();
635cdf0e10cSrcweir     // returns upper left frame position for LTR and
636cdf0e10cSrcweir     // upper right frame position for Asian / RTL frames
637cdf0e10cSrcweir     Point   GetFrmAnchorPos( sal_Bool bIgnoreFlysAnchoredAtThisFrame ) const;
638cdf0e10cSrcweir 
639cdf0e10cSrcweir     /** determine, if frame is moveable in given environment
640cdf0e10cSrcweir 
641cdf0e10cSrcweir         OD 08.08.2003 #110978#
642cdf0e10cSrcweir         method replaced 'old' method <sal_Bool IsMoveable() const>.
643cdf0e10cSrcweir         Determines, if frame is moveable in given environment. if no environment
644cdf0e10cSrcweir         is given (parameter _pLayoutFrm == 0L), the movability in the actual
645cdf0e10cSrcweir         environment (<this->GetUpper()) is checked.
646cdf0e10cSrcweir 
647cdf0e10cSrcweir         @author OD
648cdf0e10cSrcweir 
649cdf0e10cSrcweir         @param _pLayoutFrm
650cdf0e10cSrcweir         input parameter - given environment (layout frame), in which the movability
651cdf0e10cSrcweir         will be checked. If not set ( == 0L ), actual environment is taken.
652cdf0e10cSrcweir 
653cdf0e10cSrcweir         @return boolean, indicating, if frame is moveable in given environment
654cdf0e10cSrcweir     */
655cdf0e10cSrcweir //    sal_Bool IsMoveable() const;
656cdf0e10cSrcweir     bool IsMoveable( const SwLayoutFrm* _pLayoutFrm = 0L ) const;
657cdf0e10cSrcweir 
658cdf0e10cSrcweir 	//Ist es fuer den (Txt)Frm in der aktuellen Umgebung erlaubt eine
659cdf0e10cSrcweir 	//Fussnote einzufuegen (nicht z.B. in wiederholten TabellenHeadlines).
660cdf0e10cSrcweir 	sal_Bool IsFtnAllowed() const;
661cdf0e10cSrcweir 
662cdf0e10cSrcweir 	virtual void  Format( const SwBorderAttrs *pAttrs = 0 );
663cdf0e10cSrcweir 
664cdf0e10cSrcweir     virtual void  CheckDirection( sal_Bool bVert );
665cdf0e10cSrcweir 
666cdf0e10cSrcweir 	void ReinitializeFrmSizeAttrFlags();
667cdf0e10cSrcweir 
668cdf0e10cSrcweir 	const SwAttrSet	*GetAttrSet() const;
669cdf0e10cSrcweir 
HasFixSize() const670cdf0e10cSrcweir     inline sal_Bool HasFixSize() const { return bFixSize; }
SetFixSize(sal_Bool bNew)671cdf0e10cSrcweir     inline void SetFixSize( sal_Bool bNew ) { bFixSize = bNew; }
672cdf0e10cSrcweir 
673cdf0e10cSrcweir 	//Prueft alle Seiten ab der Uebergebenen und korrigiert ggf.
674cdf0e10cSrcweir 	static void CheckPageDescs( SwPageFrm *pStart, sal_Bool bNotifyFields = sal_True );
675cdf0e10cSrcweir 
676cdf0e10cSrcweir 		//Koennen 0 liefern, einmal const einmal nicht
GetNext()677cdf0e10cSrcweir 	SwFrm				*GetNext()	{ return pNext; }
GetPrev()678cdf0e10cSrcweir 	SwFrm				*GetPrev()	{ return pPrev; }
GetUpper()679cdf0e10cSrcweir 	SwLayoutFrm			*GetUpper()	{ return pUpper; }
getRootFrm()680cdf0e10cSrcweir 	SwRootFrm			*getRootFrm(){ return mpRoot; }
681cdf0e10cSrcweir 	SwPageFrm	   		*FindPageFrm();
682cdf0e10cSrcweir 	SwFrm				*FindColFrm();
683cdf0e10cSrcweir 	SwFtnBossFrm		*FindFtnBossFrm( sal_Bool bFootnotes = sal_False );
684cdf0e10cSrcweir 	SwTabFrm			*ImplFindTabFrm();
685cdf0e10cSrcweir 	SwFtnFrm			*ImplFindFtnFrm();
686cdf0e10cSrcweir 	SwFlyFrm 			*ImplFindFlyFrm();
687cdf0e10cSrcweir 	SwSectionFrm		*ImplFindSctFrm();
688cdf0e10cSrcweir 	SwFrm				*FindFooterOrHeader();
689cdf0e10cSrcweir 	SwFrm				*GetLower();
GetNext() const690cdf0e10cSrcweir 	const SwFrm			*GetNext()	const { return pNext; }
GetPrev() const691cdf0e10cSrcweir 	const SwFrm			*GetPrev()	const { return pPrev; }
GetUpper() const692cdf0e10cSrcweir 	const SwLayoutFrm	*GetUpper()	const { return pUpper; }
getRootFrm() const693cdf0e10cSrcweir 	const SwRootFrm     *getRootFrm()	const { return mpRoot; }
694cdf0e10cSrcweir 	inline SwTabFrm		*FindTabFrm();
695cdf0e10cSrcweir 	inline SwFtnFrm		*FindFtnFrm();
696cdf0e10cSrcweir 	inline SwFlyFrm 	*FindFlyFrm();
697cdf0e10cSrcweir 	inline SwSectionFrm	*FindSctFrm();
698cdf0e10cSrcweir 	inline SwFrm		*FindNext();
699cdf0e10cSrcweir     // --> OD 2005-12-01 #i27138# - add parameter <_bInSameFtn>
700cdf0e10cSrcweir     inline SwCntntFrm* FindNextCnt( const bool _bInSameFtn = false );
701cdf0e10cSrcweir     // <--
702cdf0e10cSrcweir 	inline SwFrm		*FindPrev();
703cdf0e10cSrcweir 	inline const SwPageFrm *FindPageFrm() const;
704cdf0e10cSrcweir 	inline const SwFtnBossFrm *FindFtnBossFrm( sal_Bool bFtn = sal_False ) const;
705cdf0e10cSrcweir 	inline const SwFrm     *FindColFrm() const;
706cdf0e10cSrcweir 	inline const SwFrm     *FindFooterOrHeader() const;
707cdf0e10cSrcweir 	inline const SwTabFrm  *FindTabFrm() const;
708cdf0e10cSrcweir 	inline const SwFtnFrm  *FindFtnFrm() const;
709cdf0e10cSrcweir 	inline const SwFlyFrm  *FindFlyFrm() const;
710cdf0e10cSrcweir 	inline const SwSectionFrm *FindSctFrm() const;
711cdf0e10cSrcweir 	inline const SwFrm	   *FindNext() const;
712cdf0e10cSrcweir     // --> OD 2005-12-01 #i27138# - add parameter <_bInSameFtn>
713cdf0e10cSrcweir     inline const SwCntntFrm* FindNextCnt( const bool _bInSameFtn = false ) const;
714cdf0e10cSrcweir     // <--
715cdf0e10cSrcweir 	inline const SwFrm	   *FindPrev() const;
716cdf0e10cSrcweir 		   const SwFrm	   *GetLower()	const;
717cdf0e10cSrcweir 
718cdf0e10cSrcweir     /** inline wrapper method for <_FindPrevCnt(..)>
719cdf0e10cSrcweir 
720cdf0e10cSrcweir         OD 2005-11-30 #i27138#
721cdf0e10cSrcweir 
722cdf0e10cSrcweir         @author OD
723cdf0e10cSrcweir     */
FindPrevCnt(const bool _bInSameFtn=false)724cdf0e10cSrcweir     inline SwCntntFrm* FindPrevCnt( const bool _bInSameFtn = false )
725cdf0e10cSrcweir     {
726cdf0e10cSrcweir         if ( GetPrev() && GetPrev()->IsCntntFrm() )
727cdf0e10cSrcweir             return (SwCntntFrm*)(GetPrev());
728cdf0e10cSrcweir         else
729cdf0e10cSrcweir             return _FindPrevCnt( _bInSameFtn );
730cdf0e10cSrcweir     }
731cdf0e10cSrcweir 
732cdf0e10cSrcweir     /** inline const wrapper method for <_FindPrevCnt(..)>
733cdf0e10cSrcweir 
734cdf0e10cSrcweir         OD 2005-11-30 #i27138#
735cdf0e10cSrcweir 
736cdf0e10cSrcweir         @author OD
737cdf0e10cSrcweir     */
FindPrevCnt(const bool _bInSameFtn=false) const738cdf0e10cSrcweir     inline const SwCntntFrm* FindPrevCnt( const bool _bInSameFtn = false ) const
739cdf0e10cSrcweir     {
740cdf0e10cSrcweir         if ( GetPrev() && GetPrev()->IsCntntFrm() )
741cdf0e10cSrcweir             return (const SwCntntFrm*)(GetPrev());
742cdf0e10cSrcweir         else
743cdf0e10cSrcweir             return const_cast<SwFrm*>(this)->_FindPrevCnt( _bInSameFtn );
744cdf0e10cSrcweir     }
745cdf0e10cSrcweir 
746cdf0e10cSrcweir     // --> OD 2007-09-04 #i79774#, #b6596954#
747cdf0e10cSrcweir     SwFrm* _GetIndPrev() const;
GetIndPrev() const748cdf0e10cSrcweir     SwFrm* GetIndPrev() const
749cdf0e10cSrcweir 		{ return ( pPrev || !IsInSct() ) ? pPrev : _GetIndPrev(); }
750cdf0e10cSrcweir //    const SwFrm* GetIndPrev() const { return ((SwFrm*)this)->GetIndPrev(); }
751cdf0e10cSrcweir     // <--
GetIndNext()752cdf0e10cSrcweir 	SwFrm* GetIndNext()
753cdf0e10cSrcweir 		{ return ( pNext || !IsInSct() ) ? pNext : _GetIndNext(); }
GetIndNext() const754cdf0e10cSrcweir 	const SwFrm* GetIndNext() const { return ((SwFrm*)this)->GetIndNext(); }
755cdf0e10cSrcweir 
756cdf0e10cSrcweir 	sal_uInt16 GetPhyPageNum() const;	//Seitennummer ohne Offset
757cdf0e10cSrcweir 	sal_uInt16 GetVirtPageNum() const;	//Seitenummer mit Offset
OnRightPage() const758cdf0e10cSrcweir 	sal_Bool OnRightPage() const { return 0 != GetPhyPageNum() % 2; };
759cdf0e10cSrcweir 	sal_Bool WannaRightPage() const;
760cdf0e10cSrcweir 
761cdf0e10cSrcweir 
762cdf0e10cSrcweir     inline const  SwLayoutFrm *GetPrevLayoutLeaf() const;
763cdf0e10cSrcweir     inline const  SwLayoutFrm *GetNextLayoutLeaf() const;
764cdf0e10cSrcweir     inline SwLayoutFrm *GetPrevLayoutLeaf();
765cdf0e10cSrcweir 	inline SwLayoutFrm *GetNextLayoutLeaf();
766cdf0e10cSrcweir 
767cdf0e10cSrcweir     inline void Calc() const;       //Hier wird ggf. 'Formatiert'
768cdf0e10cSrcweir 	inline void OptCalc() const;    //Hier wird zur Optimierung davon ausgegangen,
769cdf0e10cSrcweir 									//das die Vorgaenger bereits formatiert sind.
770cdf0e10cSrcweir 
771cdf0e10cSrcweir 	inline Point   GetRelPos() const;
Frm() const772cdf0e10cSrcweir 	const  SwRect &Frm() const { return aFrm; }
Prt() const773cdf0e10cSrcweir 	const  SwRect &Prt() const { return aPrt; }
774cdf0e10cSrcweir 
775cdf0e10cSrcweir 	// The PaintArea is the area, where content may be displayed.
776cdf0e10cSrcweir 	// The margin of the page or the space between columns belongs to her.
777cdf0e10cSrcweir 	const SwRect PaintArea() const;
778cdf0e10cSrcweir 	// The UnionFrm is the union of frm- and prt-area, normally identical
779cdf0e10cSrcweir 	// to the frm-area except the case of negative prt-margins.
780cdf0e10cSrcweir 	const SwRect UnionFrm( sal_Bool bBorder = sal_False ) const;
781cdf0e10cSrcweir 
782cdf0e10cSrcweir 	//Der Zugriff auf die Member wird hier ausnahmsweiste gestattet,
783cdf0e10cSrcweir 	//dies soll aber nicht dazu dienen die Werte wahllos zu veraendern;
784cdf0e10cSrcweir 	//es ist nur die einzige Moeglichkeit die Compilerprobleme zu umgehen
785cdf0e10cSrcweir 	//(gleiche Methode mal public mal protected).
Frm()786cdf0e10cSrcweir 	SwRect &Frm() { return aFrm; }
Prt()787cdf0e10cSrcweir 	SwRect &Prt() { return aPrt; }
788cdf0e10cSrcweir 
789cdf0e10cSrcweir 	virtual Size ChgSize( const Size& aNewSize );
790cdf0e10cSrcweir 
791cdf0e10cSrcweir 	virtual void Cut() = 0;
792ca62e2c2SSteve Yin 	//Solution:Add a method to change the acc table dispose state.
SetAccTableDispose(sal_Bool bDispose)793ca62e2c2SSteve Yin 	void SetAccTableDispose( sal_Bool bDispose){ bIfAccTableShouldDisposing = bDispose;}
794cdf0e10cSrcweir 	virtual void Paste( SwFrm* pParent, SwFrm* pSibling = 0 ) = 0;
795cdf0e10cSrcweir 
ValidateLineNum()796cdf0e10cSrcweir 	void ValidateLineNum() { bValidLineNum = sal_True; }
797cdf0e10cSrcweir 
GetValidPosFlag() const798cdf0e10cSrcweir 	sal_Bool GetValidPosFlag()	  const { return bValidPos; }
GetValidPrtAreaFlag() const799cdf0e10cSrcweir 	sal_Bool GetValidPrtAreaFlag()const { return bValidPrtArea; }
GetValidSizeFlag() const800cdf0e10cSrcweir 	sal_Bool GetValidSizeFlag()	  const { return bValidSize; }
GetValidLineNumFlag() const801cdf0e10cSrcweir 	sal_Bool GetValidLineNumFlag()const { return bValidLineNum; }
IsValid() const802cdf0e10cSrcweir 	sal_Bool IsValid() const { return bValidPos && bValidSize && bValidPrtArea; }
803cdf0e10cSrcweir 
804cdf0e10cSrcweir     //Invalideren nur den Frm
805cdf0e10cSrcweir     // OD 2004-05-19 #i28701# - add call to method <_ActionOnInvalidation(..)>
806cdf0e10cSrcweir     // for all invalidation methods.
807cdf0e10cSrcweir     // OD 2004-05-19 #i28701# - use method <_InvalidationAllowed(..)> to
808cdf0e10cSrcweir     // decide, if invalidation will to be performed or not.
809cdf0e10cSrcweir     // --> OD 2004-10-08 #i26945# - no additional invalidation, if it's already
810cdf0e10cSrcweir     // invalidate.
_InvalidateSize()811cdf0e10cSrcweir     void _InvalidateSize()
812cdf0e10cSrcweir     {
813cdf0e10cSrcweir         if ( bValidSize && _InvalidationAllowed( INVALID_SIZE ) )
814cdf0e10cSrcweir         {
815cdf0e10cSrcweir             bValidSize = sal_False;
816cdf0e10cSrcweir             _ActionOnInvalidation( INVALID_SIZE );
817cdf0e10cSrcweir         }
818cdf0e10cSrcweir     }
_InvalidatePrt()819cdf0e10cSrcweir     void _InvalidatePrt()
820cdf0e10cSrcweir     {
821cdf0e10cSrcweir         if ( bValidPrtArea && _InvalidationAllowed( INVALID_PRTAREA ) )
822cdf0e10cSrcweir         {
823cdf0e10cSrcweir             bValidPrtArea = sal_False;
824cdf0e10cSrcweir             _ActionOnInvalidation( INVALID_PRTAREA );
825cdf0e10cSrcweir         }
826cdf0e10cSrcweir     }
_InvalidatePos()827cdf0e10cSrcweir     void _InvalidatePos()
828cdf0e10cSrcweir     {
829cdf0e10cSrcweir         if ( bValidPos && _InvalidationAllowed( INVALID_POS ) )
830cdf0e10cSrcweir         {
831cdf0e10cSrcweir             bValidPos = sal_False;
832cdf0e10cSrcweir             _ActionOnInvalidation( INVALID_POS );
833cdf0e10cSrcweir         }
834cdf0e10cSrcweir     }
_InvalidateLineNum()835cdf0e10cSrcweir     void _InvalidateLineNum()
836cdf0e10cSrcweir     {
837cdf0e10cSrcweir         if ( bValidLineNum && _InvalidationAllowed( INVALID_LINENUM ) )
838cdf0e10cSrcweir         {
839cdf0e10cSrcweir             bValidLineNum = sal_False;
840cdf0e10cSrcweir             _ActionOnInvalidation( INVALID_LINENUM );
841cdf0e10cSrcweir         }
842cdf0e10cSrcweir     }
_InvalidateAll()843cdf0e10cSrcweir     void _InvalidateAll()
844cdf0e10cSrcweir     {
845cdf0e10cSrcweir         if ( ( bValidSize || bValidPrtArea || bValidPos ) &&
846cdf0e10cSrcweir              _InvalidationAllowed( INVALID_ALL ) )
847cdf0e10cSrcweir         {
848cdf0e10cSrcweir             bValidSize = bValidPrtArea = bValidPos = sal_False;
849cdf0e10cSrcweir             _ActionOnInvalidation( INVALID_ALL );
850cdf0e10cSrcweir         }
851cdf0e10cSrcweir     }
852cdf0e10cSrcweir     // <--
853cdf0e10cSrcweir 	//Benachrichtigen gleich die Seite mit.
854cdf0e10cSrcweir 	inline void InvalidateSize();
855cdf0e10cSrcweir 	inline void InvalidatePrt();
856cdf0e10cSrcweir 	inline void InvalidatePos();
857cdf0e10cSrcweir 	inline void InvalidateLineNum();
858cdf0e10cSrcweir 	inline void InvalidateAll();
859cdf0e10cSrcweir 	void ImplInvalidateSize();
860cdf0e10cSrcweir 	void ImplInvalidatePrt();
861cdf0e10cSrcweir 	void ImplInvalidatePos();
862cdf0e10cSrcweir 	void ImplInvalidateLineNum();
863cdf0e10cSrcweir 
864cdf0e10cSrcweir 	inline void InvalidateNextPos( sal_Bool bNoFtn = sal_False );
865cdf0e10cSrcweir 	void ImplInvalidateNextPos( sal_Bool bNoFtn = sal_False );
866cdf0e10cSrcweir 
867cdf0e10cSrcweir     /** method to invalidate printing area of next frame
868cdf0e10cSrcweir 
869cdf0e10cSrcweir         OD 09.01.2004 #i11859#
870cdf0e10cSrcweir 
871cdf0e10cSrcweir         @author OD
872cdf0e10cSrcweir     */
873cdf0e10cSrcweir     void InvalidateNextPrtArea();
874cdf0e10cSrcweir 
875cdf0e10cSrcweir 	void InvalidatePage( const SwPageFrm *pPage = 0 ) const;
876cdf0e10cSrcweir 
877cdf0e10cSrcweir 	virtual bool    FillSelection( SwSelectionList& rList, const SwRect& rRect ) const;
878cdf0e10cSrcweir 
879cdf0e10cSrcweir 	virtual sal_Bool	GetCrsrOfst( SwPosition *, Point&,
880cdf0e10cSrcweir 								 SwCrsrMoveState* = 0 ) const;
881cdf0e10cSrcweir 	virtual sal_Bool	GetCharRect( SwRect &, const SwPosition&,
882cdf0e10cSrcweir 								 SwCrsrMoveState* = 0 ) const;
883cdf0e10cSrcweir     virtual void Paint( SwRect const&,
884cdf0e10cSrcweir                         SwPrintData const*const pPrintData = NULL ) const;
885cdf0e10cSrcweir 
886cdf0e10cSrcweir 	// der "kurze Dienstweg" zwischen den Frames und der Formatierung.
887cdf0e10cSrcweir 	// Wer den void* falsch Casted ist selbst schuld!
888cdf0e10cSrcweir 	// Auf jedenfall muss der void* auf 0 geprueft werden.
889cdf0e10cSrcweir 	virtual void Prepare( const PrepareHint ePrep = PREP_CLEAR,
890cdf0e10cSrcweir 						  const void *pVoid = 0, sal_Bool bNotify = sal_True );
891cdf0e10cSrcweir 
892cdf0e10cSrcweir 	//sal_True wenn's die richtige Klasse ist, sal_False sonst
893cdf0e10cSrcweir 	inline sal_Bool IsLayoutFrm() const;
894cdf0e10cSrcweir 	inline sal_Bool IsRootFrm() const;
895cdf0e10cSrcweir 	inline sal_Bool IsPageFrm() const;
896cdf0e10cSrcweir 	inline sal_Bool IsColumnFrm() const;
897cdf0e10cSrcweir 	inline sal_Bool IsFtnBossFrm() const; // Fussnotenbosse sind PageFrms und ColumnFrms
898cdf0e10cSrcweir 	inline sal_Bool IsHeaderFrm() const;
899cdf0e10cSrcweir 	inline sal_Bool IsFooterFrm() const;
900cdf0e10cSrcweir 	inline sal_Bool IsFtnContFrm() const;
901cdf0e10cSrcweir 	inline sal_Bool IsFtnFrm() const;
902cdf0e10cSrcweir 	inline sal_Bool IsBodyFrm() const;
903cdf0e10cSrcweir 	inline sal_Bool IsColBodyFrm() const;	// in layfrm.hxx implementiert, BodyFrm unterhalb ColumnFrm
904cdf0e10cSrcweir 	inline sal_Bool IsPageBodyFrm() const;  // in layfrm.hxx implementiert, BodyFrm unterhalb PageFrm
905cdf0e10cSrcweir 	inline sal_Bool IsFlyFrm() const;
906cdf0e10cSrcweir 	inline sal_Bool IsSctFrm() const;
907cdf0e10cSrcweir 	inline sal_Bool IsTabFrm() const;
908cdf0e10cSrcweir 	inline sal_Bool IsRowFrm() const;
909cdf0e10cSrcweir 	inline sal_Bool IsCellFrm() const;
910cdf0e10cSrcweir 	inline sal_Bool IsCntntFrm() const;
911cdf0e10cSrcweir 	inline sal_Bool IsTxtFrm() const;
912cdf0e10cSrcweir 	inline sal_Bool IsNoTxtFrm() const;
913cdf0e10cSrcweir 	inline sal_Bool IsFlowFrm() const;		//Frms deren PrtArea von den Nachbarn
914cdf0e10cSrcweir 										//abhaengen und die halt im Inhaltsfluss
915cdf0e10cSrcweir 										//stehen.
916cdf0e10cSrcweir 	inline sal_Bool IsRetoucheFrm() const;	//Frms die Retouchefaehig sind bzw. die
917cdf0e10cSrcweir 										//u.U. hinter sich Retouchieren muessen.
918cdf0e10cSrcweir 	inline sal_Bool IsAccessibleFrm() const;
919cdf0e10cSrcweir 
920cdf0e10cSrcweir 	void PrepareCrsr();					//Die CrsrShell darf.
921cdf0e10cSrcweir 
922cdf0e10cSrcweir 	//Ist der Frm (bzw. die Section in der er steht) geschuetzt?
923cdf0e10cSrcweir 	//Auch Fly in Fly in ... und Fussnoten
924cdf0e10cSrcweir 	sal_Bool IsProtected() const;
925cdf0e10cSrcweir 
IsColLocked() const926cdf0e10cSrcweir 	sal_Bool IsColLocked()	const { return bColLocked; }
927cdf0e10cSrcweir 
928cdf0e10cSrcweir 	virtual ~SwFrm();
929cdf0e10cSrcweir 
930cdf0e10cSrcweir     // No inline cause we need the function pointers
931cdf0e10cSrcweir     long GetTopMargin() const;
932cdf0e10cSrcweir     long GetBottomMargin() const;
933cdf0e10cSrcweir     long GetLeftMargin() const;
934cdf0e10cSrcweir     long GetRightMargin() const;
935cdf0e10cSrcweir     void SetTopBottomMargins( long, long );
936cdf0e10cSrcweir     void SetBottomTopMargins( long, long );
937cdf0e10cSrcweir     void SetLeftRightMargins( long, long );
938cdf0e10cSrcweir     void SetRightLeftMargins( long, long );
939cdf0e10cSrcweir     void SetLeftAndWidth( long nLeft, long nWidth );
940cdf0e10cSrcweir     void SetTopAndHeight( long nTop, long nHeight );
941cdf0e10cSrcweir     void SetRightAndWidth( long nRight, long nWidth );
942cdf0e10cSrcweir     void SetBottomAndHeight( long nBottom, long nHeight );
943cdf0e10cSrcweir     long GetPrtLeft() const;
944cdf0e10cSrcweir     long GetPrtBottom() const;
945cdf0e10cSrcweir     long GetPrtRight() const;
946cdf0e10cSrcweir     long GetPrtTop() const;
947cdf0e10cSrcweir     sal_Bool SetMinLeft( long );
948cdf0e10cSrcweir     sal_Bool SetMaxBottom( long );
949cdf0e10cSrcweir     sal_Bool SetMaxRight( long );
950cdf0e10cSrcweir     sal_Bool SetMinTop( long );
951cdf0e10cSrcweir     void MakeBelowPos( const SwFrm*, const SwFrm*, sal_Bool );
952cdf0e10cSrcweir     void MakeUpperPos( const SwFrm*, const SwFrm*, sal_Bool );
953cdf0e10cSrcweir     void MakeLeftPos( const SwFrm*, const SwFrm*, sal_Bool );
954cdf0e10cSrcweir     void MakeRightPos( const SwFrm*, const SwFrm*, sal_Bool );
IsNeighbourFrm() const955cdf0e10cSrcweir     inline sal_Bool IsNeighbourFrm() const
956cdf0e10cSrcweir         { return GetType() & FRM_NEIGHBOUR ? sal_True : sal_False; }
957cdf0e10cSrcweir 
958cdf0e10cSrcweir     // --> OD 2006-05-10 #i65250#
GetFrmId() const959cdf0e10cSrcweir     inline sal_uInt32 GetFrmId() const { return mnFrmId; }
GetLastFrmId() const960cdf0e10cSrcweir     inline sal_uInt32 GetLastFrmId() const { return mnLastFrmId; }
961cdf0e10cSrcweir     // <--
962cdf0e10cSrcweir 
963cdf0e10cSrcweir     // NEW TABELS
964cdf0e10cSrcweir     // Some functions for covered/covering table cells. This way unnessessary
965cdf0e10cSrcweir     // includes can be avoided
966cdf0e10cSrcweir     bool IsLeaveUpperAllowed() const;
967cdf0e10cSrcweir     bool IsCoveredCell() const;
968cdf0e10cSrcweir     bool IsInCoveredCell() const;
969cdf0e10cSrcweir 
970cdf0e10cSrcweir     // FME 2007-08-30 #i81146# new loop control
971cdf0e10cSrcweir     bool KnowsFormat( const SwFmt& rFmt ) const;
972cdf0e10cSrcweir     void RegisterToFormat( SwFmt& rFmt );
973cdf0e10cSrcweir     void ValidateThisAndAllLowers( const sal_uInt16 nStage );
974*56b35d86SArmin Le Grand 
975*56b35d86SArmin Le Grand     //UUUU
976*56b35d86SArmin Le Grand     drawinglayer::attribute::SdrAllFillAttributesHelperPtr getSdrAllFillAttributesHelper() const;
977cdf0e10cSrcweir };
978cdf0e10cSrcweir 
IsInDocBody() const979cdf0e10cSrcweir inline sal_Bool	SwFrm::IsInDocBody() const
980cdf0e10cSrcweir {
981cdf0e10cSrcweir 	if ( bInfInvalid )
982cdf0e10cSrcweir 		((SwFrm*)this)->SetInfFlags();
983cdf0e10cSrcweir 	return bInfBody;
984cdf0e10cSrcweir }
IsInFtn() const985cdf0e10cSrcweir inline sal_Bool	SwFrm::IsInFtn() const
986cdf0e10cSrcweir {
987cdf0e10cSrcweir 	if ( bInfInvalid )
988cdf0e10cSrcweir 		((SwFrm*)this)->SetInfFlags();
989cdf0e10cSrcweir 	return bInfFtn;
990cdf0e10cSrcweir }
IsInTab() const991cdf0e10cSrcweir inline sal_Bool SwFrm::IsInTab() const
992cdf0e10cSrcweir {
993cdf0e10cSrcweir 	if ( bInfInvalid )
994cdf0e10cSrcweir 		((SwFrm*)this)->SetInfFlags();
995cdf0e10cSrcweir 	return bInfTab;
996cdf0e10cSrcweir }
IsInFly() const997cdf0e10cSrcweir inline sal_Bool SwFrm::IsInFly() const
998cdf0e10cSrcweir {
999cdf0e10cSrcweir 	if ( bInfInvalid )
1000cdf0e10cSrcweir 		((SwFrm*)this)->SetInfFlags();
1001cdf0e10cSrcweir 	return bInfFly;
1002cdf0e10cSrcweir }
IsInSct() const1003cdf0e10cSrcweir inline sal_Bool SwFrm::IsInSct() const
1004cdf0e10cSrcweir {
1005cdf0e10cSrcweir 	if ( bInfInvalid )
1006cdf0e10cSrcweir 		((SwFrm*)this)->SetInfFlags();
1007cdf0e10cSrcweir 	return bInfSct;
1008cdf0e10cSrcweir }
IsVertical() const1009cdf0e10cSrcweir sal_Bool SwFrm::IsVertical() const
1010cdf0e10cSrcweir {
1011cdf0e10cSrcweir     if( bInvalidVert )
1012cdf0e10cSrcweir         ((SwFrm*)this)->SetDirFlags( sal_True );
1013cdf0e10cSrcweir     return bVertical != 0;
1014cdf0e10cSrcweir }
1015cdf0e10cSrcweir //Badaa: 2008-04-18 * Support for Classical Mongolian Script (SCMS) joint with Jiayanmin
IsVertLR() const1016cdf0e10cSrcweir inline sal_Bool SwFrm::IsVertLR() const
1017cdf0e10cSrcweir {
1018cdf0e10cSrcweir 	return bVertLR != 0;
1019cdf0e10cSrcweir }
1020cdf0e10cSrcweir //End of SCMS
GetVerticalFlag() const1021cdf0e10cSrcweir sal_Bool SwFrm::GetVerticalFlag() const
1022cdf0e10cSrcweir {
1023cdf0e10cSrcweir     return bVertical != 0;
1024cdf0e10cSrcweir }
IsRightToLeft() const1025cdf0e10cSrcweir inline sal_Bool SwFrm::IsRightToLeft() const
1026cdf0e10cSrcweir {
1027cdf0e10cSrcweir     if( bInvalidR2L )
1028cdf0e10cSrcweir         ((SwFrm*)this)->SetDirFlags( sal_False );
1029cdf0e10cSrcweir     return bRightToLeft != 0;
1030cdf0e10cSrcweir }
GetRightToLeftFlag() const1031cdf0e10cSrcweir sal_Bool SwFrm::GetRightToLeftFlag() const
1032cdf0e10cSrcweir {
1033cdf0e10cSrcweir     return bRightToLeft != 0;
1034cdf0e10cSrcweir }
1035cdf0e10cSrcweir 
SetCompletePaint() const1036cdf0e10cSrcweir inline void SwFrm::SetCompletePaint() const
1037cdf0e10cSrcweir {
1038cdf0e10cSrcweir 	((SwFrm*)this)->bCompletePaint = sal_True;
1039cdf0e10cSrcweir }
ResetCompletePaint() const1040cdf0e10cSrcweir inline void SwFrm::ResetCompletePaint() const
1041cdf0e10cSrcweir {
1042cdf0e10cSrcweir 	((SwFrm*)this)->bCompletePaint = sal_False;
1043cdf0e10cSrcweir }
1044cdf0e10cSrcweir 
SetRetouche() const1045cdf0e10cSrcweir inline void SwFrm::SetRetouche() const
1046cdf0e10cSrcweir {
1047cdf0e10cSrcweir 	((SwFrm*)this)->bRetouche = sal_True;
1048cdf0e10cSrcweir }
ResetRetouche() const1049cdf0e10cSrcweir inline void SwFrm::ResetRetouche() const
1050cdf0e10cSrcweir {
1051cdf0e10cSrcweir 	((SwFrm*)this)->bRetouche = sal_False;
1052cdf0e10cSrcweir }
1053cdf0e10cSrcweir 
GetNextLayoutLeaf()1054cdf0e10cSrcweir inline SwLayoutFrm *SwFrm::GetNextLayoutLeaf()
1055cdf0e10cSrcweir {
1056cdf0e10cSrcweir     return (SwLayoutFrm*)((const SwFrm*)this)->GetNextLayoutLeaf();
1057cdf0e10cSrcweir }
1058cdf0e10cSrcweir 
GetPrevLayoutLeaf()1059cdf0e10cSrcweir inline SwLayoutFrm *SwFrm::GetPrevLayoutLeaf()
1060cdf0e10cSrcweir {
1061cdf0e10cSrcweir 	return (SwLayoutFrm*)((const SwFrm*)this)->GetPrevLayoutLeaf();
1062cdf0e10cSrcweir }
1063cdf0e10cSrcweir 
GetNextLayoutLeaf() const1064cdf0e10cSrcweir inline const SwLayoutFrm *SwFrm::GetNextLayoutLeaf() const
1065cdf0e10cSrcweir {
1066cdf0e10cSrcweir     return ImplGetNextLayoutLeaf( true );
1067cdf0e10cSrcweir }
1068cdf0e10cSrcweir 
GetPrevLayoutLeaf() const1069cdf0e10cSrcweir inline const SwLayoutFrm *SwFrm::GetPrevLayoutLeaf() const
1070cdf0e10cSrcweir {
1071cdf0e10cSrcweir     return ImplGetNextLayoutLeaf( false );
1072cdf0e10cSrcweir }
1073cdf0e10cSrcweir 
InvalidateSize()1074cdf0e10cSrcweir inline void SwFrm::InvalidateSize()
1075cdf0e10cSrcweir {
1076cdf0e10cSrcweir 	if ( bValidSize )
1077cdf0e10cSrcweir 		ImplInvalidateSize();
1078cdf0e10cSrcweir }
InvalidatePrt()1079cdf0e10cSrcweir inline void SwFrm::InvalidatePrt()
1080cdf0e10cSrcweir {
1081cdf0e10cSrcweir 	if ( bValidPrtArea )
1082cdf0e10cSrcweir 		ImplInvalidatePrt();
1083cdf0e10cSrcweir }
InvalidatePos()1084cdf0e10cSrcweir inline void SwFrm::InvalidatePos()
1085cdf0e10cSrcweir {
1086cdf0e10cSrcweir 	if ( bValidPos )
1087cdf0e10cSrcweir 		ImplInvalidatePos();
1088cdf0e10cSrcweir }
InvalidateLineNum()1089cdf0e10cSrcweir inline void SwFrm::InvalidateLineNum()
1090cdf0e10cSrcweir {
1091cdf0e10cSrcweir 	if ( bValidLineNum )
1092cdf0e10cSrcweir 		ImplInvalidateLineNum();
1093cdf0e10cSrcweir }
1094cdf0e10cSrcweir 
InvalidateAll()1095cdf0e10cSrcweir inline void SwFrm::InvalidateAll()
1096cdf0e10cSrcweir {
1097cdf0e10cSrcweir     if ( _InvalidationAllowed( INVALID_ALL ) )
1098cdf0e10cSrcweir     {
1099cdf0e10cSrcweir         if ( bValidPrtArea && bValidSize && bValidPos  )
1100cdf0e10cSrcweir             ImplInvalidatePos();
1101cdf0e10cSrcweir         bValidPrtArea = bValidSize = bValidPos = sal_False;
1102cdf0e10cSrcweir 
1103cdf0e10cSrcweir         // OD 2004-05-19 #i28701#
1104cdf0e10cSrcweir         _ActionOnInvalidation( INVALID_ALL );
1105cdf0e10cSrcweir     }
1106cdf0e10cSrcweir }
1107cdf0e10cSrcweir 
InvalidateNextPos(sal_Bool bNoFtn)1108cdf0e10cSrcweir inline void SwFrm::InvalidateNextPos( sal_Bool bNoFtn )
1109cdf0e10cSrcweir {
1110cdf0e10cSrcweir 	if ( pNext && !pNext->IsSctFrm() )
1111cdf0e10cSrcweir 		pNext->InvalidatePos();
1112cdf0e10cSrcweir #ifndef C30 // vielleicht geht es ja bei C40 ?
1113cdf0e10cSrcweir 	else
1114cdf0e10cSrcweir 		ImplInvalidateNextPos( bNoFtn );
1115cdf0e10cSrcweir #else
1116cdf0e10cSrcweir 	if ( !pNext )
1117cdf0e10cSrcweir 		ImplInvalidateNextPos( bNoFtn );
1118cdf0e10cSrcweir #endif
1119cdf0e10cSrcweir }
1120cdf0e10cSrcweir 
Calc() const1121cdf0e10cSrcweir inline void SwFrm::Calc() const
1122cdf0e10cSrcweir {
1123cdf0e10cSrcweir 	if ( !bValidPos || !bValidPrtArea || !bValidSize )
1124cdf0e10cSrcweir 		((SwFrm*)this)->PrepareMake();
1125cdf0e10cSrcweir }
OptCalc() const1126cdf0e10cSrcweir inline void SwFrm::OptCalc() const
1127cdf0e10cSrcweir {
1128cdf0e10cSrcweir 	if ( !bValidPos || !bValidPrtArea || !bValidSize )
1129cdf0e10cSrcweir 		((SwFrm*)this)->OptPrepareMake();
1130cdf0e10cSrcweir }
1131cdf0e10cSrcweir 
GetRelPos() const1132cdf0e10cSrcweir inline Point SwFrm::GetRelPos() const
1133cdf0e10cSrcweir {
1134cdf0e10cSrcweir 	Point aRet( aFrm.Pos() );
1135cdf0e10cSrcweir 		//hier wird gecasted, weil die Klasse SwLayoutFrm nur vorward-
1136cdf0e10cSrcweir 		//declariert ist.
1137cdf0e10cSrcweir 	aRet -= ((SwFrm*)GetUpper())->Prt().Pos();
1138cdf0e10cSrcweir 	aRet -= ((SwFrm*)GetUpper())->Frm().Pos();
1139cdf0e10cSrcweir 	return aRet;
1140cdf0e10cSrcweir }
1141cdf0e10cSrcweir 
FindPageFrm() const1142cdf0e10cSrcweir inline const SwPageFrm *SwFrm::FindPageFrm() const
1143cdf0e10cSrcweir {
1144cdf0e10cSrcweir 	return ((SwFrm*)this)->FindPageFrm();
1145cdf0e10cSrcweir }
FindColFrm() const1146cdf0e10cSrcweir inline const SwFrm *SwFrm::FindColFrm() const
1147cdf0e10cSrcweir {
1148cdf0e10cSrcweir 	return ((SwFrm*)this)->FindColFrm();
1149cdf0e10cSrcweir }
FindFooterOrHeader() const1150cdf0e10cSrcweir inline const SwFrm *SwFrm::FindFooterOrHeader() const
1151cdf0e10cSrcweir {
1152cdf0e10cSrcweir 	return ((SwFrm*)this)->FindFooterOrHeader();
1153cdf0e10cSrcweir }
FindTabFrm()1154cdf0e10cSrcweir inline SwTabFrm *SwFrm::FindTabFrm()
1155cdf0e10cSrcweir {
1156cdf0e10cSrcweir 	return IsInTab() ? ImplFindTabFrm() : 0;
1157cdf0e10cSrcweir }
FindFtnBossFrm(sal_Bool bFtn) const1158cdf0e10cSrcweir inline const SwFtnBossFrm *SwFrm::FindFtnBossFrm( sal_Bool bFtn ) const
1159cdf0e10cSrcweir {
1160cdf0e10cSrcweir 	return ((SwFrm*)this)->FindFtnBossFrm( bFtn );
1161cdf0e10cSrcweir }
FindFtnFrm()1162cdf0e10cSrcweir inline SwFtnFrm *SwFrm::FindFtnFrm()
1163cdf0e10cSrcweir {
1164cdf0e10cSrcweir 	return IsInFtn() ? ImplFindFtnFrm() : 0;
1165cdf0e10cSrcweir }
FindFlyFrm()1166cdf0e10cSrcweir inline SwFlyFrm *SwFrm::FindFlyFrm()
1167cdf0e10cSrcweir {
1168cdf0e10cSrcweir 	return IsInFly() ? ImplFindFlyFrm() : 0;
1169cdf0e10cSrcweir }
FindSctFrm()1170cdf0e10cSrcweir inline SwSectionFrm *SwFrm::FindSctFrm()
1171cdf0e10cSrcweir {
1172cdf0e10cSrcweir 	return IsInSct() ? ImplFindSctFrm() : 0;
1173cdf0e10cSrcweir }
1174cdf0e10cSrcweir 
FindTabFrm() const1175cdf0e10cSrcweir inline const SwTabFrm *SwFrm::FindTabFrm() const
1176cdf0e10cSrcweir {
1177cdf0e10cSrcweir 	return IsInTab() ? ((SwFrm*)this)->ImplFindTabFrm() : 0;
1178cdf0e10cSrcweir }
FindFtnFrm() const1179cdf0e10cSrcweir inline const SwFtnFrm *SwFrm::FindFtnFrm() const
1180cdf0e10cSrcweir {
1181cdf0e10cSrcweir 	return IsInFtn() ? ((SwFrm*)this)->ImplFindFtnFrm() : 0;
1182cdf0e10cSrcweir }
FindFlyFrm() const1183cdf0e10cSrcweir inline const SwFlyFrm *SwFrm::FindFlyFrm() const
1184cdf0e10cSrcweir {
1185cdf0e10cSrcweir 	return IsInFly() ? ((SwFrm*)this)->ImplFindFlyFrm() : 0;
1186cdf0e10cSrcweir }
FindSctFrm() const1187cdf0e10cSrcweir inline const SwSectionFrm *SwFrm::FindSctFrm() const
1188cdf0e10cSrcweir {
1189cdf0e10cSrcweir 	return IsInSct() ? ((SwFrm*)this)->ImplFindSctFrm() : 0;
1190cdf0e10cSrcweir }
FindNext()1191cdf0e10cSrcweir inline SwFrm *SwFrm::FindNext()
1192cdf0e10cSrcweir {
1193cdf0e10cSrcweir 	if ( pNext )
1194cdf0e10cSrcweir 		return pNext;
1195cdf0e10cSrcweir 	else
1196cdf0e10cSrcweir 		return _FindNext();
1197cdf0e10cSrcweir }
FindNext() const1198cdf0e10cSrcweir inline const SwFrm *SwFrm::FindNext() const
1199cdf0e10cSrcweir {
1200cdf0e10cSrcweir 	if ( pNext )
1201cdf0e10cSrcweir 		return pNext;
1202cdf0e10cSrcweir 	else
1203cdf0e10cSrcweir 		return ((SwFrm*)this)->_FindNext();
1204cdf0e10cSrcweir }
1205cdf0e10cSrcweir // --> OD 2005-12-01 #i27138# - add parameter <_bInSameFtn>
FindNextCnt(const bool _bInSameFtn)1206cdf0e10cSrcweir inline SwCntntFrm *SwFrm::FindNextCnt( const bool _bInSameFtn )
1207cdf0e10cSrcweir {
1208cdf0e10cSrcweir 	if ( pNext && pNext->IsCntntFrm() )
1209cdf0e10cSrcweir 		return (SwCntntFrm*)pNext;
1210cdf0e10cSrcweir 	else
1211cdf0e10cSrcweir         return _FindNextCnt( _bInSameFtn );
1212cdf0e10cSrcweir }
1213cdf0e10cSrcweir // <--
1214cdf0e10cSrcweir // --> OD 2005-12-01 #i27138# - add parameter <_bInSameFtn>
FindNextCnt(const bool _bInSameFtn) const1215cdf0e10cSrcweir inline const SwCntntFrm *SwFrm::FindNextCnt( const bool _bInSameFtn ) const
1216cdf0e10cSrcweir {
1217cdf0e10cSrcweir 	if ( pNext && pNext->IsCntntFrm() )
1218cdf0e10cSrcweir 		return (SwCntntFrm*)pNext;
1219cdf0e10cSrcweir 	else
1220cdf0e10cSrcweir         return ((SwFrm*)this)->_FindNextCnt( _bInSameFtn );
1221cdf0e10cSrcweir }
1222cdf0e10cSrcweir // <--
FindPrev()1223cdf0e10cSrcweir inline SwFrm *SwFrm::FindPrev()
1224cdf0e10cSrcweir {
1225cdf0e10cSrcweir 	if ( pPrev && !pPrev->IsSctFrm() )
1226cdf0e10cSrcweir 		return pPrev;
1227cdf0e10cSrcweir 	else
1228cdf0e10cSrcweir 		return _FindPrev();
1229cdf0e10cSrcweir }
FindPrev() const1230cdf0e10cSrcweir inline const SwFrm *SwFrm::FindPrev() const
1231cdf0e10cSrcweir {
1232cdf0e10cSrcweir 	if ( pPrev && !pPrev->IsSctFrm() )
1233cdf0e10cSrcweir 		return pPrev;
1234cdf0e10cSrcweir 	else
1235cdf0e10cSrcweir 		return ((SwFrm*)this)->_FindPrev();
1236cdf0e10cSrcweir }
1237cdf0e10cSrcweir 
1238cdf0e10cSrcweir 
IsLayoutFrm() const1239cdf0e10cSrcweir inline sal_Bool SwFrm::IsLayoutFrm() const
1240cdf0e10cSrcweir {
1241cdf0e10cSrcweir     return GetType() & FRM_LAYOUT ? sal_True : sal_False;
1242cdf0e10cSrcweir }
IsRootFrm() const1243cdf0e10cSrcweir inline sal_Bool SwFrm::IsRootFrm() const
1244cdf0e10cSrcweir {
1245cdf0e10cSrcweir     return nType == FRMC_ROOT;
1246cdf0e10cSrcweir }
IsPageFrm() const1247cdf0e10cSrcweir inline sal_Bool SwFrm::IsPageFrm() const
1248cdf0e10cSrcweir {
1249cdf0e10cSrcweir     return nType == FRMC_PAGE;
1250cdf0e10cSrcweir }
IsColumnFrm() const1251cdf0e10cSrcweir inline sal_Bool SwFrm::IsColumnFrm() const
1252cdf0e10cSrcweir {
1253cdf0e10cSrcweir     return nType == FRMC_COLUMN;
1254cdf0e10cSrcweir }
IsFtnBossFrm() const1255cdf0e10cSrcweir inline sal_Bool SwFrm::IsFtnBossFrm() const
1256cdf0e10cSrcweir {
1257cdf0e10cSrcweir     return GetType() & FRM_FTNBOSS ? sal_True : sal_False;
1258cdf0e10cSrcweir }
IsHeaderFrm() const1259cdf0e10cSrcweir inline sal_Bool SwFrm::IsHeaderFrm() const
1260cdf0e10cSrcweir {
1261cdf0e10cSrcweir     return nType == FRMC_HEADER;
1262cdf0e10cSrcweir }
IsFooterFrm() const1263cdf0e10cSrcweir inline sal_Bool SwFrm::IsFooterFrm() const
1264cdf0e10cSrcweir {
1265cdf0e10cSrcweir     return nType == FRMC_FOOTER;
1266cdf0e10cSrcweir }
IsFtnContFrm() const1267cdf0e10cSrcweir inline sal_Bool SwFrm::IsFtnContFrm() const
1268cdf0e10cSrcweir {
1269cdf0e10cSrcweir     return nType == FRMC_FTNCONT;
1270cdf0e10cSrcweir }
IsFtnFrm() const1271cdf0e10cSrcweir inline sal_Bool SwFrm::IsFtnFrm() const
1272cdf0e10cSrcweir {
1273cdf0e10cSrcweir     return nType == FRMC_FTN;
1274cdf0e10cSrcweir }
IsBodyFrm() const1275cdf0e10cSrcweir inline sal_Bool SwFrm::IsBodyFrm() const
1276cdf0e10cSrcweir {
1277cdf0e10cSrcweir     return nType == FRMC_BODY;
1278cdf0e10cSrcweir }
IsFlyFrm() const1279cdf0e10cSrcweir inline sal_Bool SwFrm::IsFlyFrm() const
1280cdf0e10cSrcweir {
1281cdf0e10cSrcweir     return nType == FRMC_FLY;
1282cdf0e10cSrcweir }
IsSctFrm() const1283cdf0e10cSrcweir inline sal_Bool SwFrm::IsSctFrm() const
1284cdf0e10cSrcweir {
1285cdf0e10cSrcweir     return nType == FRMC_SECTION;
1286cdf0e10cSrcweir }
IsTabFrm() const1287cdf0e10cSrcweir inline sal_Bool SwFrm::IsTabFrm() const
1288cdf0e10cSrcweir {
1289cdf0e10cSrcweir     return nType == FRMC_TAB;
1290cdf0e10cSrcweir }
IsRowFrm() const1291cdf0e10cSrcweir inline sal_Bool SwFrm::IsRowFrm() const
1292cdf0e10cSrcweir {
1293cdf0e10cSrcweir     return nType == FRMC_ROW;
1294cdf0e10cSrcweir }
IsCellFrm() const1295cdf0e10cSrcweir inline sal_Bool SwFrm::IsCellFrm() const
1296cdf0e10cSrcweir {
1297cdf0e10cSrcweir     return nType == FRMC_CELL;
1298cdf0e10cSrcweir }
IsCntntFrm() const1299cdf0e10cSrcweir inline sal_Bool SwFrm::IsCntntFrm() const
1300cdf0e10cSrcweir {
1301cdf0e10cSrcweir     return GetType() & FRM_CNTNT ? sal_True : sal_False;
1302cdf0e10cSrcweir }
IsTxtFrm() const1303cdf0e10cSrcweir inline sal_Bool SwFrm::IsTxtFrm() const
1304cdf0e10cSrcweir {
1305cdf0e10cSrcweir     return nType == FRMC_TXT;
1306cdf0e10cSrcweir }
IsNoTxtFrm() const1307cdf0e10cSrcweir inline sal_Bool SwFrm::IsNoTxtFrm() const
1308cdf0e10cSrcweir {
1309cdf0e10cSrcweir     return nType == FRMC_NOTXT;
1310cdf0e10cSrcweir }
IsFlowFrm() const1311cdf0e10cSrcweir inline sal_Bool SwFrm::IsFlowFrm() const
1312cdf0e10cSrcweir {
1313cdf0e10cSrcweir     return GetType() & 0xCA00 ? sal_True : sal_False;   //TabFrm, CntntFrm, SectionFrm
1314cdf0e10cSrcweir }
IsRetoucheFrm() const1315cdf0e10cSrcweir inline sal_Bool SwFrm::IsRetoucheFrm() const
1316cdf0e10cSrcweir {
1317cdf0e10cSrcweir     return GetType() & 0xCA40 ? sal_True : sal_False;   //TabFrm, CntntFrm, SectionFrm, Ftnfrm
1318cdf0e10cSrcweir }
IsAccessibleFrm() const1319cdf0e10cSrcweir inline sal_Bool SwFrm::IsAccessibleFrm() const
1320cdf0e10cSrcweir {
1321cdf0e10cSrcweir     return GetType() & FRM_ACCESSIBLE ? sal_True : sal_False;
1322cdf0e10cSrcweir }
1323cdf0e10cSrcweir #endif
1324