25#include <com/sun/star/awt/Point.hpp>
29class PiePositionHelper;
39 , sal_Int32 nDimensionCount,
bool bExcludingPositioning );
47 virtual void setScales( std::vector< ExplicitScaleData >&& rScales,
bool bSwapXAndYAxis )
override;
48 virtual void addSeries( std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot )
override;
56 virtual double getMinimumYInRange(
double fMinimumX,
double fMaximumX, sal_Int32 nAxisIndex )
override;
57 virtual double getMaximumYInRange(
double fMinimumX,
double fMaximumX, sal_Int32 nAxisIndex )
override;
69 const css::uno::Reference<css::beans::XPropertySet>& xObjectProperties,
71 const sal_Int32 nPointCount,
72 const bool bConcentricExplosion);
106 ,
PieLabelInfo* pCenter,
bool bSingleCenter,
bool& rbAlternativeMoveDirection
107 ,
const css::awt::Size& rPageSize );
113 std::unique_ptr<PiePositionHelper>
122 ,
bool bMoveHalfWay,
bool bMoveClockwise );
PieChart(const rtl::Reference< ::chart::ChartType > &xChartTypeModel, sal_Int32 nDimensionCount, bool bExcludingPositioning)
virtual bool isSeparateStackingForDifferentSigns(sal_Int32 nDimensionIndex) override
virtual double getMinimumX() override
bool detectLabelOverlapsAndMove(const css::awt::Size &rPageSize)
virtual void createShapes() override
This method creates all shapes needed for representing the pie chart.
virtual bool shouldSnapRectToUsedArea() override
std::vector< PieLabelInfo > m_aLabelInfoList
rtl::Reference< SvxShape > createDataPoint(const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const css::uno::Reference< css::beans::XPropertySet > &xObjectProperties, const ShapeParam &rParam, const sal_Int32 nPointCount, const bool bConcentricExplosion)
bool performLabelBestFitInnerPlacement(ShapeParam &rShapeParam, PieLabelInfo const &rPieLabelInfo)
Handle the placement of the label in the best fit case: the routine try to place the label inside the...
virtual ~PieChart() override
virtual bool isExpandBorderToIncrementRhythm(sal_Int32 nDimensionIndex) override
void resetLabelPositionsToPreviousState()
virtual bool isExpandWideValuesToZero(sal_Int32 nDimensionIndex) override
void createTextLabelShape(const rtl::Reference< SvxShapeGroupAnyD > &xTextTarget, VDataSeries &rSeries, sal_Int32 nPointIndex, ShapeParam &rParam)
This method creates a text shape for a label of a data point.
virtual double getMaximumYInRange(double fMinimumX, double fMaximumX, sal_Int32 nAxisIndex) override
std::unique_ptr< PiePositionHelper > m_pPosHelper
virtual void addSeries(std::unique_ptr< VDataSeries > pSeries, sal_Int32 zSlot, sal_Int32 xSlot, sal_Int32 ySlot) override
A new series can be positioned relative to other series in a chart.
bool tryMoveLabels(PieLabelInfo const *pFirstBorder, PieLabelInfo const *pSecondBorder, PieLabelInfo *pCenter, bool bSingleCenter, bool &rbAlternativeMoveDirection, const css::awt::Size &rPageSize)
Try to remove all overlaps that occur in the list of labels going from pFirstBorder to pSecondBorder
virtual double getMaximumX() override
virtual double getMinimumYInRange(double fMinimumX, double fMaximumX, sal_Int32 nAxisIndex) override
virtual bool isExpandNarrowValuesTowardZero(sal_Int32 nDimensionIndex) override
virtual css::drawing::Direction3D getPreferredDiagramAspectRatio() const override
a value <= 0 for a directions means that this direction can be stretched arbitrary
virtual void rearrangeLabelToAvoidOverlapIfRequested(const css::awt::Size &rPageSize) override
virtual bool isExpandIfValuesCloseToBorder(sal_Int32 nDimensionIndex) override
double getMaxOffset()
This method sets m_fMaxOffset to the maximum Offset property and returns it.
virtual void setScales(std::vector< ExplicitScaleData > &&rScales, bool bSwapXAndYAxis) override
bool m_bSizeExcludesLabelsAndExplodedSegments
css::awt::Point aPreviousPosition
::basegfx::B2IVector aFirstPosition
::basegfx::B2IVector aOuterPosition
rtl::Reference< SvxShapeGroupAnyD > xLabelGroupShape
bool moveAwayFrom(const PieLabelInfo *pFix, const css::awt::Size &rPageSize, bool bMoveHalfWay, bool bMoveClockwise)
In case this label and the passed label overlap the routine moves this label in order to fix the issu...
rtl::Reference< SvxShapeGroupAnyD > xTextTarget
rtl::Reference< SvxShapeText > xTextShape
::basegfx::B2IVector aOrigin