merge the formfield patch from ooo-build
[ooovba.git] / offapi / com / sun / star / chart2 / XPlotter.idl
blob064db4ebccf70be5e09883e5904580dacd6bcc27
1 #ifndef com_sun_star_chart2_XPlotter_idl
2 #define com_sun_star_chart2_XPlotter_idl
4 #ifndef __com_sun_star_uno_XInterface_idl__
5 #include <com/sun/star/uno/XInterface.idl>
6 #endif
8 #ifndef __com_sun_star_drawing_XShapes_idl__
9 #include <com/sun/star/drawing/XShapes.idl>
10 #endif
12 #ifndef _com_sun_star_drawing_XShapeGrouper_idl_
13 #include <com/sun/star/drawing/XShapeGrouper.idl>
14 #endif
16 #ifndef _com_sun_star_lang_xmultiservicefactory_idl_
17 #include <com/sun/star/lang/XMultiServiceFactory.idl>
18 #endif
20 #ifndef com_sun_star_chart2_CoordinateSystemTypeID_idl
21 #include <com/sun/star/chart2/CoordinateSystemTypeID.idl>
22 #endif
24 #ifndef com_sun_star_chart2_ScaleData_idl
25 #include <com/sun/star/chart2/ScaleData.idl>
26 #endif
28 #ifndef com_sun_star_chart2_XTransformation_idl
29 #include <com/sun/star/chart2/XTransformation.idl>
30 #endif
32 //=============================================================================
34 module com { module sun { module star { module chart2 {
36 //=============================================================================
38 /** The main task of a Plotter is to create grafic objects which have a certain
39 logic place within a coordinate system. For example the bars of a barchart
40 are such grafic objects. The created grafic objects need to be of type
41 com::sun::star::drawing::Shape.
43 <p>
44 Within the chart application we differentiatebetween two 'types' of shapes
45 which can be created by a Plotter.
46 The first type are shapes which are completely defined by coordinates
47 in the logic coordinate system and will be positioned within this logic
48 coordinate system. Those shapes are called 'logic shapes'
49 or 'logically placed shapes'. For example a rectangle of a bar chart
50 is a 'logic shape'.
51 </p>
53 <p>
54 The second type of shapes are those who can not or should not
55 be placed in the logic coordinate system. For example consider a three
56 dimensional bar chart with text labels for each data point. You probably
57 would not like to place the text shapes as three dimensional objects within
58 the logic coordinate system, rather you would like to position the texts as
59 two dimensional objects on the two dimensional final page. Those shapes are
60 called 'illogic shapes' in contrast to 'logic shapes'.
61 'Illogic shapes' are always two dimensional and placed on the documents page.
62 </p>
64 <p>
65 For each type of shapes the Plotter gets one Target where it can add
66 or remove shapes.
67 </p>
69 <p> A Plotter is not allowed to set the property 'Transformation' on a
70 shape as this will be done elsewhere.
71 </p>
74 //@ todo ? should this be a XComponent?
75 interface XPlotter : ::com::sun::star::uno::XInterface
77 //-------------------------------------------------------------------------
78 /** Each Plotter implicit uses a certain type of logic coordinate
79 system for interpreting data as coordinates.
80 For example a bar-chart uses a cartesian coordinate system for
81 interpreting x- and y-values from a spreadsheet as cartesian
82 coordinates. In contrast the pie chart assumes a polar coordinate
83 system.
84 The type of this implicit used source coordinate system has to be
85 returned here.
86 The returned type of an implementation never changes.
88 CoordinateSystemTypeID getCoordinateSystemTypeID();
90 //-------------------------------------------------------------------------
91 /** For each type of shapes ('logic' or 'illogic') there exists one
92 container. The Plotter will create shapes and then add (or remove)
93 them from these containers.
95 <p>
96 The lifetime of the container has to be handled by the calling object. The
97 calling object must assure that the container will exist longer than the
98 XPlotter Object.
99 </p>
102 void init( [in] com::sun::star::drawing::XShapes xLogicTarget
103 , [in] com::sun::star::drawing::XShapes xFinalTarget
104 , [in] com::sun::star::lang::XMultiServiceFactory xFactory );
106 //-------------------------------------------------------------------------
107 /** For each dimension of the 'logic source coordinate system' the
108 XPlotter object needs a Scale to decide which shapes
109 need to be created and maybe logically clipped. The XPlotter object
110 becomes the new owner of the given scales and directions and needs to keep
111 them alive. Nobody else will change them.
112 Pay attention that a 'Scale' can have several breaks.
114 void setScales( [in] sequence< ScaleData > rScales);
116 //-------------------------------------------------------------------------
119 void setTransformation( [in] XTransformation xTransformationToLogicTarget
120 , [in] XTransformation xTransformationToFinalPage );
123 //=============================================================================
125 }; }; }; };
127 #endif