1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 * 9 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 20 #pragma once 21 22 #include <basegfx/matrix/b2dhommatrix.hxx> 23 #include <drawinglayer/attribute/sdrglowattribute.hxx> 24 #include <drawinglayer/primitive2d/Primitive2DContainer.hxx> 25 26 #include <svx/svxdllapi.h> 27 28 // predefines 29 namespace basegfx { 30 class B2DPolygon; 31 class B2DPolyPolygon; 32 class B2DHomMatrix; 33 } 34 35 namespace drawinglayer::attribute { 36 class SdrFillAttribute; 37 class SdrLineAttribute; 38 class FillGradientAttribute; 39 class SdrShadowAttribute; 40 class SdrLineStartEndAttribute; 41 class SdrTextAttribute; 42 } 43 44 45 namespace drawinglayer::primitive2d 46 { 47 Primitive2DReference SVXCORE_DLLPUBLIC createPolyPolygonFillPrimitive( 48 const basegfx::B2DPolyPolygon& rPolyPolygon, 49 const attribute::SdrFillAttribute& rFill, 50 const attribute::FillGradientAttribute& rFillGradient); 51 52 Primitive2DReference SVXCORE_DLLPUBLIC createPolyPolygonFillPrimitive( 53 const basegfx::B2DPolyPolygon& rPolyPolygon, 54 const basegfx::B2DRange& rDefinitionRange, 55 const attribute::SdrFillAttribute& rFill, 56 const attribute::FillGradientAttribute& rFillGradient); 57 58 Primitive2DReference SVXCORE_DLLPUBLIC createPolygonLinePrimitive( 59 const basegfx::B2DPolygon& rPolygon, 60 const attribute::SdrLineAttribute& rLine, 61 const attribute::SdrLineStartEndAttribute& rStroke); 62 63 Primitive2DReference SVXCORE_DLLPUBLIC createTextPrimitive( 64 const basegfx::B2DPolyPolygon& rUnitPolyPolygon, 65 const basegfx::B2DHomMatrix& rObjectTransform, 66 const attribute::SdrTextAttribute& rText, 67 const attribute::SdrLineAttribute& rStroke, 68 bool bCellText, 69 bool bWordWrap); 70 71 Primitive2DContainer SVXCORE_DLLPUBLIC createEmbeddedShadowPrimitive( 72 const Primitive2DContainer& rContent, 73 const attribute::SdrShadowAttribute& rShadow, 74 const basegfx::B2DHomMatrix& rObjectMatrix = basegfx::B2DHomMatrix(), 75 const Primitive2DContainer* pContentForShadow = nullptr); 76 77 Primitive2DContainer SVXCORE_DLLPUBLIC createEmbeddedGlowPrimitive( 78 const Primitive2DContainer& rContent, 79 const attribute::SdrGlowAttribute& rGlow); 80 81 Primitive2DContainer SVXCORE_DLLPUBLIC createEmbeddedSoftEdgePrimitive( 82 const Primitive2DContainer& rContent, 83 sal_Int32 nRadius); 84 85 } // end of namespace drawinglayer::primitive2d 86 87 88 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 89