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_chart_XChartDocument_idl__
24#define __com_sun_star_chart_XChartDocument_idl__
25
26#ifndef __com_sun_star_frame_XModel_idl__
27#include <com/sun/star/frame/XModel.idl>
28#endif
29
30#ifndef __com_sun_star_drawing_XShape_idl__
31#include <com/sun/star/drawing/XShape.idl>
32#endif
33
34#ifndef __com_sun_star_beans_XPropertySet_idl__
35#include <com/sun/star/beans/XPropertySet.idl>
36#endif
37
38#ifndef __com_sun_star_chart_XDiagram_idl__
39#include <com/sun/star/chart/XDiagram.idl>
40#endif
41
42#ifndef __com_sun_star_chart_XChartData_idl__
43#include <com/sun/star/chart/XChartData.idl>
44#endif
45
46
47//=============================================================================
48
49 module com {  module sun {  module star {  module chart {
50
51//=============================================================================
52
53/** manages the chart document.
54
55	@see XDiagram
56    @see XChartData
57 */
58published interface XChartDocument: com::sun::star::frame::XModel
59{
60	//-------------------------------------------------------------------------
61
62	/** @returns
63			the shape of the main title of the chart document.
64
65		@see ChartTitle
66	 */
67	com::sun::star::drawing::XShape getTitle();
68
69	//-------------------------------------------------------------------------
70
71	/** @returns
72			the shape of the subtitle of the chart document.
73
74       <p>Usually the subtitle is smaller than the main title by
75       default.  And it is most commonly placed below the main title
76       by default.</p>
77
78		@see ChartTitle
79	 */
80	com::sun::star::drawing::XShape getSubTitle();
81
82	//-------------------------------------------------------------------------
83
84	/** @returns
85			the shape of the legend of the chart document.
86
87		@see ChartLegend
88	 */
89	com::sun::star::drawing::XShape getLegend();
90
91	//-------------------------------------------------------------------------
92
93	/** @returns
94			the properties of the background area of the chart document.
95
96        <p>The area's extent is equal to the document size.  If you
97        want to access properties of the background area of the
98        diagram, in which the actual data is represented, you have to
99        change the chart wall which you get from the
100        <type>X3DDisplay</type>.</p>
101
102		@see ChartArea
103        @see X3DDisplay
104	 */
105	com::sun::star::beans::XPropertySet getArea();
106
107	//-------------------------------------------------------------------------
108
109	/** @returns
110			the diagram of the chart document.
111
112		@see Diagram
113	 */
114	com::sun::star::chart::XDiagram getDiagram();
115
116	//-------------------------------------------------------------------------
117
118	/** sets the diagram for the chart document.
119
120		<p>Setting a new diagram implicitly disposes the previous
121		diagram.</p>
122
123        @param xDiagram
124        	the new diagram that should be set for the chart.  To
125            create such a diagram component, you can use the
126            <type scope="com::sun::star::lang">XMultiServiceFactory</type>,
127            which should be implemented by an
128            <type>XChartDocument</type>.
129	 */
130	void setDiagram( [in] com::sun::star::chart::XDiagram xDiagram );
131
132	//-------------------------------------------------------------------------
133
134	/** @returns
135            the data of the chart.
136
137        <p>The returned object supports interface <type>XChartDataArray</type>
138        which can be used to access the concrete data.</p>
139
140        <p>Since OpenOffice 3.3 the returned object also supports interface <type>XComplexDescriptionAccess</type>
141        which can be used to access complex hierarchical axis descriptions.</p>
142
143        <p>Since OpenOffice 3.4 the returned object also supports interface <type>XDateCategories</type>.</p>
144
145        @see XChartData
146        @see XChartDataArray
147        @see XComplexDescriptionAccess
148        @see XDateCategories
149	 */
150	com::sun::star::chart::XChartData getData();
151
152	//-------------------------------------------------------------------------
153
154	/** attaches data to the chart.
155
156        <p>The given object needs to support interface <type>XChartDataArray</type>.</p>
157
158        <p>Since OpenOffice 3.3 if the given object might support interface <type>XComplexDescriptionAccess</type>
159        which allows to set complex hierarchical axis descriptions.</p>
160
161        <p>Since OpenOffice 3.4 if the given object might support interface <type>XDateCategories</type>
162        which allows to set date values as x values for category charts.</p>
163
164        <p>The given data is copied before it is applied to the chart.
165        So changing xData after this call will have no effect on the chart.</p>
166
167        @see XChartData
168        @see XChartDataArray
169        @see XComplexDescriptionAccess
170        @see XDateCategories
171
172        @param xData
173        	the object that provides the new data.
174	 */
175	void attachData( [in] com::sun::star::chart::XChartData xData );
176
177};
178
179//=============================================================================
180
181}; }; }; };
182
183#endif
184