26#include <com/sun/star/chart2/AxisType.hpp>
27#include <com/sun/star/chart2/data/XTextualDataSequence.hpp>
29#include <osl/diagnose.h>
37using ::com::sun::star::uno::Reference;
43 , m_xNumberFormatsSupplier( xNumberFormatsSupplier )
44 , m_aAxisProperties( rAxisProperties )
45 , m_bUseTextLabels( false )
46 , m_bReCreateAllTickInfos( true )
47 , m_bRecordMaximumTextSize(false)
48 , m_nMaximumTextWidthSoFar(0)
49 , m_nMaximumTextHeightSoFar(0)
58 ,
const css::awt::Rectangle& rMaximumSpaceForLabels )
107 xShape, fRotationAngleDegree ) );
161 apTickFactory->getAllTicksShifted( rAllTickInfos );
163 apTickFactory->getAllTicks( rAllTickInfos );
200 for( nN=0; nN<rLabels.getLength(); nN++ )
205 nLength = rLabels[nN].getLength();
221 for (
auto & tickInfo : tickInfos)
223 if(tickInfo.xTextShape.is())
226 tickInfo.xTextShape =
nullptr;
239 ; pTickInfo; pTickInfo = rIter.
nextInfo() )
248 css::uno::Reference<css::uno::XComponentContext>
const& )
css::uno::Sequence< OUString > const & getSimpleCategories()
rtl::Reference< SvxShapeGroupAnyD > m_xLogicTarget
rtl::Reference< SvxShapeGroupAnyD > m_xFinalTarget
const sal_Int32 m_nDimension
rtl::Reference< SvxShapeGroupAnyD > createGroupShape(const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const OUString &rName=OUString())
static css::awt::Size getSizeAfterRotation(SvxShape &rShape, double fRotationAngleDegree)
static rtl::Reference< SvxShapeGroup > createGroup2D(const rtl::Reference< SvxShapeGroupAnyD > &xTarget, const OUString &aName=OUString())
virtual TickInfo * nextInfo()=0
virtual TickInfo * firstInfo()=0
static size_t getIndexOfLongestLabel(const css::uno::Sequence< OUString > &rLabels)
AxisLabelProperties m_aAxisLabelProperties
virtual sal_Int32 estimateMaximumAutoMainIncrementCount()
virtual void initAxisLabelProperties(const css::awt::Size &rFontReferenceSize, const css::awt::Rectangle &rMaximumSpaceForLabels)
virtual void setExplicitScaleAndIncrement(const ExplicitScaleData &rScale, const ExplicitIncrementData &rIncrement) override
virtual void createDataTableView(std::vector< std::unique_ptr< VSeriesPlotter > > &rSeriesPlotterList, css::uno::Reference< css::util::XNumberFormatsSupplier > const &xNumberFormatsSupplier, rtl::Reference<::chart::ChartModel > const &xChartDoc, css::uno::Reference< css::uno::XComponentContext > const &rComponentContext)
sal_Int32 m_nMaximumTextWidthSoFar
AxisProperties m_aAxisProperties
css::uno::Sequence< OUString > m_aTextLabels
VAxisBase(sal_Int32 nDimensionIndex, sal_Int32 nDimensionCount, const AxisProperties &rAxisProperties, const css::uno::Reference< css::util::XNumberFormatsSupplier > &xNumberFormatsSupplier)
rtl::Reference< SvxShapeGroupAnyD > m_xDataTableTarget
virtual ~VAxisBase() override
virtual bool prepareShapeCreation()
void recordMaximumTextSize(SvxShape &xShape, double fRotationAngleDegree)
void removeTextShapesFromTicks()
bool m_bRecordMaximumTextSize
bool isComplexCategoryAxis() const
void updateUnscaledValuesAtTicks(TickIter &rIter)
rtl::Reference< SvxShapeGroupAnyD > m_xTextTarget
sal_Int32 getDimensionCount() const
Return the number of dimensions the diagram has.
rtl::Reference< SvxShapeGroupAnyD > m_xGroupShape_Shapes
sal_Int32 m_nMaximumTextHeightSoFar
virtual bool isAnythingToDraw()
virtual void createAllTickInfos(TickInfoArraysType &rAllTickInfos)
TickInfoArraysType m_aAllTickInfos
This typically consists of 2 TickInfo vectors (i.e.
bool m_bReCreateAllTickInfos
void setExtraLinePositionAtOtherAxis(double fCrossingAt)
ExplicitScaleData m_aScale
virtual TickFactory * createTickFactory()
ExplicitIncrementData m_aIncrement
double getLength(const B2DPolygon &rCandidate)
std::vector< TickInfoArrayType > TickInfoArraysType
css::awt::Size m_aFontReferenceSize
AxisLabelStaggering m_eStaggering
sal_Int32 m_nNumberFormatKey
void init(const rtl::Reference< ::chart::Axis > &xAxisModel)
css::awt::Rectangle m_aMaximumSpaceForLabels
std::optional< double > m_pfExrtaLinePositionAtOtherAxis
css::uno::Reference< css::chart2::data::XTextualDataSequence > m_xAxisTextProvider
bool m_bComplexCategories
sal_Int32 m_nNumberFormatKey
ExplicitCategoriesProvider * m_pExplicitCategoriesProvider
rtl::Reference<::chart::Axis > m_xAxisModel
describes how tickmarks are positioned on the scale of an axis.
This structure contains the explicit values for a scale like Minimum and Maximum.
css::uno::Reference< css::chart2::XScaling > Scaling
bool m_bShiftedCategoryPosition