aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormutantturkey <crazycal00@gmail.com>2011-05-07 19:07:13 -0400
committermutantturkey <crazycal00@gmail.com>2011-05-07 19:07:13 -0400
commit94d191729660740c682ece9c0223c172d1f825bf (patch)
tree01e7bf0fa185a8e0022356f11a97808695c8bcbd
parentf408157127f3177fe0aeeb4a553882ca2c3521b6 (diff)
changed callback function to new naming scheme, fixed the dumb segfault (still gotta work that out), and cast w.notebook as GtkNotebook, so we don't have to recast it everytime because it was a GtkWidget before
-rw-r--r--sb.c79
1 files changed, 40 insertions, 39 deletions
diff --git a/sb.c b/sb.c
index 701271c..5b64bf3 100644
--- a/sb.c
+++ b/sb.c
@@ -32,7 +32,7 @@ static struct {
GtkWidget *bar;
GtkWidget *search;
GtkWidget *vbox;
- GtkWidget *notebook;
+ GtkNotebook *notebook;
GtkWidget *status; } w;
#define get_tab(x, page_idx ) (struct tab*)g_object_get_qdata(G_OBJECT( gtk_notebook_get_nth_page( (GtkNotebook*)w.notebook, page_idx ) ), term_data_id);
@@ -42,7 +42,7 @@ static void cb_entry(GtkWidget* entry, gpointer data);
static void cb_go(gboolean b);
static void cb_download(WebKitWebView *web_view, GObject *download, gpointer user_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 cb_title_changed(WebKitWebView *v, WebKitWebFrame *f, const char *title, tab *t);
static void load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, tab *t);
static void load_uri(gchar *uri);
static void tab_new(gboolean b);
@@ -63,14 +63,15 @@ gboolean cb_keypress(GtkWidget *widget, GdkEventKey *event);
gchar* tab_get_tab_postition() {
gchar *page_info = NULL;
- sprintf(page_info, "[ %d / %d ]", gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)), gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)));
+
+ sprintf(page_info, "[ %d / %d ]", gtk_notebook_get_current_page(w.notebook), gtk_notebook_get_n_pages(w.notebook));
puts(page_info);
return(page_info);
}
static void search(GtkEntry *entry, gboolean b) {
- struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)));
+ struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook));
webkit_web_view_search_text(t->view, gtk_entry_get_text(GTK_ENTRY(w.search)), FALSE, b, TRUE);
}
@@ -88,7 +89,7 @@ if(b) {
/* Called when URL is returned from the entry bar */
static void cb_entry (GtkWidget* entry, gpointer data) {
-struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)));
+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));
@@ -102,23 +103,23 @@ w.hide = FALSE;
/* Basic reload function */
static void tab_reload() {
-struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)));
+struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(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)));
+struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook));
+gtk_notebook_remove_page(w.notebook, gtk_notebook_get_current_page(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))));
+if(gtk_notebook_get_n_pages(w.notebook) == 1) {
+ gtk_notebook_set_show_tabs(w.notebook, FALSE);
+ gtk_widget_grab_focus(gtk_notebook_get_nth_page(w.notebook, gtk_notebook_get_current_page(w.notebook)));
focus_view();
}
-if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) == 0) { gtk_main_quit(); }
+if (gtk_notebook_get_n_pages(w.notebook) == 0) { gtk_main_quit(); }
}
@@ -138,11 +139,11 @@ 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) {
+static void cb_title_changed(WebKitWebView *v, WebKitWebFrame *f, const char *title, tab *t) {
gchar *tabtitle;
-if (gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)) == gtk_notebook_page_num(GTK_NOTEBOOK(w.notebook), t->scroll)) {
-gtk_window_set_title(GTK_WINDOW(w.win), g_strconcat(title,tab_get_tab_postition(), NULL));
+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, "..."); }
@@ -157,7 +158,7 @@ static void load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, tab *t)
const gchar* uri = webkit_web_frame_get_uri(frame);
-if (gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)) == gtk_notebook_page_num(GTK_NOTEBOOK(w.notebook), t->scroll)) {
+if (gtk_notebook_get_current_page(w.notebook) == gtk_notebook_page_num(w.notebook, t->scroll)) {
gtk_entry_set_text (GTK_ENTRY (w.bar), uri);
}
FILE *history = fopen(g_build_filename(g_get_home_dir(), DEFAULT_HISTORY_FILE, NULL), "a+");
@@ -182,7 +183,7 @@ 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)));
+struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook));
u = g_strrstr(uri, "://") ? g_strdup(uri)
: g_strdup_printf("http://%s", uri);
webkit_web_view_load_uri(t->view, u);
@@ -192,7 +193,7 @@ 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)));
+ struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook));
if (b) { webkit_web_view_set_zoom_level(t->view, (webkit_web_view_get_zoom_level(t->view) + DEFAULT_ZOOM_SIZE)); }
else { webkit_web_view_set_zoom_level(t->view, (webkit_web_view_get_zoom_level(t->view) - DEFAULT_ZOOM_SIZE)); }
}
@@ -210,7 +211,7 @@ if(!gtk_widget_get_visible(w.bar)) {
/* go forward or backwards, simple enough */
static void cb_go(gboolean b) {
-struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)));
+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); }
}
@@ -221,29 +222,29 @@ 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);
+ gtk_notebook_set_show_tabs(w.notebook, FALSE);
}
else {
gtk_widget_show_all(w.vbox);
gtk_widget_hide(w.search);
- if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) == 1) { } else { gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), TRUE);}
+ if (gtk_notebook_get_n_pages(w.notebook) == 1) { } else { gtk_notebook_set_show_tabs(w.notebook, TRUE);}
}
}
/* rotate tabs forward or backwards */
static void tab_switch(gboolean b) {
-gint(current) = gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook));
+gint(current) = gtk_notebook_get_current_page(w.notebook);
if(b) {
- if (current == gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) -1 ) { current = 0; }
+ if (current == gtk_notebook_get_n_pages(w.notebook) -1 ) { current = 0; }
else { current = current + 1;}
}
else {
- if (current == 0) { current = gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) - 1; }
+ if (current == 0) { current = gtk_notebook_get_n_pages(w.notebook) - 1; }
else {current = current -1; }
}
- gtk_notebook_set_current_page(GTK_NOTEBOOK(w.notebook), current);
+ gtk_notebook_set_current_page(w.notebook, current);
}
@@ -251,7 +252,7 @@ gint(current) = gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook));
WebKitWebView * tab_new_requested(WebKitWebView *v, WebKitWebFrame *f) {
puts("lol");
tab_new(FALSE);
- struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)));
+ struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook));
return t->view;
}
@@ -259,7 +260,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)));
+ struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook));
if(webkit_web_view_get_view_source_mode(t->view)) {
webkit_web_view_set_view_source_mode(t->view, FALSE);
@@ -287,13 +288,13 @@ t->label = gtk_label_new("new tab");
/*reset status bar*/
gtk_container_add(GTK_CONTAINER(t->scroll), GTK_WIDGET(t->view));
-int index = gtk_notebook_append_page(GTK_NOTEBOOK(w.notebook), t->scroll, t->label);
-gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(w.notebook), t->scroll, TRUE);
+int index = gtk_notebook_append_page(w.notebook, t->scroll, t->label);
+gtk_notebook_set_tab_reorderable(w.notebook, t->scroll, TRUE);
-//if ( gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) == 1) { }
+//if ( gtk_notebook_get_n_pages(w.notebook) == 1) { }
if (index == 0) {
-gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), FALSE);
-} else { gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), TRUE); }
+gtk_notebook_set_show_tabs(w.notebook, FALSE);
+} else { gtk_notebook_set_show_tabs(w.notebook, TRUE); }
g_object_set(G_OBJECT(w.webkitsettings), "enable-page-cache", TRUE, NULL);
g_object_set(G_OBJECT(w.webkitwindowfeatures), "scrollbar-visible", FALSE, NULL);
@@ -306,7 +307,7 @@ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(t->scroll), GTK_POLICY_NEVER,
webkit_web_view_set_zoom_level(t->view, .80);
/*callbacks*/
-g_signal_connect (G_OBJECT (t->view), "title-changed", G_CALLBACK (title_change_cb), t);
+g_signal_connect (G_OBJECT (t->view), "title-changed", G_CALLBACK (cb_title_changed), t);
g_signal_connect (G_OBJECT (t->view), "load-committed", G_CALLBACK (load_commit_cb), t);
g_signal_connect (G_OBJECT (t->view), "hovering-over-link", G_CALLBACK (link_hover), t->view);
g_signal_connect (G_OBJECT (t->view), "download-requested", G_CALLBACK (cb_download), t->view);
@@ -317,7 +318,7 @@ g_object_set_qdata_full(G_OBJECT(gtk_notebook_get_nth_page((GtkNotebook*)w.noteb
gtk_widget_show_all(w.win);
gtk_widget_hide(w.search);
-if (!b) { gtk_notebook_set_current_page(GTK_NOTEBOOK(w.notebook), index); }
+if (!b) { gtk_notebook_set_current_page(w.notebook, index); }
gtk_widget_grab_focus(w.bar);
}
@@ -351,7 +352,7 @@ 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)));
+ struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(w.notebook));
gtk_widget_grab_focus(GTK_WIDGET(t->view));
}
@@ -368,13 +369,13 @@ w.search = gtk_entry_new();
w.status = gtk_statusbar_new();
gtk_entry_set_has_frame(GTK_ENTRY(w.bar), FALSE);
-gtk_notebook_set_scrollable(GTK_NOTEBOOK(w.notebook), TRUE) ;
+gtk_notebook_set_scrollable(w.notebook, TRUE) ;
gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(w.status), FALSE);
-gtk_notebook_set_show_border(GTK_NOTEBOOK(w.notebook), FALSE);
-gtk_notebook_set_tab_border(GTK_NOTEBOOK(w.notebook), 0);
+gtk_notebook_set_show_border(w.notebook, FALSE);
+gtk_notebook_set_tab_border(w.notebook, 0);
gtk_box_pack_start(GTK_BOX (w.vbox), w.bar, FALSE, FALSE, 0);
-gtk_box_pack_start(GTK_BOX(w.vbox), w.notebook, TRUE, TRUE, 0);
+gtk_box_pack_start(GTK_BOX(w.vbox), GTK_WIDGET(w.notebook), TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(w.vbox), w.search, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(w.vbox), w.status, FALSE, FALSE, 0);