21 #include <KDABLibFakes>
25 class RelativePosition::Private
27 friend class ::KDChart::RelativePosition;
34 QObject *area =
nullptr;
43 RelativePosition::Private::Private()
44 : alignment(Qt::AlignCenter)
48 RelativePosition::Private::~Private()
52 RelativePosition::RelativePosition()
58 : _d(new Private(*r._d))
116 d->alignment = align;
126 d->horizontalPadding = pad;
131 return d->horizontalPadding;
136 d->verticalPadding = pad;
141 return d->verticalPadding;
156 bool useRect = (
d->area !=
nullptr);
159 if (
const auto *widget = qobject_cast<const QWidget *>(
d->area)) {
160 const QLayout *layout = widget->layout();
161 rect = layout ? layout->geometry() : widget->geometry();
162 }
else if (
const auto *kdcArea = qobject_cast<const AbstractArea *>(
d->area)) {
163 rect = kdcArea->geometry();
174 pt =
d->points.point(
d->position);
175 angle =
d->points.degrees(
d->position.value());
179 *polarDegrees = angle;
191 if (polarDegrees == 0.0) {
192 pt += QPointF(dx, dy);
194 const qreal rad = DEGTORAD(polarDegrees);
195 const qreal sinDeg = sin(rad);
196 const qreal cosDeg = cos(rad);
197 pt.setX(pt.x() + dx * cosDeg + dy * sinDeg);
198 pt.setY(pt.y() - dx * sinDeg + dy * cosDeg);
210 #if !defined(QT_NO_DEBUG_STREAM)
213 dbg <<
"KDChart::RelativePosition("
Definition of global enums.
Declaring the class KDChart::Measure.
@ MeasureOrientationVertical
@ MeasureOrientationHorizontal
Measure is used to specify relative and absolute sizes in KDChart, e.g. font sizes.
qreal calculatedValue(const QObject *autoArea, KDChartEnums::MeasureOrientation autoOrientation) const
Stores the absolute target points of a Position.
QPointF point(Position position) const
Defines a position, using compass terminology.
static const Position & Unknown
Defines relative position information: reference area, position in this area (reference position),...
void setReferencePoints(const PositionPoints &points)
Set a set of points from which the anchor point will be selected.
void setReferenceArea(QObject *area)
Set the reference area to be used to find the anchor point.
Measure horizontalPadding() const
void resetReferencePosition()
Resets the position of the anchor point to the built-in default.
const PositionPoints referencePoints() const
void setAlignment(Qt::Alignment flags)
Qt::Alignment alignment() const
void setReferencePosition(Position position)
Set the position of the anchor point.
bool operator==(const RelativePosition &) const
Measure verticalPadding() const
Position referencePosition() const
RelativePosition & operator=(const RelativePosition &other)
void setVerticalPadding(const Measure &padding)
QObject * referenceArea() const
const QPointF calculatedPoint(const QSizeF &autoSize) const
Calculate a point, according to the reference area/position and the padding.
void setRotation(qreal rot)
const QPointF referencePoint(qreal *polarDegrees=nullptr) const
Return the reference point, according to the reference area/position, and ignoring padding.
void setHorizontalPadding(const Measure &padding)
QDebug operator<<(QDebug stream, const DataDimension &r)