X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=uzbl.h;h=d67a84eb67a722c9c6369e5c25426bc3c0b6e9d6;hb=830fe604bc141064ca09120f92cd4f496c918f5f;hp=892d03b8c1f628a51b35d0f34fee54378b8fefe9;hpb=757b51da21442ffc4f3b39dfe173999bfcb8a3c8;p=uzbl-mobile diff --git a/uzbl.h b/uzbl.h index 892d03b..d67a84e 100644 --- a/uzbl.h +++ b/uzbl.h @@ -1,4 +1,4 @@ -/* -*- c-basic-offset: 4; -*- +/* -*- c-basic-offset: 4; -*- * See LICENSE for license details * @@ -11,11 +11,6 @@ * */ -#define STATUS_DEFAULT " MODE KEYCMD (LOAD_PROGRESS%) TITLE - Uzbl browser" -#define TITLE_LONG_DEFAULT "KEYCMD MODE TITLE - Uzbl browser > SELECTED_URI" -#define TITLE_SHORT_DEFAULT "TITLE - Uzbl browser " -#define NOSPLIT ((void*)1) - enum { /* statusbar symbols */ SYM_TITLE, SYM_URI, SYM_NAME, @@ -62,12 +57,15 @@ const struct { typedef struct { gint load_progress; gchar *msg; + gchar *progress_s, *progress_u; + int progress_w; } StatusBar; /* gui elements */ typedef struct { GtkWidget* main_window; + GtkPlug* plug; GtkWidget* scrolled_win; GtkWidget* vbox; GtkWidget* mainbar; @@ -78,6 +76,11 @@ typedef struct { GtkAdjustment* bar_h; // and scrolling position WebKitWebView* web_view; gchar* main_title; + gchar* icon; + + /* WebInspector */ + GtkWidget *inspector_window; + WebKitWebInspector *inspector; StatusBar sbar; } GUI; @@ -90,13 +93,7 @@ typedef struct { gchar *socket_path; /* stores (key)"variable name" -> (value)"pointer to this var*/ GHashTable *proto_var; - /* command parsing regexes */ - GRegex *set_regex; - GRegex *act_regex; - GRegex *keycmd_regex; - GRegex *get_regex; - GRegex *bind_regex; - gchar **sync_stdout; + gchar *sync_stdout; } Communication; @@ -104,11 +101,12 @@ typedef struct { typedef struct { gchar *uri; gchar *config_file; - char *instance_name; + int socket_id; + char *instance_name; gchar *selected_url; gchar *executable_path; GString* keycmd; - gchar *searchtx; + gchar* searchtx; struct utsname unameinfo; /* system info */ gboolean verbose; } State; @@ -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; @@ -147,14 +146,44 @@ typedef struct { gchar* modkey; guint modmask; guint http_debug; - guint default_font_size; - guint minimum_font_size; gchar* shell_cmd; + /* WebKitWebSettings exports */ + guint font_size; + guint monospace_size; + guint minimum_font_size; + gfloat zoom_level; + guint disable_plugins; + guint disable_scripts; + 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; + gchar *inject_html; + guint caret_browsing; + guint mode; + gchar* base_url; + gchar* html_endmarker; + gchar* insert_indicator; + gchar* cmd_indicator; + GString* html_buffer; + 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 { @@ -163,6 +192,7 @@ typedef struct { Network net; Behaviour behave; Communication comm; + Javascript js; Window xwin; GScanner *scan; @@ -186,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" }, @@ -205,6 +235,12 @@ itos(int val); static char * str_replace (const char* search, const char* replace, const char* string); +static GArray* +read_file_by_line (gchar *path); + +static +gchar* parseenv (char* string); + static void clean_up(void); @@ -215,8 +251,17 @@ static sigfunc * 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); +static gboolean +mime_policy_cb(WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, gchar *mime_type, WebKitWebPolicyDecision *policy_decision, gpointer user_data); + WebKitWebView* create_web_view_cb (WebKitWebView *web_view, WebKitWebFrame *frame, gpointer user_data); @@ -224,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); @@ -263,44 +311,53 @@ static bool file_exists (const char * filename); static void -set_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 -close_uzbl (WebKitWebView *page, GArray *argv); +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 **stdout); + 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 -parse_command(const char *cmd, const char *param); +spawn_sync(WebKitWebView *web_view, GArray *argv, GString *result); static void -runcmd(WebKitWebView *page, GArray *argv); +spawn_sh_sync(WebKitWebView *web_view, GArray *argv, GString *result); static void -parse_cmd_line(const char *ctl_line); +parse_command(const char *cmd, const char *param, GString *result); -static gchar* -build_stream_name(int type, const gchar *dir); - -static gboolean -var_is(const char *x, const char *y); +static void +parse_cmd_line(const char *ctl_line, GString *result); static gchar* -set_useragent(gchar *val); +build_stream_name(int type, const gchar *dir); static gboolean control_fifo(GIOChannel *gio, GIOCondition condition); @@ -320,15 +377,21 @@ init_socket(gchar *dir); static gboolean control_socket(GIOChannel *chan); +static gboolean +control_client_socket(GIOChannel *chan); + static void update_title (void); static gboolean -key_press_cb (WebKitWebView* page, GdkEventKey* event); +key_press_cb (GtkWidget* window, GdkEventKey* event); static void run_keycmd(const gboolean key_ret); +static void +exec_paramcmd(const Action* act, const guint i); + static GtkWidget* create_browser (); @@ -338,6 +401,9 @@ create_mainbar (); static GtkWidget* create_window (); +static +GtkPlug* create_plug (); + static void run_handler (const gchar *act, const gchar *args); @@ -357,18 +423,155 @@ 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 +dehilight (WebKitWebView *page, GArray *argv, GString *result); static void -search_reverse_text (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 +eval_js(WebKitWebView * web_view, gchar *script, GString *result); static void handle_cookies (SoupSession *session, - SoupMessage *msg, - gpointer user_data); + SoupMessage *msg, + gpointer user_data); static void save_cookies (SoupMessage *msg, - gpointer user_data); + gpointer user_data); + +static void +set_var(WebKitWebView *page, GArray *argv, GString *result); + +static void +act_bind(WebKitWebView *page, GArray *argv, GString *result); + +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(); + + +typedef void (*Command)(WebKitWebView*, GArray *argv, GString *result); +typedef struct { + Command function; + gboolean no_split; +} CommandInfo; + +/* Command callbacks */ +static void +cmd_load_uri(); + +static void +cmd_set_status(); + +static void +set_proxy_url(); + +static void +set_icon(); + +static void +cmd_cookie_handler(); + +static void +cmd_new_window(); + +static void +move_statusbar(); + +static void +cmd_always_insert_mode(); + +static void +cmd_http_debug(); + +static void +cmd_max_conns(); + +static void +cmd_max_conns_host(); + +/* exported WebKitWebSettings properties */ + +static void +cmd_font_size(); + +static void +cmd_zoom_level(); + +static void +cmd_disable_plugins(); + +static void +cmd_disable_scripts(); + +static void +cmd_minimum_font_size(); + +static void +cmd_fifo_dir(); + +static void +cmd_socket_dir(); + +static void +cmd_modkey(); + +static void +cmd_useragent() ; + +static void +cmd_autoload_img(); + +static void +cmd_autoshrink_img(); + +static void +cmd_enable_spellcheck(); + +static void +cmd_enable_private(); + +static void +cmd_print_bg(); + +static void +cmd_style_uri(); + +static void +cmd_resizable_txt(); + +static void +cmd_default_encoding(); + +static void +cmd_enforce_96dpi(); + +static void +cmd_inject_html(); + +static void +cmd_caret_browsing(); + /* vi: set et ts=4: */