aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormutantturkey <crazycal00@gmail.com>2011-04-30 01:32:03 -0400
committermutantturkey <crazycal00@gmail.com>2011-04-30 01:32:03 -0400
commit4918c06926856b1827169c2af21a30a3024d0f44 (patch)
tree26974085d4ef0dee15f8fa6b4669a79710ca49b3
parentaca5010ae70a327df22432cf2d653aecb6caf82f (diff)
started commenting alittle bit, just functions and such
-rw-r--r--sb.c80
1 files changed, 55 insertions, 25 deletions
diff --git a/sb.c b/sb.c
index 881477d..b9fe0ec 100644
--- a/sb.c
+++ b/sb.c
@@ -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();