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

//                 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/>.

namespace Plasma
{

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

public:
    explicit                ScrollWidget (QGraphicsWidget* parent /TransferThis/ = 0);
    void                    setWidget (QGraphicsWidget* widget);
    QGraphicsWidget*        widget () const;
    void                    setHorizontalScrollBarPolicy (const Qt::ScrollBarPolicy policy);
    Qt::ScrollBarPolicy     horizontalScrollBarPolicy () const;
    void                    setVerticalScrollBarPolicy (const Qt::ScrollBarPolicy policy);
    Qt::ScrollBarPolicy     verticalScrollBarPolicy () const;
    void                    setStyleSheet (const QString& stylesheet);
    QString                 styleSheet () const;
    QWidget*                nativeWidget () const;

protected:
    void                    resizeEvent (QGraphicsSceneResizeEvent* event);
    void                    mouseMoveEvent (QGraphicsSceneMouseEvent* event);
    void                    mousePressEvent (QGraphicsSceneMouseEvent* event);
    void                    wheelEvent (QGraphicsSceneWheelEvent* event);
    bool                    eventFilter (QObject* watched, QEvent* event);
public:
    ~ScrollWidget ();
    void                    ensureRectVisible (const QRectF& rect);
    void                    ensureItemVisible (QGraphicsItem* item);
    void                    registerAsDragHandle (QGraphicsWidget* item);
    void                    unregisterAsDragHandle (QGraphicsWidget* item);
    QRectF                  viewportGeometry () const;
    QSizeF                  contentsSize () const;
    void                    setScrollPosition (const QPointF& position);
    QPointF                 scrollPosition () const;
protected:
    void                    mouseReleaseEvent (QGraphicsSceneMouseEvent* event);
    void                    focusInEvent (QFocusEvent* event);
    QSizeF                  sizeHint (Qt::SizeHint which, const QSizeF& constraint) const;
public:
//force
//ig    explicit                ScrollWidget (QGraphicsItem* parent);
//end
signals:
    void                    scrollStateChanged (QAbstractAnimation::State newState, QAbstractAnimation::State oldState);
public:
    void                    setAlignment (Qt::Alignment align);
    Qt::Alignment           alignment () const;
    void                    setOverShoot (bool enable);
    bool                    hasOverShoot () const;
    void                    setSnapSize (const QSizeF& size);
    QSizeF                  snapSize () const;
signals:
    void                    viewportGeometryChanged (const QRectF& geomety);
protected:
    void                    keyPressEvent (QKeyEvent* event);
    bool                    sceneEventFilter (QGraphicsItem* i, QEvent* e);
public:
    bool                    overflowBordersVisible () const;
    void                    setOverflowBordersVisible (const bool visible);
};
// ScrollWidget

};
// Plasma


