Merge branch 'experimental' of git://github.com/Dieterbe/uzbl into experimental
[uzbl-mobile] / uzbl.h
diff --git a/uzbl.h b/uzbl.h
index 865b87e..d67a84e 100644 (file)
--- a/uzbl.h
+++ b/uzbl.h
@@ -1,4 +1,4 @@
-/* -*- c-basic-offset: 4; -*- 
+/* -*- c-basic-offset: 4; -*-
 
  * See LICENSE for license details
  *
@@ -137,12 +137,12 @@ typedef struct {
     gchar*   socket_dir;
     gchar*   download_handler;
     gchar*   cookie_handler;
+    gchar*   new_window;
     gboolean always_insert_mode;
     gboolean show_status;
     gboolean insert_mode;
     gboolean status_top;
     gboolean reset_command_mode;
-    gboolean disable_stdin;
     gchar*   modkey;
     guint    modmask;
     guint    http_debug;
@@ -154,29 +154,36 @@ typedef struct {
     gfloat   zoom_level;
     guint    disable_plugins;
     guint    disable_scripts;
-    guint    autoload_img;    
-    guint    autoshrink_img;  
+    guint    autoload_img;
+    guint    autoshrink_img;
     guint    enable_spellcheck;
-    guint    enable_private;  
-    guint    print_bg;        
-    gchar*   style_uri;       
-    guint    resizable_txt;  
-    gchar*   default_encoding;       
-    guint    enforce_96dpi;  
+    guint    enable_private;
+    guint    print_bg;
+    gchar*   style_uri;
+    guint    resizable_txt;
+    gchar*   default_encoding;
+    guint    enforce_96dpi;
     gchar    *inject_html;
-    guint    caret_browsing;  
-    guint    mode;  
+    guint    caret_browsing;
+    guint    mode;
     gchar*   base_url;
     gchar*   html_endmarker;
     gchar*   insert_indicator;
     gchar*   cmd_indicator;
     GString* html_buffer;
-    guint    html_timeout;  
+    guint    html_timeout;
+    gboolean print_version;
 
     /* command list: name -> Command  */
     GHashTable* commands;
 } Behaviour;
 
+/* javascript */
+typedef struct {
+    gboolean            initialized;
+    JSClassDefinition   classdef;
+    JSClassRef          classref;
+} Javascript;
 
 /* main uzbl data structure */
 typedef struct {
@@ -185,6 +192,7 @@ typedef struct {
     Network       net;
     Behaviour     behave;
     Communication comm;
+    Javascript    js;
 
     Window        xwin;
     GScanner      *scan;
@@ -208,7 +216,7 @@ typedef struct {
     gchar* default_value;
 } XDG_Var;
 
-XDG_Var XDG[] = 
+XDG_Var XDG[] =
 {
     { "XDG_CONFIG_HOME", "~/.config" },
     { "XDG_DATA_HOME",   "~/.local/share" },
@@ -217,7 +225,6 @@ XDG_Var XDG[] =
     { "XDG_DATA_DIRS",   "/usr/local/share/:/usr/share/" },
 };
 
-
 /* Functions */
 static void
 setup_scanner();
@@ -246,6 +253,9 @@ setup_signal(int signe, sigfunc *shandler);
 static gboolean
 set_var_value(gchar *name, gchar *val);
 
+static void
+print(WebKitWebView *page, GArray *argv, GString *result);
+
 static gboolean
 new_window_cb (WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, WebKitWebNavigationAction *navigation_action, WebKitWebPolicyDecision *policy_decision, gpointer user_data);
 
@@ -259,10 +269,16 @@ static gboolean
 download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data);
 
 static void
+toggle_zoom_type (WebKitWebView* page, GArray *argv, GString *result);
+
+static void
+toggle_status_cb (WebKitWebView* page, GArray *argv, GString *result);
+
+static void
 link_hover_cb (WebKitWebView* page, const gchar* title, const gchar* link, gpointer data);
 
 static void
-title_change_cb (WebKitWebView* web_view, WebKitWebFrame* web_frame, const gchar* title, gpointer data);
+title_change_cb (WebKitWebView* web_view, GParamSpec param_spec);
 
 static void
 progress_change_cb (WebKitWebView* page, gint progress, gpointer data);
@@ -295,13 +311,46 @@ static bool
 file_exists (const char * filename);
 
 static void
+toggle_insert_mode(WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+load_uri (WebKitWebView * web_view, GArray *argv, GString *result);
+
+static void
 new_window_load_uri (const gchar * uri);
 
+static void
+chain (WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+keycmd (WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+keycmd_nl (WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+keycmd_bs (WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+close_uzbl (WebKitWebView *page, GArray *argv, GString *result);
+
 static gboolean
 run_command(const gchar *command, const guint npre,
             const gchar **args, const gboolean sync, char **output_stdout);
 
 static void
+spawn(WebKitWebView *web_view, GArray *argv, GString *result);
+
+static void
+spawn_sh(WebKitWebView *web_view, GArray *argv, GString *result);
+
+static void
+spawn_sync(WebKitWebView *web_view, GArray *argv, GString *result);
+
+static void
+spawn_sh_sync(WebKitWebView *web_view, GArray *argv, GString *result);
+
+static void
 parse_command(const char *cmd, const char *param, GString *result);
 
 static void
@@ -328,6 +377,9 @@ init_socket(gchar *dir);
 static gboolean
 control_socket(GIOChannel *chan);
 
+static gboolean
+control_client_socket(GIOChannel *chan);
+
 static void
 update_title (void);
 
@@ -370,103 +422,61 @@ settings_init ();
 static void
 search_text (WebKitWebView *page, GArray *argv, const gboolean forward);
 
-static void handle_cookies (SoupSession *session,
-                            SoupMessage *msg,
-                            gpointer     user_data);
 static void
-save_cookies (SoupMessage *msg,
-                gpointer     user_data);
-
-static void
-act_dump_config();
-
-static void
-render_html();
-
-static void
-set_timeout(int seconds);
-
-static void
-dump_var_hash(gpointer k, gpointer v, gpointer ud);
-
-static void
-dump_key_hash(gpointer k, gpointer v, gpointer ud);
-
-static void
-dump_config();
-
-
-/* Commands */
-
-typedef void (*Command)(WebKitWebView*, GArray *argv, GString *result);
-typedef struct {
-    Command function;
-    gboolean no_split;
-} CommandInfo;
-
-static void
-print(WebKitWebView *page, GArray *argv, GString *result);
-
-static void
-toggle_zoom_type (WebKitWebView* page, GArray *argv, GString *result);
-
-static void
-toggle_status_cb (WebKitWebView* page, GArray *argv, GString *result);
-
-static void
-toggle_insert_mode(WebKitWebView *page, GArray *argv, GString *result);
-
-static void
-load_uri (WebKitWebView * web_view, GArray *argv, GString *result);
-
-static void
-chain (WebKitWebView *page, GArray *argv, GString *result);
+search_forward_text (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-keycmd (WebKitWebView *page, GArray *argv, GString *result);
+search_reverse_text (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-keycmd_nl (WebKitWebView *page, GArray *argv, GString *result);
+dehilight (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-keycmd_bs (WebKitWebView *page, GArray *argv, GString *result);
+run_js (WebKitWebView * web_view, GArray *argv, GString *result);
 
 static void
-close_uzbl (WebKitWebView *page, GArray *argv, GString *result);
+run_external_js (WebKitWebView * web_view, GArray *argv, GString *result);
 
 static void
-spawn(WebKitWebView *web_view, GArray *argv, GString *result);
+eval_js(WebKitWebView * web_view, gchar *script, GString *result);
 
+static void handle_cookies (SoupSession *session,
+                            SoupMessage *msg,
+                            gpointer     user_data);
 static void
-spawn_sh(WebKitWebView *web_view, GArray *argv, GString *result);
+save_cookies (SoupMessage *msg,
+                gpointer     user_data);
 
 static void
-spawn_sync(WebKitWebView *web_view, GArray *argv, GString *result);
+set_var(WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-spawn_sh_sync(WebKitWebView *web_view, GArray *argv, GString *result);
+act_bind(WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-search_forward_text (WebKitWebView *page, GArray *argv, GString *result);
+act_dump_config();
 
 static void
-search_reverse_text (WebKitWebView *page, GArray *argv, GString *result);
+render_html();
 
 static void
-dehilight (WebKitWebView *page, GArray *argv, GString *result);
+set_timeout(int seconds);
 
 static void
-run_js (WebKitWebView * web_view, GArray *argv, GString *result);
+dump_var_hash(gpointer k, gpointer v, gpointer ud);
 
 static void
-run_external_js (WebKitWebView * web_view, GArray *argv, GString *result);
+dump_key_hash(gpointer k, gpointer v, gpointer ud);
 
 static void
-set_var(WebKitWebView *page, GArray *argv, GString *result);
+dump_config();
 
-static void
-act_bind(WebKitWebView *page, GArray *argv, GString *result);
 
+typedef void (*Command)(WebKitWebView*, GArray *argv, GString *result);
+typedef struct {
+    Command function;
+    gboolean no_split;
+} CommandInfo;
 
 /* Command callbacks */
 static void
@@ -485,6 +495,9 @@ static void
 cmd_cookie_handler();
 
 static void
+cmd_new_window();
+
+static void
 move_statusbar();
 
 static void
@@ -543,22 +556,22 @@ cmd_enable_private();
 static void
 cmd_print_bg();
 
-static void 
+static void
 cmd_style_uri();
 
-static void 
+static void
 cmd_resizable_txt();
 
-static void 
+static void
 cmd_default_encoding();
 
-static void 
+static void
 cmd_enforce_96dpi();
 
 static void
 cmd_inject_html();
 
-static void 
+static void
 cmd_caret_browsing();
 
 /* vi: set et ts=4: */