00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef QWT_PLOT_ITEM_H
00011 #define QWT_PLOT_ITEM_H
00012
00013 #include "qwt_global.h"
00014 #include "qwt_legend_itemmanager.h"
00015 #include "qwt_text.h"
00016 #include "qwt_double_rect.h"
00017
00018 class QString;
00019 class QRect;
00020 class QPainter;
00021 class QWidget;
00022 class QwtPlot;
00023 class QwtLegend;
00024 class QwtScaleMap;
00025 class QwtScaleDiv;
00026
00065 class QWT_EXPORT QwtPlotItem: public QwtLegendItemManager
00066 {
00067 public:
00074 enum RttiValues
00075 {
00076 Rtti_PlotItem = 0,
00077
00078 Rtti_PlotGrid,
00079 Rtti_PlotScale,
00080 Rtti_PlotMarker,
00081 Rtti_PlotCurve,
00082 Rtti_PlotIntervalCurve,
00083 Rtti_PlotHistogram,
00084 Rtti_PlotSpectrogram,
00085 Rtti_PlotSVG,
00086
00087 Rtti_PlotUserItem = 1000
00088 };
00089
00101 enum ItemAttribute
00102 {
00103 Legend = 1,
00104 AutoScale = 2
00105 };
00106
00107 #if QT_VERSION >= 0x040000
00109 enum RenderHint
00110 {
00111 RenderAntialiased = 1
00112 };
00113 #endif
00114
00115 explicit QwtPlotItem(const QwtText &title = QwtText());
00116 virtual ~QwtPlotItem();
00117
00118 void attach(QwtPlot *plot);
00119
00127 void detach() { attach(NULL); }
00128
00129 QwtPlot *plot() const;
00130
00131 void setTitle(const QString &title);
00132 void setTitle(const QwtText &title);
00133 const QwtText &title() const;
00134
00135 virtual int rtti() const;
00136
00137 void setItemAttribute(ItemAttribute, bool on = true);
00138 bool testItemAttribute(ItemAttribute) const;
00139
00140 #if QT_VERSION >= 0x040000
00141 void setRenderHint(RenderHint, bool on = true);
00142 bool testRenderHint(RenderHint) const;
00143 #endif
00144
00145 double z() const;
00146 void setZ(double z);
00147
00148 void show();
00149 void hide();
00150 virtual void setVisible(bool);
00151 bool isVisible () const;
00152
00153 void setAxis(int xAxis, int yAxis);
00154
00155 void setXAxis(int axis);
00156 int xAxis() const;
00157
00158 void setYAxis(int axis);
00159 int yAxis() const;
00160
00161 virtual void itemChanged();
00162
00171 virtual void draw(QPainter *painter,
00172 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00173 const QRect &canvasRect) const = 0;
00174
00175 virtual QwtDoubleRect boundingRect() const;
00176
00177 virtual void updateLegend(QwtLegend *) const;
00178 virtual void updateScaleDiv(const QwtScaleDiv&,
00179 const QwtScaleDiv&);
00180
00181 virtual QWidget *legendItem() const;
00182
00183 QwtDoubleRect scaleRect(const QwtScaleMap &, const QwtScaleMap &) const;
00184 QRect paintRect(const QwtScaleMap &, const QwtScaleMap &) const;
00185
00186 QRect transform(const QwtScaleMap &, const QwtScaleMap &,
00187 const QwtDoubleRect&) const;
00188 QwtDoubleRect invTransform(const QwtScaleMap &, const QwtScaleMap &,
00189 const QRect&) const;
00190
00191 private:
00192
00193 QwtPlotItem( const QwtPlotItem & );
00194 QwtPlotItem &operator=( const QwtPlotItem & );
00195
00196 class PrivateData;
00197 PrivateData *d_data;
00198 };
00199
00200 #endif