Branch libreoffice-5-0-4
[LibreOffice.git] / include / svx / sdr / primitive2d / sdrattributecreator.hxx
blobf69a8578a71d4ea912fcd56e29a076b4a8610615
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_SVX_SDR_PRIMITIVE2D_SDRATTRIBUTECREATOR_HXX
21 #define INCLUDED_SVX_SDR_PRIMITIVE2D_SDRATTRIBUTECREATOR_HXX
23 #include <sal/types.h>
24 #include <svx/svxdllapi.h>
27 // predefines
28 class SfxItemSet;
29 class SdrText;
31 namespace drawinglayer { namespace attribute {
32 class SdrLineAttribute;
33 class SdrLineStartEndAttribute;
34 class SdrShadowAttribute;
35 class SdrFillAttribute;
36 class SdrTextAttribute;
37 class FillGradientAttribute;
38 class SdrFillGraphicAttribute;
39 class SdrShadowTextAttribute;
40 class SdrLineShadowTextAttribute;
41 class SdrLineFillShadowTextAttribute;
42 class SdrLineFillShadowAttribute3D;
43 class SdrSceneAttribute;
44 class SdrLightingAttribute;
45 class SdrFillTextAttribute;
48 namespace basegfx {
49 class B2DRange;
54 namespace drawinglayer
56 namespace primitive2d
58 // SdrAttribute creators
59 attribute::SdrLineAttribute SVX_DLLPUBLIC createNewSdrLineAttribute(
60 const SfxItemSet& rSet);
62 attribute::SdrLineStartEndAttribute SVX_DLLPUBLIC createNewSdrLineStartEndAttribute(
63 const SfxItemSet& rSet,
64 double fWidth);
66 attribute::SdrShadowAttribute createNewSdrShadowAttribute(
67 const SfxItemSet& rSet);
69 attribute::SdrFillAttribute SVX_DLLPUBLIC createNewSdrFillAttribute(
70 const SfxItemSet& rSet);
72 // #i101508# Support handing over given text-to-border distances
73 attribute::SdrTextAttribute createNewSdrTextAttribute(
74 const SfxItemSet& rSet,
75 const SdrText& rText,
76 const sal_Int32* pLeft = 0,
77 const sal_Int32* pUpper = 0,
78 const sal_Int32* pRight = 0,
79 const sal_Int32* pLower = 0);
81 attribute::FillGradientAttribute SVX_DLLPUBLIC createNewTransparenceGradientAttribute(
82 const SfxItemSet& rSet);
84 attribute::SdrFillGraphicAttribute createNewSdrFillGraphicAttribute(
85 const SfxItemSet& rSet);
87 attribute::SdrShadowTextAttribute createNewSdrShadowTextAttribute(
88 const SfxItemSet& rSet,
89 const SdrText* pText,
90 bool bSuppressText); // #i98072# added option to suppress text on demand
92 attribute::SdrLineShadowTextAttribute createNewSdrLineShadowTextAttribute(
93 const SfxItemSet& rSet,
94 const SdrText* pText);
96 attribute::SdrLineFillShadowTextAttribute createNewSdrLineFillShadowTextAttribute(
97 const SfxItemSet& rSet,
98 const SdrText* pText,
99 bool bHasContent); // used from OLE and graphic
101 attribute::SdrLineFillShadowAttribute3D createNewSdrLineFillShadowAttribute(
102 const SfxItemSet& rSet,
103 bool bSuppressFill);
105 attribute::SdrSceneAttribute createNewSdrSceneAttribute(
106 const SfxItemSet& rSet);
108 attribute::SdrLightingAttribute createNewSdrLightingAttribute(
109 const SfxItemSet& rSet);
111 // #i101508# Support handing over given text-to-border distances
112 attribute::SdrFillTextAttribute createNewSdrFillTextAttribute(
113 const SfxItemSet& rSet,
114 const SdrText* pSdrText,
115 const sal_Int32* pLeft = 0,
116 const sal_Int32* pUpper = 0,
117 const sal_Int32* pRight = 0,
118 const sal_Int32* pLower = 0);
120 // helpers
121 void calculateRelativeCornerRadius(
122 sal_Int32 nRadius,
123 const ::basegfx::B2DRange& rObjectRange,
124 double& rfCornerRadiusX,
125 double& rfCornerRadiusY);
127 } // end of namespace primitive2d
128 } // end of namespace drawinglayer
132 #endif // INCLUDED_SVX_SDR_PRIMITIVE2D_SDRATTRIBUTECREATOR_HXX
134 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */