Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

# qwt_plot_axis.cpp

    00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
    00002  * Qwt Widget Library
    00003  * Copyright (C) 1997   Josef Wilgen
    00004  * Copyright (C) 2002   Uwe Rathmann
    00005  *
    00006  * This library is free software; you can redistribute it and/or
    00007  * modify it under the terms of the Qwt License, Version 1.0
    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                 // to do something useful for a bad call we
    00178                 // return the default values of QwtScaleDraw
    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 }