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_text.h"
00015 #include "qwt_double_rect.h"
00016
00017 class QString;
00018 class QRect;
00019 class QPainter;
00020 class QWidget;
00021 class QwtPlot;
00022 class QwtLegend;
00023 class QwtScaleMap;
00024 class QwtScaleDiv;
00025
00030 class QWT_EXPORT QwtPlotItem
00031 {
00032 public:
00033 enum RttiValues
00034 {
00035 Rtti_PlotItem = 0,
00036
00037 Rtti_PlotGrid,
00038 Rtti_PlotMarker,
00039 Rtti_PlotCurve,
00040 Rtti_PlotHistogram,
00041 Rtti_PlotSpectrogram,
00042 Rtti_PlotSVG,
00043
00044 Rtti_PlotUserItem = 1000
00045 };
00046
00047 enum ItemAttribute
00048 {
00049 Legend = 1,
00050 AutoScale = 2
00051 };
00052
00053 #if QT_VERSION >= 0x040000
00054 enum RenderHint
00055 {
00056 RenderAntialiased = 1
00057 };
00058 #endif
00059
00060 explicit QwtPlotItem(const QwtText &title = QwtText());
00061 virtual ~QwtPlotItem();
00062
00063 void attach(QwtPlot *plot);
00064 void detach() { attach(NULL); }
00065
00066 QwtPlot *plot() const;
00067
00068 void setTitle(const QString &title);
00069 void setTitle(const QwtText &title);
00070 const QwtText &title() const;
00071
00072 virtual int rtti() const;
00073
00074 void setItemAttribute(ItemAttribute, bool on = true);
00075 bool testItemAttribute(ItemAttribute) const;
00076
00077 #if QT_VERSION >= 0x040000
00078 void setRenderHint(RenderHint, bool on = true);
00079 bool testRenderHint(RenderHint) const;
00080 #endif
00081
00082 double z() const;
00083 void setZ(double z);
00084
00085 void show();
00086 void hide();
00087 virtual void setVisible(bool);
00088 bool isVisible () const;
00089
00090 void setAxis(int xAxis, int yAxis);
00091
00092 void setXAxis(int axis);
00093 int xAxis() const;
00094
00095 void setYAxis(int axis);
00096 int yAxis() const;
00097
00098 virtual void itemChanged();
00099
00108 virtual void draw(QPainter *painter,
00109 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
00110 const QRect &canvasRect) const = 0;
00111
00112 virtual QwtDoubleRect boundingRect() const;
00113
00114 virtual void updateLegend(QwtLegend *) const;
00115 virtual void updateScaleDiv(const QwtScaleDiv&,
00116 const QwtScaleDiv&);
00117
00118 virtual QWidget *legendItem() const;
00119
00120 QwtDoubleRect scaleRect(const QwtScaleMap &, const QwtScaleMap &) const;
00121 QRect paintRect(const QwtScaleMap &, const QwtScaleMap &) const;
00122
00123 QRect transform(const QwtScaleMap &, const QwtScaleMap &,
00124 const QwtDoubleRect&) const;
00125 QwtDoubleRect invTransform(const QwtScaleMap &, const QwtScaleMap &,
00126 const QRect&) const;
00127
00128 private:
00129
00130 QwtPlotItem( const QwtPlotItem & );
00131 QwtPlotItem &operator=( const QwtPlotItem & );
00132
00133 class PrivateData;
00134 PrivateData *d_data;
00135 };
00136
00137 #endif