Update with current status
[gnash.git] / gui / qt / Qt4Glue.h
blob13d814594c4b8b5e477e0f67c21c875a136476f2
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
19 #ifndef GNASH_KDE4_GLUE_H
20 #define GNASH_KDE4_GLUE_H
22 #ifdef HAVE_CONFIG_H
23 #include "gnashconfig.h"
24 #endif
26 #include "snappingrange.h"
28 #include <QWidget>
30 class QRect;
31 class QGLWidget;
33 namespace gnash {
34 class Renderer;
35 class DrawingWidget;
36 class Qt4Gui;
39 namespace gnash {
41 class DrawingWidget : public QWidget
43 Q_OBJECT
45 public:
46 DrawingWidget(Qt4Gui& gui);
47 ~DrawingWidget() {}
49 #ifdef RENDERER_OPENGL
50 QGLWidget* _glWidget;
51 #endif
53 public slots:
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();
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);
74 void keyPressEvent(QKeyEvent* event);
75 void keyReleaseEvent(QKeyEvent* event);
76 void contextMenuEvent(QContextMenuEvent* event);
78 private:
79 Qt4Gui& _gui;
80 };
82 class Qt4Glue
84 public:
85 Qt4Glue() : _drawing_area(nullptr) {}
86 virtual ~Qt4Glue() { }
87 virtual bool init(int argc, char **argv[]) = 0;
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:
97 DrawingWidget *_drawing_area;
100 } // namespace gnash
102 #endif