From 8c189045d953c4dc42076776d6f853a692421a42 Mon Sep 17 00:00:00 2001 From: mutantturkey Date: Tue, 17 May 2011 23:44:15 -0400 Subject: move cb_keypress to callbacks.c, fixed a few warnings, added functions to sb.h --- callbacks.c | 39 ++++++++++++++++++++++++++++++++++++++- callbacks.h | 1 + defaults.h | 27 +++++++++++++++++++++++++++ sb.c | 36 ------------------------------------ sb.h | 3 ++- 5 files changed, 68 insertions(+), 38 deletions(-) diff --git a/callbacks.c b/callbacks.c index 27bdaf1..23c745b 100644 --- a/callbacks.c +++ b/callbacks.c @@ -7,8 +7,44 @@ #include #include "defaults.h" #include "callbacks.h" - #include "sb.h" + + +/* 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_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_KEY_comma: cb_go(FALSE); return TRUE; break; + case GDK_KEY_period: cb_go(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; + case GDK_Page_Down: tab_switch(TRUE); return TRUE; break; + case GDK_t: tab_new(FALSE); gtk_widget_grab_focus(w.bar); return TRUE; break; + case GDK_w: tab_close(); return TRUE; break; + case GDK_bracketright: tab_zoom(TRUE); return TRUE; break; + case GDK_bracketleft: tab_zoom(FALSE); return TRUE; break; + case GDK_r: tab_reload(); return TRUE; break; + case GDK_s: tab_view_source(); return TRUE; break; + case GDK_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_Escape) { gtk_widget_grab_focus(GTK_WIDGET(w.notebook)); return TRUE; } +if (gtk_widget_has_focus(w.search)) { + if (g == GDK_Escape) { show_search(FALSE); focus_view(); return TRUE; } + if ((g == GDK_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) { const gchar *c = webkit_download_get_uri(WEBKIT_DOWNLOAD(d)); @@ -39,6 +75,7 @@ if (b) { webkit_web_view_go_forward(t->view); } else { webkit_web_view_go_back(t->view); } } + /* when the page load is commited, call this function */ void cb_commit_load (WebKitWebView* page, WebKitWebFrame* frame, tab *t) { diff --git a/callbacks.h b/callbacks.h index bfd3511..b085616 100644 --- a/callbacks.h +++ b/callbacks.h @@ -1,3 +1,4 @@ +gboolean cb_keypress(GtkWidget *widget, GdkEventKey *event); void cb_entry(GtkWidget* entry, gpointer data); void cb_go(gboolean b); void cb_download(WebKitWebView *web_view, GObject *download, gpointer user_data); diff --git a/defaults.h b/defaults.h index 29a7934..82051c1 100644 --- a/defaults.h +++ b/defaults.h @@ -9,3 +9,30 @@ #define DEFAULT_HEIGHT 900 #define DEFAULT_WIDTH 800 +GQuark term_data_id; +#define get_tab(x, page_idx ) (struct tab*)g_object_get_qdata(G_OBJECT(gtk_notebook_get_nth_page(w.notebook, page_idx ) ), term_data_id); + +typedef struct tab { + GtkWidget *scroll; + GtkWidget *label; + gchar *main_title; + gchar *url_entry; + gint load_progress; + guint status_context_id; + WebKitWebView *view; + } tab; + +struct { + WebKitWebSettings *webkitsettings; + WebKitWebWindowFeatures *webkitwindowfeatures; + SoupSession *session; + SoupCookieJar *jar; + gboolean hide; + GtkWidget *win; + GtkWidget *bar; + GtkWidget *search; + GtkWidget *vbox; + GtkNotebook *notebook; + GtkWidget *status; + GtkWidget *status_info; } w; + diff --git a/sb.c b/sb.c index 6486418..0c30802 100644 --- a/sb.c +++ b/sb.c @@ -300,47 +300,11 @@ gtk_widget_grab_focus(w.bar); } -/* 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_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_KEY_comma: cb_go(FALSE); return TRUE; break; - case GDK_KEY_period: cb_go(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; - case GDK_Page_Down: tab_switch(TRUE); return TRUE; break; - case GDK_t: tab_new(FALSE); gtk_widget_grab_focus(w.bar); return TRUE; break; - case GDK_w: tab_close(); return TRUE; break; - case GDK_bracketright: tab_zoom(TRUE); return TRUE; break; - case GDK_bracketleft: tab_zoom(FALSE); return TRUE; break; - case GDK_r: tab_reload(); return TRUE; break; - case GDK_s: tab_view_source(); return TRUE; break; - case GDK_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_Escape) { gtk_widget_grab_focus(GTK_WIDGET(w.notebook)); return TRUE; } -if (gtk_widget_has_focus(w.search)) { - if (g == GDK_Escape) { show_search(FALSE); focus_view(); return TRUE; } - if ((g == GDK_Return) && (event->state & GDK_MOD1_MASK) == GDK_MOD1_MASK) { search(NULL, FALSE); } -} -return FALSE; -} - /* main function */ int main (int argc, char* argv[]) { gtk_init (&argc, &argv); window_setup(); -GQuark term_data_id = 0; if (argc == 2) { load_uri(argv[1]); } gtk_main(); diff --git a/sb.h b/sb.h index e5b6bec..f69bd59 100644 --- a/sb.h +++ b/sb.h @@ -1,3 +1,5 @@ +void history_command(); +void grab_bar(); void link_hover(WebKitWebView* page, const gchar* title, const gchar* link, gpointer data); void load_uri(gchar *uri); void tab_new(gboolean b); @@ -14,4 +16,3 @@ void show_search(gboolean b); void focus_view(); WebKitWebView * tab_new_requested(WebKitWebView *v, WebKitWebFrame *f); void tab_switch(gboolean b); -gboolean cb_keypress(GtkWidget *widget, GdkEventKey *event); -- cgit v1.2.3