1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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>
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
;
53 namespace drawinglayer
57 // SdrAttribute creators
58 attribute::SdrLineAttribute SVX_DLLPUBLIC
createNewSdrLineAttribute(
59 const SfxItemSet
& rSet
);
61 attribute::SdrLineStartEndAttribute SVX_DLLPUBLIC
createNewSdrLineStartEndAttribute(
62 const SfxItemSet
& rSet
,
65 attribute::SdrShadowAttribute
createNewSdrShadowAttribute(
66 const SfxItemSet
& rSet
);
68 attribute::SdrFillAttribute SVX_DLLPUBLIC
createNewSdrFillAttribute(
69 const SfxItemSet
& rSet
);
71 // #i101508# Support handing over given text-to-border distances
72 attribute::SdrTextAttribute
createNewSdrTextAttribute(
73 const SfxItemSet
& rSet
,
75 const sal_Int32
* pLeft
= nullptr,
76 const sal_Int32
* pUpper
= nullptr,
77 const sal_Int32
* pRight
= nullptr,
78 const sal_Int32
* pLower
= nullptr);
80 attribute::FillGradientAttribute SVX_DLLPUBLIC
createNewTransparenceGradientAttribute(
81 const SfxItemSet
& rSet
);
83 attribute::SdrFillGraphicAttribute
createNewSdrFillGraphicAttribute(
84 const SfxItemSet
& rSet
);
86 attribute::SdrShadowTextAttribute
createNewSdrShadowTextAttribute(
87 const SfxItemSet
& rSet
,
89 bool bSuppressText
); // #i98072# added option to suppress text on demand
91 attribute::SdrLineShadowTextAttribute
createNewSdrLineShadowTextAttribute(
92 const SfxItemSet
& rSet
,
93 const SdrText
* pText
);
95 attribute::SdrLineFillShadowTextAttribute
createNewSdrLineFillShadowTextAttribute(
96 const SfxItemSet
& rSet
,
98 bool bHasContent
); // used from OLE and graphic
100 attribute::SdrLineFillShadowAttribute3D
createNewSdrLineFillShadowAttribute(
101 const SfxItemSet
& rSet
,
104 attribute::SdrSceneAttribute
createNewSdrSceneAttribute(
105 const SfxItemSet
& rSet
);
107 attribute::SdrLightingAttribute
createNewSdrLightingAttribute(
108 const SfxItemSet
& rSet
);
110 // #i101508# Support handing over given text-to-border distances
111 attribute::SdrFillTextAttribute
createNewSdrFillTextAttribute(
112 const SfxItemSet
& rSet
,
113 const SdrText
* pSdrText
,
114 const sal_Int32
* pLeft
= nullptr,
115 const sal_Int32
* pUpper
= nullptr,
116 const sal_Int32
* pRight
= nullptr,
117 const sal_Int32
* pLower
= nullptr);
120 void calculateRelativeCornerRadius(
122 const ::basegfx::B2DRange
& rObjectRange
,
123 double& rfCornerRadiusX
,
124 double& rfCornerRadiusY
);
126 } // end of namespace primitive2d
127 } // end of namespace drawinglayer
130 #endif // INCLUDED_SVX_SDR_PRIMITIVE2D_SDRATTRIBUTECREATOR_HXX
132 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */