2008-01-31 Alp Toker <alp@atoker.com>
[WebKit-https.git] / WebKit / gtk / webkit / webkitprivate.h
1 /*
2  * Copyright (C) 2007 Holger Hans Peter Freyther
3  * Copyrifht (C) 2008 Jan Michael C. Alonzo
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public License
16  * along with this library; see the file COPYING.LIB.  If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  */
20
21 #ifndef WEBKIT_PRIVATE_H
22 #define WEBKIT_PRIVATE_H
23
24 /*
25  * Internal class. This class knows the shared secret of WebKitWebFrame,
26  * WebKitNetworkRequest and WebKitWebView.
27  * They are using WebCore which musn't be exposed to the outer world.
28  */
29
30 #include <webkit/webkitdefines.h>
31 #include <webkit/webkitwebview.h>
32 #include <webkit/webkitwebframe.h>
33 #include <webkit/webkitwebsettings.h>
34 #include <webkit/webkitnetworkrequest.h>
35 #include <webkit/webkitwebbackforwardlist.h>
36
37 #include "BackForwardList.h"
38 #include "HistoryItem.h"
39 #include "Settings.h"
40 #include "Page.h"
41 #include "Frame.h"
42 #include "FrameLoaderClient.h"
43
44 #include <glib.h>
45
46 namespace WebKit {
47     WebKitWebView* getViewFromFrame(WebKitWebFrame*);
48
49     WebCore::Frame* core(WebKitWebFrame*);
50     WebKitWebFrame* kit(WebCore::Frame*);
51
52     WebCore::Page* core(WebKitWebView*);
53     WebKitWebView* kit(WebCore::Page*);
54
55     WebCore::HistoryItem* core(WebKitWebHistoryItem*);
56     WebKitWebHistoryItem* kit(WebCore::HistoryItem*);
57
58     WebCore::BackForwardList* core(WebKitWebBackForwardList*);
59 }
60
61 extern "C" {
62     void webkit_init();
63
64 #define WEBKIT_PARAM_READABLE ((GParamFlags)(G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB))
65 #define WEBKIT_PARAM_READWRITE ((GParamFlags)(G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB))
66
67     #define WEBKIT_WEB_VIEW_GET_PRIVATE(obj)    (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_VIEW, WebKitWebViewPrivate))
68     typedef struct _WebKitWebViewPrivate WebKitWebViewPrivate;
69     struct _WebKitWebViewPrivate {
70         WebCore::Page* corePage;
71         WebKitWebSettings* webSettings;
72
73         WebKitWebFrame* mainFrame;
74         WebCore::String applicationNameForUserAgent;
75         WebCore::String* userAgent;
76
77         WebKitWebBackForwardList* backForwardList;
78         
79         gint lastPopupXPosition;
80         gint lastPopupYPosition;
81
82         HashSet<GtkWidget*> children;
83         bool editable;
84         GtkIMContext* imContext;
85
86         GtkTargetList* copy_target_list;
87         GtkTargetList* paste_target_list;
88     };
89
90     #define WEBKIT_WEB_FRAME_GET_PRIVATE(obj)    (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_FRAME, WebKitWebFramePrivate))
91     typedef struct _WebKitWebFramePrivate WebKitWebFramePrivate;
92     struct _WebKitWebFramePrivate {
93         WebCore::Frame* frame;
94         WebCore::FrameLoaderClient* client;
95         WebKitWebView* webView;
96
97         gchar* name;
98         gchar* title;
99         gchar* uri;
100     };
101
102     #define WEBKIT_NETWORK_REQUEST_GET_PRIVATE(obj)    (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_NETWORK_REQUEST, WebKitNetworkRequestPrivate))
103     typedef struct _WebKitNetworkRequestPrivate WebKitNetworkRequestPrivate;
104     struct _WebKitNetworkRequestPrivate {
105         gchar* uri;
106     };
107
108     /* WebKitWebFrame private function */
109     WebKitWebFrame* webkit_web_frame_init_with_web_view(WebKitWebView*, WebCore::HTMLFrameOwnerElement*);
110
111     /* WebKitWebHistoryItem private function */
112     WebKitWebHistoryItem* webkit_web_history_item_new_with_core_item(WebCore::HistoryItem*);
113     
114
115     // TODO: Move these to webkitwebframe.h once these functions are fully
116     // implemented and their API has been discussed.
117
118     WEBKIT_API GSList*
119     webkit_web_frame_get_children (WebKitWebFrame* frame);
120
121     WEBKIT_API gchar*
122     webkit_web_frame_get_inner_text (WebKitWebFrame* frame);
123
124     WEBKIT_API void
125     webkit_web_frame_print (WebKitWebFrame* frame);
126
127     WEBKIT_API gchar*
128     webkit_web_view_get_selected_text (WebKitWebView* web_view);
129 }
130
131 #endif