diff options
author | mutantturkey <crazycal00@gmail.com> | 2011-04-30 01:32:03 -0400 |
---|---|---|
committer | mutantturkey <crazycal00@gmail.com> | 2011-04-30 01:32:03 -0400 |
commit | 4918c06926856b1827169c2af21a30a3024d0f44 (patch) | |
tree | 26974085d4ef0dee15f8fa6b4669a79710ca49b3 /sb.c | |
parent | aca5010ae70a327df22432cf2d653aecb6caf82f (diff) |
started commenting alittle bit, just functions and such
Diffstat (limited to 'sb.c')
-rw-r--r-- | sb.c | 80 |
1 files changed, 55 insertions, 25 deletions
@@ -48,7 +48,6 @@ static void activate_uri_entry_cb(GtkWidget* entry, gpointer data); static void link_hover(WebKitWebView* page, const gchar* title, const gchar* link, gpointer data); static void title_change_cb(WebKitWebView *v, WebKitWebFrame *f, const char *title, tab *t); static void load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, tab *t); -//static void load_error(WebKitWebView *v, WebKitWebFrame *f, gchar *uri, gpointer web_error, user_data); static void load_uri(gchar *uri); static void go_cb(gboolean b); static void tab_new(gboolean b); @@ -71,44 +70,60 @@ gboolean key_press_cb(GtkWidget *widget, GdkEventKey *event); static void search(GtkEntry *entry, gboolean b) { struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); - //gtk_widget_grab_focus(GTK_WIDGET(t->view)); - webkit_web_view_search_text(t->view, gtk_entry_get_text(GTK_ENTRY(w.search)), FALSE, b, TRUE); } - static void show_search(gboolean b) { - if(b) { gtk_widget_show(w.search); gtk_widget_grab_focus(w.search); } else { gtk_widget_hide(w.search); } - + +if(b) { + gtk_widget_show(w.search); + gtk_widget_grab_focus(w.search); + } + else { + gtk_widget_hide(w.search); + } } +/* Called when URL is returned from the entry bar */ static void activate_uri_entry_cb (GtkWidget* entry, gpointer data) { - struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); 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); } + +if(w.hide) { + gtk_widget_hide(w.bar); + } w.hide = FALSE; + } +/* Basic reload function */ static void reload() { + struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); webkit_web_view_reload(t->view); + } - +/* close tab, and quit if there are no tabs */ static void tab_close() { struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); gtk_notebook_remove_page(GTK_NOTEBOOK(w.notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); g_free(t); -if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) == 1) { gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), FALSE); gtk_widget_grab_focus(gtk_notebook_get_nth_page(GTK_NOTEBOOK(w.notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)))); focus_view();} +if(gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) == 1) { + gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), FALSE); + gtk_widget_grab_focus(gtk_notebook_get_nth_page(GTK_NOTEBOOK(w.notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)))); + focus_view(); + } if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) == 0) { gtk_main_quit(); } } +/* download with external command */ +/* NEEDS WORK, should use sprintf to insert different values, 1) Location 2) File name */ static void download(WebKitWebView *web_view, GObject *d, gpointer user_data) { const gchar *c = webkit_download_get_uri(WEBKIT_DOWNLOAD(d)); gchar *command = g_strconcat(DEFAULT_DOWNLOAD, g_get_home_dir(), "/ ", g_strdup(c), NULL); @@ -117,13 +132,13 @@ g_spawn_command_line_async(command, NULL); g_free(command); } - +/* link hovering callback */ static void 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, ""); } } - +/* title change callback */ static void title_change_cb(WebKitWebView *v, WebKitWebFrame *f, const char *title, tab *t) { gchar *tabtitle; @@ -137,6 +152,7 @@ gtk_label_set_label(GTK_LABEL(t->label), tabtitle); } +/* when the page load is commited, call this function */ static void load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, tab *t) { const gchar* uri = webkit_web_frame_get_uri(frame); @@ -149,16 +165,18 @@ fclose(history); } +/* an alternative to the regular tab command, combines tabbing and history command into one */ static void tab_and_go() { - gchar *returned; g_spawn_command_line_sync("sh -c 'sort ~"DEFAULT_HISTORY_FILE" | dmenu -l 15 -xs -c'", &returned, NULL, NULL, NULL); -if(strcmp(returned, "") == 0) { focus_view(); } else { tab_new(FALSE); load_uri(returned); } -g_free(returned); -} +if(strcmp(returned, "") == 0) { focus_view(); } +else { tab_new(FALSE); load_uri(returned); g_free(returned); } +} +/* loads the uri, check for the protocol sign */ static void load_uri(gchar *uri) { + gchar *u; //Barrowed from surf, no point creating another method, this seems to work well struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); @@ -169,21 +187,25 @@ g_free(u); }; +/*increase or decrease the zoom of the page */ static void tab_zoom (gboolean b) { struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); if (b) { webkit_web_view_set_zoom_level(t->view, (webkit_web_view_get_zoom_level(t->view) + .05)); } else { webkit_web_view_set_zoom_level(t->view, (webkit_web_view_get_zoom_level(t->view) - .05)); } } + +/* if the bar isn't visible, show it and set the w.hide flag to TRUE*/ static void grab_bar( ) { - if(!gtk_widget_get_visible(w.bar)) { +if(!gtk_widget_get_visible(w.bar)) { gtk_widget_grab_focus(GTK_WIDGET(w.bar)); gtk_widget_show(w.bar); w.hide = TRUE; -} + } } +/* go forward or backwards, simple enough */ static void go_cb (gboolean b) { struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); if (b) { webkit_web_view_go_forward(t->view); } @@ -191,13 +213,13 @@ else { webkit_web_view_go_back(t->view); } } +/* toggle visibility */ static void toggle() { if(gtk_widget_get_visible(w.bar)) { gtk_widget_hide(w.bar); gtk_widget_hide(w.status); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), FALSE); } - else { gtk_widget_show_all(w.vbox); gtk_widget_hide(w.search); @@ -205,7 +227,7 @@ static void toggle() { } } - +/* rotate tabs forward or backwards */ static void tab_switch(gboolean b) { gint(current) = gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)); @@ -222,6 +244,7 @@ gint(current) = gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)); } +/* when a new tab is requested, return the t->view */ WebKitWebView * tab_new_requested(WebKitWebView *v, WebKitWebFrame *f) { tab_new(TRUE); struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); @@ -229,6 +252,7 @@ WebKitWebView * tab_new_requested(WebKitWebView *v, WebKitWebFrame *f) { } +/* switch to view source mode - stays in mode until reverted */ static void tab_view_source() { struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); @@ -245,6 +269,7 @@ static void tab_view_source() { } +/* create a tab */ static void tab_new(gboolean b) { tab *t; t = g_new0(tab, 1); @@ -290,7 +315,7 @@ if (!b) { gtk_notebook_set_current_page(GTK_NOTEBOOK(w.notebook), index); } gtk_widget_grab_focus(w.bar); } - +/* call the history command. should we do it ASYNC?*/ static void history_command() { gchar *returned; g_spawn_command_line_sync("sh -c 'sort ~" DEFAULT_HISTORY_FILE " | dmenu -l 15 -xs -c'", &returned, NULL, NULL, NULL); @@ -299,6 +324,7 @@ g_free(returned); } +/*focus on tab after switching, aka title, statusbar, view, etc */ static void tab_focus(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { gtk_statusbar_push(GTK_STATUSBAR(w.status), 0, ""); @@ -313,12 +339,15 @@ gtk_window_set_title(GTK_WINDOW(w.win), title); gtk_entry_set_text(GTK_ENTRY(w.bar), url); } + +/* focus on view */ static void focus_view() { struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); gtk_widget_grab_focus(GTK_WIDGET(t->view)); } +/* misc functions to help initialization */ static void window_setup() { term_data_id = g_quark_from_static_string("s"); @@ -360,6 +389,7 @@ gtk_widget_grab_focus(w.bar); } +/* key press callback function. NEEDED: a config.h where keys are defined */ gboolean key_press_cb (GtkWidget *widget, GdkEventKey *event) { guint(g) = event->keyval; @@ -368,8 +398,8 @@ if ( (event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK ) { case GDK_l: grab_bar(); return TRUE; break; case GDK_f: show_search(TRUE); return TRUE; break; case GDK_g: tab_and_go(); return TRUE; break; - case GDK_a: go_cb(FALSE); return TRUE; break; - case GDK_b: go_cb(TRUE); return TRUE; break; + case GDK_LEFTBUTTON: go_cb(FALSE); return TRUE; break; + case GDK_RIGHTBUTTON: go_cb(TRUE); return TRUE; break; case GDK_o: history_command(); return TRUE; break; case GDK_h: toggle(); focus_view(); return TRUE; break; case GDK_Page_Up: tab_switch(FALSE); return TRUE; break; @@ -394,8 +424,8 @@ if (gtk_widget_has_focus(w.search)) { return FALSE; } - -int main (int argc, char* argv[]) { +/* main function */ +int main (int argc,- char* argv[]) { gtk_init (&argc, &argv); window_setup(); |