20#ifndef INCLUDED_OOX_EXPORT_CHARTEXPORT_HXX 
   21#define INCLUDED_OOX_EXPORT_CHARTEXPORT_HXX 
   26#include <com/sun/star/uno/Reference.hxx> 
   27#include <com/sun/star/uno/Sequence.hxx> 
   32#include <oox/token/tokens.hxx> 
   33#include <rtl/ustring.hxx> 
   46        struct RelativePosition;
 
   55            class XLabeledDataSequence;
 
  111    size_t count() 
const;
 
  113    bool hasLabel(sal_Int32 nIndex) 
const;
 
  118    void setRange(
const OUString& rRange);
 
  120    void setLabel(sal_Int32 nIndex, 
const OUString& rText);
 
  122    LabelsRangeMap::const_iterator 
begin() 
const;
 
  123    LabelsRangeMap::const_iterator 
end() 
const;
 
  161    sal_Int32 getChartType();
 
  163    css::uno::Sequence< css::uno::Sequence< rtl::OUString > > getSplitCategoriesList(
const OUString& rRange);
 
  165    OUString parseFormula( 
const OUString& rRange );
 
  168    void ExportContent_();
 
  169    void exportChartSpace( 
const css::uno::Reference<
 
  170                           css::chart::XChartDocument >& rChartDoc,
 
  171                           bool bIncludeTable );
 
  172    void exportChart( 
const css::uno::Reference<
 
  173                          css::chart::XChartDocument >& rChartDoc );
 
  174    void exportExternalData( 
const css::uno::Reference<
 
  175                              css::chart::XChartDocument >& rChartDoc );
 
  176    void exportLegend( 
const css::uno::Reference<
 
  177                          css::chart::XChartDocument >& rChartDoc );
 
  178    void exportTitle( 
const css::uno::Reference< css::drawing::XShape >& xShape,
 
  179                          const OUString* pSubText = 
nullptr );
 
  180    void exportPlotArea( 
const css::uno::Reference<
 
  181                             css::chart::XChartDocument >& rChartDoc );
 
  182    void exportAdditionalShapes( 
const css::uno::Reference<css::chart::XChartDocument >& rChartDoc );
 
  183    void exportFill( 
const css::uno::Reference< css::beans::XPropertySet >& xPropSet );
 
  184    void exportSolidFill(
const css::uno::Reference<css::beans::XPropertySet>& xPropSet);
 
  185    void exportGradientFill( 
const css::uno::Reference< css::beans::XPropertySet >& xPropSet );
 
  186    void exportBitmapFill( 
const css::uno::Reference< css::beans::XPropertySet >& xPropSet );
 
  187    void exportHatch(
const css::uno::Reference<css::beans::XPropertySet>& xPropSet);
 
  188    void exportDataTable( );
 
  190    void exportAreaChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  191    void exportBarChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  192    void exportBubbleChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  193    void exportDoughnutChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  194    void exportLineChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  195    void exportPieChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  196    void exportRadarChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  197    void exportScatterChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  198    void exportScatterChartSeries( 
const css::uno::Reference< css::chart2::XChartType >& xChartType,
 
  199            const css::uno::Sequence<css::uno::Reference<css::chart2::XDataSeries>>* pSeries);
 
  200    void exportStockChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  201    void exportSurfaceChart( 
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  202    void exportHiLowLines();
 
  203    void exportUpDownBars(
const css::uno::Reference< css::chart2::XChartType >& xChartType );
 
  205    void exportAllSeries(
const css::uno::Reference<css::chart2::XChartType>& xChartType, 
bool& rPrimaryAxes);
 
  206    void exportSeries(
const css::uno::Reference< css::chart2::XChartType >& xChartType,
 
  207            const css::uno::Sequence<css::uno::Reference<css::chart2::XDataSeries> >& rSeriesSeq, 
bool& rPrimaryAxes);
 
  209    void exportVaryColors(
const css::uno::Reference<css::chart2::XChartType>& xChartType);
 
  210    void exportCandleStickSeries(
 
  211        const css::uno::Sequence<
 
  213                css::chart2::XDataSeries > > & aSeriesSeq,
 
  214        bool& rPrimaryAxes );
 
  215    void exportSeriesText(
 
  216        const css::uno::Reference< css::chart2::data::XDataSequence >& xValueSeq );
 
  217    void exportSeriesCategory(
 
  218        const css::uno::Reference< css::chart2::data::XDataSequence >& xValueSeq, sal_Int32 nValueType = XML_cat );
 
  219    void exportSeriesValues(
 
  220        const css::uno::Reference< css::chart2::data::XDataSequence >& xValueSeq, sal_Int32 nValueType = XML_val );
 
  221    void exportShapeProps( 
const css::uno::Reference< css::beans::XPropertySet >& xPropSet );
 
  222    void exportDataPoints(
 
  223        const css::uno::Reference< css::beans::XPropertySet >& xSeriesProperties,
 
  224        sal_Int32 nSeriesLength, sal_Int32 eChartType );
 
  225    void exportDataLabels( 
const css::uno::Reference<css::chart2::XDataSeries>& xSeries, sal_Int32 nSeriesLength,
 
  227    void exportGrouping( 
bool isBar = 
false );
 
  228    void exportTrendlines( 
const css::uno::Reference< css::chart2::XDataSeries >& xSeries );
 
  229    void exportMarker( 
const css::uno::Reference< css::beans::XPropertySet >& xPropSet );
 
  231    void exportFirstSliceAng();
 
  233    void exportErrorBar(
const css::uno::Reference< css::beans::XPropertySet >& xErrorBarProps,
 
  236    void exportManualLayout(
const css::chart2::RelativePosition& rPos, 
const css::chart2::RelativeSize& rSize, 
const bool bIsExcludingDiagramPositioning);
 
  239    void exportAxis(
const AxisIdPair& rAxisIdPair);
 
  241        const css::uno::Reference< css::beans::XPropertySet >& xAxisProp,
 
  242        const css::uno::Reference< css::drawing::XShape >& xAxisTitle,
 
  243        const css::uno::Reference< css::beans::XPropertySet >& xMajorGrid,
 
  244        const css::uno::Reference< css::beans::XPropertySet >& xMinorGrid,
 
  246        const char* sAxisPos,
 
  248    void exportAxesId(
bool bPrimaryAxes, 
bool bCheckCombinedAxes = 
false);
 
  250    bool isDeep3dChart();
 
  252    void exportMissingValueTreatment(
const css::uno::Reference<css::beans::XPropertySet>& xPropSet);
 
  254    OUString getNumberFormatCode(sal_Int32 nKey) 
const;
 
  262    void SetURLTranslator(
const std::shared_ptr<URLTransformer>& pTransformer);
 
  264    const css::uno::Reference< css::frame::XModel >& 
getModel()
 const { 
return mxChartModel; }
 
  266    void WriteChartObj( 
const css::uno::Reference< css::drawing::XShape >& xShape, sal_Int32 nID, sal_Int32 nChartCount );
 
  267    void exportTextProps(
const css::uno::Reference< css::beans::XPropertySet >& xPropSet);
 
  269    void ExportContent();
 
  270    void InitRangeSegmentationProperties(
 
  271        const css::uno::Reference<
 
  272            css::chart2::XChartDocument > & xChartDoc );
 
const css::uno::Reference< css::frame::XModel > & getModel() const
 
css::uno::Reference< css::chart2::XDiagram > mxNewDiagram
 
css::uno::Reference< css::chart2::data::XDataSequence > mxCategoriesValues
 
css::uno::Reference< css::chart::XDiagram > mxDiagram
 
std::set< sal_Int32 > maExportedAxis
 
css::uno::Reference< css::frame::XModel > mxChartModel
 
std::shared_ptr< URLTransformer > mpURLTransformer
 
::std::vector< AxisIdPair > AxisVector
 
A helper container class to collect the chart data point labels and the address of the cell[range] fr...
 
const OUString & getRange() const
Returns the address of the cell[range] from which label contents are sourced.
 
void setRange(const OUString &rRange)
Sets the address of the cell[range] from which label contents are sourced.
 
bool empty() const
Returns whether the container is empty or not.
 
void setLabel(sal_Int32 nIndex, const OUString &rText)
Adds a new indexed label text.
 
LabelsRangeMap::const_iterator begin() const
 
size_t count() const
Returns the count of labels stored.
 
std::map< sal_Int32, OUString > LabelsRangeMap
type of the internal container that stores the indexed label text.
 
bool hasLabel(sal_Int32 nIndex) const
Indicates whether the container has a label with index specified by nIndex.
 
LabelsRangeMap::const_iterator end() const
 
class SAL_NO_VTABLE XPropertySet
 
std::shared_ptr< FastSerializerHelper > FSHelperPtr
 
AxisIdPair(AxesType nType, sal_Int32 nId, sal_Int32 nAx)