3e67ce4ab74d8dba62fbc9eb2212b999e2e30912
[WebKit-https.git] / WebKit / gtk / WebView / webkitprivate.cpp
1 /*
2  * Copyright (C) 2007 Holger Hans Peter Freyther
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 #include "config.h"
21
22 #include "webkitprivate.h"
23 #include "ChromeClientGtk.h"
24 #include "DatabaseTracker.h"
25 #include "FrameLoader.h"
26 #include "FrameLoaderClientGtk.h"
27 #include "Logging.h"
28 #include "NotImplemented.h"
29 #include "Pasteboard.h"
30 #include "PasteboardHelperGtk.h"
31
32 using namespace WebCore;
33
34 namespace WebKit {
35 void apply(WebKitSettings*, WebCore::Settings*)
36 {
37     notImplemented();
38 }
39
40 WebKitSettings* create(WebCore::Settings*)
41 {
42     notImplemented();
43     return 0;
44 }
45
46 WebKitWebView* getViewFromFrame(WebKitWebFrame* frame)
47 {
48     return webkit_web_frame_get_web_view(frame);
49 }
50
51 WebCore::Frame* core(WebKitWebFrame* frame)
52 {
53     if (!frame)
54         return 0;
55
56     WebKitWebFramePrivate* frame_data = WEBKIT_WEB_FRAME_GET_PRIVATE(frame);
57     return frame_data ? frame_data->frame : 0;
58 }
59
60 WebKitWebFrame* kit(WebCore::Frame* coreFrame)
61 {
62     if (!coreFrame)
63         return 0;
64
65     ASSERT(coreFrame->loader());
66     WebKit::FrameLoaderClient* client = static_cast<WebKit::FrameLoaderClient*>(coreFrame->loader()->client());
67     return client ? client->webFrame() : 0;
68 }
69
70 WebCore::Page* core(WebKitWebView* webView)
71 {
72     if (!webView)
73         return 0;
74
75     WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(webView);
76     return webViewData ? webViewData->corePage : 0;
77 }
78
79 WebKitWebView* kit(WebCore::Page* corePage)
80 {
81     if (!corePage)
82         return 0;
83
84     ASSERT(corePage->chrome());
85     WebKit::ChromeClient* client = static_cast<WebKit::ChromeClient*>(corePage->chrome()->client());
86     return client ? client->webView() : 0;
87 }
88
89 }
90
91 void webkit_init()
92 {
93     static bool isInitialized = false;
94     if (isInitialized)
95         return;
96     isInitialized = true;
97
98     WebCore::initializeThreading();
99     WebCore::InitializeLoggingChannelsIfNecessary();
100
101 #if ENABLE(DATABASE)
102     // FIXME: It should be possible for client applications to override this default location
103     gchar* databaseDirectory = g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL);
104     WebCore::DatabaseTracker::tracker().setDatabasePath(databaseDirectory);
105     g_free(databaseDirectory);
106 #endif
107
108     Pasteboard::generalPasteboard()->setHelper(new WebKit::PasteboardHelperGtk());
109 }