source: ntrip/trunk/BNC/qwt/qwt_plot_shapeitem.h@ 8154

Last change on this file since 8154 was 8127, checked in by stoecker, 8 years ago

update qwt and qwtpolar, many QT5 fixes (unfinished)

File size: 3.2 KB
Line 
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_SHAPE_ITEM_H
11#define QWT_PLOT_SHAPE_ITEM_H
12
13#include "qwt_global.h"
14#include "qwt_plot_item.h"
15#include <qpainterpath.h>
16
17/*!
18 \brief A plot item, which displays any graphical shape,
19 that can be defined by a QPainterPath
20
21 A QPainterPath is a shape composed from intersecting and uniting
22 regions, rectangles, ellipses or irregular areas defined by lines, and curves.
23 QwtPlotShapeItem displays a shape with a pen and brush.
24
25 QwtPlotShapeItem offers a couple of optimizations like clipping or weeding.
26 These algorithms need to convert the painter path into polygons that might be
27 less performant for paths built from curves and ellipses.
28
29 \sa QwtPlotZone
30*/
31class QWT_EXPORT QwtPlotShapeItem: public QwtPlotItem
32{
33public:
34 /*!
35 Attributes to modify the drawing algorithm.
36 The default disables all attributes
37
38 \sa setPaintAttribute(), testPaintAttribute()
39 */
40 enum PaintAttribute
41 {
42 /*!
43 Clip polygons before painting them. In situations, where points
44 are far outside the visible area (f.e when zooming deep) this
45 might be a substantial improvement for the painting performance
46
47 But polygon clipping will convert the painter path into
48 polygons what might introduce a negative impact on the
49 performance of paths composed from curves or ellipses.
50 */
51 ClipPolygons = 0x01,
52 };
53
54 //! Paint attributes
55 typedef QFlags<PaintAttribute> PaintAttributes;
56
57 //! Mode how to display the item on the legend
58 enum LegendMode
59 {
60 //! Display a scaled down version of the shape
61 LegendShape,
62
63 //! Display a filled rectangle
64 LegendColor
65 };
66
67 explicit QwtPlotShapeItem( const QString &title = QString::null );
68 explicit QwtPlotShapeItem( const QwtText &title );
69
70 virtual ~QwtPlotShapeItem();
71
72 void setPaintAttribute( PaintAttribute, bool on = true );
73 bool testPaintAttribute( PaintAttribute ) const;
74
75 void setLegendMode( LegendMode );
76 LegendMode legendMode() const;
77
78 void setRect( const QRectF & );
79 void setPolygon( const QPolygonF & );
80
81 void setShape( const QPainterPath & );
82 QPainterPath shape() const;
83
84 void setPen( const QColor &, qreal width = 0.0, Qt::PenStyle = Qt::SolidLine );
85 void setPen( const QPen & );
86 QPen pen() const;
87
88 void setBrush( const QBrush & );
89 QBrush brush() const;
90
91 void setRenderTolerance( double );
92 double renderTolerance() const;
93
94 virtual QRectF boundingRect() const;
95
96 virtual void draw( QPainter *p,
97 const QwtScaleMap &xMap, const QwtScaleMap &yMap,
98 const QRectF &rect ) const;
99
100 virtual QwtGraphic legendIcon( int index, const QSizeF & ) const;
101
102 virtual int rtti() const;
103
104private:
105 void init();
106
107 class PrivateData;
108 PrivateData *d_data;
109};
110
111#endif
Note: See TracBrowser for help on using the repository browser.