1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef _CPPCANVAS_OUTDEVSTATE_HXX 25*b1cdbd2cSJim Jagielski #define _CPPCANVAS_OUTDEVSTATE_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Reference.hxx> 28*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Sequence.hxx> 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_RENDERING_STRINGCONTEXT_HPP__ 31*b1cdbd2cSJim Jagielski #include <com/sun/star/rendering/StringContext.hpp> 32*b1cdbd2cSJim Jagielski #endif 33*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_RENDERING_RENDERSTATE_HPP__ 34*b1cdbd2cSJim Jagielski #include <com/sun/star/rendering/RenderState.hpp> 35*b1cdbd2cSJim Jagielski #endif 36*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_RENDERING_XPOLYPOLYGON2D_HPP__ 37*b1cdbd2cSJim Jagielski #include <com/sun/star/rendering/XPolyPolygon2D.hpp> 38*b1cdbd2cSJim Jagielski #endif 39*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_RENDERING_XCANVASFONT_HPP__ 40*b1cdbd2cSJim Jagielski #include <com/sun/star/rendering/XCanvasFont.hpp> 41*b1cdbd2cSJim Jagielski #endif 42*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_RENDERING_TEXTDIRECTION_HPP__ 43*b1cdbd2cSJim Jagielski #include <com/sun/star/rendering/TextDirection.hpp> 44*b1cdbd2cSJim Jagielski #endif 45*b1cdbd2cSJim Jagielski #include <basegfx/matrix/b2dhommatrix.hxx> 46*b1cdbd2cSJim Jagielski #ifndef _BGFX_POLYGON_B2DPOLYPOLGON_HXX 47*b1cdbd2cSJim Jagielski #include <basegfx/polygon/b2dpolypolygon.hxx> 48*b1cdbd2cSJim Jagielski #endif 49*b1cdbd2cSJim Jagielski #include <vcl/fntstyle.hxx> 50*b1cdbd2cSJim Jagielski #include <vcl/vclenum.hxx> 51*b1cdbd2cSJim Jagielski #include <vcl/outdev.hxx> 52*b1cdbd2cSJim Jagielski #include <vcl/outdev.hxx> 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski namespace cppcanvas 56*b1cdbd2cSJim Jagielski { 57*b1cdbd2cSJim Jagielski namespace internal 58*b1cdbd2cSJim Jagielski { 59*b1cdbd2cSJim Jagielski struct OutDevState 60*b1cdbd2cSJim Jagielski { OutDevStatecppcanvas::internal::OutDevState61*b1cdbd2cSJim Jagielski OutDevState() : 62*b1cdbd2cSJim Jagielski clip(), 63*b1cdbd2cSJim Jagielski clipRect(), 64*b1cdbd2cSJim Jagielski xClipPoly(), 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski lineColor(), 67*b1cdbd2cSJim Jagielski fillColor(), 68*b1cdbd2cSJim Jagielski textColor(), 69*b1cdbd2cSJim Jagielski textFillColor(), 70*b1cdbd2cSJim Jagielski textLineColor(), 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski xFont(), 73*b1cdbd2cSJim Jagielski transform(), 74*b1cdbd2cSJim Jagielski mapModeTransform(), 75*b1cdbd2cSJim Jagielski fontRotation(0.0), 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski textEmphasisMarkStyle(EMPHASISMARK_NONE), 78*b1cdbd2cSJim Jagielski pushFlags(PUSH_ALL), 79*b1cdbd2cSJim Jagielski textDirection(::com::sun::star::rendering::TextDirection::WEAK_LEFT_TO_RIGHT), 80*b1cdbd2cSJim Jagielski textAlignment(0), // TODO(Q2): Synchronize with implrenderer 81*b1cdbd2cSJim Jagielski // and possibly new rendering::TextAlignment 82*b1cdbd2cSJim Jagielski textReliefStyle(RELIEF_NONE), 83*b1cdbd2cSJim Jagielski textOverlineStyle(UNDERLINE_NONE), 84*b1cdbd2cSJim Jagielski textUnderlineStyle(UNDERLINE_NONE), 85*b1cdbd2cSJim Jagielski textStrikeoutStyle(STRIKEOUT_NONE), 86*b1cdbd2cSJim Jagielski textReferencePoint(ALIGN_BASELINE), 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski isTextOutlineModeSet( false ), 89*b1cdbd2cSJim Jagielski isTextEffectShadowSet( false ), 90*b1cdbd2cSJim Jagielski isTextWordUnderlineSet( false ), 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski isLineColorSet( false ), 93*b1cdbd2cSJim Jagielski isFillColorSet( false ), 94*b1cdbd2cSJim Jagielski isTextFillColorSet( false ), 95*b1cdbd2cSJim Jagielski isTextLineColorSet( false ) 96*b1cdbd2cSJim Jagielski { 97*b1cdbd2cSJim Jagielski } 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski ::basegfx::B2DPolyPolygon clip; 100*b1cdbd2cSJim Jagielski ::Rectangle clipRect; 101*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > xClipPoly; 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< double > lineColor; 104*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< double > fillColor; 105*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< double > textColor; 106*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< double > textFillColor; 107*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< double > textLineColor; 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski /** Current font. 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski @attention Beware, this member can be NULL, and 112*b1cdbd2cSJim Jagielski nevertheless text output is generated. 113*b1cdbd2cSJim Jagielski */ 114*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont > xFont; 115*b1cdbd2cSJim Jagielski ::basegfx::B2DHomMatrix transform; 116*b1cdbd2cSJim Jagielski ::basegfx::B2DHomMatrix mapModeTransform; 117*b1cdbd2cSJim Jagielski double fontRotation; 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski sal_uInt16 textEmphasisMarkStyle; 120*b1cdbd2cSJim Jagielski sal_uInt16 pushFlags; 121*b1cdbd2cSJim Jagielski sal_Int8 textDirection; 122*b1cdbd2cSJim Jagielski sal_Int8 textAlignment; 123*b1cdbd2cSJim Jagielski sal_Int8 textReliefStyle; 124*b1cdbd2cSJim Jagielski sal_Int8 textOverlineStyle; 125*b1cdbd2cSJim Jagielski sal_Int8 textUnderlineStyle; 126*b1cdbd2cSJim Jagielski sal_Int8 textStrikeoutStyle; 127*b1cdbd2cSJim Jagielski TextAlign textReferencePoint; 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski bool isTextOutlineModeSet; 130*b1cdbd2cSJim Jagielski bool isTextEffectShadowSet; 131*b1cdbd2cSJim Jagielski bool isTextWordUnderlineSet; 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski bool isLineColorSet; 134*b1cdbd2cSJim Jagielski bool isFillColorSet; 135*b1cdbd2cSJim Jagielski bool isTextFillColorSet; 136*b1cdbd2cSJim Jagielski bool isTextLineColorSet; 137*b1cdbd2cSJim Jagielski }; 138*b1cdbd2cSJim Jagielski } 139*b1cdbd2cSJim Jagielski } 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski #endif /* _CPPCANVAS_OUTDEVSTATE_HXX */ 142