2 * Copyright (C) 2007 Holger Hans Peter Freyther
3 * Copyright (C) 2007, 2008 Alp Toker <alp@atoker.com>
4 * Copyright (C) 2008 Collabora Ltd.
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
16 * You should have received a copy of the GNU Library General Public License
17 * along with this library; see the file COPYING.LIB. If not, write to
18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
22 #ifndef webkitwebview_h
23 #define webkitwebview_h
26 #include <libsoup/soup.h>
27 #include <JavaScriptCore/JSBase.h>
29 #include <webkit/webkitdefines.h>
30 #include <webkit/webkitdom.h>
31 #include <webkit/webkitwebbackforwardlist.h>
32 #include <webkit/webkitwebframe.h>
33 #include <webkit/webkitwebhistoryitem.h>
34 #include <webkit/webkitwebsettings.h>
38 #define WEBKIT_TYPE_WEB_VIEW (webkit_web_view_get_type())
39 #define WEBKIT_WEB_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_VIEW, WebKitWebView))
40 #define WEBKIT_WEB_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_VIEW, WebKitWebViewClass))
41 #define WEBKIT_IS_WEB_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_VIEW))
42 #define WEBKIT_IS_WEB_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_VIEW))
43 #define WEBKIT_WEB_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_VIEW, WebKitWebViewClass))
45 typedef struct _WebKitWebViewPrivate WebKitWebViewPrivate;
48 WEBKIT_NAVIGATION_RESPONSE_ACCEPT,
49 WEBKIT_NAVIGATION_RESPONSE_IGNORE,
50 WEBKIT_NAVIGATION_RESPONSE_DOWNLOAD
51 } WebKitNavigationResponse;
54 WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER = 1,
55 WEBKIT_CACHE_MODEL_WEB_BROWSER
60 WEBKIT_WEB_VIEW_TARGET_INFO_HTML,
61 WEBKIT_WEB_VIEW_TARGET_INFO_TEXT,
62 WEBKIT_WEB_VIEW_TARGET_INFO_IMAGE,
63 WEBKIT_WEB_VIEW_TARGET_INFO_URI_LIST,
64 WEBKIT_WEB_VIEW_TARGET_INFO_NETSCAPE_URL
65 } WebKitWebViewTargetInfo;
69 WEBKIT_WEB_VIEW_VIEW_MODE_WINDOWED,
70 WEBKIT_WEB_VIEW_VIEW_MODE_FLOATING,
71 WEBKIT_WEB_VIEW_VIEW_MODE_FULLSCREEN,
72 WEBKIT_WEB_VIEW_VIEW_MODE_MAXIMIZED,
73 WEBKIT_WEB_VIEW_VIEW_MODE_MINIMIZED
74 } WebKitWebViewViewMode;
78 WEBKIT_SELECTION_AFFINITY_UPSTREAM,
79 WEBKIT_SELECTION_AFFINITY_DOWNSTREAM,
80 } WebKitSelectionAffinity;
84 WEBKIT_INSERT_ACTION_TYPED,
85 WEBKIT_INSERT_ACTION_PASTED,
86 WEBKIT_INSERT_ACTION_DROPPED,
89 struct _WebKitWebView {
90 GtkContainer parent_instance;
93 WebKitWebViewPrivate *priv;
96 struct _WebKitWebViewClass {
97 GtkContainerClass parent_class;
101 * default handler/virtual methods
103 WebKitWebView * (* create_web_view) (WebKitWebView *web_view,
104 WebKitWebFrame *web_frame);
106 gboolean (* web_view_ready) (WebKitWebView* web_view);
108 gboolean (* close_web_view) (WebKitWebView* web_view);
110 WebKitNavigationResponse (* navigation_requested) (WebKitWebView *web_view,
111 WebKitWebFrame *frame,
112 WebKitNetworkRequest *request);
113 void (* window_object_cleared) (WebKitWebView *web_view,
114 WebKitWebFrame *frame,
115 JSGlobalContextRef context,
116 JSObjectRef window_object);
117 gchar * (* choose_file) (WebKitWebView *web_view,
118 WebKitWebFrame *frame,
119 const gchar *old_file);
120 gboolean (* script_alert) (WebKitWebView *web_view,
121 WebKitWebFrame *frame,
122 const gchar *alert_message);
123 gboolean (* script_confirm) (WebKitWebView *web_view,
124 WebKitWebFrame *frame,
125 const gchar *confirm_message,
126 gboolean *did_confirm);
127 gboolean (* script_prompt) (WebKitWebView *web_view,
128 WebKitWebFrame *frame,
129 const gchar *message,
130 const gchar *default_value,
132 gboolean (* console_message) (WebKitWebView *web_view,
133 const gchar *message,
135 const gchar* source_id);
136 void (* select_all) (WebKitWebView *web_view);
137 void (* cut_clipboard) (WebKitWebView *web_view);
138 void (* copy_clipboard) (WebKitWebView *web_view);
139 void (* paste_clipboard) (WebKitWebView *web_view);
140 gboolean (* move_cursor) (WebKitWebView *web_view,
141 GtkMovementStep step,
147 void (* set_scroll_adjustments) (WebKitWebView *web_view,
148 GtkAdjustment *hadjustment,
149 GtkAdjustment *vadjustment);
151 void (* undo) (WebKitWebView *web_view);
152 void (* redo) (WebKitWebView *web_view);
153 gboolean (* should_allow_editing_action) (WebKitWebView *web_view);
155 /* Padding for future expansion */
156 void (*_webkit_reserved0) (void);
157 void (*_webkit_reserved1) (void);
158 void (*_webkit_reserved2) (void);
162 webkit_web_view_get_type (void);
164 WEBKIT_API GtkWidget *
165 webkit_web_view_new (void);
167 WEBKIT_API G_CONST_RETURN gchar *
168 webkit_web_view_get_title (WebKitWebView *webView);
170 WEBKIT_API G_CONST_RETURN gchar *
171 webkit_web_view_get_uri (WebKitWebView *webView);
174 webkit_web_view_set_maintains_back_forward_list (WebKitWebView *webView,
177 WEBKIT_API WebKitWebBackForwardList *
178 webkit_web_view_get_back_forward_list (WebKitWebView *webView);
181 webkit_web_view_go_to_back_forward_item (WebKitWebView *webView,
182 WebKitWebHistoryItem *item);
185 webkit_web_view_can_go_back (WebKitWebView *webView);
188 webkit_web_view_can_go_back_or_forward (WebKitWebView *webView,
192 webkit_web_view_can_go_forward (WebKitWebView *webView);
195 webkit_web_view_go_back (WebKitWebView *webView);
198 webkit_web_view_go_back_or_forward (WebKitWebView *webView,
202 webkit_web_view_go_forward (WebKitWebView *webView);
205 webkit_web_view_stop_loading (WebKitWebView *webView);
208 webkit_web_view_open (WebKitWebView *webView,
212 webkit_web_view_reload (WebKitWebView *webView);
215 webkit_web_view_reload_bypass_cache (WebKitWebView *webView);
218 webkit_web_view_load_uri (WebKitWebView *webView,
222 webkit_web_view_load_string (WebKitWebView *webView,
223 const gchar *content,
224 const gchar *mime_type,
225 const gchar *encoding,
226 const gchar *base_uri);
229 webkit_web_view_load_html_string (WebKitWebView *webView,
230 const gchar *content,
231 const gchar *base_uri);
234 webkit_web_view_load_request (WebKitWebView *webView,
235 WebKitNetworkRequest *request);
238 webkit_web_view_search_text (WebKitWebView *webView,
240 gboolean case_sensitive,
245 webkit_web_view_mark_text_matches (WebKitWebView *webView,
247 gboolean case_sensitive,
251 webkit_web_view_set_highlight_text_matches (WebKitWebView *webView,
255 webkit_web_view_unmark_text_matches (WebKitWebView *webView);
257 WEBKIT_API WebKitWebFrame *
258 webkit_web_view_get_main_frame (WebKitWebView *webView);
260 WEBKIT_API WebKitWebFrame *
261 webkit_web_view_get_focused_frame (WebKitWebView *webView);
264 webkit_web_view_execute_script (WebKitWebView *webView,
265 const gchar *script);
268 webkit_web_view_can_cut_clipboard (WebKitWebView *webView);
271 webkit_web_view_can_copy_clipboard (WebKitWebView *webView);
274 webkit_web_view_can_paste_clipboard (WebKitWebView *webView);
277 webkit_web_view_cut_clipboard (WebKitWebView *webView);
280 webkit_web_view_copy_clipboard (WebKitWebView *webView);
283 webkit_web_view_paste_clipboard (WebKitWebView *webView);
286 webkit_web_view_delete_selection (WebKitWebView *webView);
289 webkit_web_view_has_selection (WebKitWebView *webView);
292 webkit_web_view_select_all (WebKitWebView *webView);
295 webkit_web_view_get_editable (WebKitWebView *webView);
298 webkit_web_view_set_editable (WebKitWebView *webView,
301 WEBKIT_API GtkTargetList *
302 webkit_web_view_get_copy_target_list (WebKitWebView *webView);
304 WEBKIT_API GtkTargetList *
305 webkit_web_view_get_paste_target_list (WebKitWebView *webView);
308 webkit_web_view_set_settings (WebKitWebView *webView,
309 WebKitWebSettings *settings);
311 WEBKIT_API WebKitWebSettings *
312 webkit_web_view_get_settings (WebKitWebView *webView);
314 WEBKIT_API WebKitWebInspector *
315 webkit_web_view_get_inspector (WebKitWebView *webView);
317 WEBKIT_API WebKitWebWindowFeatures*
318 webkit_web_view_get_window_features (WebKitWebView *webView);
321 webkit_web_view_can_show_mime_type (WebKitWebView *webView,
322 const gchar *mime_type);
325 webkit_web_view_get_transparent (WebKitWebView *webView);
328 webkit_web_view_set_transparent (WebKitWebView *webView,
332 webkit_web_view_get_zoom_level (WebKitWebView *webView);
335 webkit_web_view_set_zoom_level (WebKitWebView *webView,
339 webkit_web_view_zoom_in (WebKitWebView *webView);
342 webkit_web_view_zoom_out (WebKitWebView *webView);
345 webkit_web_view_get_full_content_zoom (WebKitWebView *webView);
348 webkit_web_view_set_full_content_zoom (WebKitWebView *webView,
349 gboolean full_content_zoom);
351 WEBKIT_API SoupSession*
352 webkit_get_default_session (void);
354 WEBKIT_API const gchar*
355 webkit_web_view_get_encoding (WebKitWebView * webView);
358 webkit_web_view_set_custom_encoding (WebKitWebView * webView,
359 const gchar * encoding);
361 WEBKIT_API const char*
362 webkit_web_view_get_custom_encoding (WebKitWebView * webView);
365 webkit_web_view_set_view_mode (WebKitWebView *webView,
366 WebKitWebViewViewMode mode);
368 WEBKIT_API WebKitWebViewViewMode
369 webkit_web_view_get_view_mode (WebKitWebView *webView);
372 webkit_web_view_move_cursor (WebKitWebView * webView,
373 GtkMovementStep step,
376 WEBKIT_API WebKitLoadStatus
377 webkit_web_view_get_load_status (WebKitWebView *webView);
380 webkit_web_view_get_progress (WebKitWebView *webView);
383 webkit_web_view_undo (WebKitWebView *webView);
386 webkit_web_view_can_undo (WebKitWebView *webView);
389 webkit_web_view_redo (WebKitWebView *webView);
392 webkit_web_view_can_redo (WebKitWebView *webView);
395 webkit_web_view_set_view_source_mode (WebKitWebView *webView,
396 gboolean view_source_mode);
399 webkit_web_view_get_view_source_mode (WebKitWebView *webView);
401 WEBKIT_API WebKitHitTestResult*
402 webkit_web_view_get_hit_test_result (WebKitWebView *webView,
403 GdkEventButton *event);
405 WEBKIT_API G_CONST_RETURN gchar *
406 webkit_web_view_get_icon_uri (WebKitWebView *webView);
409 webkit_set_cache_model (WebKitCacheModel cache_model);
411 WEBKIT_API WebKitCacheModel
412 webkit_get_cache_model (void);
414 WEBKIT_API WebKitDOMDocument *
415 webkit_web_view_get_dom_document (WebKitWebView *webView);