Skip to content
qwt_plot_svgitem.h 1.52 KiB
Newer Older
pixhawk's avatar
pixhawk committed
/* -*- 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

Bryant's avatar
Bryant committed
#include "qwt_global.h"
#include "qwt_plot_item.h"
Bryant's avatar
Bryant committed
#include <qstring.h>
pixhawk's avatar
pixhawk committed

class QSvgRenderer;
class QByteArray;

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

  SVG images are often used to display maps
*/

class QWT_EXPORT QwtPlotSvgItem: public QwtPlotItem
{
public:
Bryant's avatar
Bryant committed
    explicit QwtPlotSvgItem( const QString& title = QString::null );
    explicit QwtPlotSvgItem( const QwtText& title );
pixhawk's avatar
pixhawk committed
    virtual ~QwtPlotSvgItem();

Bryant's avatar
Bryant committed
    bool loadFile( const QRectF&, const QString &fileName );
    bool loadData( const QRectF&, const QByteArray & );
pixhawk's avatar
pixhawk committed

Bryant's avatar
Bryant committed
    virtual QRectF boundingRect() const;
pixhawk's avatar
pixhawk committed

Bryant's avatar
Bryant committed
    virtual void draw( QPainter *p,
        const QwtScaleMap &xMap, const QwtScaleMap &yMap,
        const QRectF &rect ) const;
pixhawk's avatar
pixhawk committed

    virtual int rtti() const;

protected:
    const QSvgRenderer &renderer() const;
    QSvgRenderer &renderer();

Bryant's avatar
Bryant committed
    void render( QPainter *painter,
        const QRectF &viewBox, const QRectF &rect ) const;

    QRectF viewBox( const QRectF &area ) const;
pixhawk's avatar
pixhawk committed

private:
    void init();

    class PrivateData;
    PrivateData *d_data;
};

#endif