aboutsummaryrefslogtreecommitdiffhomepage
path: root/uzbl.c
diff options
context:
space:
mode:
authorGravatar Robert Manea <gotmor@gmail.com>2009-05-24 11:42:56 +0200
committerGravatar Robert Manea <gotmor@gmail.com>2009-05-24 11:42:56 +0200
commite04be0ff37b5a7bf8d30564de19a7e28121ccf63 (patch)
treec52d90ffc78d3d8bd98f82b58532f772aeecb4a3 /uzbl.c
parente5a72625ccb8f3d99e27e52765e44b9bbe3e19b7 (diff)
added support for WebInspector
Diffstat (limited to 'uzbl.c')
-rw-r--r--uzbl.c100
1 files changed, 100 insertions, 0 deletions
diff --git a/uzbl.c b/uzbl.c
index a32ba83..f77c847 100644
--- a/uzbl.c
+++ b/uzbl.c
@@ -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) {