xref: /aoo41x/main/sc/source/ui/inc/printfun.hxx (revision cdf0e10c)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir #ifndef SC_PRINTFUN_HXX
29*cdf0e10cSrcweir #define SC_PRINTFUN_HXX
30*cdf0e10cSrcweir 
31*cdf0e10cSrcweir 
32*cdf0e10cSrcweir #include "pagepar.hxx"
33*cdf0e10cSrcweir #include "editutil.hxx"
34*cdf0e10cSrcweir 
35*cdf0e10cSrcweir #ifndef _PRINT_HXX //autogen
36*cdf0e10cSrcweir #include <vcl/print.hxx>
37*cdf0e10cSrcweir #endif
38*cdf0e10cSrcweir 
39*cdf0e10cSrcweir class SfxPrinter;
40*cdf0e10cSrcweir class SfxProgress;
41*cdf0e10cSrcweir class ScDocShell;
42*cdf0e10cSrcweir class ScDocument;
43*cdf0e10cSrcweir class ScViewData;
44*cdf0e10cSrcweir class SfxItemSet;
45*cdf0e10cSrcweir class ScPageHFItem;
46*cdf0e10cSrcweir class EditTextObject;
47*cdf0e10cSrcweir class MultiSelection;
48*cdf0e10cSrcweir class ScHeaderEditEngine;
49*cdf0e10cSrcweir class ScPageBreakData;
50*cdf0e10cSrcweir class ScPreviewLocationData;
51*cdf0e10cSrcweir class ScPrintOptions;
52*cdf0e10cSrcweir class SvxBoxItem;
53*cdf0e10cSrcweir class SvxBrushItem;
54*cdf0e10cSrcweir class SvxShadowItem;
55*cdf0e10cSrcweir class FmFormView;
56*cdf0e10cSrcweir 
57*cdf0e10cSrcweir #define RANGENO_NORANGE				USHRT_MAX
58*cdf0e10cSrcweir 
59*cdf0e10cSrcweir #define PRINT_HEADER_WIDTH			(1.0 * TWIPS_PER_CM)
60*cdf0e10cSrcweir #define PRINT_HEADER_HEIGHT 		(12.8 * TWIPS_PER_POINT)
61*cdf0e10cSrcweir #define PRINT_HEADER_FONTHEIGHT 	200
62*cdf0e10cSrcweir 
63*cdf0e10cSrcweir 
64*cdf0e10cSrcweir 											//	Einstellungen fuer Kopf-/Fusszeilen
65*cdf0e10cSrcweir struct ScPrintHFParam
66*cdf0e10cSrcweir {
67*cdf0e10cSrcweir 	sal_Bool				bEnable;
68*cdf0e10cSrcweir 	sal_Bool				bDynamic;
69*cdf0e10cSrcweir 	sal_Bool				bShared;
70*cdf0e10cSrcweir 	long				nHeight;			//	insgesamt (Hoehe+Abstand+Rahmen)
71*cdf0e10cSrcweir 	long				nManHeight;			//	eingestellte Groesse (Min. bei dynamisch)
72*cdf0e10cSrcweir 	sal_uInt16				nDistance;
73*cdf0e10cSrcweir 	sal_uInt16				nLeft;				//	Raender
74*cdf0e10cSrcweir 	sal_uInt16				nRight;
75*cdf0e10cSrcweir 	const ScPageHFItem* pLeft;
76*cdf0e10cSrcweir 	const ScPageHFItem* pRight;
77*cdf0e10cSrcweir 	const SvxBoxItem*	pBorder;
78*cdf0e10cSrcweir 	const SvxBrushItem* pBack;
79*cdf0e10cSrcweir 	const SvxShadowItem* pShadow;
80*cdf0e10cSrcweir };
81*cdf0e10cSrcweir 
82*cdf0e10cSrcweir 
83*cdf0e10cSrcweir // "Ersatz" fuer SV-JobSetup:
84*cdf0e10cSrcweir 
85*cdf0e10cSrcweir class ScJobSetup
86*cdf0e10cSrcweir {
87*cdf0e10cSrcweir public:
88*cdf0e10cSrcweir 	ScJobSetup( SfxPrinter* pPrinter );
89*cdf0e10cSrcweir 
90*cdf0e10cSrcweir 	Size		aUserSize;
91*cdf0e10cSrcweir 	MapMode		aUserMapMode;
92*cdf0e10cSrcweir 	Paper	ePaper;
93*cdf0e10cSrcweir 	Orientation eOrientation;
94*cdf0e10cSrcweir 	sal_uInt16		nPaperBin;
95*cdf0e10cSrcweir };
96*cdf0e10cSrcweir 
97*cdf0e10cSrcweir struct ScPrintState							//	Variablen aus ScPrintFunc retten
98*cdf0e10cSrcweir {
99*cdf0e10cSrcweir 	SCTAB	nPrintTab;
100*cdf0e10cSrcweir 	SCCOL	nStartCol;
101*cdf0e10cSrcweir 	SCROW	nStartRow;
102*cdf0e10cSrcweir 	SCCOL	nEndCol;
103*cdf0e10cSrcweir 	SCROW	nEndRow;
104*cdf0e10cSrcweir 	sal_uInt16	nZoom;
105*cdf0e10cSrcweir 	size_t	nPagesX;
106*cdf0e10cSrcweir 	size_t	nPagesY;
107*cdf0e10cSrcweir 	long	nTabPages;
108*cdf0e10cSrcweir 	long	nTotalPages;
109*cdf0e10cSrcweir 	long	nPageStart;
110*cdf0e10cSrcweir 	long	nDocPages;
111*cdf0e10cSrcweir };
112*cdf0e10cSrcweir 
113*cdf0e10cSrcweir class ScPageRowEntry
114*cdf0e10cSrcweir {
115*cdf0e10cSrcweir private:
116*cdf0e10cSrcweir 	SCROW	nStartRow;
117*cdf0e10cSrcweir 	SCROW	nEndRow;
118*cdf0e10cSrcweir 	size_t	nPagesX;
119*cdf0e10cSrcweir 	sal_Bool*	pHidden;
120*cdf0e10cSrcweir 	//!		Anzahl wirklich sichtbarer cachen???
121*cdf0e10cSrcweir 
122*cdf0e10cSrcweir public:
123*cdf0e10cSrcweir 			ScPageRowEntry()	{ nStartRow = nEndRow = 0; nPagesX = 0; pHidden = NULL; }
124*cdf0e10cSrcweir 			~ScPageRowEntry()	{ delete[] pHidden; }
125*cdf0e10cSrcweir 
126*cdf0e10cSrcweir 			ScPageRowEntry(const ScPageRowEntry& r);
127*cdf0e10cSrcweir 	const ScPageRowEntry& operator=(const ScPageRowEntry& r);
128*cdf0e10cSrcweir 
129*cdf0e10cSrcweir 	SCROW	GetStartRow() const		{ return nStartRow; }
130*cdf0e10cSrcweir 	SCROW	GetEndRow() const		{ return nEndRow; }
131*cdf0e10cSrcweir 	size_t	GetPagesX() const		{ return nPagesX; }
132*cdf0e10cSrcweir 	void	SetStartRow(SCROW n)	{ nStartRow = n; }
133*cdf0e10cSrcweir 	void	SetEndRow(SCROW n)		{ nEndRow = n; }
134*cdf0e10cSrcweir 
135*cdf0e10cSrcweir 	void	SetPagesX(size_t nNew);
136*cdf0e10cSrcweir 	void	SetHidden(size_t nX);
137*cdf0e10cSrcweir 	sal_Bool	IsHidden(size_t nX) const;
138*cdf0e10cSrcweir 
139*cdf0e10cSrcweir 	size_t	CountVisible() const;
140*cdf0e10cSrcweir };
141*cdf0e10cSrcweir 
142*cdf0e10cSrcweir class ScPrintFunc
143*cdf0e10cSrcweir {
144*cdf0e10cSrcweir private:
145*cdf0e10cSrcweir 	ScDocShell* 		pDocShell;
146*cdf0e10cSrcweir 	ScDocument* 		pDoc;
147*cdf0e10cSrcweir 	SfxPrinter* 		pPrinter;
148*cdf0e10cSrcweir 	OutputDevice*		pDev;
149*cdf0e10cSrcweir 	FmFormView*			pDrawView;
150*cdf0e10cSrcweir 
151*cdf0e10cSrcweir 	MapMode				aOldPrinterMode;	//	MapMode vor dem Aufruf
152*cdf0e10cSrcweir 
153*cdf0e10cSrcweir 	Point				aSrcOffset;			//	Papier-1/100 mm
154*cdf0e10cSrcweir 	Point				aOffset;			//	mit Faktor aus Seitenformat skaliert
155*cdf0e10cSrcweir 	sal_uInt16				nManualZoom;		//	Zoom in Preview (Prozent)
156*cdf0e10cSrcweir 	sal_Bool				bClearWin;			//	Ausgabe vorher loeschen
157*cdf0e10cSrcweir 	sal_Bool				bUseStyleColor;
158*cdf0e10cSrcweir 	sal_Bool				bIsRender;
159*cdf0e10cSrcweir 
160*cdf0e10cSrcweir 	SCTAB				nPrintTab;
161*cdf0e10cSrcweir 	long				nPageStart;			//	Offset fuer erste Seite
162*cdf0e10cSrcweir 	long				nDocPages;			//	Seiten im Dokument
163*cdf0e10cSrcweir 
164*cdf0e10cSrcweir 	const ScRange*		pUserArea;			//	Selektion, wenn im Dialog eingestellt
165*cdf0e10cSrcweir 
166*cdf0e10cSrcweir 	const SfxItemSet*	pParamSet;			//	eingestellte Vorlage
167*cdf0e10cSrcweir 	sal_Bool				bState;				//	aus State-struct erzeugt
168*cdf0e10cSrcweir 
169*cdf0e10cSrcweir 											//	Parameter aus Vorlage:
170*cdf0e10cSrcweir 	sal_uInt16				nLeftMargin;
171*cdf0e10cSrcweir 	sal_uInt16				nTopMargin;
172*cdf0e10cSrcweir 	sal_uInt16				nRightMargin;
173*cdf0e10cSrcweir 	sal_uInt16				nBottomMargin;
174*cdf0e10cSrcweir 	sal_Bool				bCenterHor;
175*cdf0e10cSrcweir 	sal_Bool				bCenterVer;
176*cdf0e10cSrcweir 	sal_Bool				bLandscape;
177*cdf0e10cSrcweir 	sal_Bool				bSourceRangeValid;
178*cdf0e10cSrcweir 
179*cdf0e10cSrcweir 	sal_uInt16				nPageUsage;
180*cdf0e10cSrcweir 	Size				aPageSize;			//	Drucker-Twips
181*cdf0e10cSrcweir 	const SvxBoxItem*	pBorderItem;
182*cdf0e10cSrcweir 	const SvxBrushItem* pBackgroundItem;
183*cdf0e10cSrcweir 	const SvxShadowItem* pShadowItem;
184*cdf0e10cSrcweir 
185*cdf0e10cSrcweir 	ScRange				aLastSourceRange;
186*cdf0e10cSrcweir 	ScPrintHFParam		aHdr;
187*cdf0e10cSrcweir 	ScPrintHFParam		aFtr;
188*cdf0e10cSrcweir 	ScPageTableParam	aTableParam;
189*cdf0e10cSrcweir 	ScPageAreaParam 	aAreaParam;
190*cdf0e10cSrcweir 
191*cdf0e10cSrcweir 											//	berechnete Werte:
192*cdf0e10cSrcweir 	sal_uInt16				nZoom;
193*cdf0e10cSrcweir 	sal_Bool				bPrintCurrentTable;
194*cdf0e10cSrcweir 	sal_Bool				bMultiArea;
195*cdf0e10cSrcweir 	long				nTabPages;
196*cdf0e10cSrcweir 	long				nTotalPages;
197*cdf0e10cSrcweir 
198*cdf0e10cSrcweir 	Rectangle			aPageRect;			//	Dokument-Twips
199*cdf0e10cSrcweir 
200*cdf0e10cSrcweir 	MapMode 			aLogicMode; 		//	in DoPrint gesetzt
201*cdf0e10cSrcweir 	MapMode 			aOffsetMode;
202*cdf0e10cSrcweir 	MapMode 			aTwipMode;
203*cdf0e10cSrcweir 	double				nScaleX;
204*cdf0e10cSrcweir 	double				nScaleY;
205*cdf0e10cSrcweir 
206*cdf0e10cSrcweir 	SCCOL				nRepeatStartCol;
207*cdf0e10cSrcweir 	SCCOL				nRepeatEndCol;
208*cdf0e10cSrcweir 	SCROW				nRepeatStartRow;
209*cdf0e10cSrcweir 	SCROW				nRepeatEndRow;
210*cdf0e10cSrcweir 
211*cdf0e10cSrcweir 	SCCOL				nStartCol;
212*cdf0e10cSrcweir 	SCROW				nStartRow;
213*cdf0e10cSrcweir 	SCCOL				nEndCol;
214*cdf0e10cSrcweir 	SCROW				nEndRow;
215*cdf0e10cSrcweir 
216*cdf0e10cSrcweir 	SCCOL*              pPageEndX;			// Seitenaufteilung
217*cdf0e10cSrcweir 	SCROW*              pPageEndY;
218*cdf0e10cSrcweir 	ScPageRowEntry*		pPageRows;
219*cdf0e10cSrcweir 	size_t				nPagesX;
220*cdf0e10cSrcweir 	size_t				nPagesY;
221*cdf0e10cSrcweir 	size_t				nTotalY;
222*cdf0e10cSrcweir 
223*cdf0e10cSrcweir 	ScHeaderEditEngine*	pEditEngine;
224*cdf0e10cSrcweir 	SfxItemSet* 		pEditDefaults;
225*cdf0e10cSrcweir 
226*cdf0e10cSrcweir 	ScHeaderFieldData	aFieldData;
227*cdf0e10cSrcweir 
228*cdf0e10cSrcweir 	List				aNotePosList;		//	Reihenfolge der Notizen
229*cdf0e10cSrcweir 
230*cdf0e10cSrcweir 	ScPageBreakData*	pPageData;			// zum Eintragen der Umbrueche etc.
231*cdf0e10cSrcweir 
232*cdf0e10cSrcweir public:
233*cdf0e10cSrcweir 					ScPrintFunc( ScDocShell* pShell, SfxPrinter* pNewPrinter, SCTAB nTab,
234*cdf0e10cSrcweir 								 long nPage = 0, long nDocP = 0,
235*cdf0e10cSrcweir 								 const ScRange* pArea = NULL,
236*cdf0e10cSrcweir 								 const ScPrintOptions* pOptions = NULL,
237*cdf0e10cSrcweir 								 ScPageBreakData* pData = NULL );
238*cdf0e10cSrcweir 
239*cdf0e10cSrcweir 					// ctors for device other than printer - for preview and pdf:
240*cdf0e10cSrcweir 
241*cdf0e10cSrcweir 					ScPrintFunc( OutputDevice* pOutDev, ScDocShell* pShell, SCTAB nTab,
242*cdf0e10cSrcweir 								 long nPage = 0, long nDocP = 0,
243*cdf0e10cSrcweir 								 const ScRange* pArea = NULL,
244*cdf0e10cSrcweir 								 const ScPrintOptions* pOptions = NULL );
245*cdf0e10cSrcweir 
246*cdf0e10cSrcweir 					ScPrintFunc( OutputDevice* pOutDev, ScDocShell* pShell,
247*cdf0e10cSrcweir 								 const ScPrintState& rState,
248*cdf0e10cSrcweir 								 const ScPrintOptions* pOptions );
249*cdf0e10cSrcweir 
250*cdf0e10cSrcweir 					~ScPrintFunc();
251*cdf0e10cSrcweir 
252*cdf0e10cSrcweir 	static void 	DrawToDev( ScDocument* pDoc, OutputDevice* pDev, double nPrintFactor,
253*cdf0e10cSrcweir 								const Rectangle& rBound, ScViewData* pViewData, sal_Bool bMetaFile );
254*cdf0e10cSrcweir 
255*cdf0e10cSrcweir 	void			SetDrawView( FmFormView* pNew );
256*cdf0e10cSrcweir 
257*cdf0e10cSrcweir 	void			SetOffset( const Point& rOfs );
258*cdf0e10cSrcweir 	void			SetManualZoom( sal_uInt16 nNewZoom );
259*cdf0e10cSrcweir 	void			SetDateTime( const Date& rDate, const Time& rTime );
260*cdf0e10cSrcweir 
261*cdf0e10cSrcweir 	void			SetClearFlag( sal_Bool bFlag );
262*cdf0e10cSrcweir 	void			SetUseStyleColor( sal_Bool bFlag );
263*cdf0e10cSrcweir 	void			SetRenderFlag( sal_Bool bFlag );
264*cdf0e10cSrcweir 
265*cdf0e10cSrcweir     void            SetExclusivelyDrawOleAndDrawObjects();//for printing selected objects without surrounding cell contents
266*cdf0e10cSrcweir 
267*cdf0e10cSrcweir 	sal_Bool			UpdatePages();
268*cdf0e10cSrcweir 
269*cdf0e10cSrcweir 	void			ApplyPrintSettings();		// aus DoPrint() schon gerufen
270*cdf0e10cSrcweir 	long			DoPrint( const MultiSelection& rPageRanges,
271*cdf0e10cSrcweir                                 long nStartPage, long nDisplayStart, sal_Bool bDoPrint,
272*cdf0e10cSrcweir                                 ScPreviewLocationData* pLocationData );
273*cdf0e10cSrcweir 
274*cdf0e10cSrcweir 					//	Werte abfragen - sofort
275*cdf0e10cSrcweir 
276*cdf0e10cSrcweir 	Size			GetPageSize() const { return aPageSize; }
277*cdf0e10cSrcweir 	Size			GetDataSize() const;
278*cdf0e10cSrcweir 	void			GetScaleData( Size& rPhysSize, long& rDocHdr, long& rDocFtr );
279*cdf0e10cSrcweir 	long			GetFirstPageNo() const	{ return aTableParam.nFirstPageNo; }
280*cdf0e10cSrcweir 
281*cdf0e10cSrcweir 					//	letzte Werte abfragen - nach DoPrint !!!
282*cdf0e10cSrcweir 
283*cdf0e10cSrcweir 	double			GetScaleX() const { return nScaleX; }
284*cdf0e10cSrcweir 	double			GetScaleY() const { return nScaleY; }
285*cdf0e10cSrcweir 	long			GetTotalPages() const { return nTotalPages; }
286*cdf0e10cSrcweir 	sal_uInt16			GetZoom() const { return nZoom; }
287*cdf0e10cSrcweir 
288*cdf0e10cSrcweir 	void			ResetBreaks( SCTAB nTab );
289*cdf0e10cSrcweir 
290*cdf0e10cSrcweir 	void			GetPrintState( ScPrintState& rState );
291*cdf0e10cSrcweir 	sal_Bool			GetLastSourceRange( ScRange& rRange ) const;
292*cdf0e10cSrcweir     sal_uInt16          GetLeftMargin() const{return nLeftMargin;}
293*cdf0e10cSrcweir     sal_uInt16          GetRightMargin() const{return nRightMargin;}
294*cdf0e10cSrcweir     sal_uInt16          GetTopMargin() const{return nTopMargin;}
295*cdf0e10cSrcweir     sal_uInt16          GetBottomMargin() const{return nBottomMargin;}
296*cdf0e10cSrcweir     void            SetLeftMargin(sal_uInt16 nRulerLeftDistance){ nLeftMargin = nRulerLeftDistance; }
297*cdf0e10cSrcweir     void            SetRightMargin(sal_uInt16 nRulerRightDistance){ nRightMargin = nRulerRightDistance; }
298*cdf0e10cSrcweir     void            SetTopMargin(sal_uInt16 nRulerTopDistance){ nTopMargin = nRulerTopDistance; }
299*cdf0e10cSrcweir     void            SetBottomMargin(sal_uInt16 nRulerBottomDistance){ nBottomMargin = nRulerBottomDistance; }
300*cdf0e10cSrcweir     ScPrintHFParam  GetHeader(){return aHdr;}
301*cdf0e10cSrcweir     ScPrintHFParam  GetFooter(){return aFtr;}
302*cdf0e10cSrcweir 
303*cdf0e10cSrcweir private:
304*cdf0e10cSrcweir 	void			Construct( const ScPrintOptions* pOptions );
305*cdf0e10cSrcweir 	void			InitParam( const ScPrintOptions* pOptions );
306*cdf0e10cSrcweir 	void			CalcZoom( sal_uInt16 nRangeNo );
307*cdf0e10cSrcweir 	void			CalcPages();
308*cdf0e10cSrcweir 	long			CountPages();
309*cdf0e10cSrcweir 	long			CountNotePages();
310*cdf0e10cSrcweir 
311*cdf0e10cSrcweir 	sal_Bool			AdjustPrintArea( sal_Bool bNew );
312*cdf0e10cSrcweir 
313*cdf0e10cSrcweir 	Size			GetDocPageSize();
314*cdf0e10cSrcweir 
315*cdf0e10cSrcweir 	long			TextHeight( const EditTextObject* pObject );
316*cdf0e10cSrcweir 	void			MakeEditEngine();
317*cdf0e10cSrcweir 	void			UpdateHFHeight( ScPrintHFParam& rParam );
318*cdf0e10cSrcweir 
319*cdf0e10cSrcweir 	void			InitModes();
320*cdf0e10cSrcweir 
321*cdf0e10cSrcweir 	sal_Bool			IsLeft( long nPageNo );
322*cdf0e10cSrcweir 	sal_Bool			IsMirror( long nPageNo );
323*cdf0e10cSrcweir 	void			ReplaceFields( long nPageNo );		// aendert Text in pEditEngine
324*cdf0e10cSrcweir 	void			MakeTableString();				 	// setzt aTableStr
325*cdf0e10cSrcweir 
326*cdf0e10cSrcweir 	void			PrintPage( long nPageNo,
327*cdf0e10cSrcweir 									SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
328*cdf0e10cSrcweir 									sal_Bool bDoPrint, ScPreviewLocationData* pLocationData );
329*cdf0e10cSrcweir 	void			PrintArea( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
330*cdf0e10cSrcweir 									long nScrX, long nScrY,
331*cdf0e10cSrcweir 									sal_Bool bShLeft, sal_Bool bShTop, sal_Bool bShRight, sal_Bool bShBottom );
332*cdf0e10cSrcweir 	void			LocateArea( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
333*cdf0e10cSrcweir 									long nScrX, long nScrY, sal_Bool bRepCol, sal_Bool bRepRow,
334*cdf0e10cSrcweir 									ScPreviewLocationData& rLocationData );
335*cdf0e10cSrcweir 	void			PrintColHdr( SCCOL nX1, SCCOL nX2, long nScrX, long nScrY );
336*cdf0e10cSrcweir 	void			PrintRowHdr( SCROW nY1, SCROW nY2, long nScrX, long nScrY );
337*cdf0e10cSrcweir 	void			LocateColHdr( SCCOL nX1, SCCOL nX2, long nScrX, long nScrY,
338*cdf0e10cSrcweir 								sal_Bool bRepCol, ScPreviewLocationData& rLocationData );
339*cdf0e10cSrcweir 	void			LocateRowHdr( SCROW nY1, SCROW nY2, long nScrX, long nScrY,
340*cdf0e10cSrcweir 								sal_Bool bRepRow, ScPreviewLocationData& rLocationData );
341*cdf0e10cSrcweir 	void			PrintHF( long nPageNo, sal_Bool bHeader, long nStartY,
342*cdf0e10cSrcweir 									sal_Bool bDoPrint, ScPreviewLocationData* pLocationData );
343*cdf0e10cSrcweir 
344*cdf0e10cSrcweir 	long			PrintNotes( long nPageNo, long nNoteStart, sal_Bool bDoPrint, ScPreviewLocationData* pLocationData );
345*cdf0e10cSrcweir 	long			DoNotes( long nNoteStart, sal_Bool bDoPrint, ScPreviewLocationData* pLocationData );
346*cdf0e10cSrcweir 
347*cdf0e10cSrcweir 	void			DrawBorder( long nScrX, long nScrY, long nScrW, long nScrH,
348*cdf0e10cSrcweir 									const SvxBoxItem* pBorderData,
349*cdf0e10cSrcweir 									const SvxBrushItem* pBackground,
350*cdf0e10cSrcweir 									const SvxShadowItem* pShadow );
351*cdf0e10cSrcweir 
352*cdf0e10cSrcweir 	void			FillPageData();
353*cdf0e10cSrcweir };
354*cdf0e10cSrcweir 
355*cdf0e10cSrcweir 
356*cdf0e10cSrcweir 
357*cdf0e10cSrcweir #endif
358*cdf0e10cSrcweir 
359