summaryrefslogtreecommitdiffstats
path: root/arts/kde/kvideowidget.h
blob: f314267caf9a0213f9896ba77b12469951fded5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
   This file is part of KDE/aRts (Noatun) - xine integration
   Copyright (C) 2002 Ewald Snel <ewald@rambo.its.tudelft.nl>
   Copyright (C) 2002 Neil Stevens <neil@qualityassistant.com>

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License version 2 as published by the Free Software Foundation.
*/

#ifndef ARTSKDE_KVIDEOWIDGET_H
#define ARTSKDE_KVIDEOWIDGET_H

#include <qevent.h>
#include <qimage.h>
#include <qwidget.h>
#include <kmedia2.h>
#include <kxmlguiclient.h>


class KDE_ARTS_EXPORT KVideoWidget : public QWidget, virtual public KXMLGUIClient
{
Q_OBJECT

public:
    KVideoWidget( KXMLGUIClient *clientParent, QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
    KVideoWidget( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
    virtual ~KVideoWidget();

    void embed( Arts::VideoPlayObject vpo );
    static QImage snapshot( Arts::VideoPlayObject vpo );

    bool isEmbedded();
    bool isFullscreen();
    bool isHalfSize();
    bool isNormalSize();
    bool isDoubleSize();

    QSize sizeHint() const;

    virtual int heightForWidth ( int w ) const;

protected:
    virtual void mousePressEvent( QMouseEvent *event );
    virtual void mouseDoubleClickEvent( QMouseEvent *event);
    virtual void resizeEvent( QResizeEvent *event );
    virtual bool x11Event( XEvent *event );

public slots:
    void setFullscreen();
    void setWindowed();
    void setHalfSize();
    void setNormalSize();
    void setDoubleSize();

    void resizeNotify( int width, int height );

protected slots:
    void fullscreenActivated();
    void halfSizeActivated();
    void normalSizeActivated();
    void doubleSizeActivated();

signals:
    void adaptSize( int width, int height );
    void mouseButtonPressed( int type, const QPoint &, int state );
    void mouseButtonDoubleClick( const QPoint &, int state );
    /**
     * @deprecated
     * use mouseButtonPressed( int type, const QPoint & ) instead.
     */
    void rightButtonPressed( const QPoint & );

private:
    void init(void);
    QWidget *fullscreenWidget;
    int videoWidth;
    int videoHeight;
    Arts::VideoPlayObject poVideo;
};

#endif