diff options
author | Calvin Morrison <mutantturke@gmail.com> | 2012-02-21 12:51:21 -0500 |
---|---|---|
committer | Calvin Morrison <mutantturke@gmail.com> | 2012-02-21 12:51:21 -0500 |
commit | 99eeabe5605099cfc80a71f7924e27662ca96fbc (patch) | |
tree | 331dbbf7e0d68896c0ca7bb5b1520f94c5a6b134 /callbacks.c | |
parent | b69fdc25af59f23a4219f94e645370dc00dd6d74 (diff) |
cleaned the crap out of the formatting, added some basic code rules
Diffstat (limited to 'callbacks.c')
-rw-r--r-- | callbacks.c | 162 |
1 files changed, 99 insertions, 63 deletions
diff --git a/callbacks.c b/callbacks.c index f91d80c..1daefc4 100644 --- a/callbacks.c +++ b/callbacks.c @@ -13,81 +13,108 @@ /* key press callback function. NEEDED: a config.h where keys are defined */ gboolean cb_keypress (GtkWidget *widget, GdkEventKey *event) { -guint(g) = event->keyval; - -if ( (event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK ) { - switch(g) { - case GDK_KEY_l: grab_bar(); return TRUE; break; - case GDK_KEY_f: show_search(TRUE); return TRUE; break; - case GDK_KEY_g: tab_and_go(); return TRUE; break; - case GDK_KEY_Back: cb_go(FALSE); return TRUE; break; - case GDK_KEY_Forward: cb_go(TRUE); return TRUE; break; - case GDK_KEY_comma: cb_go(FALSE); return TRUE; break; - case GDK_KEY_period: cb_go(TRUE); return TRUE; break; - case GDK_KEY_o: history_command(); return TRUE; break; - case GDK_KEY_h: toggle(); focus_view(); return TRUE; break; - case GDK_KEY_Page_Up: tab_switch(FALSE); return TRUE; break; - case GDK_KEY_Page_Down: tab_switch(TRUE); return TRUE; break; - case GDK_KEY_t: tab_new(FALSE); gtk_widget_grab_focus(w.bar); return TRUE; break; - case GDK_KEY_w: tab_close(); return TRUE; break; - case GDK_KEY_bracketright: tab_zoom(TRUE); return TRUE; break; - case GDK_KEY_bracketleft: tab_zoom(FALSE); return TRUE; break; - case GDK_KEY_r: tab_reload(TRUE); return TRUE; break; - case GDK_KEY_e: tab_reload(FALSE); return TRUE; break; - case GDK_KEY_s: tab_view_source(); return TRUE; break; - case GDK_KEY_Return: load_uri(g_strconcat(DEFAULT_SEARCH, gtk_entry_get_text(GTK_ENTRY(w.bar)), NULL)); return TRUE; break; - default: return FALSE; break; + + guint(g) = event->keyval; + + /* yes while this may look like it doesn't follow coding standards, I find this sane */ + if ( (event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK ) { + switch(g) { + case GDK_KEY_l: grab_bar(); return TRUE; break; + case GDK_KEY_f: show_search(TRUE); return TRUE; break; + case GDK_KEY_g: tab_and_go(); return TRUE; break; + case GDK_KEY_Back: cb_go(FALSE); return TRUE; break; + case GDK_KEY_Forward: cb_go(TRUE); return TRUE; break; + case GDK_KEY_comma: cb_go(FALSE); return TRUE; break; + case GDK_KEY_period: cb_go(TRUE); return TRUE; break; + case GDK_KEY_o: history_command(); return TRUE; break; + case GDK_KEY_h: toggle(); focus_view(); return TRUE; break; + case GDK_KEY_Page_Up: tab_switch(FALSE); return TRUE; break; + case GDK_KEY_Page_Down: tab_switch(TRUE); return TRUE; break; + case GDK_KEY_t: tab_new(FALSE); gtk_widget_grab_focus(w.bar); return TRUE; break; + case GDK_KEY_w: tab_close(); return TRUE; break; + case GDK_KEY_bracketright: tab_zoom(TRUE); return TRUE; break; + case GDK_KEY_bracketleft: tab_zoom(FALSE); return TRUE; break; + case GDK_KEY_r: tab_reload(TRUE); return TRUE; break; + case GDK_KEY_e: tab_reload(FALSE); return TRUE; break; + case GDK_KEY_s: tab_view_source(); return TRUE; break; + case GDK_KEY_Return: load_uri(g_strconcat(DEFAULT_SEARCH, gtk_entry_get_text(GTK_ENTRY(w.bar)), NULL)); return TRUE; break; + default: return FALSE; break; + } } -} + if (gtk_widget_has_focus(w.bar) && g == GDK_KEY_Escape) + { + gtk_widget_grab_focus(GTK_WIDGET(w.notebook)); + return TRUE; + } -if (gtk_widget_has_focus(w.bar) && g == GDK_KEY_Escape) { gtk_widget_grab_focus(GTK_WIDGET(w.notebook)); return TRUE; } -if (gtk_widget_has_focus(w.searchbar)) { - if (g == GDK_KEY_Escape) { show_search(FALSE); focus_view(); return TRUE; } - if ((g == GDK_KEY_Return) && (event->state & GDK_MOD1_MASK) == GDK_MOD1_MASK) { search(NULL, FALSE); } -} -return FALSE; + if (gtk_widget_has_focus(w.searchbar)) { + if (g == GDK_KEY_Escape) { + show_search(FALSE); + focus_view(); + return TRUE; + } + + if ((g == GDK_KEY_Return) && (event->state & GDK_MOD1_MASK) == GDK_MOD1_MASK) + { + search(NULL, FALSE); + } + } + + return FALSE; } /* download callback */ void cb_download(WebKitWebView *web_view, GObject *d, gpointer user_data) { - gchar *command; -const gchar *download_url = webkit_download_get_uri(WEBKIT_DOWNLOAD(d)); -const gchar *requested_name = webkit_download_get_suggested_filename(WEBKIT_DOWNLOAD(d)); -command = g_new0(gchar, strlen(DEFAULT_DOWNLOAD_COMMAND) + strlen(DEFAULT_DOWNLOAD_LOCATION) + strlen(requested_name) + strlen(download_url) + 1); -g_sprintf(command, DEFAULT_DOWNLOAD_COMMAND, DEFAULT_DOWNLOAD_LOCATION, requested_name, download_url); + gchar *command; + const gchar *download_url = webkit_download_get_uri(WEBKIT_DOWNLOAD(d)); + const gchar *requested_name = webkit_download_get_suggested_filename(WEBKIT_DOWNLOAD(d)); -g_spawn_command_line_async(command, NULL); -g_free(command); + command = g_new0(gchar, strlen(DEFAULT_DOWNLOAD_COMMAND) + strlen(DEFAULT_DOWNLOAD_LOCATION) + strlen(requested_name) + strlen(download_url) + 1); + g_sprintf(command, DEFAULT_DOWNLOAD_COMMAND, DEFAULT_DOWNLOAD_LOCATION, requested_name, download_url); + g_spawn_command_line_async(command, NULL); + g_free(command); } - /* entry callback */ void cb_entry (GtkWidget* entry, gpointer data) { -struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook)); -load_uri(g_strdup(gtk_entry_get_text (GTK_ENTRY (w.bar)))); -gtk_widget_grab_focus(GTK_WIDGET(t->view)); + + struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook)); -if(w.hide) { - gtk_widget_hide(w.bar); + load_uri(g_strdup(gtk_entry_get_text (GTK_ENTRY (w.bar)))); + gtk_widget_grab_focus(GTK_WIDGET(t->view)); + + if(w.hide) { + gtk_widget_hide(w.bar); } -w.hide = FALSE; - + + w.hide = FALSE; } /* link hovering callback */ void cb_link_hover (WebKitWebView* page, const gchar* title, const gchar* link, gpointer data) { -if(link != NULL) { gtk_statusbar_push(GTK_STATUSBAR(w.status), 0, link); } -else { gtk_statusbar_push(GTK_STATUSBAR(w.status), 0, ""); } + + if(link != NULL) { + gtk_statusbar_push(GTK_STATUSBAR(w.status), 0, link); + } + else { + gtk_statusbar_push(GTK_STATUSBAR(w.status), 0, ""); + } } /* go forward or backwards, simple enough */ void cb_go(gboolean b) { -struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook)); -if (b) { webkit_web_view_go_forward(t->view); } -else { webkit_web_view_go_back(t->view); } + + struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook)); + + if (b) { + webkit_web_view_go_forward(t->view); + } + else { + webkit_web_view_go_back(t->view); + } } @@ -96,9 +123,10 @@ void cb_load_status (GObject* object, GParamSpec* pspec, tab *t) { const gchar* uri = webkit_web_view_get_uri(t->view); WebKitLoadStatus status = webkit_web_view_get_load_status(t->view); + switch(status) { case WEBKIT_LOAD_PROVISIONAL: - break; + break; case WEBKIT_LOAD_COMMITTED: if (gtk_notebook_get_current_page(w.notebook) == gtk_notebook_page_num(w.notebook, t->scroll)) { @@ -106,9 +134,12 @@ void cb_load_status (GObject* object, GParamSpec* pspec, tab *t) { } FILE *history = fopen(g_build_filename(g_get_home_dir(), DEFAULT_HISTORY_FILE, NULL), "a+"); + + if(!history == NULL) { fprintf(history, "%s \n", uri); fclose(history); - + } + break; case WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT: break; @@ -118,20 +149,25 @@ void cb_load_status (GObject* object, GParamSpec* pspec, tab *t) { break; default: break; - } - + } } - /* title change callback */ void cb_title_changed(WebKitWebView *v, WebKitWebFrame *f, const char *title, tab *t) { -gchar *tabtitle; -if (gtk_notebook_get_current_page(w.notebook) == gtk_notebook_page_num(w.notebook, t->scroll)) { -gtk_window_set_title(GTK_WINDOW(w.win), g_strconcat(title, NULL)); -} -if(strlen(title) < DEFAULT_TAB_LENGTH ) { tabtitle = g_strdup(title); } - else { tabtitle = g_strndup(title, DEFAULT_TAB_LENGTH); strcat(tabtitle, "..."); } + gchar *tabtitle; + + if(gtk_notebook_get_current_page(w.notebook) == gtk_notebook_page_num(w.notebook, t->scroll)) { + gtk_window_set_title(GTK_WINDOW(w.win), g_strconcat(title, NULL)); + } + + if(strlen(title) < DEFAULT_TAB_LENGTH ) { + tabtitle = g_strdup(title); + } + else { + tabtitle = g_strndup(title, DEFAULT_TAB_LENGTH); + strcat(tabtitle, "..."); + } -gtk_label_set_label(GTK_LABEL(t->label), tabtitle); + gtk_label_set_label(GTK_LABEL(t->label), tabtitle); } |