qwt_plot_svgitem.h 1.64 KB
Newer Older
pixhawk's avatar
pixhawk committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
/* -*- 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_SVGITEM_H
#define QWT_PLOT_SVGITEM_H

#include <qglobal.h>

#include <qstring.h>
#include "qwt_double_rect.h" 
#include "qwt_plot_item.h" 

#if QT_VERSION >= 0x040100
class QSvgRenderer;
class QByteArray;
#endif

/*!
  \brief A plot item, which displays 
         data in Scalable Vector Graphics (SVG) format.

  SVG images are often used to display maps
*/

class QWT_EXPORT QwtPlotSvgItem: public QwtPlotItem
{
public:
    explicit QwtPlotSvgItem(const QString& title = QString::null );
    explicit QwtPlotSvgItem(const QwtText& title );
    virtual ~QwtPlotSvgItem();

    bool loadFile(const QwtDoubleRect&, const QString &fileName);
    bool loadData(const QwtDoubleRect&, const QByteArray &);

    virtual QwtDoubleRect boundingRect() const;

    virtual void draw(QPainter *p,
        const QwtScaleMap &xMap, const QwtScaleMap &yMap,
        const QRect &rect) const;

    virtual int rtti() const;

protected:
#if QT_VERSION >= 0x040100
    const QSvgRenderer &renderer() const;
    QSvgRenderer &renderer();
#endif

    void render(QPainter *painter,
        const QwtDoubleRect &viewBox, const QRect &rect) const;
    QwtDoubleRect viewBox(const QwtDoubleRect &area) const;

private:
    void init();

    class PrivateData;
    PrivateData *d_data;
};

#endif