~ubuntu-branches/ubuntu/oneiric/qwt/oneiric-proposed

« back to all changes in this revision

Viewing changes to src/qwt_plot_item.h

  • Committer: Bazaar Package Importer
  • Author(s): Fathi Boudra
  • Date: 2011-06-10 11:22:47 UTC
  • mfrom: (1.1.6 upstream) (2.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20110610112247-0i1019vvmzaq6p86
Tags: 6.0.0-1
* New upstream release (Closes: #624107):
  - drop Qt3 support. (Closes: #604379, #626868)
* Register documentation with doc-base. (Closes: #626567)
* Drop patches:
  - 01_makefiles.diff
  - 02_add_missing_warnings.diff
  - 03_qwt_branch_pull_r544.diff
* Add qwt_install_paths.patch to fix the hardcoded installation paths.
* Update debian/control:
  - drop libqt3-mt-dev build dependency.
  - bump Standards-Version to 3.9.2 (no changes).
  - drop Qt3 related packages.
  - due to bump soname (and as we dropper Qt3 support):
    - libqwt5-qt4-dev -> libqwt-dev
    - libqwt5-qt4 -> libqwt6
    - libqwt5-doc -> libqwt-doc
* Update debian/copyright file.
* Update debian/rules: drop Qt3 packages support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 
2
 * Qwt Widget Library
 
3
 * Copyright (C) 1997   Josef Wilgen
 
4
 * Copyright (C) 2002   Uwe Rathmann
 
5
 *
 
6
 * This library is free software; you can redistribute it and/or
 
7
 * modify it under the terms of the Qwt License, Version 1.0
 
8
 *****************************************************************************/
 
9
 
 
10
#ifndef QWT_PLOT_ITEM_H
 
11
#define QWT_PLOT_ITEM_H
 
12
 
 
13
#include "qwt_global.h"
 
14
#include "qwt_legend_itemmanager.h"
 
15
#include "qwt_text.h"
 
16
#include <qrect.h>
 
17
 
 
18
class QString;
 
19
class QPainter;
 
20
class QWidget;
 
21
class QwtPlot;
 
22
class QwtLegend;
 
23
class QwtScaleMap;
 
24
class QwtScaleDiv;
 
25
 
 
26
/*!
 
27
  \brief Base class for items on the plot canvas
 
28
 
 
29
  A plot item is "something", that can be painted on the plot canvas,
 
30
  or only affects the scales of the plot widget. They can be categorized as:
 
31
 
 
32
  - Representator\n
 
33
    A "Representator" is an item that represents some sort of data
 
34
    on the plot canvas. The different representator classes are organized
 
35
    according to the characteristics of the data:
 
36
    - QwtPlotMarker
 
37
      Represents a point or a horizontal/vertical coordinate
 
38
    - QwtPlotCurve
 
39
      Represents a series of points
 
40
    - QwtPlotSpectrogram ( QwtPlotRasterItem )
 
41
      Represents raster data
 
42
    - ...
 
43
 
 
44
  - Decorators\n
 
45
    A "Decorator" is an item, that displays additional information, that
 
46
    is not related to any data:
 
47
    - QwtPlotGrid
 
48
    - QwtPlotScaleItem
 
49
    - QwtPlotSvgItem
 
50
    - ...
 
51
 
 
52
  Depending on the QwtPlotItem::ItemAttribute flags, an item is included
 
53
  into autoscaling or has an entry on the legnd.
 
54
 
 
55
  Before misusing the existing item classes it might be better to
 
56
  implement a new type of plot item
 
57
  ( don't implement a watermark as spectrogram ).
 
58
  Deriving a new type of QwtPlotItem primarily means to implement
 
59
  the YourPlotItem::draw() method.
 
60
 
 
61
  \sa The cpuplot example shows the implementation of additional plot items.
 
62
*/
 
63
 
 
64
class QWT_EXPORT QwtPlotItem: public QwtLegendItemManager
 
65
{
 
66
public:
 
67
    /*!
 
68
        \brief Runtime type information
 
69
 
 
70
        RttiValues is used to cast plot items, without
 
71
        having to enable runtime type information of the compiler.
 
72
     */
 
73
    enum RttiValues
 
74
    {
 
75
        Rtti_PlotItem = 0,
 
76
 
 
77
        Rtti_PlotGrid,
 
78
        Rtti_PlotScale,
 
79
        Rtti_PlotMarker,
 
80
        Rtti_PlotCurve,
 
81
        Rtti_PlotSpectroCurve,
 
82
        Rtti_PlotIntervalCurve,
 
83
        Rtti_PlotHistogram,
 
84
        Rtti_PlotSpectrogram,
 
85
        Rtti_PlotSVG,
 
86
 
 
87
        Rtti_PlotUserItem = 1000
 
88
    };
 
89
 
 
90
    /*!
 
91
       Plot Item Attributes
 
92
       \sa setItemAttribute(), testItemAttribute()
 
93
     */
 
94
    enum ItemAttribute
 
95
    {
 
96
        //! The item is represented on the legend.
 
97
        Legend = 0x01,
 
98
 
 
99
        /*!
 
100
         The boundingRect() of the item is included in the
 
101
         autoscaling calculation.
 
102
         */
 
103
        AutoScale = 0x02
 
104
    };
 
105
 
 
106
    //! Plot Item Attributes
 
107
    typedef QFlags<ItemAttribute> ItemAttributes;
 
108
 
 
109
    //! Render hints
 
110
    enum RenderHint
 
111
    {
 
112
        //! Enable antialiasing
 
113
        RenderAntialiased = 1
 
114
    };
 
115
 
 
116
    //! Render hints
 
117
    typedef QFlags<RenderHint> RenderHints;
 
118
 
 
119
    explicit QwtPlotItem( const QwtText &title = QwtText() );
 
120
    virtual ~QwtPlotItem();
 
121
 
 
122
    void attach( QwtPlot *plot );
 
123
    void detach();
 
124
 
 
125
    QwtPlot *plot() const;
 
126
 
 
127
    void setTitle( const QString &title );
 
128
    void setTitle( const QwtText &title );
 
129
    const QwtText &title() const;
 
130
 
 
131
    virtual int rtti() const;
 
132
 
 
133
    void setItemAttribute( ItemAttribute, bool on = true );
 
134
    bool testItemAttribute( ItemAttribute ) const;
 
135
 
 
136
    void setRenderHint( RenderHint, bool on = true );
 
137
    bool testRenderHint( RenderHint ) const;
 
138
 
 
139
    double z() const;
 
140
    void setZ( double z );
 
141
 
 
142
    void show();
 
143
    void hide();
 
144
    virtual void setVisible( bool );
 
145
    bool isVisible () const;
 
146
 
 
147
    void setAxes( int xAxis, int yAxis );
 
148
 
 
149
    void setXAxis( int axis );
 
150
    int xAxis() const;
 
151
 
 
152
    void setYAxis( int axis );
 
153
    int yAxis() const;
 
154
 
 
155
    virtual void itemChanged();
 
156
 
 
157
    /*!
 
158
      \brief Draw the item
 
159
 
 
160
      \param painter Painter
 
161
      \param xMap Maps x-values into pixel coordinates.
 
162
      \param yMap Maps y-values into pixel coordinates.
 
163
      \param canvasRect Contents rect of the canvas in painter coordinates
 
164
    */
 
165
    virtual void draw( QPainter *painter,
 
166
        const QwtScaleMap &xMap, const QwtScaleMap &yMap,
 
167
        const QRectF &canvasRect ) const = 0;
 
168
 
 
169
    virtual QRectF boundingRect() const;
 
170
 
 
171
    virtual void updateLegend( QwtLegend * ) const;
 
172
    virtual void updateScaleDiv( 
 
173
        const QwtScaleDiv&, const QwtScaleDiv& );
 
174
 
 
175
    virtual QWidget *legendItem() const;
 
176
 
 
177
    QRectF scaleRect( const QwtScaleMap &, const QwtScaleMap & ) const;
 
178
    QRectF paintRect( const QwtScaleMap &, const QwtScaleMap & ) const;
 
179
 
 
180
private:
 
181
    // Disabled copy constructor and operator=
 
182
    QwtPlotItem( const QwtPlotItem & );
 
183
    QwtPlotItem &operator=( const QwtPlotItem & );
 
184
 
 
185
    class PrivateData;
 
186
    PrivateData *d_data;
 
187
};
 
188
 
 
189
Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPlotItem::ItemAttributes );
 
190
Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPlotItem::RenderHints );
 
191
 
 
192
#endif