big merge from master, fix rpm creation, drop fetching swfdec
[gnash.git] / gui / sdl / sdlsup.h
blobd053d8327ffef326ca1a79fe9285c5215c311f2d
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
20 #ifndef SDLSUP_H
21 #define SDLSUP_H
23 #ifdef HAVE_CONFIG_H
24 #include "gnashconfig.h"
25 #endif
27 #include "gui.h"
29 #include "SDL.h"
30 #include "SDL_thread.h"
32 #ifdef RENDERER_AGG
33 # include "sdl_agg_glue.h"
34 #elif defined(RENDERER_CAIRO)
35 # include "sdl_cairo_glue.h"
36 #elif defined(RENDERER_OPENGL)
37 # include "sdl_ogl_glue.h"
38 #endif
41 #ifdef RENDERER_CAIRO
42 # include <cairo.h>
43 #endif
45 namespace gnash
48 class SDLGui : public Gui
50 public:
51 SDLGui(unsigned long xid, float scale, bool loop, RunResources& r);
52 virtual ~SDLGui();
53 virtual bool init(int argc, char **argv[]);
54 virtual bool createWindow(const char *title, int width, int height,
55 int xPosition = 0, int yPosition = 0);
56 virtual bool run();
57 virtual bool createMenu();
58 virtual bool setupEvents();
59 virtual void renderBuffer();
60 virtual void setInterval(unsigned int interval);
61 virtual void disableCoreTrap();
62 virtual void setTimeout(unsigned int timeout);
64 void key_event(SDL_KeyboardEvent * key, bool down);
66 // See gui.h for documentation
67 void setInvalidatedRegions(const InvalidatedRanges& ranges);
69 private:
70 unsigned int _timeout;
71 bool _core_trap;
73 /// Handle VIDEORESIZE event
74 void resize_event();
76 /// Handle VIDEOEXPOSE event
77 void expose_event();
79 static key::code sdl_to_gnash_key(SDL_KeyboardEvent* key);
80 static int sdl_to_gnash_modifier(int state);
82 #ifdef RENDERER_AGG
83 SdlAggGlue _glue;
84 #elif defined(RENDERER_CAIRO)
85 SdlCairoGlue _glue;
86 #elif defined(RENDERER_OPENGL)
87 SdlOglGlue _glue;
88 #endif
92 // void xt_event_handler(Widget xtwidget, gpointer instance,
93 // XEvent *xevent, Boolean *b);
95 // end of namespace gnash
98 // end of __SDLSUP_H__
99 #endif