| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 | /* -*- 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_SYMBOL_H#define QWT_SYMBOL_H#include "qwt_global.h"#include <QPolygonF>class QPainter;class QRect;class QSize;class QBrush;class QPen;class QColor;class QPointF;//! A class for drawing symbolsclass QWT_EXPORT QwtSymbol{public:    /*!      Symbol Style       - NoSymbol\n         No Style. The symbol cannot be drawn.       - Ellipse\n         Ellipse or circle       - Rect\n         Rectangle       - Diamond\n         Diamond       - Triangle\n         Triangle pointing upwards       - DTriangle\n         Triangle pointing downwards       - UTriangle\n         Triangle pointing upwards       - LTriangle\n         Triangle pointing left       - RTriangle\n         Triangle pointing right       - Cross\n         Cross (+)       - XCross\n         Diagonal cross (X)       - HLine\n         Horizontal line       - VLine\n         Vertical line       - Star1\n         X combined with +       - Star2\n         Six-pointed star       - Hexagon\n         Hexagon       - UserSymbol\n         Styles >= UserSymbol are reserved for derived         classes of QwtSymbol that overload drawSymbols() with         additional application specific symbol types.      \sa setStyle(), style()     */    enum Style    {        NoSymbol = -1,        Ellipse,        Rect,        Diamond,        Triangle,        DTriangle,        UTriangle,        LTriangle,        RTriangle,        Cross,        XCross,        HLine,        VLine,        Star1,        Star2,        Hexagon,        UserSymbol = 1000    };public:    QwtSymbol( Style = NoSymbol );    QwtSymbol( Style, const QBrush &, const QPen &, const QSize & );    QwtSymbol( const QwtSymbol & );    virtual ~QwtSymbol();    QwtSymbol &operator=( const QwtSymbol & );    bool operator==( const QwtSymbol & ) const;    bool operator!=( const QwtSymbol & ) const;    void setSize( const QSize & );    void setSize( int width, int height = -1 );    const QSize& size() const;    virtual void setColor( const QColor & );    void setBrush( const QBrush& b );    const QBrush& brush() const;    void setPen( const QPen & );    const QPen& pen() const;    void setStyle( Style );    Style style() const;    void drawSymbol( QPainter *, const QPointF & ) const;    void drawSymbols( QPainter *, const QPolygonF & ) const;    virtual QSize boundingSize() const;protected:    virtual void drawSymbols( QPainter *,        const QPointF *, int numPoints ) const;private:    class PrivateData;    PrivateData *d_data;};/*!  \brief Draw the symbol at a specified position  \param painter Painter  \param pos Position of the symbol in screen coordinates*/inline void QwtSymbol::drawSymbol(    QPainter *painter, const QPointF &pos ) const{    drawSymbols( painter, &pos, 1 );}/*!  \brief Draw symbols at the specified points  \param painter Painter  \param points Positions of the symbols in screen coordinates*/inline void QwtSymbol::drawSymbols(    QPainter *painter, const QPolygonF &points ) const{    drawSymbols( painter, points.data(), points.size() );}#endif
 |