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