//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

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

// PyKDE4 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 General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.


class KPlotObject
{
%TypeHeaderCode
#include <kplotobject.h>
%End


public:

    enum PlotType
    {
        UnknownType,
        Points,
        Lines,
        Bars
    };

    typedef QFlags<KPlotObject::PlotType> PlotTypes;


    enum PointStyle
    {
        NoPoints,
        Circle,
        Letter,
        Triangle,
        Square,
        Pentagon,
        Hexagon,
        Asterisk,
        Star,
        UnknwonPoint
    };

    explicit                KPlotObject (const QColor& color = Qt::white, KPlotObject::PlotType otype = KPlotObject::Points, double size = 2, KPlotObject::PointStyle ps = KPlotObject::Circle);
    KPlotObject::PlotTypes  plotTypes () const;
    void                    setShowPoints (bool b);
    void                    setShowLines (bool b);
    void                    setShowBars (bool b);
    double                  size () const;
    void                    setSize (double s);
    KPlotObject::PointStyle  pointStyle () const;
    void                    setPointStyle (KPlotObject::PointStyle p);
    const QPen&             pen () const;
    void                    setPen (const QPen& p);
    const QPen&             linePen () const;
    void                    setLinePen (const QPen& p);
    const QPen&             barPen () const;
    void                    setBarPen (const QPen& p);
    const QPen&             labelPen () const;
    void                    setLabelPen (const QPen& p);
    const QBrush            brush () const;
    void                    setBrush (const QBrush& b);
    const QBrush            barBrush () const;
    void                    setBarBrush (const QBrush& b);
    QList<KPlotPoint*>      points () const;
    void                    addPoint (const QPointF& p, const QString& label = QString(), double barWidth = 0.0);
    void                    addPoint (KPlotPoint* p);
    void                    addPoint (double x, double y, const QString& label = QString(), double barWidth = 0.0);
    void                    removePoint (int index);
    void                    clearPoints ();
    void                    draw (QPainter* p, KPlotWidget* pw);

private:
                            KPlotObject (const KPlotObject&);
};   // KPlotObject


