merged tag ooo/OOO330_m14
[LibreOffice.git] / offapi / com / sun / star / chart2 / ExplicitIncrementData.idl
blob48f01c7560c495162f09621e63b0724e77c4abe2
1 #ifndef com_sun_star_chart2_ExplicitIncrementData_idl
2 #define com_sun_star_chart2_ExplicitIncrementData_idl
4 #include <com/sun/star/chart2/ExplicitSubIncrement.idl>
6 //=============================================================================
8 module com { module sun { module star { module chart2 {
10 //=============================================================================
12 /** An Increment describes how tickmarks are positioned on the scale of an axis.
14 @see <type>Axis</type>
15 @see <type>Grid</type>
16 @see <type>Scale</type>
17 @see <type>XScaling</type>
19 struct ExplicitIncrementData
21 /** <member>Distance</member> describes the distance between two
22 neighboring main tickmarks on a <type>Scale</type> of an axis.
23 All neighboring main tickmarks have the same constant distance.
25 <p>If the Scale has a <type>XScaling</type> the <member>Distance</member>
26 may be measured in two different ways - that is - before or after the
27 scaling is applied.</p>
29 <p>On a logarithmic scale for example the distance between two main
30 tickmarks is typically measured after the scaling is applied:
31 Distance = log(tick2)-log(tick1)
32 ( log(1000)-log(100)==log(100)-log(10)==log(10)-log(1)==1==Distance ).
33 The resulting tickmarks will always look equidistant on the screen.
34 The other possibility is to have a Distance = tick2-tick1 measured constant
35 before a scaling is applied, which may lead to non equidistant tickmarks
36 on the screen.</p>
38 <p><member>PostEquidistant</member> rules wether the <member>Distance</member>
39 is meant to be a value before or after scaling.</p>
41 double Distance;
43 /**
44 <member>PostEquidistant</member> rules wether the member <member>Distance</member>
45 describes a distance before or after the scaling is applied.
47 <p>If <member>PostEquidistant</member> equals <TRUE/> <member>Distance</member>
48 is given in values after <type>XScaling</type> is applied, thus resulting
49 main tickmarks will always look equidistant on the screen.
50 If <member>PostEquidistant</member> equals <FALSE/> <member>Distance</member>
51 is given in values before <type>XScaling</type> is applied.</p>
53 boolean PostEquidistant;
55 /** The <member>BaseValue</member> gives a starting point on the scale
56 to which all further main tickmarks are relatively positioned.
58 <p>The <member>BaseValue</member> is always a value on the scale before
59 a possible scaling is applied. If the given value is not valid in the
60 associated scaling the minimum of the scaling is assumed,
61 if there is no minimum any other obvious value will be assumed.</p>
63 <p>E.g.: assume a scale from 0 to 6 with identical scaling.
64 Further assume this Increment to have Distance==2 and PostEquidistant==false.
65 Setting BaseValue=0 would lead to main tickmarks 0; 2; 4; 6;
66 Setting BaseValue=1,3 would lead to main tickmarks 1,3; 3,3; 5,3;
67 Setting BaseValue=-0,7 would also lead to main tickmarks 1,3; 3,3; 5,3;
68 And setting BaseValue to 2, -2, 4, -4 etc. in this example
69 leads to the same result as BaseValue=0.</p>
71 double BaseValue;
73 /** <member>SubIncrements</member> describes the positioning of further
74 sub tickmarks on the scale of an axis.
76 <p>The first SubIncrement in this sequence determines how the
77 distance between two neighboring main tickmarks is divided for positioning
78 of further sub tickmarks. Every following SubIncrement determines the
79 positions of subsequent tickmarks in relation to their parent tickmarks
80 iven by the preceding SubIncrement.</p>
82 sequence< ::com::sun::star::chart2::ExplicitSubIncrement > SubIncrements;
84 /** If ShiftedPosition is false all ticks are set at the positions as described above.
85 E.g. having tickmarks for whole numbers 1, 2 and 3 the ticks are exactly placed on positions for the values 1, 2 and 3.
86 In contrast it is possible to have the tickmarks shifted thus they are placed between the indicated values.
87 So if ShiftedPosition is set to true the tickmarks in the example are placed at 0.5 1.5 2.5 and 3.5.
89 boolean ShiftedPosition;
92 //=============================================================================
94 }; }; }; };
96 #endif