update dev300-m58
[ooovba.git] / cppcanvas / source / mtfrenderer / textaction.hxx
blobc3588973cbc5e697f87be9e44709262431cbe9a4
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: textaction.hxx,v $
10 * $Revision: 1.9 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _CPPCANVAS_TEXTACTION_HXX
32 #define _CPPCANVAS_TEXTACTION_HXX
34 #include <com/sun/star/uno/Sequence.hxx>
36 #include <action.hxx>
37 #include <cppcanvas/canvas.hxx>
38 #include <cppcanvas/renderer.hxx>
39 #include <tools/poly.hxx>
40 #include <tools/gen.hxx>
42 class VirtualDevice;
43 class Point;
44 class Color;
45 class String;
48 /* Definition of internal::TextActionFactory class */
50 namespace cppcanvas
52 namespace internal
54 struct OutDevState;
56 /** Creates encapsulated converters between GDIMetaFile and
57 XCanvas. The Canvas argument is deliberately placed at the
58 constructor, to force reconstruction of this object for a
59 new canvas. This considerably eases internal state
60 handling, since a lot of the internal state (e.g. fonts,
61 text layout) is Canvas-dependent.
63 class TextActionFactory
65 public:
66 /** Create text action, optionally shadow/relief effect
68 Note that this method accepts all coordinates in
69 logical coordinates.
71 @param pDXArray
72 Pointer to array of logical character offsets (or NULL)
74 @param bSubsettable
75 When this parameter is set to true, the generated
76 action might consume slightly more memory, but is
77 subsettable (Action::render( Subset ) works on
78 characters)
80 static ActionSharedPtr createTextAction( const ::Point& rStartPoint,
81 const ::Size& rReliefOffset,
82 const ::Color& rReliefColor,
83 const ::Size& rShadowOffset,
84 const ::Color& rShadowColor,
85 const ::String& rText,
86 sal_Int32 nStartPos,
87 sal_Int32 nLen,
88 const sal_Int32* pDXArray,
89 VirtualDevice& rVDev,
90 const CanvasSharedPtr& rCanvas,
91 const OutDevState& rState,
92 const Renderer::Parameters& rParms,
93 bool bSubsettable );
95 private:
96 // static factory, disable big four
97 TextActionFactory();
98 ~TextActionFactory();
99 TextActionFactory(const TextActionFactory&);
100 TextActionFactory& operator=( const TextActionFactory& );
105 #endif /* _CPPCANVAS_TEXTACTION_HXX */