123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
- * Qwt Widget Library
- * Copyright (C) 1997 Josef Wilgen
- * Copyright (C) 2002 Uwe Rathmann
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the Qwt License, Version 1.0
- *****************************************************************************/
- #ifndef QWT_PLOT_ITEM_H
- #define QWT_PLOT_ITEM_H
- #include "qwt_global.h"
- #include "qwt_legend_itemmanager.h"
- #include "qwt_text.h"
- #include <qrect.h>
- class QString;
- class QPainter;
- class QWidget;
- class QwtPlot;
- class QwtLegend;
- class QwtScaleMap;
- class QwtScaleDiv;
- /*!
- \brief Base class for items on the plot canvas
- A plot item is "something", that can be painted on the plot canvas,
- or only affects the scales of the plot widget. They can be categorized as:
- - Representator\n
- A "Representator" is an item that represents some sort of data
- on the plot canvas. The different representator classes are organized
- according to the characteristics of the data:
- - QwtPlotMarker
- Represents a point or a horizontal/vertical coordinate
- - QwtPlotCurve
- Represents a series of points
- - QwtPlotSpectrogram ( QwtPlotRasterItem )
- Represents raster data
- - ...
- - Decorators\n
- A "Decorator" is an item, that displays additional information, that
- is not related to any data:
- - QwtPlotGrid
- - QwtPlotScaleItem
- - QwtPlotSvgItem
- - ...
- Depending on the QwtPlotItem::ItemAttribute flags, an item is included
- into autoscaling or has an entry on the legnd.
- Before misusing the existing item classes it might be better to
- implement a new type of plot item
- ( don't implement a watermark as spectrogram ).
- Deriving a new type of QwtPlotItem primarily means to implement
- the YourPlotItem::draw() method.
- \sa The cpuplot example shows the implementation of additional plot items.
- */
- class QWT_EXPORT QwtPlotItem: public QwtLegendItemManager
- {
- public:
- /*!
- \brief Runtime type information
- RttiValues is used to cast plot items, without
- having to enable runtime type information of the compiler.
- */
- enum RttiValues
- {
- Rtti_PlotItem = 0,
- Rtti_PlotGrid,
- Rtti_PlotScale,
- Rtti_PlotMarker,
- Rtti_PlotCurve,
- Rtti_PlotSpectroCurve,
- Rtti_PlotIntervalCurve,
- Rtti_PlotHistogram,
- Rtti_PlotSpectrogram,
- Rtti_PlotSVG,
- Rtti_PlotUserItem = 1000
- };
- /*!
- Plot Item Attributes
- - Legend\n
- The item is represented on the legend.
- - AutoScale \n
- The boundingRect() of the item is included in the
- autoscaling calculation.
- \sa setItemAttribute(), testItemAttribute()
- */
- enum ItemAttribute
- {
- Legend = 1,
- AutoScale = 2
- };
- //! Render hints
- enum RenderHint
- {
- RenderAntialiased = 1
- };
- explicit QwtPlotItem( const QwtText &title = QwtText() );
- virtual ~QwtPlotItem();
- void attach( QwtPlot *plot );
- /*!
- \brief This method detaches a QwtPlotItem from any QwtPlot it has been
- associated with.
- detach() is equivalent to calling attach( NULL )
- \sa attach( QwtPlot* plot )
- */
- void detach()
- {
- attach( NULL );
- }
- QwtPlot *plot() const;
- void setTitle( const QString &title );
- void setTitle( const QwtText &title );
- const QwtText &title() const;
- virtual int rtti() const;
- void setItemAttribute( ItemAttribute, bool on = true );
- bool testItemAttribute( ItemAttribute ) const;
- void setRenderHint( RenderHint, bool on = true );
- bool testRenderHint( RenderHint ) const;
- double z() const;
- void setZ( double z );
- void show();
- void hide();
- virtual void setVisible( bool );
- bool isVisible () const;
- void setAxes( int xAxis, int yAxis );
- void setXAxis( int axis );
- int xAxis() const;
- void setYAxis( int axis );
- int yAxis() const;
- virtual void itemChanged();
- /*!
- \brief Draw the item
- \param painter Painter
- \param xMap Maps x-values into pixel coordinates.
- \param yMap Maps y-values into pixel coordinates.
- \param canvasRect Contents rect of the canvas in painter coordinates
- */
- virtual void draw( QPainter *painter,
- const QwtScaleMap &xMap, const QwtScaleMap &yMap,
- const QRectF &canvasRect ) const = 0;
- virtual QRectF boundingRect() const;
- virtual void updateLegend( QwtLegend * ) const;
- virtual void updateScaleDiv(
- const QwtScaleDiv&, const QwtScaleDiv& );
- virtual QWidget *legendItem() const;
- QRectF scaleRect( const QwtScaleMap &, const QwtScaleMap & ) const;
- QRectF paintRect( const QwtScaleMap &, const QwtScaleMap & ) const;
- private:
- // Disabled copy constructor and operator=
- QwtPlotItem( const QwtPlotItem & );
- QwtPlotItem &operator=( const QwtPlotItem & );
- class PrivateData;
- PrivateData *d_data;
- };
- #endif
|