Qwt User's Guide
svn
|
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** 00002 * Qwt Widget Library 00003 * Copyright (C) 1997 Josef Wilgen 00004 * Copyright (C) 2002 Uwe Rathmann 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the Qwt License, Version 1.0 00008 *****************************************************************************/ 00009 00010 #ifndef QWT_SYMBOL_H 00011 #define QWT_SYMBOL_H 00012 00013 #include "qwt_global.h" 00014 #include <QPolygonF> 00015 00016 class QPainter; 00017 class QRect; 00018 class QSize; 00019 class QBrush; 00020 class QPen; 00021 class QColor; 00022 class QPointF; 00023 00025 class QWT_EXPORT QwtSymbol 00026 { 00027 public: 00032 enum Style 00033 { 00035 NoSymbol = -1, 00036 00038 Ellipse, 00039 00041 Rect, 00042 00044 Diamond, 00045 00047 Triangle, 00048 00050 DTriangle, 00051 00053 UTriangle, 00054 00056 LTriangle, 00057 00059 RTriangle, 00060 00062 Cross, 00063 00065 XCross, 00066 00068 HLine, 00069 00071 VLine, 00072 00074 Star1, 00075 00077 Star2, 00078 00080 Hexagon, 00081 00087 UserStyle = 1000 00088 }; 00089 00090 public: 00091 QwtSymbol( Style = NoSymbol ); 00092 QwtSymbol( Style, const QBrush &, const QPen &, const QSize & ); 00093 QwtSymbol( const QwtSymbol & ); 00094 virtual ~QwtSymbol(); 00095 00096 QwtSymbol &operator=( const QwtSymbol & ); 00097 bool operator==( const QwtSymbol & ) const; 00098 bool operator!=( const QwtSymbol & ) const; 00099 00100 void setSize( const QSize & ); 00101 void setSize( int width, int height = -1 ); 00102 const QSize& size() const; 00103 00104 virtual void setColor( const QColor & ); 00105 00106 void setBrush( const QBrush& b ); 00107 const QBrush& brush() const; 00108 00109 void setPen( const QPen & ); 00110 const QPen& pen() const; 00111 00112 void setStyle( Style ); 00113 Style style() const; 00114 00115 void drawSymbol( QPainter *, const QPointF & ) const; 00116 void drawSymbols( QPainter *, const QPolygonF & ) const; 00117 00118 virtual QSize boundingSize() const; 00119 00120 protected: 00121 virtual void drawSymbols( QPainter *, 00122 const QPointF *, int numPoints ) const; 00123 00124 private: 00125 class PrivateData; 00126 PrivateData *d_data; 00127 }; 00128 00135 inline void QwtSymbol::drawSymbol( 00136 QPainter *painter, const QPointF &pos ) const 00137 { 00138 drawSymbols( painter, &pos, 1 ); 00139 } 00140 00148 inline void QwtSymbol::drawSymbols( 00149 QPainter *painter, const QPolygonF &points ) const 00150 { 00151 drawSymbols( painter, points.data(), points.size() ); 00152 } 00153 00154 #endif