diff options
author | Robert Manea <gotmor@gmail.com> | 2009-05-24 11:42:56 +0200 |
---|---|---|
committer | Robert Manea <gotmor@gmail.com> | 2009-05-24 11:42:56 +0200 |
commit | e04be0ff37b5a7bf8d30564de19a7e28121ccf63 (patch) | |
tree | c52d90ffc78d3d8bd98f82b58532f772aeecb4a3 /uzbl.c | |
parent | e5a72625ccb8f3d99e27e52765e44b9bbe3e19b7 (diff) |
added support for WebInspector
Diffstat (limited to 'uzbl.c')
-rw-r--r-- | uzbl.c | 100 |
1 files changed, 100 insertions, 0 deletions
@@ -2004,6 +2004,103 @@ save_cookies (SoupMessage *msg, gpointer user_data){ g_slist_free(ck); } +/* --- WEBINSPECTOR --- */ +static void +hide_window_cb(GtkWidget *widget, gpointer data) { + (void) data; + + gtk_widget_hide(widget); +} + +static WebKitWebView* +create_inspector_cb (WebKitWebInspector* web_inspector, WebKitWebView* page, gpointer data){ + (void) data; + (void) page; + (void) web_inspector; + GtkWidget* scrolled_window; + GtkWidget* new_web_view; + GUI *g = &uzbl.gui; + + g->inspector_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + g_signal_connect(G_OBJECT(g->inspector_window), "delete-event", + G_CALLBACK(hide_window_cb), NULL); + + gtk_window_set_title(GTK_WINDOW(g->inspector_window), "Uzbl WebInspector"); + gtk_window_set_default_size(GTK_WINDOW(g->inspector_window), 400, 300); + gtk_widget_show(g->inspector_window); + + scrolled_window = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_container_add(GTK_CONTAINER(g->inspector_window), scrolled_window); + gtk_widget_show(scrolled_window); + + new_web_view = webkit_web_view_new(); + gtk_container_add(GTK_CONTAINER(scrolled_window), new_web_view); + + return WEBKIT_WEB_VIEW(new_web_view); +} + +static gboolean +inspector_show_window_cb (WebKitWebInspector* inspector){ + (void) inspector; + gtk_widget_show(uzbl.gui.inspector_window); + return TRUE; +} + +/* TODO: Add variables and code to make use of these functions */ +static gboolean +inspector_close_window_cb (WebKitWebInspector* inspector){ + (void) inspector; + return TRUE; +} + +static gboolean +inspector_attach_window_cb (WebKitWebInspector* inspector){ + (void) inspector; + return FALSE; +} + +static gboolean +inspector_dettach_window_cb (WebKitWebInspector* inspector){ + (void) inspector; + return FALSE; +} + +static gboolean +inspector_uri_changed_cb (WebKitWebInspector* inspector){ + (void) inspector; + return FALSE; +} + +static gboolean +inspector_inspector_destroyed_cb (WebKitWebInspector* inspector){ + (void) inspector; + return FALSE; +} + +static void +set_up_inspector() { + GUI *g = &uzbl.gui; + WebKitWebSettings *settings = webkit_web_settings_new(); + g_object_set(G_OBJECT(settings), "enable-developer-extras", TRUE, NULL); + webkit_web_view_set_settings(WEBKIT_WEB_VIEW(uzbl.gui.web_view), settings); + + + uzbl.gui.inspector = webkit_web_view_get_inspector(uzbl.gui.web_view); + g_signal_connect (G_OBJECT (g->inspector), "inspect-web-view", G_CALLBACK (create_inspector_cb), NULL); + g_signal_connect (G_OBJECT (g->inspector), "show-window", G_CALLBACK (inspector_show_window_cb), NULL); + g_signal_connect (G_OBJECT (g->inspector), "close-window", G_CALLBACK (inspector_close_window_cb), NULL); + g_signal_connect (G_OBJECT (g->inspector), "attach-window", G_CALLBACK (inspector_attach_window_cb), NULL); + g_signal_connect (G_OBJECT (g->inspector), "dettach-window", G_CALLBACK (inspector_dettach_window_cb), NULL); + g_signal_connect (G_OBJECT (g->inspector), "destroy", G_CALLBACK (inspector_inspector_destroyed_cb), NULL); + + g_signal_connect (G_OBJECT (g->inspector), "notify::inspected-uri", G_CALLBACK (inspector_uri_changed_cb), NULL); +} + + + +/** -- MAIN -- **/ int main (int argc, char* argv[]) { gtk_init (&argc, &argv); @@ -2078,6 +2175,9 @@ main (int argc, char* argv[]) { else update_title(); + /* WebInspector */ + set_up_inspector(); + create_stdin(); if(uzbl.state.uri) { |