// 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 FrameSvg : Plasma::Svg
{
%TypeHeaderCode
#include <plasma/framesvg.h>
%End


public:

    enum EnabledBorder
    {
        NoBorder,
        TopBorder,
        BottomBorder,
        LeftBorder,
        RightBorder,
        AllBorders
    };

    typedef QFlags<Plasma::FrameSvg::EnabledBorder> EnabledBorders;

    explicit                FrameSvg (QObject* parent /TransferThis/ = 0);
    void                    setImagePath (const QString& path);
    void                    setEnabledBorders (const Plasma::FrameSvg::EnabledBorders borders);
    Plasma::FrameSvg::EnabledBorders  enabledBorders () const;
    void                    resizeFrame (const QSizeF& size);
    QSizeF                  frameSize () const;
    qreal                   marginSize (const Plasma::MarginEdge edge) const;
    void                    getMargins (qreal& left /out/, qreal& top /out/, qreal& right /out/, qreal& bottom /out/) const;
    QRectF                  contentsRect () const;
    void                    setElementPrefix (Plasma::Location location);
    void                    setElementPrefix (const QString& prefix);
    bool                    hasElementPrefix (const QString& prefix) const;
    bool                    hasElementPrefix (Plasma::Location location) const;
    QString                 prefix ();
    QRegion                 mask () const;
    QPixmap                 alphaMask () const;
    void                    setCacheAllRenderedFrames (bool cache);
    bool                    cacheAllRenderedFrames () const;
    void                    clearCache ();
    QPixmap                 framePixmap ();
    void                    paintFrame (QPainter* painter, const QRectF& target, const QRectF& source = QRectF());
    void                    paintFrame (QPainter* painter, const QPointF& pos = QPointF(0,0));
};   // FrameSvg

};   // Plasma


