Merge commit 'Dieterbe/experimental' into new_experimental
[uzbl-mobile] / uzbl.h
diff --git a/uzbl.h b/uzbl.h
index 27293f9..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
  *
@@ -11,8 +11,6 @@
  *
  */
 
-#define NOSPLIT ((void*)1)
-
 enum {
   /* statusbar symbols */
   SYM_TITLE, SYM_URI, SYM_NAME,
@@ -139,6 +137,7 @@ typedef struct {
     gchar*   socket_dir;
     gchar*   download_handler;
     gchar*   cookie_handler;
+    gchar*   new_window;
     gboolean always_insert_mode;
     gboolean show_status;
     gboolean insert_mode;
@@ -155,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 {
@@ -186,6 +192,7 @@ typedef struct {
     Network       net;
     Behaviour     behave;
     Communication comm;
+    Javascript    js;
 
     Window        xwin;
     GScanner      *scan;
@@ -209,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" },
@@ -247,7 +254,7 @@ static gboolean
 set_var_value(gchar *name, gchar *val);
 
 static void
-print(WebKitWebView *page, GArray *argv);
+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);
@@ -262,13 +269,16 @@ static gboolean
 download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data);
 
 static void
-toggle_status_cb (WebKitWebView* page, GArray *argv);
+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);
@@ -301,50 +311,50 @@ static bool
 file_exists (const char * filename);
 
 static void
-toggle_insert_mode(WebKitWebView *page, GArray *argv);
+toggle_insert_mode(WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-load_uri (WebKitWebView * web_view, GArray *argv);
+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);
+chain (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-keycmd (WebKitWebView *page, GArray *argv);
+keycmd (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-keycmd_nl (WebKitWebView *page, GArray *argv);
+keycmd_nl (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-keycmd_bs (WebKitWebView *page, GArray *argv);
+keycmd_bs (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-close_uzbl (WebKitWebView *page, GArray *argv);
+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);
+spawn(WebKitWebView *web_view, GArray *argv, GString *result);
 
 static void
-spawn_sh(WebKitWebView *web_view, GArray *argv);
+spawn_sh(WebKitWebView *web_view, GArray *argv, GString *result);
 
 static void
-spawn_sync(WebKitWebView *web_view, GArray *argv);
+spawn_sync(WebKitWebView *web_view, GArray *argv, GString *result);
 
 static void
-spawn_sh_sync(WebKitWebView *web_view, GArray *argv);
+spawn_sh_sync(WebKitWebView *web_view, GArray *argv, GString *result);
 
 static void
-parse_command(const char *cmd, const char *param);
+parse_command(const char *cmd, const char *param, GString *result);
 
 static void
-parse_cmd_line(const char *ctl_line);
+parse_cmd_line(const char *ctl_line, GString *result);
 
 static gchar*
 build_stream_name(int type, const gchar *dir);
@@ -367,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);
 
@@ -410,19 +423,22 @@ static void
 search_text (WebKitWebView *page, GArray *argv, const gboolean forward);
 
 static void
-search_forward_text (WebKitWebView *page, GArray *argv);
+search_forward_text (WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+search_reverse_text (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-search_reverse_text (WebKitWebView *page, GArray *argv);
+dehilight (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-dehilight (WebKitWebView *page, GArray *argv);
+run_js (WebKitWebView * web_view, GArray *argv, GString *result);
 
 static void
-run_js (WebKitWebView * web_view, GArray *argv);
+run_external_js (WebKitWebView * web_view, GArray *argv, GString *result);
 
 static void
-run_external_js (WebKitWebView * web_view, GArray *argv);
+eval_js(WebKitWebView * web_view, gchar *script, GString *result);
 
 static void handle_cookies (SoupSession *session,
                             SoupMessage *msg,
@@ -432,10 +448,10 @@ save_cookies (SoupMessage *msg,
                 gpointer     user_data);
 
 static void
-set_var(WebKitWebView *page, GArray *argv);
+set_var(WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-act_bind(WebKitWebView *page, GArray *argv);
+act_bind(WebKitWebView *page, GArray *argv, GString *result);
 
 static void
 act_dump_config();
@@ -456,6 +472,12 @@ static void
 dump_config();
 
 
+typedef void (*Command)(WebKitWebView*, GArray *argv, GString *result);
+typedef struct {
+    Command function;
+    gboolean no_split;
+} CommandInfo;
+
 /* Command callbacks */
 static void
 cmd_load_uri();
@@ -473,6 +495,9 @@ static void
 cmd_cookie_handler();
 
 static void
+cmd_new_window();
+
+static void
 move_statusbar();
 
 static void
@@ -531,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: */