xref: /aoo41x/main/sc/source/ui/inc/printfun.hxx (revision 590a31a1)
138d50f7bSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
338d50f7bSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
438d50f7bSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
538d50f7bSAndrew Rist  * distributed with this work for additional information
638d50f7bSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
738d50f7bSAndrew Rist  * to you under the Apache License, Version 2.0 (the
838d50f7bSAndrew Rist  * "License"); you may not use this file except in compliance
938d50f7bSAndrew Rist  * with the License.  You may obtain a copy of the License at
1038d50f7bSAndrew Rist  *
1138d50f7bSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
1238d50f7bSAndrew Rist  *
1338d50f7bSAndrew Rist  * Unless required by applicable law or agreed to in writing,
1438d50f7bSAndrew Rist  * software distributed under the License is distributed on an
1538d50f7bSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1638d50f7bSAndrew Rist  * KIND, either express or implied.  See the License for the
1738d50f7bSAndrew Rist  * specific language governing permissions and limitations
1838d50f7bSAndrew Rist  * under the License.
1938d50f7bSAndrew Rist  *
2038d50f7bSAndrew Rist  *************************************************************/
2138d50f7bSAndrew Rist 
2238d50f7bSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SC_PRINTFUN_HXX
25cdf0e10cSrcweir #define SC_PRINTFUN_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #include "pagepar.hxx"
29cdf0e10cSrcweir #include "editutil.hxx"
30cdf0e10cSrcweir 
31cdf0e10cSrcweir #ifndef _PRINT_HXX //autogen
32cdf0e10cSrcweir #include <vcl/print.hxx>
33cdf0e10cSrcweir #endif
34cdf0e10cSrcweir 
35cdf0e10cSrcweir class SfxPrinter;
36cdf0e10cSrcweir class SfxProgress;
37cdf0e10cSrcweir class ScDocShell;
38cdf0e10cSrcweir class ScDocument;
39cdf0e10cSrcweir class ScViewData;
40cdf0e10cSrcweir class SfxItemSet;
41cdf0e10cSrcweir class ScPageHFItem;
42cdf0e10cSrcweir class EditTextObject;
43cdf0e10cSrcweir class MultiSelection;
44cdf0e10cSrcweir class ScHeaderEditEngine;
45cdf0e10cSrcweir class ScPageBreakData;
46cdf0e10cSrcweir class ScPreviewLocationData;
47cdf0e10cSrcweir class ScPrintOptions;
48cdf0e10cSrcweir class SvxBoxItem;
49cdf0e10cSrcweir class SvxBrushItem;
50cdf0e10cSrcweir class SvxShadowItem;
51cdf0e10cSrcweir class FmFormView;
52cdf0e10cSrcweir 
53cdf0e10cSrcweir #define RANGENO_NORANGE				USHRT_MAX
54cdf0e10cSrcweir 
55cdf0e10cSrcweir #define PRINT_HEADER_WIDTH			(1.0 * TWIPS_PER_CM)
56cdf0e10cSrcweir #define PRINT_HEADER_HEIGHT 		(12.8 * TWIPS_PER_POINT)
57cdf0e10cSrcweir #define PRINT_HEADER_FONTHEIGHT 	200
58cdf0e10cSrcweir 
59cdf0e10cSrcweir 
60cdf0e10cSrcweir 											//	Einstellungen fuer Kopf-/Fusszeilen
61cdf0e10cSrcweir struct ScPrintHFParam
62cdf0e10cSrcweir {
63cdf0e10cSrcweir 	sal_Bool				bEnable;
64cdf0e10cSrcweir 	sal_Bool				bDynamic;
65cdf0e10cSrcweir 	sal_Bool				bShared;
66cdf0e10cSrcweir 	long				nHeight;			//	insgesamt (Hoehe+Abstand+Rahmen)
67cdf0e10cSrcweir 	long				nManHeight;			//	eingestellte Groesse (Min. bei dynamisch)
68cdf0e10cSrcweir 	sal_uInt16				nDistance;
69cdf0e10cSrcweir 	sal_uInt16				nLeft;				//	Raender
70cdf0e10cSrcweir 	sal_uInt16				nRight;
71cdf0e10cSrcweir 	const ScPageHFItem* pLeft;
72cdf0e10cSrcweir 	const ScPageHFItem* pRight;
73cdf0e10cSrcweir 	const SvxBoxItem*	pBorder;
74cdf0e10cSrcweir 	const SvxBrushItem* pBack;
75cdf0e10cSrcweir 	const SvxShadowItem* pShadow;
76cdf0e10cSrcweir };
77cdf0e10cSrcweir 
78cdf0e10cSrcweir 
79cdf0e10cSrcweir // "Ersatz" fuer SV-JobSetup:
80cdf0e10cSrcweir 
81cdf0e10cSrcweir class ScJobSetup
82cdf0e10cSrcweir {
83cdf0e10cSrcweir public:
84cdf0e10cSrcweir 	ScJobSetup( SfxPrinter* pPrinter );
85cdf0e10cSrcweir 
86cdf0e10cSrcweir 	Size		aUserSize;
87cdf0e10cSrcweir 	MapMode		aUserMapMode;
88cdf0e10cSrcweir 	Paper	ePaper;
89cdf0e10cSrcweir 	Orientation eOrientation;
90cdf0e10cSrcweir 	sal_uInt16		nPaperBin;
91cdf0e10cSrcweir };
92cdf0e10cSrcweir 
93cdf0e10cSrcweir struct ScPrintState							//	Variablen aus ScPrintFunc retten
94cdf0e10cSrcweir {
95cdf0e10cSrcweir 	SCTAB	nPrintTab;
96cdf0e10cSrcweir 	SCCOL	nStartCol;
97cdf0e10cSrcweir 	SCROW	nStartRow;
98cdf0e10cSrcweir 	SCCOL	nEndCol;
99cdf0e10cSrcweir 	SCROW	nEndRow;
100cdf0e10cSrcweir 	sal_uInt16	nZoom;
101cdf0e10cSrcweir 	size_t	nPagesX;
102cdf0e10cSrcweir 	size_t	nPagesY;
103cdf0e10cSrcweir 	long	nTabPages;
104cdf0e10cSrcweir 	long	nTotalPages;
105cdf0e10cSrcweir 	long	nPageStart;
106cdf0e10cSrcweir 	long	nDocPages;
107cdf0e10cSrcweir };
108cdf0e10cSrcweir 
109cdf0e10cSrcweir class ScPageRowEntry
110cdf0e10cSrcweir {
111cdf0e10cSrcweir private:
112cdf0e10cSrcweir 	SCROW	nStartRow;
113cdf0e10cSrcweir 	SCROW	nEndRow;
114cdf0e10cSrcweir 	size_t	nPagesX;
115cdf0e10cSrcweir 	sal_Bool*	pHidden;
116cdf0e10cSrcweir 	//!		Anzahl wirklich sichtbarer cachen???
117cdf0e10cSrcweir 
118cdf0e10cSrcweir public:
ScPageRowEntry()119cdf0e10cSrcweir 			ScPageRowEntry()	{ nStartRow = nEndRow = 0; nPagesX = 0; pHidden = NULL; }
~ScPageRowEntry()120cdf0e10cSrcweir 			~ScPageRowEntry()	{ delete[] pHidden; }
121cdf0e10cSrcweir 
122cdf0e10cSrcweir 			ScPageRowEntry(const ScPageRowEntry& r);
123cdf0e10cSrcweir 	const ScPageRowEntry& operator=(const ScPageRowEntry& r);
124cdf0e10cSrcweir 
GetStartRow() const125cdf0e10cSrcweir 	SCROW	GetStartRow() const		{ return nStartRow; }
GetEndRow() const126cdf0e10cSrcweir 	SCROW	GetEndRow() const		{ return nEndRow; }
GetPagesX() const127cdf0e10cSrcweir 	size_t	GetPagesX() const		{ return nPagesX; }
SetStartRow(SCROW n)128cdf0e10cSrcweir 	void	SetStartRow(SCROW n)	{ nStartRow = n; }
SetEndRow(SCROW n)129cdf0e10cSrcweir 	void	SetEndRow(SCROW n)		{ nEndRow = n; }
130cdf0e10cSrcweir 
131cdf0e10cSrcweir 	void	SetPagesX(size_t nNew);
132cdf0e10cSrcweir 	void	SetHidden(size_t nX);
133cdf0e10cSrcweir 	sal_Bool	IsHidden(size_t nX) const;
134cdf0e10cSrcweir 
135cdf0e10cSrcweir 	size_t	CountVisible() const;
136cdf0e10cSrcweir };
137cdf0e10cSrcweir 
138cdf0e10cSrcweir class ScPrintFunc
139cdf0e10cSrcweir {
140cdf0e10cSrcweir private:
141cdf0e10cSrcweir 	ScDocShell* 		pDocShell;
142cdf0e10cSrcweir 	ScDocument* 		pDoc;
143cdf0e10cSrcweir 	SfxPrinter* 		pPrinter;
144cdf0e10cSrcweir 	OutputDevice*		pDev;
145cdf0e10cSrcweir 	FmFormView*			pDrawView;
146cdf0e10cSrcweir 
147cdf0e10cSrcweir 	MapMode				aOldPrinterMode;	//	MapMode vor dem Aufruf
148cdf0e10cSrcweir 
149cdf0e10cSrcweir 	Point				aSrcOffset;			//	Papier-1/100 mm
150cdf0e10cSrcweir 	Point				aOffset;			//	mit Faktor aus Seitenformat skaliert
151cdf0e10cSrcweir 	sal_uInt16				nManualZoom;		//	Zoom in Preview (Prozent)
152cdf0e10cSrcweir 	sal_Bool				bClearWin;			//	Ausgabe vorher loeschen
153cdf0e10cSrcweir 	sal_Bool				bUseStyleColor;
154cdf0e10cSrcweir 	sal_Bool				bIsRender;
155cdf0e10cSrcweir 
156cdf0e10cSrcweir 	SCTAB				nPrintTab;
157cdf0e10cSrcweir 	long				nPageStart;			//	Offset fuer erste Seite
158cdf0e10cSrcweir 	long				nDocPages;			//	Seiten im Dokument
159cdf0e10cSrcweir 
160cdf0e10cSrcweir 	const ScRange*		pUserArea;			//	Selektion, wenn im Dialog eingestellt
161cdf0e10cSrcweir 
162cdf0e10cSrcweir 	const SfxItemSet*	pParamSet;			//	eingestellte Vorlage
163cdf0e10cSrcweir 	sal_Bool				bState;				//	aus State-struct erzeugt
164cdf0e10cSrcweir 
165cdf0e10cSrcweir 											//	Parameter aus Vorlage:
166cdf0e10cSrcweir 	sal_uInt16				nLeftMargin;
167cdf0e10cSrcweir 	sal_uInt16				nTopMargin;
168cdf0e10cSrcweir 	sal_uInt16				nRightMargin;
169cdf0e10cSrcweir 	sal_uInt16				nBottomMargin;
170cdf0e10cSrcweir 	sal_Bool				bCenterHor;
171cdf0e10cSrcweir 	sal_Bool				bCenterVer;
172cdf0e10cSrcweir 	sal_Bool				bLandscape;
173cdf0e10cSrcweir 	sal_Bool				bSourceRangeValid;
174cdf0e10cSrcweir 
175cdf0e10cSrcweir 	sal_uInt16				nPageUsage;
176cdf0e10cSrcweir 	Size				aPageSize;			//	Drucker-Twips
177cdf0e10cSrcweir 	const SvxBoxItem*	pBorderItem;
178cdf0e10cSrcweir 	const SvxBrushItem* pBackgroundItem;
179cdf0e10cSrcweir 	const SvxShadowItem* pShadowItem;
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 	ScRange				aLastSourceRange;
182cdf0e10cSrcweir 	ScPrintHFParam		aHdr;
183cdf0e10cSrcweir 	ScPrintHFParam		aFtr;
184cdf0e10cSrcweir 	ScPageTableParam	aTableParam;
185cdf0e10cSrcweir 	ScPageAreaParam 	aAreaParam;
186cdf0e10cSrcweir 
187cdf0e10cSrcweir 											//	berechnete Werte:
188cdf0e10cSrcweir 	sal_uInt16				nZoom;
189cdf0e10cSrcweir 	sal_Bool				bPrintCurrentTable;
190cdf0e10cSrcweir 	sal_Bool				bMultiArea;
191cdf0e10cSrcweir 	long				nTabPages;
192cdf0e10cSrcweir 	long				nTotalPages;
193cdf0e10cSrcweir 
194cdf0e10cSrcweir 	Rectangle			aPageRect;			//	Dokument-Twips
195cdf0e10cSrcweir 
196cdf0e10cSrcweir 	MapMode 			aLogicMode; 		//	in DoPrint gesetzt
197cdf0e10cSrcweir 	MapMode 			aOffsetMode;
198cdf0e10cSrcweir 	MapMode 			aTwipMode;
199cdf0e10cSrcweir 	double				nScaleX;
200cdf0e10cSrcweir 	double				nScaleY;
201cdf0e10cSrcweir 
202cdf0e10cSrcweir 	SCCOL				nRepeatStartCol;
203cdf0e10cSrcweir 	SCCOL				nRepeatEndCol;
204cdf0e10cSrcweir 	SCROW				nRepeatStartRow;
205cdf0e10cSrcweir 	SCROW				nRepeatEndRow;
206cdf0e10cSrcweir 
207cdf0e10cSrcweir 	SCCOL				nStartCol;
208cdf0e10cSrcweir 	SCROW				nStartRow;
209cdf0e10cSrcweir 	SCCOL				nEndCol;
210cdf0e10cSrcweir 	SCROW				nEndRow;
211cdf0e10cSrcweir 
212*590a31a1SArmin Le Grand     // #123672# use dynamic mem to react on size changes
213*590a31a1SArmin Le Grand     std::vector< SCCOL >            maPageEndX;
214*590a31a1SArmin Le Grand     std::vector< SCROW >            maPageEndY;
215*590a31a1SArmin Le Grand     std::vector< ScPageRowEntry>    maPageRows;
216*590a31a1SArmin Le Grand 
217*590a31a1SArmin Le Grand     size_t				nPagesX;
218cdf0e10cSrcweir 	size_t				nPagesY;
219cdf0e10cSrcweir 	size_t				nTotalY;
220cdf0e10cSrcweir 
221cdf0e10cSrcweir 	ScHeaderEditEngine*	pEditEngine;
222cdf0e10cSrcweir 	SfxItemSet* 		pEditDefaults;
223cdf0e10cSrcweir 
224cdf0e10cSrcweir 	ScHeaderFieldData	aFieldData;
225cdf0e10cSrcweir 
226cdf0e10cSrcweir 	List				aNotePosList;		//	Reihenfolge der Notizen
227cdf0e10cSrcweir 
228cdf0e10cSrcweir 	ScPageBreakData*	pPageData;			// zum Eintragen der Umbrueche etc.
229cdf0e10cSrcweir 
230cdf0e10cSrcweir public:
231cdf0e10cSrcweir 					ScPrintFunc( ScDocShell* pShell, SfxPrinter* pNewPrinter, SCTAB nTab,
232cdf0e10cSrcweir 								 long nPage = 0, long nDocP = 0,
233cdf0e10cSrcweir 								 const ScRange* pArea = NULL,
234cdf0e10cSrcweir 								 const ScPrintOptions* pOptions = NULL,
235cdf0e10cSrcweir 								 ScPageBreakData* pData = NULL );
236cdf0e10cSrcweir 
237cdf0e10cSrcweir 					// ctors for device other than printer - for preview and pdf:
238cdf0e10cSrcweir 
239cdf0e10cSrcweir 					ScPrintFunc( OutputDevice* pOutDev, ScDocShell* pShell, SCTAB nTab,
240cdf0e10cSrcweir 								 long nPage = 0, long nDocP = 0,
241cdf0e10cSrcweir 								 const ScRange* pArea = NULL,
242cdf0e10cSrcweir 								 const ScPrintOptions* pOptions = NULL );
243cdf0e10cSrcweir 
244cdf0e10cSrcweir 					ScPrintFunc( OutputDevice* pOutDev, ScDocShell* pShell,
245cdf0e10cSrcweir 								 const ScPrintState& rState,
246cdf0e10cSrcweir 								 const ScPrintOptions* pOptions );
247cdf0e10cSrcweir 
248cdf0e10cSrcweir 					~ScPrintFunc();
249cdf0e10cSrcweir 
250cdf0e10cSrcweir 	static void 	DrawToDev( ScDocument* pDoc, OutputDevice* pDev, double nPrintFactor,
251cdf0e10cSrcweir 								const Rectangle& rBound, ScViewData* pViewData, sal_Bool bMetaFile );
252cdf0e10cSrcweir 
253cdf0e10cSrcweir 	void			SetDrawView( FmFormView* pNew );
254cdf0e10cSrcweir 
255cdf0e10cSrcweir 	void			SetOffset( const Point& rOfs );
256cdf0e10cSrcweir 	void			SetManualZoom( sal_uInt16 nNewZoom );
257cdf0e10cSrcweir 	void			SetDateTime( const Date& rDate, const Time& rTime );
258cdf0e10cSrcweir 
259cdf0e10cSrcweir 	void			SetClearFlag( sal_Bool bFlag );
260cdf0e10cSrcweir 	void			SetUseStyleColor( sal_Bool bFlag );
261cdf0e10cSrcweir 	void			SetRenderFlag( sal_Bool bFlag );
262cdf0e10cSrcweir 
263cdf0e10cSrcweir     void            SetExclusivelyDrawOleAndDrawObjects();//for printing selected objects without surrounding cell contents
264cdf0e10cSrcweir 
265cdf0e10cSrcweir 	sal_Bool			UpdatePages();
266cdf0e10cSrcweir 
267cdf0e10cSrcweir 	void			ApplyPrintSettings();		// aus DoPrint() schon gerufen
268cdf0e10cSrcweir 	long			DoPrint( const MultiSelection& rPageRanges,
269cdf0e10cSrcweir                                 long nStartPage, long nDisplayStart, sal_Bool bDoPrint,
270cdf0e10cSrcweir                                 ScPreviewLocationData* pLocationData );
271cdf0e10cSrcweir 
272cdf0e10cSrcweir 					//	Werte abfragen - sofort
273cdf0e10cSrcweir 
GetPageSize() const274cdf0e10cSrcweir 	Size			GetPageSize() const { return aPageSize; }
275cdf0e10cSrcweir 	Size			GetDataSize() const;
276cdf0e10cSrcweir 	void			GetScaleData( Size& rPhysSize, long& rDocHdr, long& rDocFtr );
GetFirstPageNo() const277cdf0e10cSrcweir 	long			GetFirstPageNo() const	{ return aTableParam.nFirstPageNo; }
278cdf0e10cSrcweir 
279cdf0e10cSrcweir 					//	letzte Werte abfragen - nach DoPrint !!!
280cdf0e10cSrcweir 
GetScaleX() const281cdf0e10cSrcweir 	double			GetScaleX() const { return nScaleX; }
GetScaleY() const282cdf0e10cSrcweir 	double			GetScaleY() const { return nScaleY; }
GetTotalPages() const283cdf0e10cSrcweir 	long			GetTotalPages() const { return nTotalPages; }
GetZoom() const284cdf0e10cSrcweir 	sal_uInt16			GetZoom() const { return nZoom; }
285cdf0e10cSrcweir 
286cdf0e10cSrcweir 	void			ResetBreaks( SCTAB nTab );
287cdf0e10cSrcweir 
288cdf0e10cSrcweir 	void			GetPrintState( ScPrintState& rState );
289cdf0e10cSrcweir 	sal_Bool			GetLastSourceRange( ScRange& rRange ) const;
GetLeftMargin() const290cdf0e10cSrcweir     sal_uInt16          GetLeftMargin() const{return nLeftMargin;}
GetRightMargin() const291cdf0e10cSrcweir     sal_uInt16          GetRightMargin() const{return nRightMargin;}
GetTopMargin() const292cdf0e10cSrcweir     sal_uInt16          GetTopMargin() const{return nTopMargin;}
GetBottomMargin() const293cdf0e10cSrcweir     sal_uInt16          GetBottomMargin() const{return nBottomMargin;}
SetLeftMargin(sal_uInt16 nRulerLeftDistance)294cdf0e10cSrcweir     void            SetLeftMargin(sal_uInt16 nRulerLeftDistance){ nLeftMargin = nRulerLeftDistance; }
SetRightMargin(sal_uInt16 nRulerRightDistance)295cdf0e10cSrcweir     void            SetRightMargin(sal_uInt16 nRulerRightDistance){ nRightMargin = nRulerRightDistance; }
SetTopMargin(sal_uInt16 nRulerTopDistance)296cdf0e10cSrcweir     void            SetTopMargin(sal_uInt16 nRulerTopDistance){ nTopMargin = nRulerTopDistance; }
SetBottomMargin(sal_uInt16 nRulerBottomDistance)297cdf0e10cSrcweir     void            SetBottomMargin(sal_uInt16 nRulerBottomDistance){ nBottomMargin = nRulerBottomDistance; }
GetHeader()298cdf0e10cSrcweir     ScPrintHFParam  GetHeader(){return aHdr;}
GetFooter()299cdf0e10cSrcweir     ScPrintHFParam  GetFooter(){return aFtr;}
300cdf0e10cSrcweir 
301cdf0e10cSrcweir private:
302cdf0e10cSrcweir 	void			Construct( const ScPrintOptions* pOptions );
303cdf0e10cSrcweir 	void			InitParam( const ScPrintOptions* pOptions );
304cdf0e10cSrcweir 	void			CalcZoom( sal_uInt16 nRangeNo );
305cdf0e10cSrcweir 	void			CalcPages();
306cdf0e10cSrcweir 	long			CountPages();
307cdf0e10cSrcweir 	long			CountNotePages();
308cdf0e10cSrcweir 
309cdf0e10cSrcweir 	sal_Bool			AdjustPrintArea( sal_Bool bNew );
310cdf0e10cSrcweir 
311cdf0e10cSrcweir 	Size			GetDocPageSize();
312cdf0e10cSrcweir 
313cdf0e10cSrcweir 	long			TextHeight( const EditTextObject* pObject );
314cdf0e10cSrcweir 	void			MakeEditEngine();
315cdf0e10cSrcweir 	void			UpdateHFHeight( ScPrintHFParam& rParam );
316cdf0e10cSrcweir 
317cdf0e10cSrcweir 	void			InitModes();
318cdf0e10cSrcweir 
319cdf0e10cSrcweir 	sal_Bool			IsLeft( long nPageNo );
320cdf0e10cSrcweir 	sal_Bool			IsMirror( long nPageNo );
321cdf0e10cSrcweir 	void			ReplaceFields( long nPageNo );		// aendert Text in pEditEngine
322cdf0e10cSrcweir 	void			MakeTableString();				 	// setzt aTableStr
323cdf0e10cSrcweir 
324cdf0e10cSrcweir 	void			PrintPage( long nPageNo,
325cdf0e10cSrcweir 									SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
326cdf0e10cSrcweir 									sal_Bool bDoPrint, ScPreviewLocationData* pLocationData );
327cdf0e10cSrcweir 	void			PrintArea( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
328cdf0e10cSrcweir 									long nScrX, long nScrY,
329cdf0e10cSrcweir 									sal_Bool bShLeft, sal_Bool bShTop, sal_Bool bShRight, sal_Bool bShBottom );
330cdf0e10cSrcweir 	void			LocateArea( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
331cdf0e10cSrcweir 									long nScrX, long nScrY, sal_Bool bRepCol, sal_Bool bRepRow,
332cdf0e10cSrcweir 									ScPreviewLocationData& rLocationData );
333cdf0e10cSrcweir 	void			PrintColHdr( SCCOL nX1, SCCOL nX2, long nScrX, long nScrY );
334cdf0e10cSrcweir 	void			PrintRowHdr( SCROW nY1, SCROW nY2, long nScrX, long nScrY );
335cdf0e10cSrcweir 	void			LocateColHdr( SCCOL nX1, SCCOL nX2, long nScrX, long nScrY,
336cdf0e10cSrcweir 								sal_Bool bRepCol, ScPreviewLocationData& rLocationData );
337cdf0e10cSrcweir 	void			LocateRowHdr( SCROW nY1, SCROW nY2, long nScrX, long nScrY,
338cdf0e10cSrcweir 								sal_Bool bRepRow, ScPreviewLocationData& rLocationData );
339cdf0e10cSrcweir 	void			PrintHF( long nPageNo, sal_Bool bHeader, long nStartY,
340cdf0e10cSrcweir 									sal_Bool bDoPrint, ScPreviewLocationData* pLocationData );
341cdf0e10cSrcweir 
342cdf0e10cSrcweir 	long			PrintNotes( long nPageNo, long nNoteStart, sal_Bool bDoPrint, ScPreviewLocationData* pLocationData );
343cdf0e10cSrcweir 	long			DoNotes( long nNoteStart, sal_Bool bDoPrint, ScPreviewLocationData* pLocationData );
344cdf0e10cSrcweir 
345cdf0e10cSrcweir 	void			DrawBorder( long nScrX, long nScrY, long nScrW, long nScrH,
346cdf0e10cSrcweir 									const SvxBoxItem* pBorderData,
347cdf0e10cSrcweir 									const SvxBrushItem* pBackground,
348cdf0e10cSrcweir 									const SvxShadowItem* pShadow );
349cdf0e10cSrcweir 
350cdf0e10cSrcweir 	void			FillPageData();
351cdf0e10cSrcweir };
352cdf0e10cSrcweir 
353cdf0e10cSrcweir 
354cdf0e10cSrcweir 
355cdf0e10cSrcweir #endif
356cdf0e10cSrcweir 
357