11 #include "qwt_scale_widget.h" 
   12 #include "qwt_scale_map.h" 
   13 #include "qwt_scale_div.h" 
   14 #include "qwt_scale_engine.h" 
   15 #include "qwt_interval.h" 
   44             scaleWidget->setObjectName( name );
 
   48             const QFont fscl( plot->fontInfo().family(), 10 );
 
   49             const QFont fttl( plot->fontInfo().family(), 12, QFont::Bold );
 
   52             scaleWidget->setTransformation( scaleEngine->transformation() );
 
   54             scaleWidget->setFont( fscl );
 
   55             scaleWidget->setMargin( 2 );
 
   57             QwtText text = scaleWidget->title();
 
   59             scaleWidget->setTitle( text );
 
   80 class QwtPlot::ScaleData
 
   93     inline AxisData& axisData( QwtAxisId axisId )
 
   95         return m_axisData[ axisId ];
 
   98     inline const AxisData& axisData( QwtAxisId axisId )
 const 
  100         return m_axisData[ axisId ];
 
  104     AxisData m_axisData[ QwtAxis::AxisPositions ];
 
  107 void QwtPlot::initAxesData()
 
  109     m_scaleData = 
new ScaleData( 
this );
 
  115 void QwtPlot::deleteAxesData()
 
  144         return m_scaleData->axisData( axisId ).scaleWidget;
 
  156         return m_scaleData->axisData( axisId ).scaleWidget;
 
  171     if ( 
isAxisValid( axisId ) && scaleEngine != NULL )
 
  173         AxisData& d = m_scaleData->axisData( axisId );
 
  175         delete d.scaleEngine;
 
  176         d.scaleEngine = scaleEngine;
 
  193         return m_scaleData->axisData( axisId ).scaleEngine;
 
  205         return m_scaleData->axisData( axisId ).scaleEngine;
 
  216         return m_scaleData->axisData( axisId ).doAutoScale;
 
  228         return m_scaleData->axisData( axisId ).isVisible;
 
  254         return m_scaleData->axisData( axisId ).maxMajor;
 
  267         return m_scaleData->axisData( axisId ).maxMinor;
 
  285     return m_scaleData->axisData( axisId ).scaleDiv;
 
  331     return m_scaleData->axisData( axisId ).stepSize;
 
  349     return m_scaleData->axisData( axisId ).scaleDiv.interval();
 
  378     if ( 
isAxisValid( axisId ) && on != m_scaleData->axisData( axisId ).isVisible )
 
  380         m_scaleData->axisData( axisId ).isVisible = on;
 
  451     if ( 
isAxisValid( axisId ) && ( m_scaleData->axisData( axisId ).doAutoScale != on ) )
 
  453         m_scaleData->axisData( axisId ).doAutoScale = on;
 
  477         AxisData& d = m_scaleData->axisData( axisId );
 
  479         d.doAutoScale = 
false;
 
  484         d.stepSize = stepSize;
 
  506         AxisData& d = m_scaleData->axisData( axisId );
 
  508         d.doAutoScale = 
false;
 
  509         d.scaleDiv = scaleDiv;
 
  582         maxMinor = qBound( 0, maxMinor, 100 );
 
  584         AxisData& d = m_scaleData->axisData( axisId );
 
  585         if ( maxMinor != d.maxMinor )
 
  587             d.maxMinor = maxMinor;
 
  606         maxMajor = qBound( 1, maxMajor, 10000 );
 
  608         AxisData& d = m_scaleData->axisData( axisId );
 
  609         if ( maxMajor != d.maxMajor )
 
  611             d.maxMajor = maxMajor;
 
  671     QwtInterval boundingIntervals[QwtAxis::AxisPositions];
 
  675     QwtPlotItemIterator it;
 
  676     for ( it = itmList.begin(); it != itmList.end(); ++it )
 
  690             if ( rect.width() >= 0.0 )
 
  691                 boundingIntervals[item->
xAxis()] |= 
QwtInterval( rect.left(), rect.right() );
 
  693             if ( rect.height() >= 0.0 )
 
  694                 boundingIntervals[item->
yAxis()] |= 
QwtInterval( rect.top(), rect.bottom() );
 
  700     for ( 
int axisPos = 0; axisPos < QwtAxis::AxisPositions; axisPos++ )
 
  703             const QwtAxisId axisId( axisPos );
 
  705             AxisData& d = m_scaleData->axisData( axisId );
 
  707             double minValue = d.minValue;
 
  708             double maxValue = d.maxValue;
 
  709             double stepSize = d.stepSize;
 
  711             const QwtInterval& interval = boundingIntervals[axisId];
 
  713             if ( d.doAutoScale && interval.
isValid() )
 
  720                 d.scaleEngine->autoScale( d.maxMajor,
 
  721                     minValue, maxValue, stepSize );
 
  725                 d.scaleDiv = d.scaleEngine->divideScale(
 
  726                     minValue, maxValue, d.maxMajor, d.maxMinor, stepSize );
 
  733             int startDist, endDist;
 
  739     for ( it = itmList.begin(); it != itmList.end(); ++it )
 
A class representing an interval.
A scale engine for linear scales.
const QwtPlotItemList & itemList() const
A QwtPlotItemList of all attached plot items.
double transform(QwtAxisId, double value) const
Transform a value into a coordinate in the plotting region.
void setAxisVisible(QwtAxisId, bool on=true)
Hide or show a specified axis.
QFont axisFont(QwtAxisId) const
void updateAxes()
Rebuild the axes scales.
void setAxisLabelAlignment(QwtAxisId, Qt::Alignment)
void setAxisScale(QwtAxisId, double min, double max, double stepSize=0)
Disable autoscaling and specify a fixed scale for a selected axis.
QwtScaleEngine * axisScaleEngine(QwtAxisId)
double axisStepSize(QwtAxisId) const
Return the step size parameter that has been set in setAxisScale.
void setAxisScaleDraw(QwtAxisId, QwtScaleDraw *)
Set a scale draw.
void setAxisLabelRotation(QwtAxisId, double rotation)
void setAxisFont(QwtAxisId, const QFont &)
Change the font of an axis.
void setAxisTitle(QwtAxisId, const QString &)
Change the title of a specified axis.
void setAxisAutoScale(QwtAxisId, bool on=true)
Enable autoscaling for a specified axis.
void setAxisScaleEngine(QwtAxisId, QwtScaleEngine *)
void setAxisMaxMajor(QwtAxisId, int maxMajor)
bool isAxisVisible(QwtAxisId) const
bool axisAutoScale(QwtAxisId) const
QwtInterval axisInterval(QwtAxisId) const
Return the current interval of the specified axis.
double invTransform(QwtAxisId, double pos) const
QwtText axisTitle(QwtAxisId) const
bool isAxisValid(QwtAxisId) const
void setAxisMaxMinor(QwtAxisId, int maxMinor)
const QwtScaleWidget * axisWidget(QwtAxisId) const
virtual QwtScaleMap canvasMap(QwtAxisId) const
int axisMaxMinor(QwtAxisId) const
virtual void updateLayout()
Adjust plot content to its current size.
void autoRefresh()
Replots the plot if autoReplot() is true.
const QwtScaleDiv & axisScaleDiv(QwtAxisId) const
Return the scale division of a specified axis.
void setAxisScaleDiv(QwtAxisId, const QwtScaleDiv &)
Disable autoscaling and specify a fixed scale for a selected axis.
const QwtScaleDraw * axisScaleDraw(QwtAxisId) const
Return the scale draw of a specified axis.
int axisMaxMajor(QwtAxisId) const
Base class for items on the plot canvas.
QwtAxisId yAxis() const
Return yAxis.
QwtAxisId xAxis() const
Return xAxis.
bool testItemInterest(ItemInterest) const
virtual void updateScaleDiv(const QwtScaleDiv &, const QwtScaleDiv &)
Update the item to changes of the axes scale division.
bool testItemAttribute(ItemAttribute) const
virtual QRectF boundingRect() const
A class representing a scale division.
A class for drawing scales.
@ BottomScale
The scale is below.
@ TopScale
The scale is above.
@ RightScale
The scale is right.
@ LeftScale
The scale is left.
Base class for scale engines.
QwtTransform * transformation() const
void setTransformation(QwtTransform *)
A class representing a text.
void setFont(const QFont &)
@ YRight
Y axis right of the canvas.
@ XTop
X axis above the canvas.
@ XBottom
X axis below the canvas.
@ YLeft
Y axis left of the canvas.
bool isValid(int axisPos)