Gnash  0.8.11dev
Qt4Glue.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010,
3 // 2011 Free Software Foundation, Inc
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 3 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 General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 
19 #ifndef GNASH_KDE4_GLUE_H
20 #define GNASH_KDE4_GLUE_H
21 
22 #ifdef HAVE_CONFIG_H
23 #include "gnashconfig.h"
24 #endif
25 
26 #include "snappingrange.h"
27 
28 #include <QWidget>
29 
30 class QRect;
31 class QGLWidget;
32 
33 namespace gnash {
34  class Renderer;
35  class DrawingWidget;
36  class Qt4Gui;
37 }
38 
39 namespace gnash {
40 
41 class DrawingWidget : public QWidget
42 {
43  Q_OBJECT
44 
45 public:
46  DrawingWidget(Qt4Gui& gui);
48 
49 #ifdef RENDERER_OPENGL
50  QGLWidget* _glWidget;
51 #endif
52 
53 public slots:
54 
55  void properties();
56  void preferences();
57  void play();
58  void pause();
59  void stop();
60  void restart();
61  void refresh();
62  void fullscreen(bool isFull);
63  void quit();
64 
65 protected:
66  void paintEvent(QPaintEvent* event);
67  void timerEvent(QTimerEvent* event);
68  void resizeEvent(QResizeEvent* event);
69  void mouseReleaseEvent(QMouseEvent* event);
70  void mousePressEvent(QMouseEvent* event);
71  void mouseMoveEvent(QMouseEvent* event);
72  void wheelEvent(QWheelEvent* event);
73 
74  void keyPressEvent(QKeyEvent* event);
75  void keyReleaseEvent(QKeyEvent* event);
76  void contextMenuEvent(QContextMenuEvent* event);
77 
78 private:
79  Qt4Gui& _gui;
80 };
81 
82 class Qt4Glue
83 {
84  public:
85  Qt4Glue() : _drawing_area(NULL) {}
86  virtual ~Qt4Glue() { }
87  virtual bool init(int argc, char **argv[]) = 0;
88 
89  virtual void prepDrawingArea(DrawingWidget *drawing_area) = 0;
90  virtual Renderer* createRenderHandler() = 0;
91  virtual void render() = 0;
92  virtual void render(const QRect& updateRect) = 0;
93  virtual void setInvalidatedRegions(const InvalidatedRanges& /* ranges */) {}
94  virtual void resize(int, int) {}
95  virtual void initBuffer(int, int) {}
96  protected:
98 };
99 
100 } // namespace gnash
101 
102 #endif