1 /*
2     Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
3 
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8 
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13 
14     You should have received a copy of the GNU Library General Public License
15     along with this library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17     Boston, MA 02110-1301, USA.
18 */
19 #ifndef PluginContainerQt_h
20 #define PluginContainerQt_h
21 
22 #include <QX11EmbedContainer>
23 
24 namespace WebCore {
25 
26     class PluginView;
27 
28     class PluginContainerQt : public QX11EmbedContainer
29     {
30         Q_OBJECT
31     public:
32         PluginContainerQt(PluginView*, QWidget* parent);
33         ~PluginContainerQt();
34 
35         void redirectWheelEventsToParent(bool enable = true);
36 
37     protected:
38         virtual bool x11Event(XEvent*);
39         virtual void focusInEvent(QFocusEvent*);
40         virtual void focusOutEvent(QFocusEvent*);
41 
42     public slots:
43         void on_clientClosed();
44         void on_clientIsEmbedded();
45 
46     private:
47         PluginView* m_pluginView;
48         QWidget* m_clientWrapper;
49     };
50 
51     class PluginClientWrapper : public QWidget
52     {
53     public:
54         PluginClientWrapper(QWidget* parent, WId client);
55         ~PluginClientWrapper();
56         bool x11Event(XEvent*);
57 
58     private:
59         QWidget* m_parent;
60     };
61 }
62 
63 #endif // PluginContainerQt_h
64