Summary Files Commits Branches @commit @diff @stats
path: root / badwolf.c
diff options
context:
space:
mode:
Commit372a6d6508e640121a58f6e83d81f1e8fae2ffde (patch)
Author
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-05-11 04:35:04 +0200
Committer
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-05-11 04:35:04 +0200
Files9ba350a3f64831e29a0b6e54e23d7b6bb7d87666 /badwolf.c
goodwolf-372a6d6508e640121a58f6e83d81f1e8fae2ffde.tar
goodwolf-372a6d6508e640121a58f6e83d81f1e8fae2ffde.tar.gz
goodwolf-372a6d6508e640121a58f6e83d81f1e8fae2ffde.zip
Parent1e28a08d0d719fae0797a184372937400f7926ee (diff)
Add back/forward buttons
1 files changed, 59 insertions, 6 deletions
-rw-r--r--badwolf.c65
diff --git a/badwolf.c b/badwolf.c
index 849d6aa..16970c0 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -54,6 +54,8 @@ static void web_contextCb_download_started(WebKitWebContext *web_context,
static gboolean locationCb_activate(GtkEntry *location, gpointer user_data);
static gboolean javascriptCb_toggled(GtkButton *javascript, gpointer user_data);
static gboolean auto_load_imagesCb_toggled(GtkButton *auto_load_images, gpointer user_data);
+static void backCb_clicked(GtkButton *back, gpointer user_data);
+static void forwardCb_clicked(GtkButton *forward, gpointer user_data);
static gboolean SearchEntryCb_next__match(GtkSearchEntry *search, gpointer user_data);
static gboolean SearchEntryCb_previous__match(GtkSearchEntry *search, gpointer user_data);
static gboolean SearchEntryCb_search__changed(GtkSearchEntry *search, gpointer user_data);
@@ -478,6 +480,24 @@ auto_load_imagesCb_toggled(GtkButton *auto_load_images, gpointer user_data)
return TRUE;
}
+static void
+backCb_clicked(GtkButton *back, gpointer user_data)
+{
+ (void)back;
+ struct Client *browser = (struct Client *)user_data;
+
+ webkit_web_view_go_back(browser->webView);
+}
+
+static void
+forwardCb_clicked(GtkButton *forward, gpointer user_data)
+{
+ (void)forward;
+ struct Client *browser = (struct Client *)user_data;
+
+ webkit_web_view_go_forward(browser->webView);
+}
+
static gboolean
SearchEntryCb_next__match(GtkSearchEntry *search, gpointer user_data)
{
@@ -538,23 +558,39 @@ new_browser(struct Window *window, const gchar *target_url, WebKitWebView *relat
browser->window = window;
browser->box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_set_name(browser->box, "browser__box");
+
+
browser->toolbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_set_name(browser->toolbar, "browser__toolbar");
- browser->location = gtk_entry_new();
- gtk_widget_set_name(browser->location, "browser__location");
+
+ browser->back = gtk_button_new_from_icon_name("go-previous-symbolic", GTK_ICON_SIZE_LARGE_TOOLBAR);
+ gtk_widget_set_name(browser->back, "browser__back");
+
+ browser->forward = gtk_button_new_from_icon_name("go-next-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR);
+ gtk_widget_set_name(browser->forward, "browser__forward");
+
+ GtkWidget *toolbar_separator = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
+
browser->javascript = gtk_toggle_button_new_with_label(_("JS"));
gtk_widget_set_name(browser->javascript, "browser__javascript");
+ gtk_widget_set_tooltip_text(browser->javascript, _("Toggle javascript"));
gtk_button_set_relief(GTK_BUTTON(browser->javascript), GTK_RELIEF_NONE);
+
browser->auto_load_images = gtk_toggle_button_new_with_label(_("IMG"));
gtk_widget_set_name(browser->auto_load_images, "browser__load_images");
+ gtk_widget_set_tooltip_text(browser->auto_load_images, _("Toggle loading images automatically"));
gtk_button_set_relief(GTK_BUTTON(browser->auto_load_images), GTK_RELIEF_NONE);
+ browser->location = gtk_entry_new();
+ gtk_widget_set_name(browser->location, "browser__location");
+
+
browser->statusbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_set_name(browser->statusbar, "browser__statusbar");
- browser->statuslabel = gtk_label_new(NULL);
- gtk_widget_set_name(browser->statuslabel, "browser__statuslabel");
browser->search = gtk_search_entry_new();
gtk_widget_set_name(browser->search, "browser__search");
+ browser->statuslabel = gtk_label_new(NULL);
+ gtk_widget_set_name(browser->statuslabel, "browser__statuslabel");
setenv("GTK_THEME", ":light", 0);
@@ -593,10 +629,23 @@ new_browser(struct Window *window, const gchar *target_url, WebKitWebView *relat
NULL));
gtk_widget_set_name(GTK_WIDGET(browser->webView), "browser__webView");
- gtk_widget_set_tooltip_text(browser->javascript, _("Toggle javascript"));
- gtk_widget_set_tooltip_text(browser->auto_load_images, _("Toggle loading images automatically"));
gtk_box_pack_start(GTK_BOX(browser->toolbar),
+ GTK_WIDGET(browser->back),
+ FALSE,
+ FALSE,
+ BADWOLF_TOOLBAR_PADDING);
+ gtk_box_pack_start(GTK_BOX(browser->toolbar),
+ GTK_WIDGET(browser->forward),
+ FALSE,
+ FALSE,
+ BADWOLF_TOOLBAR_PADDING);
+ gtk_box_pack_start(GTK_BOX(browser->toolbar),
+ toolbar_separator,
+ FALSE,
+ FALSE,
+ BADWOLF_TOOLBAR_SEPARATOR_PADDING);
+ gtk_box_pack_start(GTK_BOX(browser->toolbar),
GTK_WIDGET(browser->javascript),
FALSE,
FALSE,
@@ -644,6 +693,10 @@ new_browser(struct Window *window, const gchar *target_url, WebKitWebView *relat
gtk_entry_set_placeholder_text(GTK_ENTRY(browser->search), _("search in current page"));
+ /* signals for back/forward buttons */
+ g_signal_connect(browser->back, "clicked", G_CALLBACK(backCb_clicked), browser);
+ g_signal_connect(browser->forward, "clicked", G_CALLBACK(forwardCb_clicked), browser);
+
/* signals for location entry widget */
g_signal_connect(browser->location, "activate", G_CALLBACK(locationCb_activate), browser);