// Copyright 2008 Simon Edwards <simon@simonzone.com>

//                 Generated by twine

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as
// published by the Free Software Foundation; either version 2, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details

// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.


namespace Plasma
{

class Meter : QGraphicsWidget
{
%TypeHeaderCode
#include <plasma/widgets/meter.h>
%End



public:
    enum MeterType
    {
        BarMeterHorizontal,
        BarMeterVertical,
        AnalogMeter
    };

    explicit                Meter (QGraphicsItem* parent = 0);
    void                    setMaximum (int maximum);
    int                     maximum () const;
    void                    setMinimum (int minimum);
    int                     minimum () const;
    void                    setValue (int value);
    int                     value () const;
    void                    setSvg (const QString& svg);
    QString                 svg () const;
    void                    setMeterType (Plasma::Meter::MeterType type);
    Plasma::Meter::MeterType  meterType () const;
    void                    setLabel (int index, const QString& text);
    QString                 label (int index) const;
    void                    setLabelColor (int index, const QColor& color);
    QColor                  labelColor (int index) const;
    void                    setLabelFont (int index, const QFont& font);
    QFont                   labelFont (int index) const;
    void                    setLabelAlignment (int index, const Qt::Alignment alignment);
    Qt::Alignment           labelAlignment (int index) const;
    QRectF                  labelRect (int index) const;
    void                    dataUpdated (const QString& sourceName, const Plasma::DataEngine::Data& data);

protected:
    virtual void            paint (QPainter* p, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
public:
    ~Meter ();
protected:
    QSizeF                  sizeHint (Qt::SizeHint which, const QSizeF& constraint = QSizeF()) const;
signals:
    void                    valueChanged (const int& value);
};
// Meter

};
// Plasma


