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>
69 textEmphasisMarkStyle(EMPHASISMARK_NONE
),
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
;
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
;
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
;
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
;
127 bool isTextFillColorSet
;
128 bool isTextLineColorSet
;
133 #endif /* _CPPCANVAS_OUTDEVSTATE_HXX */
135 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */