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#ifndef com_sun_star_chart2_DataPointProperties_idl
24#define com_sun_star_chart2_DataPointProperties_idl
25
26#include <com/sun/star/beans/PropertySet.idl>
27
28#include <com/sun/star/awt/Gradient.idl>
29#include <com/sun/star/drawing/Hatch.idl>
30#include <com/sun/star/drawing/LineDash.idl>
31#include <com/sun/star/style/XStyle.idl>
32
33#include <com/sun/star/chart2/BitmapProperty.idl>
34#include <com/sun/star/chart2/TransparencyStyle.idl>
35#include <com/sun/star/chart2/DataCaptionStyle.idl>
36#include <com/sun/star/chart2/Symbol.idl>
37
38module com
39{
40module sun
41{
42module star
43{
44module chart2
45{
46
47service DataPointProperties
48{
49    /** to give acces to the properties required by this service.
50    */
51    service ::com::sun::star::beans::PropertySet;
52
53    // ----------------------------------------------------------------------
54
55    /** points to a style that also supports this service (but not
56        this property) that is used as default, if the PropertyState
57        of a property is <code>DEFAULT_VALUE</code>.
58     */
59//     [optional, property] ::com::sun::star::style::XStyle        Style;
60
61    // Common Properties
62    // -----------------
63
64
65    /** This is the main color of a data point.
66
67        <p>For charts with filled areas, like bar-charts, this should
68        map to the <code>FillColor</code> of the objects.  For
69        line-charts this should map to the <code>LineColor</code>
70        property.</p>
71
72        @see com::sun::star::drawing::FillProperties
73        @see com::sun::star::drawing::LineProperties
74     */
75    [property] long                                   Color;
76
77    /** This is the main transparency value of a data point.
78
79        <p>For charts with filled areas, like bar-charts, this should
80        map to the <code>FillTransparence</code> of the objects.  For
81        line-charts this should map to the
82        <code>LineTransparence</code> property.</p>
83
84        @see com::sun::star::drawing::FillProperties
85        @see com::sun::star::drawing::LineProperties
86     */
87    [property] short                                  Transparency;
88
89
90    // Fill Properties
91    // ---------------
92
93	/** This enumeration selects the style with which the area will be filled.
94	*/
95    [property] ::com::sun::star::drawing::FillStyle   FillStyle;
96
97	/** This describes the transparency of the fill area as a gradient.
98	*/
99    [optional, property] ::com::sun::star::awt::Gradient        TransparencyGradient;
100    [optional, property] ::com::sun::star::awt::Gradient        Gradient;
101    [optional, property] ::com::sun::star::drawing::Hatch       Hatch;
102
103	[property] string TransparencyGradientName;
104	[property] string GradientName;
105	[property] string HatchName;
106	[property] string FillBitmapName;
107
108    /** If <TRUE/>, fills the background of a hatch with the color
109        given in the <member>Color</member> property.
110     */
111    [property] boolean FillBackground;
112
113    /** Is used for borders around filled objects.  See
114        <code>LineColor</code>.
115
116        @see com::sun::star::drawing::LineProperties
117     */
118    [property] long                                   BorderColor;
119    /** Is used for borders around filled objects.  See
120        <code>LineStyle</code>.
121
122        @see com::sun::star::drawing::LineProperties
123     */
124	[property] ::com::sun::star::drawing::LineStyle   BorderStyle;
125    /** Is used for borders around filled objects.  See
126        <code>LineWidth</code>.
127
128        @see com::sun::star::drawing::LineProperties
129     */
130    [property] long                                   BorderWidth;
131    /** Is used for borders around filled objects.  See
132        <code>LineDash</code>.
133
134        @see com::sun::star::drawing::LineProperties
135     */
136    [property] ::com::sun::star::drawing::LineDash    BorderDash;
137
138    /** The name of a dash that can be found in the
139        <type scope="com::sun::star::container">XNameContainer</type>
140        "com.sun.star.drawing.LineDashTable", that can be created via
141        the
142        <type scope="com::sun::star::uno">XMultiServiceFactory</type>
143        of the <type>ChartDocument</type>.
144     */
145    [optional, property] string                       BorderDashName;
146
147    /** Is used for borders around filled objects.  See
148        <code>LineTransparence</code>.
149
150        @see com::sun::star::drawing::LineProperties
151     */
152    [optional, property] short                        BorderTransparency;
153
154
155    // Line Properties
156    // ---------------
157    [property] ::com::sun::star::drawing::LineStyle   LineStyle;
158    /** Is only used for line-chart types.
159
160        @see com::sun::star::drawing::LineProperties
161     */
162    [property] long                                   LineWidth;
163    /** Is only used for line-chart types.
164
165        @see com::sun::star::drawing::LineProperties
166     */
167    [property] ::com::sun::star::drawing::LineDash    LineDash;
168
169    /** The name of a dash that can be found in the
170        <type scope="com::sun::star::container">XNameContainer</type>
171        "com.sun.star.drawing.LineDashTable", that can be created via
172        the
173        <type scope="com::sun::star::uno">XMultiServiceFactory</type>
174        of the <type>ChartDocument</type>.
175     */
176    [optional, property] string                       LineDashName;
177
178	//-------------------------------------------------------------------------
179
180    // bitmap properties /copied from drawing::FillProperties
181
182	/** This is the horizontal offset where the tile starts.
183
184		<p>It is given in percent in relation to the width of the bitmap.
185	*/
186	[property] short FillBitmapOffsetX;
187
188	/** This is the vertical offset where the tile starts.
189
190		It is given in percent in relation to the width of the bitmap.
191	*/
192	[property] short FillBitmapOffsetY;
193
194	/** Every second line of tiles is moved the given percent of the
195		witdh of the bitmap.
196	*/
197	[property] short FillBitmapPositionOffsetX;
198
199	/** Every second row of tiles is moved the given percent of the
200		width of the bitmap.
201	*/
202	[property] short FillBitmapPositionOffsetY;
203
204	/** The RectanglePoint specifies the position inside of the bitmap to
205		use as the top left position for rendering.
206	*/
207	[property] com::sun::star::drawing::RectanglePoint FillBitmapRectanglePoint;
208
209	/** specifies if the size is given in percentage or
210		as an absolute value.
211
212		<p>If this is <TRUE/>, the properties FillBitmapSizeX
213		and  FillBitmapSizeY contain the size of the tile in percent
214		of the size of the original bitmap. If this
215		is <FALSE/>, the size of the tile is specified
216		with 1/100th mm.
217	*/
218	[property] boolean FillBitmapLogicalSize;
219
220	/** This is the width of the tile for filling.
221
222		<p>Depending on the property FillBitmapLogicalSize, this is
223		either relative or absolute.
224	*/
225	[property] long FillBitmapSizeX;
226
227	/** This is the height of the tile for filling.
228
229		<p>Depending on the property FillBitmapLogicalSize, this
230		is either relative or absolute.
231	*/
232	[property] long FillBitmapSizeY;
233
234	/** this enum selects how a area is filled with a single bitmap.
235	*/
236	[property] com::sun::star::drawing::BitmapMode FillBitmapMode;
237
238	//-------------------------------------------------------------------------
239
240    /**
241     */
242    [optional, property] Symbol                       Symbol;
243
244    /** describes a value by which a data point is moved from its
245        default position in percent of the maximum allowed distance.
246
247        <p>This is especially useful for the explosion of pie-chart
248        segments.</p>
249     */
250    [optional, property] double                       Offset;
251
252    /** describes the geometry of a 3 dimensional datapoint.
253        Number is one of constant group <type>DataPointGeometry3D</type>.
254        <p>This is especially used for 3D bar-charts.</p>
255        <p>CUBOID==0 CYLINDER==1 CONE==2 PYRAMID==3 CUBOID==else</p>
256    */
257    [optional, property] long                         Geometry3D;
258
259    [property] DataPointLabel                         Label;
260
261    /** specifies a string that is used to separate the parts of a data label (caption)
262	 */
263    [optional, property] string LabelSeparator;
264
265    /** specifies a number format for the display of the value in the data label
266	 */
267    [optional, property] long NumberFormat;
268
269    /** specifies a number format for the display of the percentage value in the data label
270	 */
271    [optional, property] long PercentageNumberFormat;
272
273    /** specifies a relative position for the data label
274
275        @see ::com::sun::star::chart::DataLabelPlacement
276	 */
277    [optional, property] long LabelPlacement;
278
279    /** The size of the page at the moment when the font size for
280        data labels was set.
281
282        <p>This size is used to resize text in the view when the size
283        of the page has changed since the font sizes were set
284        (automatic text scaling).</p>
285     */
286    [maybevoid, property] com::sun::star::awt::Size   ReferencePageSize;
287
288    // statistics
289
290    /** If void, no error bars are shown for the data point in
291        x-direction.
292
293        <p>The <type scope="com::sun::star::beans">XPropertySet</type>
294        must support the service <type>ErrorBar</type>.</p>
295     */
296    [optional, maybevoid, property] com::sun::star::beans::XPropertySet      ErrorBarX;
297
298    /** If void, no error bars are shown for the data point in
299        y-direction.
300
301        <p>The <type scope="com::sun::star::beans">XPropertySet</type>
302        must support the service <type>ErrorBar</type>.</p>
303     */
304    [optional, maybevoid, property] com::sun::star::beans::XPropertySet      ErrorBarY;
305
306    /** In case <member>ErrorBarX</member> and
307        <member>ErrorBarY</member> both are set, and error bars are
308        shown, a box spanning all error-indicators is rendered.
309     */
310    [optional, maybevoid, property] boolean           ShowErrorBox;
311
312
313    /** A value between 0 and 100 indicating the percentage how round an edge should be.
314    */
315    [optional, maybevoid, property] short             PercentDiagonal;
316};
317
318} ; // chart2
319} ; // com
320} ; // sun
321} ; // star
322
323
324#endif
325