update dev300-m58
[ooovba.git] / cppcanvas / source / mtfrenderer / outdevstate.hxx
blob86ab2b1201dcf1638c092b25e19e6fd6ec84ba6d
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: outdevstate.hxx,v $
10 * $Revision: 1.9.16.1 $
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_OUTDEVSTATE_HXX
32 #define _CPPCANVAS_OUTDEVSTATE_HXX
34 #include <com/sun/star/uno/Reference.hxx>
35 #include <com/sun/star/uno/Sequence.hxx>
37 #ifndef _COM_SUN_STAR_RENDERING_STRINGCONTEXT_HPP__
38 #include <com/sun/star/rendering/StringContext.hpp>
39 #endif
40 #ifndef _COM_SUN_STAR_RENDERING_RENDERSTATE_HPP__
41 #include <com/sun/star/rendering/RenderState.hpp>
42 #endif
43 #ifndef _COM_SUN_STAR_RENDERING_XPOLYPOLYGON2D_HPP__
44 #include <com/sun/star/rendering/XPolyPolygon2D.hpp>
45 #endif
46 #ifndef _COM_SUN_STAR_RENDERING_XCANVASFONT_HPP__
47 #include <com/sun/star/rendering/XCanvasFont.hpp>
48 #endif
49 #ifndef _COM_SUN_STAR_RENDERING_TEXTDIRECTION_HPP__
50 #include <com/sun/star/rendering/TextDirection.hpp>
51 #endif
52 #include <basegfx/matrix/b2dhommatrix.hxx>
53 #ifndef _BGFX_POLYGON_B2DPOLYPOLGON_HXX
54 #include <basegfx/polygon/b2dpolypolygon.hxx>
55 #endif
56 #include <vcl/fntstyle.hxx>
57 #include <vcl/vclenum.hxx>
58 #include <vcl/outdev.hxx>
59 #include <vcl/outdev.hxx>
62 namespace cppcanvas
64 namespace internal
66 struct OutDevState
68 OutDevState() :
69 clip(),
70 clipRect(),
71 xClipPoly(),
73 lineColor(),
74 fillColor(),
75 textColor(),
76 textFillColor(),
77 textLineColor(),
79 xFont(),
80 transform(),
81 mapModeTransform(),
82 fontRotation(0.0),
84 textEmphasisMarkStyle(EMPHASISMARK_NONE),
85 pushFlags(PUSH_ALL),
86 textDirection(::com::sun::star::rendering::TextDirection::WEAK_LEFT_TO_RIGHT),
87 textAlignment(0), // TODO(Q2): Synchronize with implrenderer
88 // and possibly new rendering::TextAlignment
89 textReliefStyle(RELIEF_NONE),
90 textOverlineStyle(UNDERLINE_NONE),
91 textUnderlineStyle(UNDERLINE_NONE),
92 textStrikeoutStyle(STRIKEOUT_NONE),
93 textReferencePoint(ALIGN_BASELINE),
95 isTextOutlineModeSet( false ),
96 isTextEffectShadowSet( false ),
97 isTextWordUnderlineSet( false ),
99 isLineColorSet( false ),
100 isFillColorSet( false ),
101 isTextFillColorSet( false ),
102 isTextLineColorSet( false )
106 ::basegfx::B2DPolyPolygon clip;
107 ::Rectangle clipRect;
108 ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > xClipPoly;
110 ::com::sun::star::uno::Sequence< double > lineColor;
111 ::com::sun::star::uno::Sequence< double > fillColor;
112 ::com::sun::star::uno::Sequence< double > textColor;
113 ::com::sun::star::uno::Sequence< double > textFillColor;
114 ::com::sun::star::uno::Sequence< double > textLineColor;
116 /** Current font.
118 @attention Beware, this member can be NULL, and
119 nevertheless text output is generated.
121 ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont > xFont;
122 ::basegfx::B2DHomMatrix transform;
123 ::basegfx::B2DHomMatrix mapModeTransform;
124 double fontRotation;
126 sal_uInt16 textEmphasisMarkStyle;
127 sal_uInt16 pushFlags;
128 sal_Int8 textDirection;
129 sal_Int8 textAlignment;
130 sal_Int8 textReliefStyle;
131 sal_Int8 textOverlineStyle;
132 sal_Int8 textUnderlineStyle;
133 sal_Int8 textStrikeoutStyle;
134 TextAlign textReferencePoint;
136 bool isTextOutlineModeSet;
137 bool isTextEffectShadowSet;
138 bool isTextWordUnderlineSet;
140 bool isLineColorSet;
141 bool isFillColorSet;
142 bool isTextFillColorSet;
143 bool isTextLineColorSet;
148 #endif /* _CPPCANVAS_OUTDEVSTATE_HXX */