1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
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 .
18 */
19#ifndef __com_sun_star_chart_ChartAxis_idl__
20#define __com_sun_star_chart_ChartAxis_idl__
21
22#include <com/sun/star/drawing/LineProperties.idl>
23
24#include <com/sun/star/style/CharacterProperties.idl>
25
26#include <com/sun/star/beans/XPropertySet.idl>
27
28#include <com/sun/star/chart/ChartAxisArrangeOrderType.idl>
29#include <com/sun/star/chart/ChartAxisPosition.idl>
30#include <com/sun/star/chart/ChartAxisLabelPosition.idl>
31#include <com/sun/star/chart/ChartAxisMarkPosition.idl>
32#include <com/sun/star/chart/ChartAxisType.idl>
33#include <com/sun/star/chart/TimeIncrement.idl>
34#include <com/sun/star/chart/XAxis.idl>
35#include <com/sun/star/xml/UserDefinedAttributesSupplier.idl>
36
37
38 module com {  module sun {  module star {  module chart {
39
40
41/** Specifies the axes in a diagram.
42
43    <p>Note: The text properties correlate to all axis description
44    elements, not to just a single text element.</p>
45 */
46published service ChartAxis
47{
48    /** set the properties for the entire axis line as well as for the
49        tick marks.
50     */
51    service com::sun::star::drawing::LineProperties;
52
53    /** set the properties for all text labels of the axis
54     */
55    service com::sun::star::style::CharacterProperties;
56
57    /** If a ChartAxis may be stored as XML element, this
58        service should be supported in order to preserve unparsed XML
59        attributes.
60
61        @since OOo 1.1.2
62     */
63    [optional] service com::sun::star::xml::UserDefinedAttributesSupplier;
64
65    /** Access to the sub elements of an axis like title and grids.
66        @since OOo 3.4
67     */
68    [optional] interface com::sun::star::chart::XAxis;
69
70    interface com::sun::star::beans::XPropertySet;
71
72    /** Properties for scaling:
73    */
74
75
76    /** Contains the maximum value for the axis scale.
77     */
78    [optional, property] double Max;
79
80
81    /** Contains the minimum value for the axis scale.
82     */
83    [optional, property] double Min;
84
85
86    /** Contains the distance between the main tick marks.
87     */
88    [optional, property] double StepMain;
89
90
91    /**
92    Contains the number of help intervals within a main interval. E.g. a StepHelpCount of 5 divides
93    the main interval into 5 pieces and thus produces 4 help tick marks.
94    */
95    [optional, property] long StepHelpCount;
96
97
98    /** @deprecated
99    User property StepHelpCount instead
100    Contains the distance between the help tick marks.
101    */
102    [optional, property] double StepHelp;
103
104
105    /** The maximum value of the axis scale is calculated by the chart if
106        this property is `TRUE`.
107     */
108    [optional, property] boolean AutoMax;
109
110
111    /** The minimum value of the axis scale is calculated by the chart if
112        this property is `TRUE`.
113     */
114    [optional, property] boolean AutoMin;
115
116
117    /** The distance between the main tick marks is calculated by the chart
118        if this property is `TRUE`.
119     */
120    [optional, property] boolean AutoStepMain;
121
122
123    /** The number of help intervals within a main interval is calculated by the
124        chart if this property is `TRUE`.
125    */
126    [optional, property] boolean AutoStepHelp;
127
128
129
130    /** Determines if the axis is scaled logarithmically or
131        not (linear).
132     */
133    [optional, property] boolean Logarithmic;
134
135
136    /** determines which type of axis this is, e.g. a date-axis or a category-axis @see ChartAxisType
137        @since OOo 3.4
138     */
139    [optional, property] long AxisType;
140
141
142    /** if the current axis is a date-axis the intervals are chosen as given with TimeIncrement
143        @since OOo 3.4
144     */
145    [optional, maybevoid, property] TimeIncrement TimeIncrement;
146
147
148    /** Determines if the axis orientation is mathematical or reversed.
149     */
150    [optional, property] boolean ReverseDirection;
151
152
153    /** Determines where the axis crosses the other axis.
154     */
155    [optional, property] com::sun::star::chart::ChartAxisPosition CrossoverPosition;
156
157
158    /** Determines the scale value on the other axis when CrossoverPosition is set to VALUE.
159     */
160    [optional, property] double CrossoverValue;
161
162
163    /** Indicates the reference value where bars or areas have their grounding.
164        This property has only an effect when the used ODF file format does not allow for
165        further axis positioning or the axis is a secondary y-axis.
166     */
167    [optional, property] double Origin;
168
169
170    /** The origin is calculated by the chart if this property is `TRUE`.
171     */
172    [optional, property] boolean AutoOrigin;
173
174    /** Properties for interval marks:
175    */
176
177
178    /** Determines the type of the marks.@see ChartAxisMarks
179     */
180    [property] long Marks;
181
182
183    /** Determines the type of the help marks.@see ChartAxisMarks
184     */
185    [property] long HelpMarks;
186
187    /** Determines where the interval marks are placed.
188     */
189    [optional, property] com::sun::star::chart::ChartAxisMarkPosition MarkPosition;
190
191    /** Properties for axes labels:
192    */
193
194
195    /** Determines whether to display text at the axis or not.
196     */
197    [property] boolean DisplayLabels;
198
199
200    /** Contains the type id for the number formatter of the axis.
201
202        @see com::sun::star::util::XNumberFormatter
203     */
204    [property] long NumberFormat;
205
206
207    /** determines whether to use the number format given by the
208        container application, e.g.  a spreadsheet document, or from
209        the own property #NumberFormat.
210     */
211    [optional, property] boolean LinkNumberFormatToSource;
212
213
214    /** Determines where the axis labels are placed.
215     */
216    [optional, property] com::sun::star::chart::ChartAxisLabelPosition LabelPosition;
217
218
219    /** Determines the rotation of the text elements
220        (axis description) in 100th degrees.
221     */
222    [property] long TextRotation;
223
224
225    /** The axis description may be arranged in a special order for a
226        better placement.
227     */
228    [property] com::sun::star::chart::ChartAxisArrangeOrderType ArrangeOrder;
229
230
231    /** Determines if long text is broken into multiple lines.
232     */
233    [property] boolean TextBreak;
234
235
236    /** Determines if certain labels are hidden, if they would otherwise overlap.
237        In this case, the value of this property must be set to `FALSE`.
238     */
239    [property] boolean TextCanOverlap;
240
241    /** Properties related to bar charts:
242    */
243
244
245    /** Determines the overlap of the bars in a bar-type chart.
246
247        <p>The value is given in percent of the width of the bars. The
248        valid range is -100% to +100%. +100% means full overlap, -100%
249        indicates a distance of one bar between 2 neighboring bars.</p>
250     */
251    [property] long Overlap;
252
253
254    /** Specifies the width of the gaps between each set of data points
255        in a bar chart.
256
257        <p>The value is given in percent of the width of a bar; the
258        valid range is 0 to 600%.</p>
259     */
260    [property] long GapWidth;
261};
262
263
264}; }; }; };
265
266#endif
267
268/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
269