QtGStreamer  0.10.2
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
graphicsvideowidget.h
1 /*
2  Copyright (C) 2012 Collabora Ltd. <info@collabora.com>
3  @author George Kiagiadakis <george.kiagiadakis@collabora.com>
4 
5  This library is free software; you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published
7  by the Free Software Foundation; either version 2.1 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 #ifndef QGST_UI_GRAPHICSVIDEOWIDGET_H
19 #define QGST_UI_GRAPHICSVIDEOWIDGET_H
20 
21 #include "graphicsvideosurface.h"
22 #include <QtGui/QGraphicsWidget>
23 
24 namespace QGst {
25 namespace Ui {
26 
37 class QTGSTREAMERUI_EXPORT GraphicsVideoWidget : public QGraphicsWidget
38 {
39  Q_OBJECT
40  Q_DISABLE_COPY(GraphicsVideoWidget)
41  Q_PROPERTY(QGst::Ui::GraphicsVideoSurface* surface READ surface WRITE setSurface)
42 public:
43  explicit GraphicsVideoWidget(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0);
44  virtual ~GraphicsVideoWidget();
45 
47  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
48 
49  GraphicsVideoSurface *surface() const;
50  void setSurface(GraphicsVideoSurface *surface);
51 
52 private:
53  QWeakPointer<GraphicsVideoSurface> m_surface;
54 };
55 
56 } // namespace Ui
57 } // namespace QGst
58 
59 #endif // QGST_UI_GRAPHICSVIDEOWIDGET_H