2 * See LICENSE for license details
7 * (c) 2009 by Robert Manea
8 * - introduced struct concept
13 #define STATUS_DEFAULT "<span background=\"darkblue\" foreground=\"white\"> MODE </span> <span background=\"red\" foreground=\"white\">KEYCMD</span> (LOAD_PROGRESS%) <b>TITLE</b> - Uzbl browser"
15 /* statusbar symbols */
16 enum { SYM_TITLE, SYM_URI, SYM_NAME,
17 SYM_LOADPRGS, SYM_LOADPRGSBAR,
18 SYM_KEYCMD, SYM_MODE, SYM_MSG};
26 {"KEYCMD", SYM_KEYCMD},
29 {"LOAD_PROGRESS", SYM_LOADPRGS},
30 {"LOAD_PROGRESSBAR", SYM_LOADPRGSBAR},
34 /* status bar elements */
43 GtkWidget* main_window;
45 GtkWidget* mainbar_label;
46 GtkScrollbar* scbar_v; // Horizontal and Vertical Scrollbar
47 GtkScrollbar* scbar_h; // (These are still hidden)
48 GtkAdjustment* bar_v; // Information about document length
49 GtkAdjustment* bar_h; // and scrolling position
50 WebKitWebView* web_view;
57 /* external communication*/
62 /* stores (key)"variable name" -> (value)"pointer to this var*/
63 GHashTable *proto_var;
64 /* command parsing regexes */
77 gchar config_file_path[500];
78 gchar selected_url[500];
79 char executable_path[500];
82 struct utsname unameinfo; /* system info */
88 SoupSession *soup_session;
89 SoupLogger *soup_logger;
99 gchar* load_finish_handler;
100 gchar* status_format;
101 gchar* status_background;
102 gchar* history_handler;
105 gchar* download_handler;
106 gchar* cookie_handler;
107 gboolean always_insert_mode;
108 gboolean show_status;
109 gboolean insert_mode;
111 gboolean never_reset_mode;
116 /* command list: name -> Command */
117 GHashTable* commands;
121 /* main uzbl data structure */
132 /* group bindings: key -> action */
133 GHashTable* bindings;
142 typedef void sigfunc(int);
155 catch_sigterm(int s);
158 setup_signal(int signe, sigfunc *shandler);
161 new_window_cb (WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, WebKitWebNavigationAction *navigation_action, WebKitWebPolicyDecision *policy_decision, gpointer user_data);
164 create_web_view_cb (WebKitWebView *web_view, WebKitWebFrame *frame, gpointer user_data);
167 download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data);
170 toggle_status_cb (WebKitWebView* page, const char *param);
173 link_hover_cb (WebKitWebView* page, const gchar* title, const gchar* link, gpointer data);
176 title_change_cb (WebKitWebView* web_view, WebKitWebFrame* web_frame, const gchar* title, gpointer data);
179 progress_change_cb (WebKitWebView* page, gint progress, gpointer data);
182 load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data);
185 load_finish_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data);
188 destroy_cb (GtkWidget* widget, gpointer data);
197 free_action(gpointer act);
200 new_action(const gchar *name, const gchar *param);
203 file_exists (const char * filename);
206 set_insert_mode(WebKitWebView *page, const gchar *param);
209 load_uri (WebKitWebView * web_view, const gchar *param);
212 new_window_load_uri (const gchar * uri);
215 close_uzbl (WebKitWebView *page, const char *param);
218 run_command_async(const char *command, const char *args);
221 run_command_sync(const char *command, const char *args, char **stdout);
224 spawn(WebKitWebView *web_view, const char *param);
227 parse_command(const char *cmd, const char *param);
230 build_stream_name(int type);
233 control_fifo(GIOChannel *gio, GIOCondition condition);
242 control_stdin(GIOChannel *gio, GIOCondition condition);
251 control_socket(GIOChannel *chan);
258 key_press_cb (WebKitWebView* page, GdkEventKey* event);
267 GtkWidget* create_window ();
270 add_binding (const gchar *key, const gchar *act);
276 search_text (WebKitWebView *page, const char *param);
279 run_js (WebKitWebView * web_view, const gchar *param);
282 str_replace (const char* search, const char* replace, const char* string);
284 static void handle_cookies (SoupSession *session,
288 save_cookies (SoupMessage *msg,
290 /* vi: set et ts=4: */