Bump for 3.6-28
[LibreOffice.git] / cppcanvas / source / mtfrenderer / outdevstate.hxx
blob60107ed3b7d341140a083615716082309c859ed5
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
29 #ifndef _CPPCANVAS_OUTDEVSTATE_HXX
30 #define _CPPCANVAS_OUTDEVSTATE_HXX
32 #include <com/sun/star/uno/Reference.hxx>
33 #include <com/sun/star/uno/Sequence.hxx>
35 #include <com/sun/star/rendering/StringContext.hpp>
36 #include <com/sun/star/rendering/RenderState.hpp>
37 #include <com/sun/star/rendering/XPolyPolygon2D.hpp>
38 #include <com/sun/star/rendering/XCanvasFont.hpp>
39 #include <com/sun/star/rendering/TextDirection.hpp>
40 #include <basegfx/matrix/b2dhommatrix.hxx>
41 #include <basegfx/polygon/b2dpolypolygon.hxx>
42 #include <vcl/fntstyle.hxx>
43 #include <vcl/vclenum.hxx>
44 #include <vcl/outdev.hxx>
47 namespace cppcanvas
49 namespace internal
51 struct OutDevState
53 OutDevState() :
54 clip(),
55 clipRect(),
56 xClipPoly(),
58 lineColor(),
59 fillColor(),
60 textColor(),
61 textFillColor(),
62 textLineColor(),
64 xFont(),
65 transform(),
66 mapModeTransform(),
67 fontRotation(0.0),
69 textEmphasisMarkStyle(EMPHASISMARK_NONE),
70 pushFlags(PUSH_ALL),
71 textDirection(::com::sun::star::rendering::TextDirection::WEAK_LEFT_TO_RIGHT),
72 textAlignment(0), // TODO(Q2): Synchronize with implrenderer
73 // and possibly new rendering::TextAlignment
74 textReliefStyle(RELIEF_NONE),
75 textOverlineStyle(UNDERLINE_NONE),
76 textUnderlineStyle(UNDERLINE_NONE),
77 textStrikeoutStyle(STRIKEOUT_NONE),
78 textReferencePoint(ALIGN_BASELINE),
80 isTextOutlineModeSet( false ),
81 isTextEffectShadowSet( false ),
82 isTextWordUnderlineSet( false ),
84 isLineColorSet( false ),
85 isFillColorSet( false ),
86 isTextFillColorSet( false ),
87 isTextLineColorSet( false )
91 ::basegfx::B2DPolyPolygon clip;
92 ::Rectangle clipRect;
93 ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > xClipPoly;
95 ::com::sun::star::uno::Sequence< double > lineColor;
96 ::com::sun::star::uno::Sequence< double > fillColor;
97 ::com::sun::star::uno::Sequence< double > textColor;
98 ::com::sun::star::uno::Sequence< double > textFillColor;
99 ::com::sun::star::uno::Sequence< double > textLineColor;
101 /** Current font.
103 @attention Beware, this member can be NULL, and
104 nevertheless text output is generated.
106 ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont > xFont;
107 ::basegfx::B2DHomMatrix transform;
108 ::basegfx::B2DHomMatrix mapModeTransform;
109 double fontRotation;
111 sal_uInt16 textEmphasisMarkStyle;
112 sal_uInt16 pushFlags;
113 sal_Int8 textDirection;
114 sal_Int8 textAlignment;
115 sal_Int8 textReliefStyle;
116 sal_Int8 textOverlineStyle;
117 sal_Int8 textUnderlineStyle;
118 sal_Int8 textStrikeoutStyle;
119 TextAlign textReferencePoint;
121 bool isTextOutlineModeSet;
122 bool isTextEffectShadowSet;
123 bool isTextWordUnderlineSet;
125 bool isLineColorSet;
126 bool isFillColorSet;
127 bool isTextFillColorSet;
128 bool isTextLineColorSet;
133 #endif /* _CPPCANVAS_OUTDEVSTATE_HXX */
135 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */