49 return &m_axisData[ axisId];
107 w->installEventFilter(
this );
109 w->removeEventFilter(
this );
187 axisData->expandingDirection = direction;
200 return axisData->expandingDirection;
233 axisData->aspectRatio = ratio;
246 return axisData->aspectRatio;
265 axisData->intervalHint = interval;
276 return axisData->intervalHint;
284 return qobject_cast< QWidget* >( parent() );
290 return qobject_cast<
const QWidget* >( parent() );
298 w = w->parentWidget();
300 return qobject_cast<
QwtPlot* >( w );
306 const QWidget* w =
canvas();
308 w = w->parentWidget();
310 return qobject_cast<
const QwtPlot* >( w );
316 if (
object &&
object ==
canvas() )
318 switch ( event->type() )
325 case QEvent::PolishRequest:
345 const QMargins m =
canvas()->contentsMargins();
346 const QSize marginSize( m.left() + m.right(), m.top() + m.bottom() );
348 const QSize newSize =
event->size() - marginSize;
349 const QSize oldSize =
event->oldSize() - marginSize;
357 const QSize
size =
canvas()->contentsRect().size();
368 const QSize& oldSize,
const QSize& newSize )
const 370 if ( newSize.isEmpty() )
377 intervals[axisPos] =
interval( axisId );
381 intervals[refAxis] =
expandScale( refAxis, oldSize, newSize );
386 if (
aspectRatio( axisId ) > 0.0 && axisId != refAxis )
389 axisId, intervals[refAxis], newSize );
406 const QSize& oldSize,
const QSize& newSize )
const 419 if ( !oldSize.isEmpty() )
421 double width = oldInterval.
width();
423 width *= double( newSize.width() ) / oldSize.width();
425 width *= double( newSize.height() ) / oldSize.height();
438 const double d =
pixelDist( axisId, newSize );
446 width = newSize.width() * dist;
448 width = newSize.height() * dist;
474 dist = reference.
width() / size.width();
476 dist = reference.
width() / size.height();
479 dist *= size.width();
481 dist *= size.height();
511 if ( !
plot()->isAxisValid( axisId ) )
547 interval.
width() / 2.0 - width / 2.0 );
568 dist = intv.
width() * r;
575 dist /= size.width();
577 dist /= size.height();
608 double v1 = intervals[axisPos].minValue();
609 double v2 = intervals[axisPos].maxValue();
635 bool immediatePaint =
false;
648 if ( canvas && immediatePaint )
655 #include "moc_qwt_plot_rescaler.cpp" double aspectRatio(QwtAxisId) const
QwtAxisId referenceAxis() const
Qt::Orientation orientation(QwtAxisId) const
void setRescalePolicy(RescalePolicy)
ExpandingDirection expandingDirection(QwtAxisId) const
QwtInterval expandInterval(const QwtInterval &, double width, ExpandingDirection) const
bool testPaintAttribute(PaintAttribute) const
void setAxisScaleDiv(QwtAxisId, const QwtScaleDiv &)
Disable autoscaling and specify a fixed scale for a selected axis.
QList< double > ticks(int tickType) const
bool isValid(int axisPos)
bool isYAxis(int axisPos)
A class representing an interval.
virtual void canvasResizeEvent(QResizeEvent *)
void setAutoReplot(bool=true)
Set or reset the autoReplot option.
QwtPlotRescaler::AxisData * axisData(QwtAxisId axisId)
virtual void replot()
Redraw the plot.
const QwtScaleDiv & axisScaleDiv(QwtAxisId) const
Return the scale division of a specified axis.
A class representing a scale division.
void rescale() const
Adjust the plot axes scales.
void setReferenceAxis(QwtAxisId)
virtual QwtInterval syncScale(QwtAxisId, const QwtInterval &reference, const QSize &size) const
double pixelDist(QwtAxisId, const QSize &) const
virtual void updateScales(QwtInterval intervals[QwtAxis::AxisPositions]) const
QwtInterval interval() const
bool isIncreasing() const
Check if the scale division is increasing( lowerBound() <= upperBound() )
The lower limit of the scale is adjusted.
virtual QwtInterval expandScale(QwtAxisId, const QSize &oldSize, const QSize &newSize) const
QwtInterval intervalHint(QwtAxisId) const
void setExpandingDirection(ExpandingDirection)
QwtInterval interval(QwtAxisId) const
void setEnabled(bool)
En/disable the rescaler.
Both limits of the scale are adjusted.
virtual ~QwtPlotRescaler()
Destructor.
basic_reference< false > reference
QwtPlotRescaler takes care of fixed aspect ratios for plot scales.
RescalePolicy rescalePolicy
void setPaintAttribute(PaintAttribute, bool on=true)
Changing the paint attributes.
double width() const
Return the width of an interval.
Number of valid tick types.
int QwtAxisId
Axis identifier.
QwtPlotRescaler::ExpandingDirection expandingDirection
The upper limit of the scale is adjusted.
void setAspectRatio(double ratio)
void setAxisScale(QwtAxisId, double min, double max, double stepSize=0)
Disable autoscaling and specify a fixed scale for a selected axis.
span_constexpr std::size_t size(span< T, Extent > const &spn)
QwtPlotRescaler(QWidget *canvas, QwtAxisId referenceAxis=QwtAxis::XBottom, RescalePolicy=Expanding)
QwtInterval normalized() const
Normalize the limits of the interval.
virtual bool eventFilter(QObject *, QEvent *) QWT_OVERRIDE
Event filter for the plot canvas.
void setIntervalHint(QwtAxisId, const QwtInterval &)
RescalePolicy rescalePolicy() const