00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include "qwt_plot.h"
00011 #include "qwt_scale.h"
00012 #include "qwt_math.h"
00013
00018 const QwtScale *QwtPlot::axis(int axis) const
00019 {
00020 return axisEnabled(axis) ? d_scale[axis] : 0;
00021 }
00022
00027 bool QwtPlot::axisAutoScale(int axis) const
00028 {
00029 if (axisValid(axis))
00030 return d_as[axis].autoScale();
00031 else
00032 return FALSE;
00033
00034 }
00035
00040 bool QwtPlot::axisEnabled(int axis) const
00041 {
00042 if (axisValid(axis))
00043 return d_axisEnabled[axis];
00044 else
00045 return FALSE;
00046 }
00047
00052 QFont QwtPlot::axisFont(int axis) const
00053 {
00054 if (axisValid(axis))
00055 return d_scale[axis]->font();
00056 else
00057 return QFont();
00058
00059 }
00060
00068 bool QwtPlot::axisMargins(int axis, double &mlo, double &mhi) const
00069 {
00070 int rv = FALSE;
00071
00072 if (axisValid(axis))
00073 {
00074 mlo = d_as[axis].loMargin();
00075 mhi = d_as[axis].hiMargin();
00076 rv = TRUE;
00077 }
00078
00079 return rv;
00080 }
00081
00086 int QwtPlot::axisMaxMajor(int axis) const
00087 {
00088 if (axisValid(axis))
00089 return d_as[axis].maxMajor();
00090 else
00091 return 0;
00092 }
00093
00098 int QwtPlot::axisMaxMinor(int axis) const
00099 {
00100 if (axisValid(axis))
00101 return d_as[axis].maxMinor();
00102 else
00103 return 0;
00104 }
00105
00111 int QwtPlot::axisOptions(int axis) const
00112 {
00113 if (axisValid(axis))
00114 return d_as[axis].options();
00115 else
00116 return 0;
00117 }
00118
00127 double QwtPlot::axisReference(int axis) const
00128 {
00129 if (axisValid(axis))
00130 return d_as[axis].reference();
00131 else
00132 return 0.0;
00133 }
00134
00140 const QwtScaleDiv *QwtPlot::axisScale(int axis) const
00141 {
00142 if (!axisValid(axis))
00143 return NULL;
00144
00145 return &d_as[axis].scaleDiv();
00146 }
00147
00154 const QwtScaleDraw *QwtPlot::axisScaleDraw(int axis) const
00155 {
00156 if (!axisValid(axis))
00157 return NULL;
00158
00159 return d_scale[axis]->scaleDraw();
00160 }
00161
00170 void QwtPlot::axisLabelFormat(int axis, char &f,
00171 int &prec, int &fieldwidth) const
00172 {
00173 if (axisValid(axis))
00174 d_scale[axis]->labelFormat(f, prec, fieldwidth);
00175 else
00176 {
00177
00178
00179 f = 'g';
00180 prec = 4;
00181 fieldwidth = 0;
00182 }
00183 }
00184
00189 QString QwtPlot::axisTitle(int axis) const
00190 {
00191 if (axisValid(axis))
00192 return d_scale[axis]->title();
00193 else
00194 return QString::null;
00195 }
00196
00201 QFont QwtPlot::axisTitleFont(int axis) const
00202 {
00203 if (axisValid(axis))
00204 return d_scale[axis]->titleFont();
00205 else
00206 return QFont();
00207 }
00208
00214 int QwtPlot::axisTitleAlignment(int axis) const
00215 {
00216 if (axisValid(axis))
00217 return d_scale[axis]->titleAlignment();
00218 else
00219 return 0;
00220 }
00221
00229 void QwtPlot::changeAxisOptions(int axis, int opt, bool value)
00230 {
00231 if (axisValid(axis))
00232 {
00233 d_as[axis].changeOptions(opt, value);
00234 autoRefresh();
00235 }
00236 }
00237
00238
00251 void QwtPlot::enableAxis(int axis, bool tf)
00252 {
00253 if (axisValid(axis))
00254 {
00255 d_axisEnabled[axis] = tf;
00256 updateLayout();
00257 }
00258 }
00259
00268 double QwtPlot::invTransform(int axis, int pos) const
00269 {
00270 if (axisValid(axis))
00271 return(canvasMap(axis).invTransform(pos));
00272 else
00273 return 0.0;
00274 }
00275
00276
00284 int QwtPlot::transform(int axis, double value) const
00285 {
00286 if (axisValid(axis))
00287 return(canvasMap(axis).transform(value));
00288 else
00289 return 0;
00290
00291 }
00292
00300 void QwtPlot::setAxisFont(int axis, const QFont &f)
00301 {
00302 if (axisValid(axis))
00303 d_scale[axis]->setFont(f);
00304 }
00305
00315 void QwtPlot::setAxisMargins(int axis, double mlo, double mhi)
00316 {
00317 if (axisValid(axis))
00318 {
00319 d_as[axis].setMargins(mlo, mhi);
00320 autoRefresh();
00321 }
00322 }
00323
00330 void QwtPlot::setAxisOptions(int axis, int opt)
00331 {
00332 if (axisValid(axis))
00333 {
00334 d_as[axis].setOptions(opt);
00335 autoRefresh();
00336 }
00337 }
00338
00339
00349 void QwtPlot::setAxisAutoScale(int axis)
00350 {
00351 if (axisValid(axis))
00352 {
00353 d_as[axis].setAutoScale();
00354 autoRefresh();
00355 }
00356 }
00357
00367 void QwtPlot::setAxisScale(int axis, double min, double max, double step)
00368 {
00369 if (axisValid(axis))
00370 {
00371 d_as[axis].setScale(min,max,step);
00372 autoRefresh();
00373 }
00374
00375 }
00376
00392 void QwtPlot::setAxisScaleDraw(int axis, QwtScaleDraw *scaleDraw)
00393 {
00394 if (axisValid(axis))
00395 {
00396 d_scale[axis]->setScaleDraw(scaleDraw);
00397 autoRefresh();
00398 }
00399 }
00400
00409 void QwtPlot::setAxisLabelFormat(int axis, char f, int prec, int fieldwidth)
00410 {
00411 if (axisValid(axis))
00412 d_scale[axis]->setLabelFormat(f, prec, fieldwidth);
00413 }
00414
00421 void QwtPlot::setAxisLabelAlignment(int axis, int alignment)
00422 {
00423 if (axisValid(axis))
00424 d_scale[axis]->setLabelAlignment(alignment);
00425 }
00426
00434 void QwtPlot::setAxisLabelRotation(int axis, double rotation)
00435 {
00436 if (axisValid(axis))
00437 d_scale[axis]->setLabelRotation(rotation);
00438 }
00439
00445 void QwtPlot::setAxisTitleFont(int axis, const QFont &f)
00446 {
00447 if (axisValid(axis))
00448 d_scale[axis]->setTitleFont(f);
00449 }
00450
00457 void QwtPlot::setAxisTitleAlignment(int axis, int align)
00458 {
00459 if (axisValid(axis))
00460 d_scale[axis]->setTitleAlignment(align);
00461 }
00462
00463
00470 void QwtPlot::setAxisMaxMinor(int axis, int maxMinor)
00471 {
00472 if (axisValid(axis))
00473 {
00474 d_as[axis].setMaxMinor(maxMinor);
00475 autoRefresh();
00476 }
00477 }
00478
00485 void QwtPlot::setAxisMaxMajor(int axis, int maxMajor)
00486 {
00487 if (axisValid(axis))
00488 {
00489 d_as[axis].setMaxMajor(maxMajor);
00490 autoRefresh();
00491 }
00492 }
00493
00502 void QwtPlot::setAxisReference(int axis, double value)
00503 {
00504 if (axisValid(axis))
00505 {
00506 d_as[axis].setReference(value);
00507 autoRefresh();
00508 }
00509 }
00510
00516 void QwtPlot::setAxisTitle(int axis, const QString &t)
00517 {
00518 if (axisValid(axis))
00519 d_scale[axis]->setTitle(t);
00520 }