2007-12-14 Juan A. Suarez Romero <jasuarez@igalia.com>
[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
30 using namespace WebCore;
31
32 namespace WebKit {
33 void apply(WebKitSettings*, WebCore::Settings*)
34 {
35     notImplemented();
36 }
37
38 WebKitSettings* create(WebCore::Settings*)
39 {
40     notImplemented();
41     return 0;
42 }
43
44 WebKitWebView* getViewFromFrame(WebKitWebFrame* frame)
45 {
46     return webkit_web_frame_get_web_view(frame);
47 }
48
49 WebCore::Frame* core(WebKitWebFrame* frame)
50 {
51     if (!frame)
52         return 0;
53
54     WebKitWebFramePrivate* frame_data = WEBKIT_WEB_FRAME_GET_PRIVATE(frame);
55     return frame_data ? frame_data->frame : 0;
56 }
57
58 WebKitWebFrame* kit(WebCore::Frame* coreFrame)
59 {
60     if (!coreFrame)
61         return 0;
62
63     ASSERT(coreFrame->loader());
64     WebKit::FrameLoaderClient* client = static_cast<WebKit::FrameLoaderClient*>(coreFrame->loader()->client());
65     return client ? client->webFrame() : 0;
66 }
67
68 WebCore::Page* core(WebKitWebView* webView)
69 {
70     if (!webView)
71         return 0;
72
73     WebKitWebViewPrivate* webViewData = WEBKIT_WEB_VIEW_GET_PRIVATE(webView);
74     return webViewData ? webViewData->corePage : 0;
75 }
76
77 WebKitWebView* kit(WebCore::Page* corePage)
78 {
79     if (!corePage)
80         return 0;
81
82     ASSERT(corePage->chrome());
83     WebKit::ChromeClient* client = static_cast<WebKit::ChromeClient*>(corePage->chrome()->client());
84     return client ? client->webView() : 0;
85 }
86
87 }
88
89 void webkit_init()
90 {
91     static bool isInitialized = false;
92     if (isInitialized)
93         return;
94     isInitialized = true;
95
96     WebCore::initializeThreading();
97     WebCore::InitializeLoggingChannelsIfNecessary();
98
99 #if ENABLE(DATABASE)
100     // FIXME: It should be possible for client applications to override this default location
101     gchar* databaseDirectory = g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL);
102     WebCore::DatabaseTracker::tracker().setDatabasePath(databaseDirectory);
103     g_free(databaseDirectory);
104 #endif
105 }