xref: /aoo41x/main/svtools/source/inc/gradwrap.hxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 
29 #ifndef _SVGEN_HXX
30 #include <svgen.hxx>
31 #endif
32 
33 
34 /******************************************************************************
35 |*
36 |* 	class GradientWrapper
37 |*
38 |*	Ersterstellung:		KA 24.11.95
39 |*	letzte Aenderung:	KA 24.11.95
40 |*
41 |*	Zeck:	dient beim MetaFile-Export dazu, die eigentliche Berechungs-
42 |* 			funktionalitaet zu kapseln. Das Schreiben der Records fuer
43 |*			die unterschiedlichen File-Formate geschieht ueber LinkHandler.
44 |*
45 |*			Klassen, die diesen Wrapper benutzen, muessen drei Linkhandler
46 |* 			zur Verfuegung stellen, die im Ctor uebergeben werden:
47 |*
48 |*				1. Linkhandler zum Schreiben eines Records fuer Polygonausgabe
49 |*				2. Linkhandler zum Schreiben eines Records fuer PolyPolygonausgabe
50 |*				3. Linkhandler zum Schreiben eines Records fuer Setzen der Brush
51 |*
52 \******************************************************************************/
53 
54 
55 class GradientWrapper
56 {
57 	Link		aDrawPolyRecordHdl;
58 	Link		aDrawPolyPolyRecordHdl;
59 	Link		aSetFillInBrushRecordHdl;
60 
61 				GradientWrapper() {};
62 
63 
64 public:
65 				GradientWrapper(const Link& rDrawPolyRecordHdl,
66 								const Link& rDrawPolyPolyRecordHdl,
67 								const Link& rSetFillInBrushHdl);
68 				~GradientWrapper();
69 
70 
71 	void 		WriteLinearGradient(const Rectangle& rRect,
72 									const Gradient& rGradient);
73 	void		WriteRadialGradient(const Rectangle& rRect,
74 									const Gradient& rGradient);
75 	void		WriteRectGradient(const Rectangle& rRect,
76 								  const Gradient& rGradient);
77 };
78