qwebkitplatformplugin.h revision 2daae5fd11344eaa88a0d92b0f6d65f8d2255c00
15af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke/* 25af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 35af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * 45af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * This library is free software; you can redistribute it and/or 55af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * modify it under the terms of the GNU Library General Public 65af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * License as published by the Free Software Foundation; either 75af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * version 2 of the License, or (at your option) any later version. 85af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * 95af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * This library is distributed in the hope that it will be useful, 105af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * but WITHOUT ANY WARRANTY; without even the implied warranty of 115af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 125af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * Library General Public License for more details. 135af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * 145af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * You should have received a copy of the GNU Library General Public License 155af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * along with this library; see the file COPYING.LIB. If not, write to 165af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 175af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * Boston, MA 02110-1301, USA. 185af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * 195af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke */ 205af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 215af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#ifndef QWEBKITPLATFORMPLUGIN_H 225af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#define QWEBKITPLATFORMPLUGIN_H 235af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 245af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke/* 255af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * Warning: The contents of this file is not part of the public QtWebKit API 265af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * and may be changed from version to version or even be completely removed. 275af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke*/ 285af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 292bde8e466a4451c7319e3a072d118917957d6554Steve Block#include <QColor> 305af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#include <QObject> 3168513a70bcd92384395513322f1b801e7bf9c729Steve Block#include <QUrl> 322daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#if defined(WTF_USE_QT_MULTIMEDIA) && WTF_USE_QT_MULTIMEDIA 3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <QMediaPlayer> 3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 355af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 365af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkeclass QWebSelectData 375af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke{ 385af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkepublic: 3906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen virtual ~QWebSelectData() {} 405af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 415af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke enum ItemType { Option, Group, Separator }; 425af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 435af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual ItemType itemType(int) const = 0; 445af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual QString itemText(int index) const = 0; 455af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual QString itemToolTip(int index) const = 0; 465af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual bool itemIsEnabled(int index) const = 0; 475af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual bool itemIsSelected(int index) const = 0; 485af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual int itemCount() const = 0; 495af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual bool multiple() const = 0; 502bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual QColor backgroundColor() const = 0; 512bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual QColor foregroundColor() const = 0; 522bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual QColor itemBackgroundColor(int index) const = 0; 532bde8e466a4451c7319e3a072d118917957d6554Steve Block virtual QColor itemForegroundColor(int index) const = 0; 545af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke}; 555af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 565af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkeclass QWebSelectMethod : public QObject 575af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke{ 585af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke Q_OBJECT 595af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkepublic: 6006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen virtual ~QWebSelectMethod() {} 615af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 625af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual void show(const QWebSelectData&) = 0; 635af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual void hide() = 0; 645af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 655af96e2c7b73ebc627c6894727826a7576d31758Leon ClarkeQ_SIGNALS: 665af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke void selectItem(int index, bool allowMultiplySelections, bool shift); 675af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke void didHide(); 685af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke}; 695af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 70545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdochclass QWebNotificationData 71545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch{ 72545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdochpublic: 7306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen virtual ~QWebNotificationData() {} 7406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 75545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch virtual const QString title() const = 0; 76545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch virtual const QString message() const = 0; 77545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch virtual const QByteArray iconData() const = 0; 7868513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual const QUrl openerPageUrl() const = 0; 79545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch}; 80545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 81545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdochclass QWebNotificationPresenter : public QObject 82545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch{ 83545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch Q_OBJECT 84545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdochpublic: 85545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch QWebNotificationPresenter() {} 86545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch virtual ~QWebNotificationPresenter() {} 87545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 88545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch virtual void showNotification(const QWebNotificationData*) = 0; 89545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 90545e470e52f0ac6a3a072bf559c796b42c6066b6Ben MurdochQ_SIGNALS: 91545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch void notificationClosed(); 9268513a70bcd92384395513322f1b801e7bf9c729Steve Block void notificationClicked(); 93545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch}; 94545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch 95cad810f21b803229eb11403f9209855525a25d57Steve Blockclass QWebHapticFeedbackPlayer: public QObject 96dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch{ 97cad810f21b803229eb11403f9209855525a25d57Steve Block Q_OBJECT 98dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochpublic: 99cad810f21b803229eb11403f9209855525a25d57Steve Block QWebHapticFeedbackPlayer() {} 100cad810f21b803229eb11403f9209855525a25d57Steve Block virtual ~QWebHapticFeedbackPlayer() {} 101cad810f21b803229eb11403f9209855525a25d57Steve Block 102dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch enum HapticStrength { 103dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch None, Weak, Medium, Strong 104dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch }; 105dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 106dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch enum HapticEvent { 107dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch Press, Release 108dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch }; 109dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 110dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch virtual void playHapticFeedback(const HapticEvent, const QString& hapticType, const HapticStrength) = 0; 111dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch}; 112dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 11328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhuclass QWebTouchModifier : public QObject 11428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu{ 11528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu Q_OBJECT 11628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhupublic: 11728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu virtual ~QWebTouchModifier() {} 11828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu 11928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu enum PaddingDirection { 12028040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu Up, Right, Down, Left 12128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu }; 12228040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu 12328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu virtual unsigned hitTestPaddingForTouch(const PaddingDirection) const = 0; 12428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu}; 12528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu 1262daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#if defined(WTF_USE_QT_MULTIMEDIA) && WTF_USE_QT_MULTIMEDIA 12765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass QWebFullScreenVideoHandler : public QObject { 12865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Q_OBJECT 12965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochpublic: 13065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch QWebFullScreenVideoHandler() {} 13165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual ~QWebFullScreenVideoHandler() {} 13265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual bool requiresFullScreenForVideoPlayback() const = 0; 13365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 13465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQ_SIGNALS: 13565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch void fullScreenClosed(); 13665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 13765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochpublic Q_SLOTS: 13865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void enterFullScreen(QMediaPlayer*) = 0; 13965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch virtual void exitFullScreen() = 0; 14065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 14165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 14265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 1435af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkeclass QWebKitPlatformPlugin 1445af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke{ 1455af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkepublic: 146545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch virtual ~QWebKitPlatformPlugin() {} 1475af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 1485af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke enum Extension { 149545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch MultipleSelections, 150dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch Notifications, 15128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu Haptics, 15265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch TouchInteraction, 15365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch FullScreenVideoPlayer 1545af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke }; 1555af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 1565af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke virtual bool supportsExtension(Extension extension) const = 0; 157bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual QObject* createExtension(Extension extension) const = 0; 1585af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke}; 1595af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 160cad810f21b803229eb11403f9209855525a25d57Steve BlockQT_BEGIN_NAMESPACE 16165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben MurdochQ_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.7"); 162cad810f21b803229eb11403f9209855525a25d57Steve BlockQT_END_NAMESPACE 1635af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke 1645af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#endif // QWEBKITPLATFORMPLUGIN_H 165