reset
[uzbl-mobile] / uzbl.h
diff --git a/uzbl.h b/uzbl.h
index ee9e693..2cf0346 100644 (file)
--- a/uzbl.h
+++ b/uzbl.h
@@ -11,8 +11,6 @@
  *
  */
 
-#define NOSPLIT ((void*)1)
-
 enum {
   /* statusbar symbols */
   SYM_TITLE, SYM_URI, SYM_NAME,
@@ -178,6 +176,12 @@ typedef struct {
     GHashTable* commands;
 } Behaviour;
 
+/* javascript */
+typedef struct {
+    gboolean            initialized;
+    JSClassDefinition   classdef;
+    JSClassRef          classref;
+} Javascript;
 
 /* main uzbl data structure */
 typedef struct {
@@ -186,6 +190,7 @@ typedef struct {
     Network       net;
     Behaviour     behave;
     Communication comm;
+    Javascript    js;
 
     Window        xwin;
     GScanner      *scan;
@@ -218,6 +223,7 @@ XDG_Var XDG[] =
     { "XDG_DATA_DIRS",   "/usr/local/share/:/usr/share/" },
 };
 
+
 /* Functions */
 static void
 setup_scanner();
@@ -246,9 +252,6 @@ setup_signal(int signe, sigfunc *shandler);
 static gboolean
 set_var_value(gchar *name, gchar *val);
 
-static void
-print(WebKitWebView *page, GArray *argv);
-
 static gboolean
 new_window_cb (WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, WebKitWebNavigationAction *navigation_action, WebKitWebPolicyDecision *policy_decision, gpointer user_data);
 
@@ -262,12 +265,6 @@ static gboolean
 download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data);
 
 static void
-toggle_zoom_type (WebKitWebView* page, GArray *argv);
-
-static void
-toggle_status_cb (WebKitWebView* page, GArray *argv);
-
-static void
 link_hover_cb (WebKitWebView* page, const gchar* title, const gchar* link, gpointer data);
 
 static void
@@ -304,50 +301,17 @@ static bool
 file_exists (const char * filename);
 
 static void
-toggle_insert_mode(WebKitWebView *page, GArray *argv);
-
-static void
-load_uri (WebKitWebView * web_view, GArray *argv);
-
-static void
 new_window_load_uri (const gchar * uri);
 
-static void
-chain (WebKitWebView *page, GArray *argv);
-
-static void
-keycmd (WebKitWebView *page, GArray *argv);
-
-static void
-keycmd_nl (WebKitWebView *page, GArray *argv);
-
-static void
-keycmd_bs (WebKitWebView *page, GArray *argv);
-
-static void
-close_uzbl (WebKitWebView *page, GArray *argv);
-
 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);
+parse_command(const char *cmd, const char *param, GString *result);
 
 static void
-spawn_sh(WebKitWebView *web_view, GArray *argv);
-
-static void
-spawn_sync(WebKitWebView *web_view, GArray *argv);
-
-static void
-spawn_sh_sync(WebKitWebView *web_view, GArray *argv);
-
-static void
-parse_command(const char *cmd, const char *param);
-
-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);
@@ -370,6 +334,9 @@ init_socket(gchar *dir);
 static gboolean
 control_socket(GIOChannel *chan);
 
+static gboolean
+control_client_socket(GIOChannel *chan);
+
 static void
 update_title (void);
 
@@ -412,51 +379,105 @@ 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
-search_forward_text (WebKitWebView *page, GArray *argv);
+save_cookies (SoupMessage *msg,
+                gpointer     user_data);
 
 static void
-search_reverse_text (WebKitWebView *page, GArray *argv);
+act_dump_config();
 
 static void
-dehilight (WebKitWebView *page, GArray *argv);
+render_html();
 
 static void
-run_js (WebKitWebView * web_view, GArray *argv);
+set_timeout(int seconds);
 
 static void
-run_external_js (WebKitWebView * web_view, GArray *argv);
+dump_var_hash(gpointer k, gpointer v, gpointer ud);
 
-static void handle_cookies (SoupSession *session,
-                            SoupMessage *msg,
-                            gpointer     user_data);
 static void
-save_cookies (SoupMessage *msg,
-                gpointer     user_data);
+dump_key_hash(gpointer k, gpointer v, gpointer ud);
 
 static void
-set_var(WebKitWebView *page, GArray *argv);
+dump_config();
+
+
+/* Commands */
+
+typedef void (*Command)(WebKitWebView*, GArray *argv, GString *result);
+typedef struct {
+    Command function;
+    gboolean no_split;
+} CommandInfo;
 
 static void
-act_bind(WebKitWebView *page, GArray *argv);
+print(WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-act_dump_config();
+toggle_zoom_type (WebKitWebView* page, GArray *argv, GString *result);
 
 static void
-render_html();
+toggle_status_cb (WebKitWebView* page, GArray *argv, GString *result);
 
 static void
-set_timeout(int seconds);
+toggle_insert_mode(WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-dump_var_hash(gpointer k, gpointer v, gpointer ud);
+load_uri (WebKitWebView * web_view, GArray *argv, GString *result);
 
 static void
-dump_key_hash(gpointer k, gpointer v, gpointer ud);
+chain (WebKitWebView *page, GArray *argv, GString *result);
 
 static void
-dump_config();
+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 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
+search_forward_text (WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+search_reverse_text (WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+dehilight (WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+eval_js(WebKitWebView * web_view, gchar *script, GString *result);
+
+static void
+run_js (WebKitWebView * web_view, GArray *argv, GString *result);
+
+static void
+run_external_js (WebKitWebView * web_view, GArray *argv, GString *result);
+
+static void
+set_var(WebKitWebView *page, GArray *argv, GString *result);
+
+static void
+act_bind(WebKitWebView *page, GArray *argv, GString *result);
 
 
 /* Command callbacks */