xref: /aoo41x/main/sw/inc/pagedesc.hxx (revision 1d2dbeb0)
1*1d2dbeb0SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*1d2dbeb0SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*1d2dbeb0SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*1d2dbeb0SAndrew Rist  * distributed with this work for additional information
6*1d2dbeb0SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*1d2dbeb0SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*1d2dbeb0SAndrew Rist  * "License"); you may not use this file except in compliance
9*1d2dbeb0SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*1d2dbeb0SAndrew Rist  *
11*1d2dbeb0SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*1d2dbeb0SAndrew Rist  *
13*1d2dbeb0SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*1d2dbeb0SAndrew Rist  * software distributed under the License is distributed on an
15*1d2dbeb0SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*1d2dbeb0SAndrew Rist  * KIND, either express or implied.  See the License for the
17*1d2dbeb0SAndrew Rist  * specific language governing permissions and limitations
18*1d2dbeb0SAndrew Rist  * under the License.
19*1d2dbeb0SAndrew Rist  *
20*1d2dbeb0SAndrew Rist  *************************************************************/
21*1d2dbeb0SAndrew Rist 
22*1d2dbeb0SAndrew Rist 
23cdf0e10cSrcweir #ifndef _PAGEDESC_HXX
24cdf0e10cSrcweir #define _PAGEDESC_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include <tools/fract.hxx>
27cdf0e10cSrcweir #include <tools/color.hxx>
28cdf0e10cSrcweir #include <tools/string.hxx>
29cdf0e10cSrcweir #include "swdllapi.h"
30cdf0e10cSrcweir #include <swtypes.hxx>	//fuer SwTwips
31cdf0e10cSrcweir #include <frmfmt.hxx>
32cdf0e10cSrcweir //#ifndef _NUMRULE_HXX
33cdf0e10cSrcweir //#include <numrule.hxx>
34cdf0e10cSrcweir //#endif
35cdf0e10cSrcweir #include <editeng/numitem.hxx>
36cdf0e10cSrcweir 
37cdf0e10cSrcweir class SfxPoolItem;
38cdf0e10cSrcweir class SwTxtFmtColl;
39cdf0e10cSrcweir class SwNode;
40cdf0e10cSrcweir 
41cdf0e10cSrcweir //Separator line adjustment
42cdf0e10cSrcweir enum SwFtnAdj
43cdf0e10cSrcweir {
44cdf0e10cSrcweir 	FTNADJ_LEFT,
45cdf0e10cSrcweir 	FTNADJ_CENTER,
46cdf0e10cSrcweir 	FTNADJ_RIGHT
47cdf0e10cSrcweir };
48cdf0e10cSrcweir 
49cdf0e10cSrcweir //footnote information
50cdf0e10cSrcweir class SW_DLLPUBLIC SwPageFtnInfo
51cdf0e10cSrcweir {
52cdf0e10cSrcweir 	SwTwips 	nMaxHeight;		//maximum height of the footnote area.
53cdf0e10cSrcweir 	sal_uLong		nLineWidth;		//width of separator line
54cdf0e10cSrcweir 	Color		aLineColor;		//color of the separator line
55cdf0e10cSrcweir 	Fraction    aWidth;			//percentage width of the separator line.
56cdf0e10cSrcweir 	SwFtnAdj	eAdj;			//line adjustment.
57cdf0e10cSrcweir 	SwTwips		nTopDist;		//distance between body and separator.
58cdf0e10cSrcweir 	SwTwips		nBottomDist;	//distance between separator and first footnote
59cdf0e10cSrcweir 
60cdf0e10cSrcweir public:
GetHeight() const61cdf0e10cSrcweir 	SwTwips   	GetHeight() const 		{ return nMaxHeight; }
GetLineWidth() const62cdf0e10cSrcweir 	sal_uLong 			GetLineWidth() const { return nLineWidth; }
GetLineColor() const63cdf0e10cSrcweir 	const Color& 	GetLineColor() const { return aLineColor;}
GetWidth() const64cdf0e10cSrcweir 	const Fraction&	GetWidth() const 	{ return aWidth; }
GetAdj() const65cdf0e10cSrcweir 	SwFtnAdj	GetAdj()	const 		{ return eAdj; }
GetTopDist() const66cdf0e10cSrcweir 	SwTwips		GetTopDist()const 		{ return nTopDist; }
GetBottomDist() const67cdf0e10cSrcweir 	SwTwips		GetBottomDist() const 	{ return nBottomDist; }
68cdf0e10cSrcweir 
SetHeight(SwTwips nNew)69cdf0e10cSrcweir 	void SetHeight( SwTwips  nNew ) 	{ nMaxHeight = nNew; }
SetLineWidth(sal_uLong nSet)70cdf0e10cSrcweir 	void SetLineWidth(sal_uLong nSet  ) 	{ nLineWidth = nSet; }
SetLineColor(const Color & rCol)71cdf0e10cSrcweir 	void SetLineColor(const Color& rCol )  { aLineColor = rCol;}
SetWidth(const Fraction & rNew)72cdf0e10cSrcweir 	void SetWidth( const Fraction &rNew){ aWidth = rNew; }
SetAdj(SwFtnAdj eNew)73cdf0e10cSrcweir 	void SetAdj   ( SwFtnAdj eNew ) 	{ eAdj = eNew; }
SetTopDist(SwTwips nNew)74cdf0e10cSrcweir 	void SetTopDist   ( SwTwips nNew ) 	{ nTopDist = nNew; }
SetBottomDist(SwTwips nNew)75cdf0e10cSrcweir 	void SetBottomDist( SwTwips nNew ) 	{ nBottomDist = nNew; }
76cdf0e10cSrcweir 
77cdf0e10cSrcweir 	SwPageFtnInfo();
78cdf0e10cSrcweir 	SwPageFtnInfo( const SwPageFtnInfo& );
79cdf0e10cSrcweir 	SwPageFtnInfo& operator=( const SwPageFtnInfo& );
80cdf0e10cSrcweir 
81cdf0e10cSrcweir 	sal_Bool operator ==( const SwPageFtnInfo& ) const;
82cdf0e10cSrcweir };
83cdf0e10cSrcweir 
84cdf0e10cSrcweir /*
85cdf0e10cSrcweir  * Verwendung des UseOnPage (eUse) und der FrmFmt'e
86cdf0e10cSrcweir  *
87cdf0e10cSrcweir  *	RIGHT	- aMaster nur fuer rechte Seiten, linke  Seiten immer leer.
88cdf0e10cSrcweir  *	LEFT	- aLeft fuer linke  Seiten, rechte Seiten immer leer.
89cdf0e10cSrcweir  *			  aLeft ist eine Kopie des Master.
90cdf0e10cSrcweir  *  ALL		- aMaster fuer rechte Seiten, aLeft fuer Linke Seiten.
91cdf0e10cSrcweir  *			  aLeft ist eine Kopie des Master.
92cdf0e10cSrcweir  *	MIRROR	- aMaster fuer rechte Seiten, aLeft fuer linke Seiten.
93cdf0e10cSrcweir  *			  aLeft ist eine Kopie des Master, Raender sind gespiegelt.
94cdf0e10cSrcweir  *
95cdf0e10cSrcweir  * UI dreht auschliesslich am Master! aLeft wird beim Chg am Dokument
96cdf0e10cSrcweir  * enstprechend dem eUse eingestellt.
97cdf0e10cSrcweir  *
98cdf0e10cSrcweir  * Damit es die Filter etwas einfacher haben werden weitere Werte im
99cdf0e10cSrcweir  * eUse untergebracht:
100cdf0e10cSrcweir  *
101cdf0e10cSrcweir  * HEADERSHARE - Headerinhalt auf beiden Seiten gleich
102cdf0e10cSrcweir  * FOOTERSHARE - Footerinhalt auf beiden Seiten gleich
103cdf0e10cSrcweir  *
104cdf0e10cSrcweir  * Die Werte werden bei den entsprechenden Get-/Set-Methden ausmaskiert.
105cdf0e10cSrcweir  * Zugriff auf das volle eUse inclusive der Header-Footer information
106cdf0e10cSrcweir  * per ReadUseOn(), WriteUseOn() (fuer Filter und CopyCTor)!
107cdf0e10cSrcweir  *
108cdf0e10cSrcweir  * Die FrmFormate fuer Header/Footer werden anhand der Attribute fuer
109cdf0e10cSrcweir  * Header/Footer vom UI am Master eingestellt (Hoehe, Raender, Hintergrund...);
110cdf0e10cSrcweir  * Header/Footer fuer die Linke Seite werden entsprechen kopiert bzw.
111cdf0e10cSrcweir  * gespielt (Chg am Dokument).
112cdf0e10cSrcweir  * Das jew. Attribut fuer den Inhalt wird automatisch beim Chg am
113cdf0e10cSrcweir  * Dokument versorgt (entsprechen den SHARE-informationen werden Inhalte
114cdf0e10cSrcweir  * erzeugt bzw. entfernt).
115cdf0e10cSrcweir  *
116cdf0e10cSrcweir  */
117cdf0e10cSrcweir 
118cdf0e10cSrcweir typedef sal_uInt16 UseOnPage;
119cdf0e10cSrcweir namespace nsUseOnPage
120cdf0e10cSrcweir {
121cdf0e10cSrcweir     const UseOnPage PD_NONE           = 0x0000; //for internal use only.
122cdf0e10cSrcweir     const UseOnPage PD_LEFT           = 0x0001;
123cdf0e10cSrcweir     const UseOnPage PD_RIGHT          = 0x0002;
124cdf0e10cSrcweir     const UseOnPage PD_ALL            = 0x0003;
125cdf0e10cSrcweir     const UseOnPage PD_MIRROR         = 0x0007;
126cdf0e10cSrcweir     const UseOnPage PD_HEADERSHARE    = 0x0040;
127cdf0e10cSrcweir     const UseOnPage PD_FOOTERSHARE    = 0x0080;
128cdf0e10cSrcweir     const UseOnPage PD_NOHEADERSHARE  = 0x00BF; //for internal use only
129cdf0e10cSrcweir     const UseOnPage PD_NOFOOTERSHARE  = 0x007F; //for internal use only
130cdf0e10cSrcweir }
131cdf0e10cSrcweir 
132cdf0e10cSrcweir class SW_DLLPUBLIC SwPageDesc : public SwModify
133cdf0e10cSrcweir {
134cdf0e10cSrcweir 	friend class SwDoc;
135cdf0e10cSrcweir     friend class SwUndoPageDescExt;
136cdf0e10cSrcweir 
137cdf0e10cSrcweir 	String		aDescName;
138cdf0e10cSrcweir 	SvxNumberType	aNumType;
139cdf0e10cSrcweir 	SwFrmFmt	aMaster;
140cdf0e10cSrcweir 	SwFrmFmt	aLeft;
141cdf0e10cSrcweir 	SwDepend	aDepend;	// wg. Registerhaltigkeit
142cdf0e10cSrcweir 	SwPageDesc *pFollow;
143cdf0e10cSrcweir 	sal_uInt16		nRegHeight;	// Zeilenabstand und Fontascent der Vorlage
144cdf0e10cSrcweir 	sal_uInt16		nRegAscent; // fuer die Registerhaltigkeit
145cdf0e10cSrcweir 	UseOnPage	eUse;
146cdf0e10cSrcweir 	sal_Bool		bLandscape;
147cdf0e10cSrcweir 
148cdf0e10cSrcweir 	//Fussnoteninformationen
149cdf0e10cSrcweir 	SwPageFtnInfo aFtnInfo;
150cdf0e10cSrcweir 
151cdf0e10cSrcweir 	//Wird zum Spiegeln vom Chg (Doc) gerufen.
152cdf0e10cSrcweir 	//Kein Abgleich an anderer Stelle.
153cdf0e10cSrcweir 	SW_DLLPRIVATE void Mirror();
154cdf0e10cSrcweir 
155cdf0e10cSrcweir 	SW_DLLPRIVATE void ResetAllAttr( sal_Bool bLeft );
156cdf0e10cSrcweir 
157cdf0e10cSrcweir 	SW_DLLPRIVATE SwPageDesc(const String&, SwFrmFmt*, SwDoc *pDc );
158cdf0e10cSrcweir 
159cdf0e10cSrcweir protected:
160cdf0e10cSrcweir    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNewValue );
161cdf0e10cSrcweir 
162cdf0e10cSrcweir public:
GetName() const163cdf0e10cSrcweir 	const String &GetName() const { return aDescName; }
SetName(const String & rNewName)164cdf0e10cSrcweir 		  void 	  SetName( const String& rNewName ) { aDescName = rNewName; }
165cdf0e10cSrcweir 
GetLandscape() const166cdf0e10cSrcweir 	sal_Bool GetLandscape() const { return bLandscape; }
SetLandscape(sal_Bool bNew)167cdf0e10cSrcweir 	void SetLandscape( sal_Bool bNew ) { bLandscape = bNew; }
168cdf0e10cSrcweir 
GetNumType() const169cdf0e10cSrcweir 	const SvxNumberType &GetNumType() const { return aNumType; }
SetNumType(const SvxNumberType & rNew)170cdf0e10cSrcweir 		  void		 	SetNumType( const SvxNumberType& rNew ) { aNumType = rNew; }
171cdf0e10cSrcweir 
GetFtnInfo() const172cdf0e10cSrcweir 	const SwPageFtnInfo &GetFtnInfo() const { return aFtnInfo; }
GetFtnInfo()173cdf0e10cSrcweir 		  SwPageFtnInfo &GetFtnInfo()		{ return aFtnInfo; }
SetFtnInfo(const SwPageFtnInfo & rNew)174cdf0e10cSrcweir 	void  SetFtnInfo( const SwPageFtnInfo &rNew ) { aFtnInfo = rNew; }
175cdf0e10cSrcweir 
176cdf0e10cSrcweir 	inline sal_Bool IsHeaderShared() const;
177cdf0e10cSrcweir 	inline sal_Bool IsFooterShared() const;
178cdf0e10cSrcweir 	inline void ChgHeaderShare( sal_Bool bNew );
179cdf0e10cSrcweir 	inline void ChgFooterShare( sal_Bool bNew );
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 	inline void		 SetUseOn( UseOnPage eNew );
182cdf0e10cSrcweir 	inline UseOnPage GetUseOn() const;
183cdf0e10cSrcweir 
WriteUseOn(UseOnPage eNew)184cdf0e10cSrcweir 	void	  WriteUseOn( UseOnPage eNew ) { eUse = eNew; }
ReadUseOn() const185cdf0e10cSrcweir 	UseOnPage ReadUseOn () const { return eUse; }
186cdf0e10cSrcweir 
GetMaster()187cdf0e10cSrcweir 		  SwFrmFmt &GetMaster() { return aMaster; }
GetLeft()188cdf0e10cSrcweir 		  SwFrmFmt &GetLeft()   { return aLeft; }
GetMaster() const189cdf0e10cSrcweir 	const SwFrmFmt &GetMaster() const { return aMaster; }
GetLeft() const190cdf0e10cSrcweir 	const SwFrmFmt &GetLeft()   const { return aLeft; }
191cdf0e10cSrcweir 
192cdf0e10cSrcweir 	// Reset all attrs of the format but keep the ones a pagedesc
193cdf0e10cSrcweir 	// cannot live without.
194cdf0e10cSrcweir 	inline void ResetAllMasterAttr();
195cdf0e10cSrcweir 	inline void ResetAllLeftAttr();
196cdf0e10cSrcweir 
197cdf0e10cSrcweir 	//Mit den folgenden Methoden besorgt sich das Layout ein Format
198cdf0e10cSrcweir 	//um eine Seite erzeugen zu koennen
199cdf0e10cSrcweir 	inline SwFrmFmt *GetRightFmt();
200cdf0e10cSrcweir 	inline const SwFrmFmt *GetRightFmt() const;
201cdf0e10cSrcweir 	inline SwFrmFmt *GetLeftFmt();
202cdf0e10cSrcweir 	inline const SwFrmFmt *GetLeftFmt() const;
203cdf0e10cSrcweir 
GetRegHeight() const204cdf0e10cSrcweir 	sal_uInt16 GetRegHeight() const { return nRegHeight; }
GetRegAscent() const205cdf0e10cSrcweir 	sal_uInt16 GetRegAscent() const { return nRegAscent; }
SetRegHeight(sal_uInt16 nNew)206cdf0e10cSrcweir 	void SetRegHeight( sal_uInt16 nNew ){ nRegHeight = nNew; }
SetRegAscent(sal_uInt16 nNew)207cdf0e10cSrcweir 	void SetRegAscent( sal_uInt16 nNew ){ nRegAscent = nNew; }
208cdf0e10cSrcweir 
209cdf0e10cSrcweir 	inline void SetFollow( const SwPageDesc* pNew );
GetFollow() const210cdf0e10cSrcweir 	const SwPageDesc* GetFollow() const { return pFollow; }
GetFollow()211cdf0e10cSrcweir 		  SwPageDesc* GetFollow() { return pFollow; }
212cdf0e10cSrcweir 
213cdf0e10cSrcweir 	void SetRegisterFmtColl( const SwTxtFmtColl* rFmt );
214cdf0e10cSrcweir 	const SwTxtFmtColl* GetRegisterFmtColl() const;
215cdf0e10cSrcweir 	void RegisterChange();
216cdf0e10cSrcweir 
217cdf0e10cSrcweir 	// erfragen und setzen der PoolFormat-Id
GetPoolFmtId() const218cdf0e10cSrcweir 	sal_uInt16 GetPoolFmtId() const 		{ return aMaster.GetPoolFmtId(); }
SetPoolFmtId(sal_uInt16 nId)219cdf0e10cSrcweir 	void SetPoolFmtId( sal_uInt16 nId ) 	{ aMaster.SetPoolFmtId( nId ); }
GetPoolHelpId() const220cdf0e10cSrcweir 	sal_uInt16 GetPoolHelpId() const 		{ return aMaster.GetPoolHelpId(); }
SetPoolHelpId(sal_uInt16 nId)221cdf0e10cSrcweir 	void SetPoolHelpId( sal_uInt16 nId ) 	{ aMaster.SetPoolHelpId( nId ); }
GetPoolHlpFileId() const222cdf0e10cSrcweir 	sal_uInt8 GetPoolHlpFileId() const 		{ return aMaster.GetPoolHlpFileId(); }
SetPoolHlpFileId(sal_uInt8 nId)223cdf0e10cSrcweir 	void SetPoolHlpFileId( sal_uInt8 nId )	{ aMaster.SetPoolHlpFileId( nId ); }
224cdf0e10cSrcweir 
225cdf0e10cSrcweir 		// erfrage vom Client Informationen
226cdf0e10cSrcweir 	virtual sal_Bool GetInfo( SfxPoolItem& ) const;
227cdf0e10cSrcweir 
228cdf0e10cSrcweir 	const SwFrmFmt* GetPageFmtOfNode( const SwNode& rNd,
229cdf0e10cSrcweir 									sal_Bool bCheckForThisPgDc = sal_True ) const;
230cdf0e10cSrcweir 	sal_Bool IsFollowNextPageOfNode( const SwNode& rNd ) const;
231cdf0e10cSrcweir 
232cdf0e10cSrcweir 	//Given a SwNode return the pagedesc in use at that location.
233cdf0e10cSrcweir 	static const SwPageDesc* GetPageDescOfNode(const SwNode& rNd);
234cdf0e10cSrcweir 
235cdf0e10cSrcweir 	SwPageDesc& operator=( const SwPageDesc& );
236cdf0e10cSrcweir 
237cdf0e10cSrcweir 	SwPageDesc( const SwPageDesc& );
238cdf0e10cSrcweir 	~SwPageDesc();
239cdf0e10cSrcweir };
240cdf0e10cSrcweir 
SetFollow(const SwPageDesc * pNew)241cdf0e10cSrcweir inline void SwPageDesc::SetFollow( const SwPageDesc* pNew )
242cdf0e10cSrcweir {
243cdf0e10cSrcweir 	pFollow = pNew ? (SwPageDesc*)pNew : this;
244cdf0e10cSrcweir }
245cdf0e10cSrcweir 
IsHeaderShared() const246cdf0e10cSrcweir inline sal_Bool SwPageDesc::IsHeaderShared() const
247cdf0e10cSrcweir {
248cdf0e10cSrcweir 	return eUse & nsUseOnPage::PD_HEADERSHARE ? sal_True : sal_False;
249cdf0e10cSrcweir }
IsFooterShared() const250cdf0e10cSrcweir inline sal_Bool SwPageDesc::IsFooterShared() const
251cdf0e10cSrcweir {
252cdf0e10cSrcweir 	return eUse & nsUseOnPage::PD_FOOTERSHARE ? sal_True : sal_False;
253cdf0e10cSrcweir }
ChgHeaderShare(sal_Bool bNew)254cdf0e10cSrcweir inline void SwPageDesc::ChgHeaderShare( sal_Bool bNew )
255cdf0e10cSrcweir {
256cdf0e10cSrcweir 	if ( bNew )
257cdf0e10cSrcweir 		eUse = (UseOnPage) (eUse | nsUseOnPage::PD_HEADERSHARE);
258cdf0e10cSrcweir 		// (sal_uInt16&)eUse |= (sal_uInt16)nsUseOnPage::PD_HEADERSHARE;
259cdf0e10cSrcweir 	else
260cdf0e10cSrcweir 		eUse = (UseOnPage) (eUse & nsUseOnPage::PD_NOHEADERSHARE);
261cdf0e10cSrcweir 		// (sal_uInt16&)eUse &= (sal_uInt16)nsUseOnPage::PD_NOHEADERSHARE;
262cdf0e10cSrcweir }
ChgFooterShare(sal_Bool bNew)263cdf0e10cSrcweir inline void SwPageDesc::ChgFooterShare( sal_Bool bNew )
264cdf0e10cSrcweir {
265cdf0e10cSrcweir 	if ( bNew )
266cdf0e10cSrcweir 		eUse = (UseOnPage) (eUse | nsUseOnPage::PD_FOOTERSHARE);
267cdf0e10cSrcweir 		// (sal_uInt16&)eUse |= (sal_uInt16)nsUseOnPage::PD_FOOTERSHARE;
268cdf0e10cSrcweir 	else
269cdf0e10cSrcweir 		eUse = (UseOnPage) (eUse & nsUseOnPage::PD_NOFOOTERSHARE);
270cdf0e10cSrcweir 		// (sal_uInt16&)eUse &= (sal_uInt16)nsUseOnPage::PD_NOFOOTERSHARE;
271cdf0e10cSrcweir }
SetUseOn(UseOnPage eNew)272cdf0e10cSrcweir inline void	SwPageDesc::SetUseOn( UseOnPage eNew )
273cdf0e10cSrcweir {
274cdf0e10cSrcweir 	UseOnPage eTmp = nsUseOnPage::PD_NONE;
275cdf0e10cSrcweir 	if ( eUse & nsUseOnPage::PD_HEADERSHARE )
276cdf0e10cSrcweir 		eTmp = nsUseOnPage::PD_HEADERSHARE;
277cdf0e10cSrcweir 		// (sal_uInt16&)eTmp |= (sal_uInt16)nsUseOnPage::PD_HEADERSHARE;
278cdf0e10cSrcweir 	if ( eUse & nsUseOnPage::PD_FOOTERSHARE )
279cdf0e10cSrcweir 		eTmp = (UseOnPage) (eTmp | nsUseOnPage::PD_FOOTERSHARE);
280cdf0e10cSrcweir 		// (sal_uInt16&)eTmp |= (sal_uInt16)nsUseOnPage::PD_FOOTERSHARE;
281cdf0e10cSrcweir 	eUse = (UseOnPage) (eTmp | eNew);
282cdf0e10cSrcweir 	// (sal_uInt16&)eUse = eTmp | eNew;
283cdf0e10cSrcweir }
GetUseOn() const284cdf0e10cSrcweir inline UseOnPage SwPageDesc::GetUseOn() const
285cdf0e10cSrcweir {
286cdf0e10cSrcweir 	UseOnPage eRet = eUse;
287cdf0e10cSrcweir 	eRet = (UseOnPage) (eRet & nsUseOnPage::PD_NOHEADERSHARE);
288cdf0e10cSrcweir 	// (sal_uInt16&)eRet &= (sal_uInt16)nsUseOnPage::PD_NOHEADERSHARE;
289cdf0e10cSrcweir 	eRet = (UseOnPage) (eRet & nsUseOnPage::PD_NOFOOTERSHARE);
290cdf0e10cSrcweir 	// (sal_uInt16&)eRet &= (sal_uInt16)nsUseOnPage::PD_NOFOOTERSHARE;
291cdf0e10cSrcweir 	return eRet;
292cdf0e10cSrcweir }
293cdf0e10cSrcweir 
ResetAllMasterAttr()294cdf0e10cSrcweir inline void SwPageDesc::ResetAllMasterAttr()
295cdf0e10cSrcweir {
296cdf0e10cSrcweir 	ResetAllAttr( sal_False );
297cdf0e10cSrcweir }
298cdf0e10cSrcweir 
ResetAllLeftAttr()299cdf0e10cSrcweir inline void SwPageDesc::ResetAllLeftAttr()
300cdf0e10cSrcweir {
301cdf0e10cSrcweir 	ResetAllAttr( sal_True );
302cdf0e10cSrcweir }
303cdf0e10cSrcweir 
GetRightFmt()304cdf0e10cSrcweir inline SwFrmFmt *SwPageDesc::GetRightFmt()
305cdf0e10cSrcweir {
306cdf0e10cSrcweir 	return nsUseOnPage::PD_RIGHT & eUse ? &aMaster : 0;
307cdf0e10cSrcweir }
GetRightFmt() const308cdf0e10cSrcweir inline const SwFrmFmt *SwPageDesc::GetRightFmt() const
309cdf0e10cSrcweir {
310cdf0e10cSrcweir 	return nsUseOnPage::PD_RIGHT & eUse ? &aMaster : 0;
311cdf0e10cSrcweir }
GetLeftFmt()312cdf0e10cSrcweir inline SwFrmFmt *SwPageDesc::GetLeftFmt()
313cdf0e10cSrcweir {
314cdf0e10cSrcweir 	return nsUseOnPage::PD_LEFT & eUse ? &aLeft : 0;
315cdf0e10cSrcweir }
GetLeftFmt() const316cdf0e10cSrcweir inline const SwFrmFmt *SwPageDesc::GetLeftFmt() const
317cdf0e10cSrcweir {
318cdf0e10cSrcweir 	return nsUseOnPage::PD_LEFT & eUse ? &aLeft : 0;
319cdf0e10cSrcweir }
320cdf0e10cSrcweir 
321cdf0e10cSrcweir class SwPageDescExt
322cdf0e10cSrcweir {
323cdf0e10cSrcweir     SwPageDesc aPageDesc;
324cdf0e10cSrcweir     SwDoc * pDoc;
325cdf0e10cSrcweir     String sFollow;
326cdf0e10cSrcweir 
327cdf0e10cSrcweir     void SetPageDesc(const SwPageDesc & aPageDesc);
328cdf0e10cSrcweir 
329cdf0e10cSrcweir public:
330cdf0e10cSrcweir     SwPageDescExt(const SwPageDesc & rPageDesc, SwDoc * pDoc);
331cdf0e10cSrcweir     SwPageDescExt(const SwPageDescExt & rSrc);
332cdf0e10cSrcweir     ~SwPageDescExt();
333cdf0e10cSrcweir 
334cdf0e10cSrcweir     SwPageDescExt & operator = (const SwPageDescExt & rSrc);
335cdf0e10cSrcweir     SwPageDescExt & operator = (const SwPageDesc & rSrc);
336cdf0e10cSrcweir 
337cdf0e10cSrcweir     const String & GetName() const;
338cdf0e10cSrcweir 
339cdf0e10cSrcweir     operator SwPageDesc() const; // #i7983#
340cdf0e10cSrcweir };
341cdf0e10cSrcweir 
342cdf0e10cSrcweir 
343cdf0e10cSrcweir SwPageDesc* GetPageDescByName_Impl(SwDoc& rDoc, const String& rName);
344cdf0e10cSrcweir 
345cdf0e10cSrcweir #endif	//_PAGEDESC_HXX
346