• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 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  */
20 
21 #ifndef QWEBKITPLATFORMPLUGIN_H
22 #define QWEBKITPLATFORMPLUGIN_H
23 
24 /*
25  *  Warning: The contents of this file is not  part of the public QtWebKit API
26  *  and may be changed from version to version or even be completely removed.
27 */
28 
29 #include <QObject>
30 #include <QUrl>
31 #if defined(WTF_USE_QT_MULTIMEDIA) && WTF_USE_QT_MULTIMEDIA
32 #include <QMediaPlayer>
33 #endif
34 
35 class QWebSelectData
36 {
37 public:
~QWebSelectData()38     virtual ~QWebSelectData() {}
39 
40     enum ItemType { Option, Group, Separator };
41 
42     virtual ItemType itemType(int) const = 0;
43     virtual QString itemText(int index) const = 0;
44     virtual QString itemToolTip(int index) const = 0;
45     virtual bool itemIsEnabled(int index) const = 0;
46     virtual bool itemIsSelected(int index) const = 0;
47     virtual int itemCount() const = 0;
48     virtual bool multiple() const = 0;
49 };
50 
51 class QWebSelectMethod : public QObject
52 {
53     Q_OBJECT
54 public:
~QWebSelectMethod()55     virtual ~QWebSelectMethod() {}
56 
57     virtual void show(const QWebSelectData&) = 0;
58     virtual void hide() = 0;
59 
60 Q_SIGNALS:
61     void selectItem(int index, bool allowMultiplySelections, bool shift);
62     void didHide();
63 };
64 
65 class QWebNotificationData
66 {
67 public:
~QWebNotificationData()68     virtual ~QWebNotificationData() {}
69 
70     virtual const QString title() const = 0;
71     virtual const QString message() const = 0;
72     virtual const QByteArray iconData() const = 0;
73     virtual const QUrl openerPageUrl() const = 0;
74 };
75 
76 class QWebNotificationPresenter : public QObject
77 {
78     Q_OBJECT
79 public:
QWebNotificationPresenter()80     QWebNotificationPresenter() {}
~QWebNotificationPresenter()81     virtual ~QWebNotificationPresenter() {}
82 
83     virtual void showNotification(const QWebNotificationData*) = 0;
84 
85 Q_SIGNALS:
86     void notificationClosed();
87     void notificationClicked();
88 };
89 
90 class QWebHapticFeedbackPlayer: public QObject
91 {
92     Q_OBJECT
93 public:
QWebHapticFeedbackPlayer()94     QWebHapticFeedbackPlayer() {}
~QWebHapticFeedbackPlayer()95     virtual ~QWebHapticFeedbackPlayer() {}
96 
97     enum HapticStrength {
98         None, Weak, Medium, Strong
99     };
100 
101     enum HapticEvent {
102         Press, Release
103     };
104 
105     virtual void playHapticFeedback(const HapticEvent, const QString& hapticType, const HapticStrength) = 0;
106 };
107 
108 class QWebTouchModifier : public QObject
109 {
110     Q_OBJECT
111 public:
~QWebTouchModifier()112     virtual ~QWebTouchModifier() {}
113 
114     enum PaddingDirection {
115         Up, Right, Down, Left
116     };
117 
118     virtual unsigned hitTestPaddingForTouch(const PaddingDirection) const = 0;
119 };
120 
121 #if defined(WTF_USE_QT_MULTIMEDIA) && WTF_USE_QT_MULTIMEDIA
122 class QWebFullScreenVideoHandler : public QObject {
123     Q_OBJECT
124 public:
QWebFullScreenVideoHandler()125     QWebFullScreenVideoHandler() {}
~QWebFullScreenVideoHandler()126     virtual ~QWebFullScreenVideoHandler() {}
127     virtual bool requiresFullScreenForVideoPlayback() const = 0;
128 
129 Q_SIGNALS:
130     void fullScreenClosed();
131 
132 public Q_SLOTS:
133     virtual void enterFullScreen(QMediaPlayer*) = 0;
134     virtual void exitFullScreen() = 0;
135 };
136 #endif
137 
138 class QWebKitPlatformPlugin
139 {
140 public:
~QWebKitPlatformPlugin()141     virtual ~QWebKitPlatformPlugin() {}
142 
143     enum Extension {
144         MultipleSelections,
145         Notifications,
146         Haptics,
147         TouchInteraction,
148         FullScreenVideoPlayer
149     };
150 
151     virtual bool supportsExtension(Extension extension) const = 0;
152     virtual QObject* createExtension(Extension extension) const = 0;
153 };
154 
155 QT_BEGIN_NAMESPACE
156 Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.7");
157 QT_END_NAMESPACE
158 
159 #endif // QWEBKITPLATFORMPLUGIN_H
160