//
//     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 VideoWidget : QGraphicsProxyWidget
{
%TypeHeaderCode
#include <plasma/widgets/videowidget.h>
%End

public:

    enum Control
    {
        NoControls,
        Play,
        Pause,
        Stop,
        PlayPause,
        Previous,
        Next,
        Progress,
        Volume,
        OpenFile,
        DefaultControls
    };

    typedef QFlags<Plasma::VideoWidget::Control> Controls;

    explicit                VideoWidget (QGraphicsWidget* parent /TransferThis/ = 0);
    void                    setUrl (const QString& url);
    QString                 url () const;


//mt undefined symbol: MediaObject* None -- need mapped type?
//mt     Phonon::MediaObject*  mediaObject () const;




//mt undefined symbol: AudioOutput* None -- need mapped type?
//mt     Phonon::AudioOutput*  audioOutput () const;


    qint64                  currentTime () const;
    qint64                  totalTime () const;
    qint64                  remainingTime () const;
    void                    setUsedControls (const Plasma::VideoWidget::Controls controls);
    Plasma::VideoWidget::Controls  usedControls () const;
    void                    setControlsVisible (bool visible);
    bool                    controlsVisible () const;
    void                    setStyleSheet (const QString& stylesheet);
    QString                 styleSheet ();


//mt undefined symbol: VideoWidget* None -- need mapped type?
//mt     Phonon::VideoWidget*  nativeWidget () const;


    void                    play ();
    void                    pause ();
    void                    stop ();
    void                    seek (qint64 time);

signals:
    void                    tick (qint64 time);
    void                    aboutToFinish ();
    void                    nextRequested ();
    void                    previousRequested ();

protected:
    void                    resizeEvent (QGraphicsSceneResizeEvent* event);
    void                    hoverEnterEvent (QGraphicsSceneHoverEvent* event);
    void                    hoverLeaveEvent (QGraphicsSceneHoverEvent* event);
    void                    hoverMoveEvent (QGraphicsSceneHoverEvent* event);
};   // VideoWidget

};   // Plasma


