xref: /AOO41X/main/svx/inc/svx/sdr/primitive2d/sdrattributecreator.hxx (revision 035a2f44eca4e31ced924464e6584eacbf3e9114)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef INCLUDED_SDR_PRIMITIVE2D_SDRATTRIBUTECREATOR_HXX
25 #define INCLUDED_SDR_PRIMITIVE2D_SDRATTRIBUTECREATOR_HXX
26 
27 #include <sal/types.h>
28 #include <svx/svxdllapi.h>
29 
30 //////////////////////////////////////////////////////////////////////////////
31 // predefines
32 class SfxItemSet;
33 class SdrText;
34 
35 namespace drawinglayer { namespace attribute {
36     class SdrLineAttribute;
37     class SdrLineStartEndAttribute;
38     class SdrShadowAttribute;
39     class SdrFillAttribute;
40     class SdrTextAttribute;
41     class FillGradientAttribute;
42     class SdrFillGraphicAttribute;
43     class SdrShadowTextAttribute;
44     class SdrLineShadowTextAttribute;
45     class SdrLineFillShadowTextAttribute;
46     class SdrLineFillShadowAttribute3D;
47     class SdrSceneAttribute;
48     class SdrLightingAttribute;
49     class SdrFillTextAttribute;
50 }}
51 
52 namespace basegfx {
53     class B2DRange;
54 }
55 
56 //////////////////////////////////////////////////////////////////////////////
57 
58 namespace drawinglayer
59 {
60     namespace primitive2d
61     {
62         // SdrAttribute creators
63         attribute::SdrLineAttribute SVX_DLLPUBLIC createNewSdrLineAttribute(
64             const SfxItemSet& rSet);
65 
66         attribute::SdrLineStartEndAttribute SVX_DLLPUBLIC createNewSdrLineStartEndAttribute(
67             const SfxItemSet& rSet,
68             double fWidth);
69 
70         attribute::SdrShadowAttribute createNewSdrShadowAttribute(
71             const SfxItemSet& rSet);
72 
73         attribute::SdrFillAttribute createNewSdrFillAttribute(
74             const SfxItemSet& rSet);
75 
76         // #i101508# Support handing over given text-to-border distances
77         attribute::SdrTextAttribute createNewSdrTextAttribute(
78             const SfxItemSet& rSet,
79             const SdrText& rText,
80             const sal_Int32* pLeft = 0,
81             const sal_Int32* pUpper = 0,
82             const sal_Int32* pRight = 0,
83             const sal_Int32* pLower = 0);
84 
85         attribute::FillGradientAttribute createNewTransparenceGradientAttribute(
86             const SfxItemSet& rSet);
87 
88         attribute::SdrFillGraphicAttribute createNewSdrFillGraphicAttribute(
89             const SfxItemSet& rSet);
90 
91         attribute::SdrShadowTextAttribute createNewSdrShadowTextAttribute(
92             const SfxItemSet& rSet,
93             const SdrText* pText,
94             bool bSuppressText); // #i98072# added option to suppress text on demand
95 
96         attribute::SdrLineShadowTextAttribute createNewSdrLineShadowTextAttribute(
97             const SfxItemSet& rSet,
98             const SdrText* pText);
99 
100         attribute::SdrLineFillShadowTextAttribute createNewSdrLineFillShadowTextAttribute(
101             const SfxItemSet& rSet,
102             const SdrText* pText,
103             bool bHasContent); // used from OLE and graphic
104 
105         attribute::SdrLineFillShadowAttribute3D createNewSdrLineFillShadowAttribute(
106             const SfxItemSet& rSet,
107             bool bSuppressFill);
108 
109         attribute::SdrSceneAttribute createNewSdrSceneAttribute(
110             const SfxItemSet& rSet);
111 
112         attribute::SdrLightingAttribute createNewSdrLightingAttribute(
113             const SfxItemSet& rSet);
114 
115         // #i101508# Support handing over given text-to-border distances
116         attribute::SdrFillTextAttribute createNewSdrFillTextAttribute(
117             const SfxItemSet& rSet,
118             const SdrText* pSdrText,
119             const sal_Int32* pLeft = 0,
120             const sal_Int32* pUpper = 0,
121             const sal_Int32* pRight = 0,
122             const sal_Int32* pLower = 0);
123 
124         // helpers
125         void calculateRelativeCornerRadius(
126             sal_Int32 nRadius,
127             const ::basegfx::B2DRange& rObjectRange,
128             double& rfCornerRadiusX,
129             double& rfCornerRadiusY);
130 
131     } // end of namespace primitive2d
132 } // end of namespace drawinglayer
133 
134 //////////////////////////////////////////////////////////////////////////////
135 
136 #endif //INCLUDED_SDR_PRIMITIVE2D_SDRATTRIBUTECREATOR_HXX
137 
138 // eof
139