xref: /trunk/main/svtools/source/inc/gradwrap.hxx (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
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