[Qt][WK2] Move non-api classes to WebKit namespace at WebKit2/UiProcess/qt
[WebKit-https.git] / Source / WebKit2 / UIProcess / qt / QtWebPageUIClient.h
1 /*
2  * Copyright (C) 2011 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 program 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 program; 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 QtWebPageUIClient_h
22 #define QtWebPageUIClient_h
23
24 #include <QtCore/QString>
25 #include <QtCore/QUrl>
26 #include <WKFrame.h>
27 #include <WKGeolocationPermissionRequest.h>
28 #include <WKPage.h>
29 #include <WKSecurityOrigin.h>
30
31 class QQuickWebView;
32 class QWebPermissionRequest;
33
34 namespace WebKit {
35
36 class QtWebPageUIClient {
37 public:
38     enum FileChooserType {
39         SingleFileSelection,
40         MultipleFilesSelection
41     };
42
43     QtWebPageUIClient(WKPageRef, QQuickWebView*);
44
45 private:
46     quint64 exceededDatabaseQuota(const QString& databaseName, const QString& displayName, WKSecurityOriginRef, quint64 currentQuota, quint64 currentOriginUsage, quint64 currentDatabaseUsage, quint64 expectedUsage);
47     void runJavaScriptAlert(const QString& message);
48     bool runJavaScriptConfirm(const QString& message);
49     QString runJavaScriptPrompt(const QString& message, const QString& defaultValue, bool& ok);
50     void runOpenPanel(WKOpenPanelResultListenerRef, const QStringList& selectedFileNames, FileChooserType);
51     void mouseDidMoveOverElement(const QUrl& linkURL, const QString& linkTitle);
52     void permissionRequest(QWebPermissionRequest*);
53
54     // WKPageUIClient callbacks.
55     static void runJavaScriptAlert(WKPageRef, WKStringRef alertText, WKFrameRef, const void* clientInfo);
56     static bool runJavaScriptConfirm(WKPageRef, WKStringRef message, WKFrameRef, const void* clientInfo);
57     static WKStringRef runJavaScriptPrompt(WKPageRef, WKStringRef message, WKStringRef defaultValue, WKFrameRef, const void* clientInfo);
58     static void runOpenPanel(WKPageRef, WKFrameRef, WKOpenPanelParametersRef, WKOpenPanelResultListenerRef, const void* clientInfo);
59     static void mouseDidMoveOverElement(WKPageRef, WKHitTestResultRef, WKEventModifiers, WKTypeRef userData, const void* clientInfo);
60     static unsigned long long exceededDatabaseQuota(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKStringRef databaseName, WKStringRef displayName, unsigned long long currentQuota, unsigned long long currentOriginUsage, unsigned long long currentDatabaseUsage, unsigned long long expectedUsage, const void *clientInfo);
61     static void policyForGeolocationPermissionRequest(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKGeolocationPermissionRequestRef, const void*);
62
63     QQuickWebView* m_webView;
64     QUrl m_lastHoveredURL;
65     QString m_lastHoveredTitle;
66 };
67
68 } // namespace WebKit
69
70 #endif // QtWebPageUIClient_h