From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001
From: Daniel Baumann If this property is not set, it is treated as auto. This
+ means linked to the source format. To determine a source format, the axis can query the
+ XDataSequences used by the data series attached
+ to it (see XDataSequence::getNumberFormatKeyByIndex()).
+ Japanese candlesticks show the first and last value as
+ boxes. A rising course (i.e. if the last value is greater
+ than the first one) is shown by a white box. A falling course
+ is shown by a black box. Default is `FALSE`.
The com::sun::star::beans::XPropertySet + given here must support the services + com::sun::star::drawing::FillProperties + and + com::sun::star::drawing::LineProperties.
+ */ + [maybevoid, property] com::sun::star::beans::XPropertySet WhiteDay; + + /** If the candlestick chart shows Japanese candlesticks, that is + the property #Japanese is `TRUE`, the + property set given here contains the formatting attributes of + the black boxes, i.e. the boxes shown for falling values. + +The com::sun::star::beans::XPropertySet + given here must support the services + com::sun::star::drawing::FillProperties + and + com::sun::star::drawing::LineProperties.
+ */ + [maybevoid, property] com::sun::star::beans::XPropertySet BlackDay; + + /** If this property is `TRUE`, the first value (which would be + the opening course in a stock chart) is shown in the chart. + This also makes the role "values-first" mandatory. + +This property is only evaluated for non-Japanese + candlestick charts, as Japanese candlesticks always require to + show the first value.
+ +Default is `FALSE`.
+ */ + [maybedefault, property] boolean ShowFirst; + + /** If this property is `TRUE`, the low and high values are shown + in the chart. This also makes the roles "values-min" and + "values-max" mandatory. + +Default is `TRUE`.
+ */ + [maybedefault, property] boolean ShowHighLow; +}; + +} ; // chart2 +} ; // star +} ; // sun +} ; // com + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/CartesianCoordinateSystem2d.idl b/offapi/com/sun/star/chart2/CartesianCoordinateSystem2d.idl new file mode 100644 index 000000000..c547575bf --- /dev/null +++ b/offapi/com/sun/star/chart2/CartesianCoordinateSystem2d.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_CartesianCoordinateSystem2d_idl +#define com_sun_star_chart2_CartesianCoordinateSystem2d_idl + +#includeThe following arguments are allowed in the given order:
+ ++The service CoordinateSystemType represents a special type of coordinate system. +For example a 2 dimensional Cartesian coordinate system is a CoordinateSystemType +and different from for example a 3 dimensional spherical coordinate system. +
+A CoordinateSystemType is a stateless service which has no owner and does not +enable cyclic references, thus its lifetime can be handled by reference or it +may be implemented as a singleton.
+*/ + +service CoordinateSystemType +{ + /** required interface + */ +// interface ::com::sun::star::chart2::XCoordinateSystemType; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/CoordinateSystemTypeID.idl b/offapi/com/sun/star/chart2/CoordinateSystemTypeID.idl new file mode 100644 index 000000000..7d8f9fa4e --- /dev/null +++ b/offapi/com/sun/star/chart2/CoordinateSystemTypeID.idl @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef com_sun_star_chart2_CoordinateSystemTypeID_idl +#define com_sun_star_chart2_CoordinateSystemTypeID_idl + + + +module com { module sun { module star { module chart2 { + + +typedef string CoordinateSystemTypeID; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/CurveStyle.idl b/offapi/com/sun/star/chart2/CurveStyle.idl new file mode 100644 index 000000000..605477620 --- /dev/null +++ b/offapi/com/sun/star/chart2/CurveStyle.idl @@ -0,0 +1,115 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_CurveStyle_idl +#define com_sun_star_chart2_CurveStyle_idl + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +/** Sets the type of curves that are drawn for line charts. + */ +enum CurveStyle +{ + /** Lines between data points are not smoothed + */ + LINES, + + /** Data points are connected via a smoothed cubic spline curve. + The data points themselves are part of to the curve. + */ + CUBIC_SPLINES, + + /** Data points are connected via a parametric, interpolating + B-spline curve. + */ + B_SPLINES, + + /** + * Non-uniform rational b-splines + */ + NURBS, + + /** Data points are connected via a 2-segmented stepped line. + The line starts horizontally. + + \verbatim + O + | + | + | + O-----+ + \endverbatim + */ + STEP_START, + + /** Data points are connected via a 2-segmented stepped line. + The line ends horizontally. + + \verbatim + +------O + | + | + | + O + \endverbatim + */ + STEP_END, + + /** Data points are connected via a 3-segmented stepped line. + The lines is horizontal till the center of the X values. + + \verbatim + +--O + | + | + | + O--+ + \endverbatim + */ + STEP_CENTER_X, + + /** Data points are connected via a 3-segmented stepped line. + The lines is horizontal at the center of the Y values. + + \verbatim + O + | + +-----+ + | + O + \endverbatim + */ + STEP_CENTER_Y +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/DataPoint.idl b/offapi/com/sun/star/chart2/DataPoint.idl new file mode 100644 index 000000000..f3810f9e7 --- /dev/null +++ b/offapi/com/sun/star/chart2/DataPoint.idl @@ -0,0 +1,69 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_DataPoint_idl +#define com_sun_star_chart2_DataPoint_idl + +#includeIt should provide templates for all properties in this + service, thus it must also support DataPoint.
+ */ +// [property] ::com::sun::star::style::XStyle Style; + + /** Gives the offset of the data point. For PieDiagrams this + would be the percentage by which pies are dragged out of the + cake. + */ + [optional, property] double Offset; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/DataPointCustomLabelField.idl b/offapi/com/sun/star/chart2/DataPointCustomLabelField.idl new file mode 100644 index 000000000..cebe1c327 --- /dev/null +++ b/offapi/com/sun/star/chart2/DataPointCustomLabelField.idl @@ -0,0 +1,26 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef com_sun_star_chart2_DataPointCustomLabelField_idl +#define com_sun_star_chart2_DataPointCustomLabelField_idl + +#includeThat means, if a data point is the first one of a series, + the percentage is calculated by using the first data points of + all available series.
+ */ + boolean ShowNumberInPercent; + + /** The caption contains the category name of the category to + which a data point belongs. + */ + boolean ShowCategoryName; + + /** The symbol of data series is additionally displayed in the + caption. + */ + boolean ShowLegendSymbol; + + /** The caption contains a custom label text, which belongs + to a data point label. + + @since LibreOffice 7.1 + */ + boolean ShowCustomLabel; + + /** The name of the data series is additionally displayed in the caption. + + @since LibreOffice 7.2 + */ + boolean ShowSeriesName; +}; + + + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/DataPointProperties.idl b/offapi/com/sun/star/chart2/DataPointProperties.idl new file mode 100644 index 000000000..4588b5bb9 --- /dev/null +++ b/offapi/com/sun/star/chart2/DataPointProperties.idl @@ -0,0 +1,347 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_DataPointProperties_idl +#define com_sun_star_chart2_DataPointProperties_idl + +#includeDEFAULT_VALUE
.
+ */
+// [optional, property] ::com::sun::star::style::XStyle Style;
+
+ // Common Properties
+
+
+ /** This is the main color of a data point.
+
+ For charts with filled areas, like bar-charts, this should
+ map to the FillColor
of the objects. For
+ line-charts this should map to the LineColor
+ property.
For charts with filled areas, like bar-charts, this should
+ map to the FillTransparence
of the objects. For
+ line-charts this should map to the
+ LineTransparence
property.
LineColor
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] long BorderColor;
+ /** Is used for borders around filled objects. See
+ LineStyle
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] ::com::sun::star::drawing::LineStyle BorderStyle;
+ /** Is used for borders around filled objects. See
+ LineWidth
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] long BorderWidth;
+ /** Is used for borders around filled objects. See
+ LineDash
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] ::com::sun::star::drawing::LineDash BorderDash;
+
+ /** The name of a dash that can be found in the
+ com::sun::star::container::XNameContainer
+ "com.sun.star.drawing.LineDashTable", that can be created via
+ the
+ com::sun::star::uno::XMultiServiceFactory
+ of the ChartDocument.
+ */
+ [optional, property] string BorderDashName;
+
+ /** Is used for borders around filled objects. See
+ LineTransparence
.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [optional, property] short BorderTransparency;
+
+
+ // Line Properties
+ [property] ::com::sun::star::drawing::LineStyle LineStyle;
+ /** Is only used for line-chart types.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] long LineWidth;
+ /** Is only used for line-chart types.
+
+ @see com::sun::star::drawing::LineProperties
+ */
+ [property] ::com::sun::star::drawing::LineDash LineDash;
+
+ /** The name of a dash that can be found in the
+ com::sun::star::container::XNameContainer
+ "com.sun.star.drawing.LineDashTable", that can be created via
+ the
+ com::sun::star::uno::XMultiServiceFactory
+ of the ChartDocument.
+ */
+ [optional, property] string LineDashName;
+
+
+ // bitmap properties /copied from drawing::FillProperties
+
+ /** This is the horizontal offset where the tile starts.
+
+ It is given in percent in relation to the width of the bitmap. + */ + [property] short FillBitmapOffsetX; + + /** This is the vertical offset where the tile starts. + + It is given in percent in relation to the width of the bitmap. + */ + [property] short FillBitmapOffsetY; + + /** Every second line of tiles is moved the given percent of the + width of the bitmap. + */ + [property] short FillBitmapPositionOffsetX; + + /** Every second row of tiles is moved the given percent of the + width of the bitmap. + */ + [property] short FillBitmapPositionOffsetY; + + /** The RectanglePoint specifies the position inside of the bitmap to + use as the top left position for rendering. + */ + [property] com::sun::star::drawing::RectanglePoint FillBitmapRectanglePoint; + + /** specifies if the size is given in percentage or + as an absolute value. + +
If this is `TRUE`, the properties FillBitmapSizeX + and FillBitmapSizeY contain the size of the tile in percent + of the size of the original bitmap. If this + is `FALSE`, the size of the tile is specified + with 1/100th mm. + */ + [property] boolean FillBitmapLogicalSize; + + /** This is the width of the tile for filling. + +
Depending on the property FillBitmapLogicalSize, this is + either relative or absolute. + */ + [property] long FillBitmapSizeX; + + /** This is the height of the tile for filling. + +
Depending on the property FillBitmapLogicalSize, this + is either relative or absolute. + */ + [property] long FillBitmapSizeY; + + /** this enum selects how an area is filled with a single bitmap. + */ + [property] com::sun::star::drawing::BitmapMode FillBitmapMode; + + + /** + */ + [optional, property] Symbol Symbol; + + /** describes a value by which a data point is moved from its + default position in percent of the maximum allowed distance. + +
This is especially useful for the explosion of pie-chart + segments.
+ */ + [optional, property] double Offset; + + /** describes the geometry of a 3 dimensional data point. + Number is one of constant group DataPointGeometry3D. +This is especially used for 3D bar-charts.
+CUBOID==0 CYLINDER==1 CONE==2 PYRAMID==3 CUBOID==else
+ */ + [optional, property] long Geometry3D; + + [property] DataPointLabel Label; + + /** specifies a text with possible fields that is used as a data point label, + if set then Label property is ignored + + @since LibreOffice 6.1 + */ + [optional, property] sequenceThis size is used to resize text in the view when the size + of the page has changed since the font sizes were set + (automatic text scaling).
+ */ + [maybevoid, property] com::sun::star::awt::Size ReferencePageSize; + + // statistics + + /** If void, no error bars are shown for the data point in + x-direction. + +The com::sun::star::beans::XPropertySet + must support the service ErrorBar.
+ */ + [optional, maybevoid, property] com::sun::star::beans::XPropertySet ErrorBarX; + + /** If void, no error bars are shown for the data point in + y-direction. + +The com::sun::star::beans::XPropertySet + must support the service ErrorBar.
+ */ + [optional, maybevoid, property] com::sun::star::beans::XPropertySet ErrorBarY; + + /** In case #ErrorBarX and + #ErrorBarY both are set, and error bars are + shown, a box spanning all error-indicators is rendered. + */ + [optional, maybevoid, property] boolean ShowErrorBox; + + + /** A value between 0 and 100 indicating the percentage how round an edge should be. + */ + [optional, maybevoid, property] short PercentDiagonal; + + /** Custom position on the page associated to the CUSTOM label placement. + + @since LibreOffice 7.0 + */ + [optional, maybevoid, property] ::com::sun::star::chart2::RelativePosition CustomLabelPosition; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/DataSeries.idl b/offapi/com/sun/star/chart2/DataSeries.idl new file mode 100644 index 000000000..11d4f5290 --- /dev/null +++ b/offapi/com/sun/star/chart2/DataSeries.idl @@ -0,0 +1,207 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_DataSeries_idl +#define com_sun_star_chart2_DataSeries_idl + +#includeIt combines one or more DataSequences which are + interpreted by evaluating their role-string.
+ + @see DataSequenceRole + */ +service DataSeries +{ + /** allows to connect a CoordinateSystem to a DataSeries + */ +// service CoordinateSystemSupplier; + +// service ChartTypeSupplier; + /** the property interface by which the properties of all + supported services are exchanged + */ + service ::com::sun::star::beans::PropertySet; + + /** these properties serve as default for data points. + +So, an attribute for a data point comes from one point in + the following hierarchy:
+ +The objects returned by the + com::sun::star::container::XIndexAccess + are of type + com::sun::star::beans::XPropertySet + and support the service + DataPoint. + */ +// interface ::com::sun::star::container::XIndexContainer; + + /** establishes a broadcaster-listener mechanism for the + com::sun::star::container::XIndexContainer + to keep changes and the property + DataSeries::AttributedDataPoints in sync. + */ +// interface ::com::sun::star::container::XContainer; + + /** Holds regression curves (aka trend-lines) for a data series. + */ + [optional] interface XRegressionCurveContainer; + + + /** This service will be used to render this data series. + +
This service name can be used to determine which DataSeries + are of the same type.
+ +The result of the + DataSeries::DataSequenceRoles depends on the + renderer service set here.
+ */ + // stored at the DataSeriesGroup now +// [property] string DataRendererServiceName; + + /** a sequence of indexes denoting which data points have set + properties that differ from the default. + +The default values are determined by the properties set at + the #DataPointProperties of the data + series.
+ +If the sequence is empty, that means that all data points + look alike. They are formatted using the property values set + in the data series.
+ +The indexes in this sequence match the indexes used by the + XIndexContainer.
+ +This property is especially useful for large data series + with only some formatted data points, because you do not have + to iterate over all elements.
+ */ + [readonly, optional, property] sequence< long > AttributedDataPoints; + + /** indicates whether this series should be stacked with respect to the previous series. + */ + [property] StackingDirection StackingDirection; + + /** If `TRUE`, the data points of this series get different + colors by default, like in a pie chart. + */ + [optional, property] boolean VaryColorsByPoint; + + /** This property describes whether the series should be shown at + the main value axis or at the secondary value axis. Having + this property not set or setting it to 0 means that this data + series will be scaled at the primary y-axis ( of the + coordinate system in which this series is hosted ). + +Setting this property to 1 means that this series should be + scaled at the secondary y-axis. If there is no secondary axis + the main axis should be used for scaling instead.
+ +If you want to scale a series at a different x or z axis + you need to create an additional coordinate system and host + this series there.
+ */ + [optional, property] long AttachedAxisIndex; + + /** This property describes whether the legend entry for the + the data series should be shown. + + @since LibreOffice 6.3 + */ + [optional, property] boolean ShowLegendEntry; + + /** A sequence of indexes denoting which data points shouldn't be + shown in the legend. + + @since LibreOffice 7.0 + */ + [optional, property] sequenceIf a relative position is given the diagram is not automatically placed, + but instead is placed relative on the page.
+ */ + [property, maybevoid] ::com::sun::star::chart2::RelativePosition RelativePosition; + + /** The size of the diagram as relative size of the page size. + */ + [property] ::com::sun::star::chart2::RelativeSize RelativeSize; + + /** The attributes RelativePosition and RelativeSize should be used for the inner coordinate region without axis labels and without data labels. + */ + [optional, property] boolean PosSizeExcludeLabels; + + /** Sort data points by x values for rendering + */ + [optional, property] boolean SortByXValues; + + /** Draw connection lines for stacked bar charts. + */ + [optional, property] boolean ConnectBars; + + /** If bars of a bar or column chart are attached to different + axis, this property determines how to display those. If + `TRUE`, the bars are grouped together in one block for each + axis, thus they are painted one group over the other. + +If `FALSE`, the bars are displayed side-by-side, as if + they were all attached to the same axis.
+ +If all data series of a bar or column chart are attached to + only one axis, this property has no effect.
+ */ + [optional, property] boolean GroupBarsPerAxis; + + /** Starting angle in degrees for pie charts and doughnut charts. + */ + [optional, property] long StartingAngle; + + [optional, property] boolean RightAngledAxes; + + /** Chart Datatable flags + */ + [optional, property] boolean DataTableHBorder; + [optional, property] boolean DataTableVBorder; + [optional, property] boolean DataTableOutline; + + /** Perspective of 3D charts ( [0,100] ). + */ + [optional, property] long Perspective; + + /** Horizontal rotation of 3D charts in degrees ( ]-180,180] ). + */ + [optional, property] long RotationHorizontal; + + /** Vertical rotation of 3D charts in degrees ( ]-180,180] ). + */ + [optional, property] long RotationVertical; + + /** specifies how empty or invalid cells in the provided data should be handled when displayed + + @see ::com::sun::star::chart::MissingValueTreatment + */ + [optional, property] long MissingValueTreatment; + + [optional, property] string ExternalData; + +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/ErrorBar.idl b/offapi/com/sun/star/chart2/ErrorBar.idl new file mode 100644 index 000000000..7d022141c --- /dev/null +++ b/offapi/com/sun/star/chart2/ErrorBar.idl @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_ErrorBar_idl +#define com_sun_star_chart2_ErrorBar_idl + +#includeIf not mentioned explicitly, the base for the power function is + 10.0
+*/ +service ExponentialScaling : com::sun::star::chart2::XScaling; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/FillBitmap.idl b/offapi/com/sun/star/chart2/FillBitmap.idl new file mode 100644 index 000000000..7f0aabbb8 --- /dev/null +++ b/offapi/com/sun/star/chart2/FillBitmap.idl @@ -0,0 +1,100 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_FillBitmap_idl +#define com_sun_star_chart2_FillBitmap_idl + +#includeIt is given in percent in relation to the width of the + bitmap.
+ */ + com::sun::star::awt::Point aOffset; + + /** Every second line (X) / row (Y) of tiles is moved the given + percent of the width of the bitmap. + */ + com::sun::star::awt::Point aPositionOffset; + + /** The RectanglePoint specifies the position inside of the bitmap + to use as the top left position for rendering. + */ + com::sun::star::drawing::RectanglePoint aRectanglePoint; + + /** specifies if the size is given in percentage or as an absolute + value. + +If this is `TRUE`, the properties SizeX and + SizeY contain the size of the tile in percent of the + size of the original bitmap. If this is `FALSE`, the size of + the tile is specified with 1/100th mm.
+ */ + boolean bLogicalSize; + + /** This is the size of the tile for filling. + +Depending on the property LogicalSize, this is + either relative or absolute.
+ */ + com::sun::star::awt::Size aSize; + + /** this enum selects how an area is filled with a single bitmap. + +It may be repeated, stretched or displayed with blank space + around it.
+ */ + com::sun::star::drawing::BitmapMode aBitmapMode; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/FormattedString.idl b/offapi/com/sun/star/chart2/FormattedString.idl new file mode 100644 index 000000000..e4d80e7ef --- /dev/null +++ b/offapi/com/sun/star/chart2/FormattedString.idl @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef com_sun_star_chart2_FormattedString_idl +#define com_sun_star_chart2_FormattedString_idl + +#includeIf #PostEquidistant equals `TRUE` #Distance + is given in values after XScaling is applied, thus resulting + main tickmarks will always look equidistant on the screen. + If #PostEquidistant equals `FALSE` #Distance + is given in values before XScaling is applied.
+ */ + any PostEquidistant; + + /** if the any contains a double value this is used as a fixed + BaseValue. Otherwise, if the any is empty or contains an + incompatible type, the BaseValue is meant to be calculated + automatically by the view component representing the model + containing this increment. + */ + any BaseValue; + + /** #SubIncrements describes the positioning of further + sub tickmarks on the scale of an axis. + +The first SubIncrement in this sequence determines how the + distance between two neighboring main tickmarks is divided for positioning + of further sub tickmarks. Every following SubIncrement determines the + positions of subsequent tickmarks in relation to their parent tickmarks + given by the preceding SubIncrement.
+ */ + sequence< SubIncrement > SubIncrements; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/Legend.idl b/offapi/com/sun/star/chart2/Legend.idl new file mode 100644 index 000000000..805e90da6 --- /dev/null +++ b/offapi/com/sun/star/chart2/Legend.idl @@ -0,0 +1,102 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_Legend_idl +#define com_sun_star_chart2_Legend_idl + +#includeSet the Expansion to + ::com::sun::star::chart#HIGH + for a legend that is positioned on the right or left hand + side. Use ::com::sun::star::chart::WIDE for a legend + that is positioned on top or the bottom.
+ */ + [property] ::com::sun::star::chart::ChartLegendExpansion Expansion; + + /** Determines, whether the legend should be rendered by the view. + */ + [property] boolean Show; + + /** Determines, whether the legend should overlay the chart. + + @since LibreOffice 7.0 + */ + [property] boolean Overlay; + + /** contains the size of the page at the time when properties were + set (e.g. the CharHeight). + +This way it is possible to resize objects (like text) in + the view without modifying the model.
+ */ + [property, maybevoid] com::sun::star::awt::Size ReferencePageSize; + + /** The position is as a relative position on the page. + +If a relative position is given the legend is not automatically placed, + but instead is placed relative on the page.
+ +If `VOID`, the legend position is solely determined by the + #AnchorPosition.
+ */ + [property, maybevoid] ::com::sun::star::chart2::RelativePosition RelativePosition; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LegendPosition.idl b/offapi/com/sun/star/chart2/LegendPosition.idl new file mode 100644 index 000000000..b408e6a20 --- /dev/null +++ b/offapi/com/sun/star/chart2/LegendPosition.idl @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_LegendPosition_idl +#define com_sun_star_chart2_LegendPosition_idl + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +enum LegendPosition +{ + /** In LTR mode this is the left-hand side + */ + LINE_START, + + /** In LTR mode this is the right-hand side + +This usually is the default.
+ */ + LINE_END, + + /** In LTR mode this is the top side + */ + PAGE_START, + + /** In LTR mode this is the bottom side + */ + PAGE_END, + + /** The position of the legend is given by an offset value + */ + CUSTOM +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LightSource.idl b/offapi/com/sun/star/chart2/LightSource.idl new file mode 100644 index 000000000..89ac5966c --- /dev/null +++ b/offapi/com/sun/star/chart2/LightSource.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_LightSource_idl +#define com_sun_star_chart2_LightSource_idl + +#includeIf not mentioned explicitly, the parameter m is 1.0 + and t is 0.0, which means the transformation is an + identical mapping.
+*/ +service LinearScaling : com::sun::star::chart2::XScaling; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LogarithmicRegressionCurve.idl b/offapi/com/sun/star/chart2/LogarithmicRegressionCurve.idl new file mode 100644 index 000000000..cd791e8d2 --- /dev/null +++ b/offapi/com/sun/star/chart2/LogarithmicRegressionCurve.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_LogarithmicRegressionCurve_idl +#define com_sun_star_chart2_LogarithmicRegressionCurve_idl + +#includeIf not mentioned explicitly, the base for the logarithm is + 10.0
+*/ +service LogarithmicScaling : com::sun::star::chart2::XScaling; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/LogicTargetModel.idl b/offapi/com/sun/star/chart2/LogicTargetModel.idl new file mode 100644 index 000000000..4bc46105b --- /dev/null +++ b/offapi/com/sun/star/chart2/LogicTargetModel.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef com_sun_star_chart2_LogicTargetModel_idl +#define com_sun_star_chart2_LogicTargetModel_idl + +#includeThe properties of this service correspond to the similar named attributes + and subelements of the XML element chart2:increment in the chart2 file format.
+*/ +service LogicTargetModel +{ + /** identifies an instance of this service within one chart document. + */ + [ readonly, property ] string ID; + + /** identifies an instance of the service com::sun::star::chart2::LegendModel within one chart document. + * that instance is used to automatically calculate missing properties + */ + [ property ] string LegendID; + + /** not BOUND nor CONSTRAINED in terms of Listener notifications, + * each element in the sequence must implement the service com::sun::star::chart2::CoordinateSystem + */ + [ property ] sequence< ::com::sun::star::beans::XPropertySet > CoordinateSystems; + + /** MAYBEVOID, not BOUND nor CONSTRAINED in terms of Listener notifications, + * each element in the sequence must implement the service com::sun::star::chart2::LogicTargetModel + */ + [ property ] sequence< ::com::sun::star::beans::XPropertySet > LogicTargetModels; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/MovingAverageRegressionCurve.idl b/offapi/com/sun/star/chart2/MovingAverageRegressionCurve.idl new file mode 100644 index 000000000..d2a6d89a0 --- /dev/null +++ b/offapi/com/sun/star/chart2/MovingAverageRegressionCurve.idl @@ -0,0 +1,38 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_MovingAverageRegressionCurve_idl +#define com_sun_star_chart2_MovingAverageRegressionCurve_idl + +#includeIf not mentioned explicitly, the exponent for the power + function is 10.0
+*/ +service PowerScaling : com::sun::star::chart2::XScaling; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/PropertyPool.idl b/offapi/com/sun/star/chart2/PropertyPool.idl new file mode 100644 index 000000000..42ac558bd --- /dev/null +++ b/offapi/com/sun/star/chart2/PropertyPool.idl @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_PropertyPool_idl +#define com_sun_star_chart2_PropertyPool_idl + +#includeAs the service
+ com::sun::star::style::Style implies the
+ implementation of
+ com::sun::star::beans::XPropertySet, the
+ method
+ com::sun::star::style::XDefaultsSupplier::getDefaults()
+ should return itself.
+ */
+ interface ::com::sun::star::style::XDefaultsSupplier;
+};
+
+} ; // chart2
+} ; // com
+} ; // sun
+} ; // star
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/RegressionCurve.idl b/offapi/com/sun/star/chart2/RegressionCurve.idl
new file mode 100644
index 000000000..3ba881465
--- /dev/null
+++ b/offapi/com/sun/star/chart2/RegressionCurve.idl
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_RegressionCurve_idl
+#define com_sun_star_chart2_RegressionCurve_idl
+
+#include For example for western languages the primary direction may be
+ the horizontal distance measured from left to right. The values are relative to a reference size (for example the page size).
+ Values between 0 and 1 span the complete bounding rectangle. For example for western languages the secondary direction may be
+ the vertical distance measured from top to bottom. The values are relative to a reference size (for example the page size).
+ Values between 0 and 1 span the complete bounding rectangle. The Anchor indicates which point of the placed object
+ will be placed at the coordinates given within Primary and Secondary. For example if Anchor is TOP_LEFT the top left corner of an object will
+ be placed at the given coordinates. If Anchor is RIGHT the right middle corner of the object will
+ be placed at the given coordinates. Typically, the direction is determined by an
+ Orientation. Another typical use would be the
+ direction of a given orientation-angle. The values are relative to the page or an object. Values
+ between 0 and 1 span the complete bounding rectangle of the
+ page/object. For a western Orientation this is the
+ width. Typically, the direction is determined by an
+ Orientation. Another typical use would be the
+ direction perpendicular to a given orientation-angle. The values are relative to the page or an object. Values
+ between 0 and 1 span the complete bounding rectangle of the
+ page/object. For a western Orientation this is the
+ height. If the maximum is automatic, this means, each view that
+ represents the model containing this scale, has to calculate a
+ maximum by its own means. If the minimum is automatic, this means, each view that
+ represents the model containing this scale, has to calculate a
+ minimum by its own means. If used at the Y axis in pie charts or doughnut charts, specifies
+ the rotation direction of the pie. The value
+ AxisOrientation::MATHEMATICAL rotates the pie
+ counterclockwise, the value AxisOrientation::REVERSE
+ rotates the pie clockwise. Note: Is this a good place for the axis orientation? Two axes may
+ use the same scale, but point into two different directions. It can be a real number axis or a category axis or something else.
+ AxisType is one value out of the constant group AxisType. If n is the number of standard symbols available in an
+ implementation, the symbol number is
+ #StandardSymbol modulo n. The default implementation for example currently uses 8 different
+ standard symbols that are matched to the numbers 0 to 7.
+
+
+
+
+
+ value StandardSymbol visible Symbol
+ 0
square
+ 1
diamond
+ 2
down arrow
+ 3
up arrow
+ 4
right arrow
+ 5
left arrow
+ 6
bowtie
+ 7
sandglass
Only effective if #Style is + SymbolStyle::AUTO, + SymbolStyle::STANDARD or + SymbolStyle::POLYGON.
+ */ + long BorderColor; + + /** The color used for filling symbols that contain closed polygons. + +Only effective if #Style is + SymbolStyle::AUTO, + SymbolStyle::STANDARD or + SymbolStyle::POLYGON.
+ */ + long FillColor; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/SymbolStyle.idl b/offapi/com/sun/star/chart2/SymbolStyle.idl new file mode 100644 index 000000000..794ce773b --- /dev/null +++ b/offapi/com/sun/star/chart2/SymbolStyle.idl @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_SymbolStyle_idl +#define com_sun_star_chart2_SymbolStyle_idl + + +module com { module sun { module star { module chart2 { + + +/** determines what kind of symbol to use + */ +enum SymbolStyle +{ + /** The symbol is invisible + */ + NONE, + + /** The symbol is taken automatically. + +This will typically be the nth standard symbol for the nth + data series.
+ */ + AUTO, + + /** uses one of the standard symbols. Which standard symbol is + given in Symbol::StandardSymbol. + */ + STANDARD, + + /** uses the symbol given in the + com::sun::star::drawing::PolyPolygonBezierCoords + given in Symbol::PolygonCoords. + */ + POLYGON, + + /** uses the graphic given in + Symbol::Graphic as symbol. + */ + GRAPHIC +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/TickmarkStyle.idl b/offapi/com/sun/star/chart2/TickmarkStyle.idl new file mode 100644 index 000000000..375d40073 --- /dev/null +++ b/offapi/com/sun/star/chart2/TickmarkStyle.idl @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_TickmarkStyle_idl +#define com_sun_star_chart2_TickmarkStyle_idl + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +constants TickmarkStyle +{ + /** Do not display any marks. + */ + const long NONE = 0; + + /** Display marks that point into the diagram area. + */ + const long INNER = 1; + + /** Display marks that point out of the diagram area. + */ + const long OUTER = 2; + + // note: to get both, add INNER and OUTER +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/Title.idl b/offapi/com/sun/star/chart2/Title.idl new file mode 100644 index 000000000..96efb48f7 --- /dev/null +++ b/offapi/com/sun/star/chart2/Title.idl @@ -0,0 +1,85 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_Title_idl +#define com_sun_star_chart2_Title_idl + +#includeIf a relative position is given the title is not automatically placed, + but instead is placed relative on the page.
+ */ + [property, maybevoid] ::com::sun::star::chart2::RelativePosition RelativePosition; + + + /** contains the size of the page at the time when properties were + set (e.g. the CharHeight). + +This way it is possible to resize objects (like text) in + the view without modifying the model.
+ */ + [property, maybevoid] com::sun::star::awt::Size ReferencePageSize; +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/TransparencyStyle.idl b/offapi/com/sun/star/chart2/TransparencyStyle.idl new file mode 100644 index 000000000..4c43b1f7d --- /dev/null +++ b/offapi/com/sun/star/chart2/TransparencyStyle.idl @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_TransparencyStyle_idl +#define com_sun_star_chart2_TransparencyStyle_idl + +module com +{ +module sun +{ +module star +{ +module chart2 +{ + +enum TransparencyStyle +{ + /** no transparency attribute is evaluated + */ + NONE, + + /** The property Transparency is evaluated, TransparencyGradient + is ignored + */ + LINEAR, + + /** The property TransparencyGradient is evaluated, Transparency + is ignored + */ + GRADIENT +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XAnyDescriptionAccess.idl b/offapi/com/sun/star/chart2/XAnyDescriptionAccess.idl new file mode 100644 index 000000000..551709daf --- /dev/null +++ b/offapi/com/sun/star/chart2/XAnyDescriptionAccess.idl @@ -0,0 +1,88 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_chart2_XAnyDescriptionAccess_idl__ +#define __com_sun_star_chart2_XAnyDescriptionAccess_idl__ + +#includeCan be obtained from interface XChartDocument via method getData().
+ +@since OOo 3.4 +*/ + +interface XAnyDescriptionAccess : ::com::sun::star::chart::XComplexDescriptionAccess +{ + + /** retrieves the descriptions for all rows. + + @returns + a sequence of sequences of anys representing the descriptions + of all rows. The outer index represents different rows. + The inner index represents the different levels (usually there is only one). + The any might be strings for category text axis or doubles for date axis. + */ + sequence< sequence< any > > getAnyRowDescriptions(); + + + /** sets the descriptions for all rows. + + @param rRowDescriptions + a sequence of sequences of anys representing the descriptions of all + rows. The outer index represents different rows. + The inner index represents the different levels (usually there is only one). + The any might be strings for category text axis or doubles for date axis. + */ + void setAnyRowDescriptions( [in] sequence< sequence< any > > rRowDescriptions ); + + + /** retrieves the descriptions for all columns. + + @returns + a sequence of sequences of anys representing the descriptions + of all columns. The outer index represents different columns. + The inner index represents the different levels (usually there is only one). + The any might be strings for category text axis or doubles for date axis. + */ + sequence< sequence< any > > getAnyColumnDescriptions(); + + + /** sets the descriptions for all columns. + + @param rColumnDescriptions + a sequence of sequences of anys which represent the descriptions of + all columns. The outer index represents different columns. + The inner index represents the different levels (usually there is only one). + The any might be strings for category text axis or doubles for date axis. + */ + void setAnyColumnDescriptions( [in] sequence< sequence< any > > rColumnDescriptions ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XAxis.idl b/offapi/com/sun/star/chart2/XAxis.idl new file mode 100644 index 000000000..7c2964a5a --- /dev/null +++ b/offapi/com/sun/star/chart2/XAxis.idl @@ -0,0 +1,68 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_XAxis_idl +#define com_sun_star_chart2_XAxis_idl + +#includeIf you do not want to render certain a sub-grid, in the + corresponding XPropertySet the property + GridProperties::Show must be `FALSE`.
+ */ + sequence< com::sun::star::beans::XPropertySet > getSubGridProperties(); + + /** the returned property sets must support the service + TickProperties + */ + sequence< com::sun::star::beans::XPropertySet > getSubTickProperties(); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartDocument.idl b/offapi/com/sun/star/chart2/XChartDocument.idl new file mode 100644 index 000000000..484d4c256 --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartDocument.idl @@ -0,0 +1,139 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_XChartDocument_idl +#define com_sun_star_chart2_XChartDocument_idl + +#includeNotes: this is preliminary, we need an API that supports + more than one diagram. The method name getDiagram exists in + the css.chart API, so there is would be no way to choose either + this or the other method from Basic (it would chose one or the + other by random).
+ */ + XDiagram getFirstDiagram(); + + /** @todo allow more than one diagram + +Notes: this is preliminary, we need an API that supports + more than one diagram. The method name setDiagram exists in + the css.chart API, so there is would be no way to choose either + this or the other method from Basic (it would chose one or the + other by random).
+ */ + void setFirstDiagram( [in] XDiagram xDiagram ); + + /** creates an internal + com::sun::star::chart2::XDataProvider that + is handled by the chart document itself. + +When the model is stored, the data provider will also be + stored in a sub-storage.
+ + @param bCloneExistingData + if `TRUE` and a data provider was previously attached, + its referred data will be copied to the new internal data + provider. Note, that the range representation set before + will usually change after cloning. + + @throws com::sun::star::util:CloseVetoException + If the new data provider could not be created due to a + failed removal of the former data provider. + */ + void createInternalDataProvider( [in] boolean bCloneExistingData ) + raises( com::sun::star::util::CloseVetoException ); + + /** @return `TRUE` if the data provider set at the chart document + is an internal one. + +This is the case directly after + createInternalDataProvider() has been called, + but this is not necessary. The chart can also create an + internal data provider by other means, e.g. a call to + com::sun::star::frame::XModel::initNew(). +
+ */ + boolean hasInternalDataProvider(); + + /** Returns the currently set data provider. This may be an + internal one, if createInternalDataProvider() + has been called before, or an external one if + XDataReceiver::attachDataProvider() has been + called. + */ + com::sun::star::chart2::data::XDataProvider getDataProvider(); + + /** sets a new component that is able to create different chart + type templates (components of type + ChartTypeTemplate) + */ + void setChartTypeManager( [in] XChartTypeManager xNewManager ); + + /** retrieves the component that is able to create different chart + type templates (components of type + ChartTypeTemplate) + */ + XChartTypeManager getChartTypeManager(); + + /** Gives access to the page background appearance. + + @return + the properties of the background area of the chart + document. + +The area's extent is equal to the document size. If you + want to access properties of the background area of a single + diagram (the part where data points are actually plotted in), + you have to get its wall. You can get the wall by calling + XDiagram::getWall().
+ */ + com::sun::star::beans::XPropertySet getPageBackground(); + + /** Creates a default chart type for a brand-new chart object. + */ + void createDefaultChart(); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartShape.idl b/offapi/com/sun/star/chart2/XChartShape.idl new file mode 100644 index 000000000..08bab11ce --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartShape.idl @@ -0,0 +1,87 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef com_sun_star_chart2_XChartShape_idl +#define com_sun_star_chart2_XChartShape_idl + +#includeAll roles must be listed in the order in which they are + usually parsed. This ensures that gluing sequences together + and splitting them up apart again results in the same + structure as before.
+ +Note, that this does not involve optional roles, like + error-bars.
+ */ + sequence< string > getSupportedMandatoryRoles(); + + /** Returns a sequence of roles that are understood in addition to + the mandatory roles (see + XChartType::getSupportedMandatoryRoles()). + +An example for an optional role are error-bars.
+ */ + sequence< string > getSupportedOptionalRoles(); + + /** Returns a sequence with supported property mapping roles. + +An example for a property mapping role is FillColor.
+ */ + sequence< string > getSupportedPropertyRoles(); + + /** Returns the role of the XLabeledDataSequence of + which the label will be taken to identify the + DataSeries in dialogs or the legend. + */ + string getRoleOfSequenceForSeriesLabel(); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XChartTypeContainer.idl b/offapi/com/sun/star/chart2/XChartTypeContainer.idl new file mode 100644 index 000000000..12c1a7bd4 --- /dev/null +++ b/offapi/com/sun/star/chart2/XChartTypeContainer.idl @@ -0,0 +1,68 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_XChartTypeContainer_idl +#define com_sun_star_chart2_XChartTypeContainer_idl + +#includeFor standard parameters that may be used, see the + service StandardDiagramCreationParameters. +
+ + @return + The new diagram which represents this + ChartTypeTemplate. + */ + XDiagram createDiagramByDataSource( + [in] com::sun::star::chart2::data::XDataSource xDataSource, + [in] sequence< com::sun::star::beans::PropertyValue > aArguments ); + + /** @return + `TRUE` if the template does support categories + */ + boolean supportsCategories(); + + /** Analyses the given diagram and reinterprets its + DataSeries and Categories and + creates a new diagram based on these series. + +Note, that if matchesTemplate() returns + `TRUE` for the given XDiagram, the latter should + not be changed.
+ + @param xDiagram + The diagram given will be modified such that it represents + this ChartTypeTemplate. + */ + void changeDiagram( [in] XDiagram xDiagram ); + + /** Changes the given diagramxDiagram
by using the
+ new data given in xDataSource
.
+
+ Note that the data is interpreted in a way that fits this + template, but not necessarily the chart-types of the diagram. + This method should only be called if the data-format of the + diagram is compatible with the data-format of this + template.
+ +Ideally a matchesTemplate() call for the + given diagram should return `TRUE` before this method is + called.
+ + @param xDiagram + The diagram to be changed. + + @param xDataSource + This data source will be interpreted in a chart-type + specific way and the DataSeries found in +xDiagram
will be adapted to the new data.
+ Missing data series will be created and unused ones will
+ be deleted in xDiagram
.
+
+ @param aArguments
+ Arguments that tell the template how to slice the given
+ range. The properties should be defined in a separate
+ service.
+
+ For standard parameters that may be used, see the + service StandardDiagramCreationParameters. +
+ */ + void changeDiagramData( + [in] XDiagram xDiagram, + [in] com::sun::star::chart2::data::XDataSource xDataSource, + [in] sequence< com::sun::star::beans::PropertyValue > aArguments ); + + /** States whether the given diagram could have been created by + the template. + +The template will parse the DataSeriesTree of + the diagram to determine if the structure matches the one + which would have been created by + createDiagramByDataSource().
+ +For analysis all parts of the diagram may be used,
+ e.g. also properties set at the data series (like symbols)./p>
+
+ @param xDiagram
+ The diagram to be analyzed.
+
+ @param bAdaptProperties
+ If `TRUE` the properties of the template are set, such
+ that the template matches more accurately. E.g. for a
+ line-chart with symbols the property "Symbol" would be set
+ to `TRUE`. If this parameter is `FALSE` the template
+ itself stays unmodified.
+
+ @return
+ `TRUE` if the diagram given is structurally identical to
+ a diagram that was created using
+ createDiagramByDataSource() or
+ changeDiagram(). If `FALSE` is returned
+ the template stays unmodified even if
+ bAdaptProperties
is `TRUE`.
+ */
+ boolean matchesTemplate( [in] XDiagram xDiagram,
+ [in] boolean bAdaptProperties );
+
+ /** Provides a chart type object that can be used to create new
+ series.
+
+ @param aFormerlyUsedChartTypes
+ The list can be used to copy some aspects from old chart types during the creation of a new chart type.
+ The list might be empty.
+ */
+ XChartType getChartTypeForNewSeries( [in] sequence< XChartType > aFormerlyUsedChartTypes );
+
+ /**
+ This used to have a return type of XDataInterpreter.
+ Then I removed the whole XChartTypeTemplate interface in
+ commit 58766f997d59e4684f2887fd8cdeb12d2f8a9366.
+ Which turned out to be a bad idea, so I restored it.
+ I restored it in this form because I want to restore binary compatibily with vtable
+ layout, but I don't want to restore the XDataInterpreter stuff, which was not
+ useful for external use.
+ */
+ com::sun::star::uno::XInterface getDataInterpreter();
+
+ /** Applies a chart-type specific style (e.g. symbols) to all series in the
+ sequence aSeries.
+
+ @param xSeries
+ a single data series to which a style will be applied
+
+ @param nChartTypeGroupIndex
+ Denotes in which chart-type group the series lies, such this method
+ can apply different styles for different chart-type groups
+
+ @param nSeriesIndex
+ The index of the series inside the current chart-type group.
+ nSeriesIndex does not uniquely identify a data series alone, but
+ only together with nChartTypeGroupIndex
+
+ @param nSeriesCount
+ The number of series in the current chart-type group.
+
+ @todo In the future, this should only change the "Style" property and no
+ hard attributes.
+ */
+ void applyStyle( [in] XDataSeries xSeries,
+ [in] long nChartTypeGroupIndex,
+ [in] long nSeriesIndex,
+ [in] long nSeriesCount );
+
+ /** Resets all styles that were changed from the default at any
+ object in the chart and have not been later modified.
+
+
In createDiagramByDataSource() or + changeDiagram() a template might e.g. change + the page background color or the line style of all data + series. This method should reset all objects that still have + the changed settings to the default.
+ +If for example the template changed the + com::sun::star::drawing::LineStyle of all + series to NONE, this method should reset all series with + LineStyle NONE back to SOLID. If a series has a style DASH, + it must not be changed.
+ */ + void resetStyles( [in] XDiagram xDiagram ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XColorScheme.idl b/offapi/com/sun/star/chart2/XColorScheme.idl new file mode 100644 index 000000000..133d675c9 --- /dev/null +++ b/offapi/com/sun/star/chart2/XColorScheme.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_XColorScheme_idl +#define com_sun_star_chart2_XColorScheme_idl + +#includeThis may be a system wide color or a color coming from a + color scheme.
+ +Usually there exist a fixed number of default colors. This + method should always return a valid Color. If the index (i) + is higher than the number of default colors (n), the method + should return the modulus (i mod n), i.e., the colors should + repeat in a cyclic way.
+ + @param nIndex + The index of the series. This is used to obtain the + correct default color. + */ + ::com::sun::star::util::Color getColorByIndex( [in] long nIndex ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XCoordinateSystem.idl b/offapi/com/sun/star/chart2/XCoordinateSystem.idl new file mode 100644 index 000000000..be9478411 --- /dev/null +++ b/offapi/com/sun/star/chart2/XCoordinateSystem.idl @@ -0,0 +1,84 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_XCoordinateSystem_idl +#define com_sun_star_chart2_XCoordinateSystem_idl + +#includeThe wall is the area behind the union of all + coordinate systems used in a diagram.
+ */ + com::sun::star::beans::XPropertySet getWall(); + + /** returns the property set that determines the visual appearance + of the floor if any. + +The floor is the bottom of a 3D diagram. + For a 2D diagram NULL is returned.
+ */ + com::sun::star::beans::XPropertySet getFloor(); + + /** returns the legend, which may represent data series and other + information about a diagram in a separate box. + */ + XLegend getLegend(); + + /** sets a new legend. + */ + void setLegend( [in] XLegend xLegend ); + + /** returns an XColorScheme that defines the default + colors for data series (or data points) in the diagram. + */ + XColorScheme getDefaultColorScheme(); + + /** sets an XColorScheme that defines the default + colors for data series (or data points) in the diagram. + */ + void setDefaultColorScheme( [in] XColorScheme xColorScheme ); + + /** sets new data to the diagram. + + @param xDataSource + This data source will be interpreted in a chart-type + specific way and the DataSeries found in +xDiagram
will be adapted to the new data.
+ Missing data series will be created and unused ones will
+ be deleted.
+
+ @param aArguments
+ Arguments tells how to slice the given data.
+
+ For standard parameters that may be used, see the + service StandardDiagramCreationParameters. +
+ */ + void setDiagramData( [in] com::sun::star::chart2::data::XDataSource xDataSource, + [in] sequence< com::sun::star::beans::PropertyValue > aArguments ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XDiagramProvider.idl b/offapi/com/sun/star/chart2/XDiagramProvider.idl new file mode 100644 index 000000000..fea934e4a --- /dev/null +++ b/offapi/com/sun/star/chart2/XDiagramProvider.idl @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_XDiagramProvider_idl +#define com_sun_star_chart2_XDiagramProvider_idl + +#includeSequences that are directly retrieved via the methods of + the XDataProvider interface are already registered. If a + labeled data sequence was created by cloning an existing one, + it has to be explicitly registered via this method.
+ */ + void registerDataSequenceForChanges( [in] com::sun::star::chart2::data::XDataSequence xSeq ); + + /** insert an additional sequence for categories nLevel>=1; + categories at level 0 are always present and cannot be inserted or deleted + @since OOo 3.3 + */ + void insertComplexCategoryLevel( [in] long nLevel ); + /** deletes an additional sequence for categories at nLevel>=1; + categories at level 0 are always present and cannot be deleted + @since OOo 3.3 + */ + void deleteComplexCategoryLevel( [in] long nLevel ); +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XLabeled.idl b/offapi/com/sun/star/chart2/XLabeled.idl new file mode 100644 index 000000000..af05f9089 --- /dev/null +++ b/offapi/com/sun/star/chart2/XLabeled.idl @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_XLabeled_idl +#define com_sun_star_chart2_XLabeled_idl + +#includeIt is important that a renderer takes the scalings into + account. When one of these parameters is unknown, no + optimization must be done.
+ + @param min the abscissa value for the starting point. + @param max the abscissa value for the ending point. + + @param nPointCount the number of points to calculate. + + @param bMaySkipPointsInCalculation determines whether it is + allowed to skip points in the calculation. When this + parameter is `TRUE` it is assumed that the underlying + coordinate system is Cartesian. + + @param xScalingX a scaling that is used for the values in + x-direction + + @param xScalingY a scaling that is used for the values in + y-direction + */ + sequence< com::sun::star::geometry::RealPoint2D > getCurveValues( + [in] double min, + [in] double max, + [in] long nPointCount, + [in] XScaling xScalingX, + [in] XScaling xScalingY, + [in] boolean bMaySkipPointsInCalculation ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** Returns the value of the correlation coefficient for the given + regression. This value is often denoted as r or + R. + +The value of r is signed. Often + r2 is used instead of r to denote + a regression curve's accuracy.
+ + @return + The return value is the fraction of the variance in the + data that is explained by the regression. + */ + double getCorrelationCoefficient(); + + /** Retrieve a string showing the regression curve's function with + calculated parameters. + + @return + The string returned contains the regression curve's + formula in a form"f(x) = ...", where the + calculated parts are filled out. For a linear regression + you might get
"f(x) = 0.341 x + 1.45". + */ + string getRepresentation(); + + /** Returns a representation using the given number format for formatting all numbers + contained in the formula. Wrap equation to fit in nFormulaLength characters + + @see getRepresentation + */ + string getFormattedRepresentation( [in] com::sun::star::util::XNumberFormatsSupplier xNumFmtSupplier, + [in] long nNumberFormatKey, + [in] long nFormulaLength ); + + /** Set the names of X and Y variables of the equation to replace "x" and "f(x)" in representation + + @param aXName string of the name of X variable + @param aYName string of the name of Y variable + */ + void setXYNames( [in] string aXName, + [in] string aYName ); + +}; + +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/XRegressionCurveContainer.idl b/offapi/com/sun/star/chart2/XRegressionCurveContainer.idl new file mode 100644 index 000000000..05b76365b --- /dev/null +++ b/offapi/com/sun/star/chart2/XRegressionCurveContainer.idl @@ -0,0 +1,69 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_XRegressionCurveContainer_idl +#define com_sun_star_chart2_XRegressionCurveContainer_idl + +#include
With the interface XDataSequence it is possible to + transfer a complete sequence of values. + +
With the optional + com::sun::star::container::XIndexReplace it is + possible to modify single elements, if the corresponding + DataProvider supports modification of its values.
+ */ +service DataSequence +{ + /** provides read- and write-access to the underlying data. + */ + interface XDataSequence; + + /** you may implement this interface to allow a fast access to + numerical data. With this interface you can get a + `sequence` of `double` values. + */ + [optional] interface XNumericalDataSequence; + + /** you may implement this interface to allow a fast access to + textual data. With this interface you can get a + `sequence` of `string` values. + */ + [optional] interface XTextualDataSequence; + + /** provides read- and write-access to single elements of the + underlying data. + +Only when supporting this interface, it is possible for + client applications to modify the content of the data that is + provided by this DataSequence.
+ */ + [optional] interface ::com::sun::star::container::XIndexReplace; + + /** Allows creating copies of data sequences. If this interface + is not supported, the same object will be shared if used by + multiple objects. + +Cloning is especially useful when using identifiers. A + cloned data sequence will get a new identifier while the + source range representation is identical to the original + one.
+ +Note that, when this interface is not implemented the + releasing of identifiers at the XDataProvider + will not work properly, because more than one object may use + the same identifier. So, when an object releases the + identifier, another object might use a stale identifier.
+ */ + [optional] interface ::com::sun::star::util::XCloneable; + + /** is used to broadcast change events whenever the content (data) + or the range representations change. + */ + interface com::sun::star::util::XModifyBroadcaster; + + /** the property interface by which the properties of all + supported services are exchanged + */ + interface ::com::sun::star::beans::XPropertySet; + + + /** The key (index) of the number format that this sequence should + be formatted with. + +The key identifies a number format in an + com::sun::star::util::XNumberFormats + object. This object can be retrieved by the + com::sun::star::util::XNumberFormatsSupplier + interface supported by + com::sun::star::chart::ChartDocument.
+ + @todo use proper number format instead of a transient key. + */ +// [optional, property] long NumberFormatKey; + + /** The role of the series inside a data series. This may be any + string. However some strings are predefined and should always + be used in the same way. + + @see DataSequenceRole + */ + [property] DataSequenceRole Role; + + /** If set to false `FALSE`, values from hidden cells are not returned. + */ + [optional, property] boolean IncludeHiddenCells; + + /** a sequence of indexes that identify values that are hidden in the underlying + data provider. + */ + [optional, property] sequence< long > HiddenValues; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/DataSequenceRole.idl b/offapi/com/sun/star/chart2/data/DataSequenceRole.idl new file mode 100644 index 000000000..90fd2abd9 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/DataSequenceRole.idl @@ -0,0 +1,102 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_data_DataSequenceRole_idl +#define com_sun_star_chart2_data_DataSequenceRole_idl + +module com +{ +module sun +{ +module star +{ +module chart2 +{ +module data +{ + +/** a string that states in what way a DataSequence + should be used. If this property is an empty string, no + proposition about usage is made. + +The strings can have any value. However some values are + predefined and should always be interpreted in the same way.
+ +In a candle-stick chart you have the following roles:
+ +In case of a range spanning more than one column and row, + the shorter range of both should be used (e.g. a spreadsheet + range A1:B10 should treat columns as short side).
+ +In case of a rectangular range, or a range that is composed + of more than one contiguous sub-regions, the short side cannot + be determined, thus + XDataSequence::generateLabel() will return an + empty sequence.
+ */ + SHORT_SIDE, + + + /** This is exactly the opposite of SHORT_SIDE. I.e., if + SHORT_SIDE has the same effect as ROW, LONG_SIDE will have the + same effect as COLUMN and the other way round. + + @see LabelOrigin::SHORT_SIDE + */ + LONG_SIDE, + + + /** Uses the column name for label generation. A spreadsheet + range A1:A6 could, e.g., result in "Column A". + +If a range consists of more than one column the result of + label generation may be empty. Of course, it could also + succeed with a string like "Columns A to B". + */ + COLUMN, + + + /** Uses the column name for label generation. A spreadsheet + range A2:D2 could, e.g., result in "Row 2". + +
If a range consists of more than one row the result of
+ label generation may be empty. Of course, it could also
+ succeed with a string like "Rows 1-3".
+ */
+ ROW
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/chart2/data/LabeledDataSequence.idl b/offapi/com/sun/star/chart2/data/LabeledDataSequence.idl
new file mode 100644
index 000000000..58d78598a
--- /dev/null
+++ b/offapi/com/sun/star/chart2/data/LabeledDataSequence.idl
@@ -0,0 +1,49 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef com_sun_star_chart2_data_LabeledDataSequence_idl
+#define com_sun_star_chart2_data_LabeledDataSequence_idl
+
+#include The range address string must be interpretable by the
+ component that implements XDataProvider and gets
+ this property as argument to
+ XDataProvider::detectArguments(). The representation string is of a form that may be used in the
+ user interface. Example for OOo Calc: "$Sheet1.$A$1:$D$7",
+ example for OOo Writer: "<Table1.A1:D7>". When used as input, this range will be split in columns or
+ rows depending on the property
+ #DataRowSource. When used as output of
+ XDataProvider::detectArguments() this is the
+ range that spans the ranges of all given
+ XDataSequences. If the result is ambiguous,
+ i.e., a splitting of this range would not yield the same
+ result, this property should be empty. The latter is the
+ case, when ranges are overlapping, the lengths of sequences
+ are not equal or even if the order of two sequences is swapped
+ (e.g. data comes from column A, C, B). If this property is not given as argument it is assumed to
+ com::sun::star::chart::ChartDataRowSource::COLUMNS,
+ i.e., the default is "take data from columns". Even if this property is false, the
+ XLabeledDataSequence may contain a label, but
+ this will not be the first cell of the selection. It may be a
+ generic string like "Column C". If this property is not given as argument it is assumed to
+ be `FALSE`, i.e., the default is "no labels". For example a SequenceMapping of [3,0,2,1] indicates that
+ the sequence from old position "3" should now be the first one.
+ Then comes the sequence from old position "0". Then that one
+ from old position "2" and then the sequence from old position "1". If the SequenceMapping contains invalid indexes just
+ ignore those single indexes. For example if you only have three
+ labeled sequences and a SequenceMapping [2,5,1,0], you should
+ ignore the "5" and continue to place the sequence from
+ old index "1" to the next new position and so on. If the given SequenceMapping does not cover all existing
+ labeled sequences just put the remaining sequences in old order
+ behind the others. For example you have 4 sequences and a
+ SequenceMapping [3,1]. The result should be as if [3,1,0,2]
+ was given. This property is not relevant for the splitting up of the
+ data. It just indicates, if the chart wants to use part of
+ the data as categories, so that generic categories can be
+ returned if it doesn't. The generic category labeled sequence returned should be
+ the first one in the returned XDataSource. It
+ needs no label. The values should have their role set to
+ "categories". The generic strings returned should also be
+ localized. This argument is supported by Spreadsheets in order to be
+ able to export a document into the StarOffice 5.0 binary
+ format. Example: If you have the sheets (Sheet1, Sheet2, Sheet3) in
+ your document and a chart uses the range
+ "Sheet2.A1:.A5 Sheet3.A1:.A5 Sheet2.B1:.B5 Sheet1:B1:.B5", your
+ TableNumberList would be "1 2 1 0". A simple range like
+ "Sheet1.A1:.E4" would have the TableNumberList in "0" This can be used for creating the necessary data for a new
+ chart out of a previously selected range of cells in a
+ spreadsheet. For spreadsheets and text document tables there exists a
+ service TabularDataProviderArguments
+ describing valid values for this list. if xDataSource is a data source that was created with
+ createDataSource(), the arguments returned here
+ should be the same than the ones passed to the function.
+ Of course, this cannot be guaranteed. However, if detection
+ is ambiguous, the returned arguments should be empty. This method may merge representation strings together if
+ adjacent ranges appear successively in the range identifiers.
+ E.g., if the first range refers to "$Sheet1.$A$1:$A$8" and the
+ second range refers to "$Sheet1.$B$1:$B$8", those should be
+ merged together to "$Sheet1.$A$1:$B$8". This method may return nothing, if it does not support
+ range selection or if there is no current controller available
+ that offers the functionality.aArguments
.
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ may be raised by the XDataProvider if it is
+ unable to interpret the arguments passed in
+ aArguments
appropriately.
+ */
+ XDataSource createDataSource(
+ [in] sequence< com::sun::star::beans::PropertyValue > aArguments )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Tries to find out with what parameters the passed
+ DataSource most probably was created.
+
+ xDataSource
.
+ */
+ sequence< com::sun::star::beans::PropertyValue > detectArguments(
+ [in] XDataSource xDataSource );
+
+ /** If `TRUE` is returned, a call to
+ createDataSequenceByRangeRepresentation with the same argument must
+ return a valid XDataSequence object. If `FALSE` is returned,
+ createDataSequenceByRangeRepresentation throws an exception.
+ */
+ boolean createDataSequenceByRangeRepresentationPossible( [in] string aRangeRepresentation );
+
+ /** creates a single data sequence for the given data range.
+
+ @param aRangeRepresentation
+ is a string that can be interpreted by the component that
+ implements this interface. The representation string is
+ of a form that may be used in the user interface.
+
+ @see createDataSource
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given range does not contain a valid range
+ representation for a one-dimensional range of data.
+ */
+ XDataSequence createDataSequenceByRangeRepresentation(
+ [in] string aRangeRepresentation )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Creates a single data sequence from the string value array representation
+
+ @param aRole
+ The role of the sequence inside a data series. This may be any
+ string. However some strings are predefined and should always
+ be used in the same way.
+
+ @param aValueArray
+ is a string that contains the value representation of the
+ sequence to be created.
+
+ @param aRoleQualifier
+ is a string that describes the role of the sequence.
+ This may be any string. However some strings are predefined
+ and should always be used in the same way.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given value array does not contain a valid value array
+ representation.
+ */
+ XDataSequence createDataSequenceByValueArray( [in] string aRole, [in] string aValueArray,
+ [in] string aRoleQualifier )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns a component that is able to change a given range
+ representation to another one. This usually is a
+ controller-component that uses the GUI to allow a user to
+ select a new range.
+
+
The previously set data provider will be released.
+ + @param xProvider + The new DataProvider. If it is an empty reference, the + ChartDocument will have no data. + */ + void attachDataProvider( [in] XDataProvider xProvider ); + + void setArguments( [in] sequence< com::sun::star::beans::PropertyValue > aArguments ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** returns a list of all range strings for which data has been + requested by the most recently attached data provider, and + which is still used. + +This list may be used by the data provider to swap charts + out of memory, but still get informed by changes of ranges + while the chart is not loaded.
+ @return a list of used range strings. + */ + sequence< string > getUsedRangeRepresentations(); + + /** Returns the data requested by the most recently attached data + provider, that is still used. + */ + XDataSource getUsedData(); + + /** attaches an XNumberFormatsSupplier to this + XDataReceiver. + +The given number formats will be used for display purposes.
+ */ + void attachNumberFormatsSupplier( [in] com::sun::star::util::XNumberFormatsSupplier xSupplier ); + + /** Returns a component at which a view representing the data of + the attached data provider may listen for highlighting the + data ranges used by the currently selected objects in the data + receiver component. + +This is typically used by a spreadsheet to highlight the + ranges used by the currently selected object in a chart.
+ +The range highlighter is optional, i.e., this method may + return an empty object.
+ */ + XRangeHighlighter getRangeHighlighter(); + + /** A callback object to execute a foreign popup menu window. + + @since LibreOffice 5.4 + */ + com::sun::star::awt::XRequestCallback getPopupRequest(); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDataSequence.idl b/offapi/com/sun/star/chart2/data/XDataSequence.idl new file mode 100644 index 000000000..28999c01c --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDataSequence.idl @@ -0,0 +1,132 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_data_XDataSequence_idl +#define com_sun_star_chart2_data_XDataSequence_idl + +#includeThe data that is stored in this container may contain different + types.
+ */ +interface XDataSequence : ::com::sun::star::uno::XInterface +{ + /** retrieves the data stored in this component. + + @return a sequence containing the actual data. This sequence + is a copy of the internal data. Therefore changing + this object does not affect the content of the + XDataSequence object. + */ + sequence< any > getData(); + + /** returns the (UI) range representation string used by this + XDataSequence. + */ + string getSourceRangeRepresentation(); + + /** creates a label that describes the origin of this data + sequence. + +This is useful, if a XLabeledDataSequence has + no label sequence. In this case you can call this method at + the value sequence to obtain a fitting replacement label.
+ +The sequence returned here may be empty if no suitable + label can be generated.
+ +The strings returned should be localized.
+ + @param eLabelOrigin + denotes what part of the range should be used for label + generation. If you have, e.g., one cell only, the + parameter COLUMN enables you to get the name of the cell's + column, the parameter ROW will give you its row name. + + If you have a non quadratic range you can ask for labels for + the longer side with parameter LONG_SIDE or you can obtain labels + for the shorter side with parameter SHORT_SIDE. + + If the range is not structured in a tabular way you may receive + no label. + + @return + Suitable labels for the given sequence depending on the range + of the sequence and the parametereLabelOrigin
passed.
+ In a spreadsheet this would typically be a label like "Column x"
+ for the short side used as DataSeries name and maybe a
+ sequence "Row 1" "Row 2" "Row 3" for the long side to be used
+ as categories for example.
+
+ Example: Assuming this sequence has a Range representation spanning
+ row 5 and 6 in column 8. Following sequences of strings or similar strings
+ are expected as return values:
+
+ generateLabel( SHORT_SIDE ) -> "Column 8"
+ generateLabel( LONG_SIDE ) -> "Row 5" "Row 6"
+ generateLabel( COLUMN ) -> "Column 8"
+ generateLabel( ROW ) -> "Row 5" "Row 6"
+
+ Which strings exactly you return depends on the naming scheme of the application
+ which provides its tabular data.
+ */
+ sequence< string > generateLabel( [in] com::sun::star::chart2::data::LabelOrigin eLabelOrigin );
+
+ /** returns a number format key for the value at the given index
+ in the data sequence. If nIndex is -1, a key for the entire
+ sequence should be returned, e.g. the most commonly used one.
+
+ If number formats are not supported, or there is no + heuristic to return a key for the entire series, return 0 + here.
+ +The number format key must be valid for the + com::sun::star::util::XNumberFormatsSupplier + given by the XDataProvider, or 0 which is assumed + to be always valid.
+ */ + long getNumberFormatKeyByIndex( [in] long nIndex ) + raises( ::com::sun::star::lang::IndexOutOfBoundsException ); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDataSink.idl b/offapi/com/sun/star/chart2/data/XDataSink.idl new file mode 100644 index 000000000..6595109f2 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDataSink.idl @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_data_XDataSink_idl +#define com_sun_star_chart2_data_XDataSink_idl + +#includeIf you want to be able to also read the data set here, your + component must also implement XDataSource.
+ */ +interface XDataSink : ::com::sun::star::uno::XInterface +{ + /** sets new data sequences. The elements set here must support + the service DataSequence. + +If the data consist only of floating point numbers (double + values), the instances set here should also support the + service NumericalDataSequence.
+ +If the data consist only of strings, the instances set here + should also support the service + TextualDataSequence.
+ +If one of the derived services is supported by one element + of the sequence, it should be available for all elements in + the sequence.
+ */ + void setData( [in] sequence< XLabeledDataSequence > aData ); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDataSource.idl b/offapi/com/sun/star/chart2/data/XDataSource.idl new file mode 100644 index 000000000..4312460ee --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDataSource.idl @@ -0,0 +1,76 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_data_XDataSource_idl +#define com_sun_star_chart2_data_XDataSource_idl + +#includeIf the data stored consists only of floating point numbers (double + values), the returned instances should also support the service + NumericalDataSequence.
+ +If the data stored consists only of strings, the returned + instances should also support the service + TextualDataSequence.
+ */ +interface XDataSource : ::com::sun::star::uno::XInterface +// : ::com::sun::star::container::XIndexAccess +{ + /** returns data sequences. + + @return a sequence of objects that support at least the + service DataSequence. + +If the data stored consist only of floating point numbers + (double values), the returned instances should also support + the service NumericalDataSequence.
+ +If the data stored consist only of strings, the returned + instances should also support the service + TextualDataSequence.
+ */ + sequence< XLabeledDataSequence > getDataSequences(); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl b/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl new file mode 100644 index 000000000..c8c0bcafb --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl @@ -0,0 +1,206 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_chart2_data_XDatabaseDataProvider_idl__ +#define __com_sun_star_chart2_data_XDatabaseDataProvider_idl__ + +#includeThese columns are typically the foreign key fields of the parent report. + The values of these columns are used to identify the data for the subreport. + Each time the parent report changes its current row, the subreport requeries + it's data based on the values of the master fields.
+If the report is no sub report (e.g. its parent is not a report itself), this + property is not evaluated.
+ + */ + [attribute,bound] sequenceEntries in this sequence can either denote column names in the sub report,
+ or parameter names.
+ For instance, you could base the report on the SQL statement
+ SELECT * FROM invoices WHERE cust_ref = :cid
, and add cid
+ to the DetailFields property. In this case, the parameter will be filled from
+ the corresponding master field.
+ Alternatively, you could simply base your report on the table invoices
,
+ and add the column name cust_ref
to the DetailFields. In this case,
+ and implicit filter clause WHERE cust_ref = :<new_param_name>
will
+ be created, and the artificial parameter will be filled from the corresponding
+ master field.
+ If a string in this property denotes both a column name and a parameter name, it
+ is undefined which way it is interpreted, but implementations of the service are required
+ to either decide for the parameter or the column, and proceed as usual.
+
The columns specified herein typically represent a part of the primary key + fields or their aliases of the detail report.
+If the report is no sub report (e.g. its parent is not a report itself), this + property is not evaluated.
+ * + */ + [attribute,bound] sequenceIn case of a #CommandType of CommandType::COMMAND,
+ means in case the #Command specifies an SQL statement, the inherited
+ com::sun::star::sdbc::RowSet::EscapeProcessing
+ becomes relevant:
+ It then can be to used to specify whether the SQL statement should be analyzed on the
+ client side before sending it to the database server.
+ The default value for com::sun::star::sdbc::RowSet::EscapeProcessing
+ is `TRUE`. By switching it to `FALSE`, you can pass backend-specific SQL statements,
+ which are not standard SQL, to your database.
#Command needs to be interpreted depending on the value of this property.
+ +This property is only meaningful together with the #Command + property, thus either both or none of them are present.
+ + @see com::sun::star::sdb::CommandType + */ + [attribute,bound] long CommandType; + + /** specifies an additional filter to optionally use. + +The Filter string has to form a SQL WHERE-clause, without the WHERE-string itself.
+ +If a #DataSourceName, #Command and #CommandType + are specified, a RowSet can be created with this information. If the results provided by the + row set are to be additionally filtered, the Filter property can be used.
+ +Note that the Filter property does not make sense if a resultSet has been specified + in the DataAccessDescriptor.
+ + @see com::sun::star::sdb::RowSet + @see ResultSet + */ + [attribute,bound] string Filter; + + /** indicates whether the filter should be applied or not, + default is `FALSE`. + */ + [attribute,bound] boolean ApplyFilter; + + /** additional having clause for the row set + */ + [attribute,bound] string HavingClause + { + set raises (com::sun::star::beans::UnknownPropertyException); + }; + + /** additional group by for the row set + */ + [attribute,bound] string GroupBy + { + set raises (com::sun::star::beans::UnknownPropertyException); + }; + + /** is an additional sort order definition for a row set. + */ + [attribute,bound] string Order; + + /** specifies if the #Command should be analyzed on the client side before sending it + to the database server. + +The default value of this property is `TRUE`. By switching it to `FALSE`, you can pass + backend-specific SQL statements, which are not standard SQL, to your database.
+ +This property is usually present together with the #Command and + #CommandType properties, and is evaluated if and only if #CommandType + equals CommandType::COMMAND.
+ */ + [attribute,bound] boolean EscapeProcessing; + + /** specifies the maximal count of rows which should be fetched. +A value of zero implies that no limit exists.
+ */ + [attribute,bound] long RowLimit; + + /** specifies the active connection which is used to create the resulting report. + */ + [attribute,bound] com::sun::star::sdbc::XConnection ActiveConnection + { + set raises (com::sun::star::lang::IllegalArgumentException); + }; + /** is the name of the data source to use, this could be a named data source + or the URL of a data access component. + */ + [attribute,bound] string DataSourceName; +}; + + + }; }; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl b/offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl new file mode 100644 index 000000000..f856c9dd5 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl @@ -0,0 +1,73 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_data_XLabeledDataSequence_idl +#define com_sun_star_chart2_data_XLabeledDataSequence_idl + +#includeThe data that is stored in this container may contain different + types.
+ */ +interface XLabeledDataSequence : ::com::sun::star::uno::XInterface +{ + /** returns an XDataSequence containing the actual + data. + */ + XDataSequence getValues(); + + /** sets a new XDataSequence containing the actual + data. + */ + void setValues( [in] XDataSequence xSequence ); + + /** returns an XDataSequence containing the label for + the labeled sequence. + */ + XDataSequence getLabel(); + + /** sets a new XDataSequence containing the label for + the labeled sequence. + */ + void setLabel( [in] XDataSequence xSequence ); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XLabeledDataSequence2.idl b/offapi/com/sun/star/chart2/data/XLabeledDataSequence2.idl new file mode 100644 index 000000000..27016af0c --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XLabeledDataSequence2.idl @@ -0,0 +1,76 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_data_XLabeledDataSequence2_idl +#define com_sun_star_chart2_data_XLabeledDataSequence2_idl + +#includeThe LabeledDataSequence should add itself at its + XDataSequences for values and labels, and forward any change + events coming from there.
+ */ + interface com::sun::star::util::XModifyBroadcaster; + + /** Allows creating copies of data sequences. If this interface + is not supported, the same object will be shared if used by + multiple objects. + +If a LabeledDataSequence is cloned, it has to + query its contents for the + com::sun::star::util::XCloneable interface + and use it if available.
+ */ + interface ::com::sun::star::util::XCloneable; +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl b/offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl new file mode 100644 index 000000000..972a98792 --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef com_sun_star_chart2_data_XNumericalDataSequence_idl +#define com_sun_star_chart2_data_XNumericalDataSequence_idl + +#includeFor example spreadsheet ranges consisting of more than one + consecutive region are usually separated by a semicolon + whereas in XML you separate multiple regions by a space.
+ */ + string convertRangeToXML( [in] string aRangeRepresentation ) + raises( com::sun::star::lang::IllegalArgumentException ); + + /** converts an XML-style range into the internal + DataProvider's format. + */ + string convertRangeFromXML( [in] string aXMLRange ) + raises( com::sun::star::lang::IllegalArgumentException ); +}; + +} ; // data +} ; // chart2 +} ; // com +} ; // sun +} ; // star + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/chart2/data/XSheetDataProvider.idl b/offapi/com/sun/star/chart2/data/XSheetDataProvider.idl new file mode 100644 index 000000000..cb55e78cd --- /dev/null +++ b/offapi/com/sun/star/chart2/data/XSheetDataProvider.idl @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef com_sun_star_chart2_data_XSheetDataProvider_idl +#define com_sun_star_chart2_data_XSheetDataProvider_idl + +#include