// 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 WebView : QGraphicsWidget
{
%TypeHeaderCode
#include <plasma/widgets/webview.h>
%End


public:
    explicit                WebView (QGraphicsItem* parent = 0);
    void                    setUrl (const KUrl& url);
    KUrl                    url () const;
//ig    void                    setHtml (const QByteArray& html, const KUrl& baseUrl = KUrl());
    QString                 html () const;
    void                    setHtml (const QString& html, const KUrl& baseUrl = KUrl());
    QRectF                  geometry () const;
    void                    setPage (QWebPage* page);
    QWebPage*               page () const;
    QWebFrame*              mainFrame () const;
    void                    setDragToScroll (bool drag);
    bool                    dragToScroll ();
    void                    setGeometry (const QRectF& geometry);

signals:
    void                    loadProgress (int percent);
    void                    loadFinished (bool success);

protected:
    void                    paint (QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
    void                    mouseMoveEvent (QGraphicsSceneMouseEvent* event);
    void                    hoverMoveEvent (QGraphicsSceneHoverEvent* event);
    void                    mousePressEvent (QGraphicsSceneMouseEvent* event);
    void                    mouseDoubleClickEvent (QGraphicsSceneMouseEvent* event);
    void                    mouseReleaseEvent (QGraphicsSceneMouseEvent* event);
    void                    contextMenuEvent (QGraphicsSceneContextMenuEvent* event);
    void                    wheelEvent (QGraphicsSceneWheelEvent* event);
    void                    keyPressEvent (QKeyEvent* event);
    void                    keyReleaseEvent (QKeyEvent* event);
    void                    focusInEvent (QFocusEvent* event);
    void                    focusOutEvent (QFocusEvent* event);
    void                    dragEnterEvent (QGraphicsSceneDragDropEvent* event);
    void                    dragLeaveEvent (QGraphicsSceneDragDropEvent* event);
    void                    dragMoveEvent (QGraphicsSceneDragDropEvent* event);
    void                    dropEvent (QGraphicsSceneDragDropEvent* event);
public:
    ~WebView ();
    QSizeF                  contentsSize () const;
    void                    setScrollPosition (const QPointF& position);
    QPointF                 scrollPosition () const;
    QRectF                  viewportGeometry () const;
protected:
    QSizeF                  sizeHint (Qt::SizeHint which, const QSizeF& constraint) const;
public:
    qreal                   zoomFactor () const;
    void                    setZoomFactor (const qreal zoom);
protected:
    QVariant                itemChange (QGraphicsItem::GraphicsItemChange change, const QVariant& value);
public:
    void                    back ();
    void                    forward ();
    void                    reload ();
    void                    stop ();
signals:
    void                    urlChanged (const QUrl& url);
};
// WebView

};
// Plasma


