summaryrefslogtreecommitdiff
path: root/frontends/gtk/scaffolding.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2019-08-30 12:20:01 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2019-09-21 10:53:41 +0100
commite36338b6177df9617c89e2eae4f3fcb0a77d7b5b (patch)
tree4991936c8c0424d7f3677e098e693cca6362882f /frontends/gtk/scaffolding.c
parent08d7c55cc536211784a24df179719a802435ff0b (diff)
downloadnetsurf-e36338b6177df9617c89e2eae4f3fcb0a77d7b5b.tar.gz
netsurf-e36338b6177df9617c89e2eae4f3fcb0a77d7b5b.tar.bz2
complete toolbar button click handler implementation
Diffstat (limited to 'frontends/gtk/scaffolding.c')
-rw-r--r--frontends/gtk/scaffolding.c261
1 files changed, 49 insertions, 212 deletions
diff --git a/frontends/gtk/scaffolding.c b/frontends/gtk/scaffolding.c
index 62b9c4f38..d7e7d5903 100644
--- a/frontends/gtk/scaffolding.c
+++ b/frontends/gtk/scaffolding.c
@@ -90,10 +90,6 @@ static gboolean nsgtk_on_##q##_activate_menu(GtkMenuItem *widget, gpointer data)
static gboolean nsgtk_on_##q##_activate(struct nsgtk_scaffolding *g)
-/** Macro to define a handler for button events. */
-#define BUTTONHANDLER(q)\
-static gboolean nsgtk_on_##q##_activate(GtkButton *widget, gpointer data)
-
/**
* handle menu activate signals by calling toolbar item activation
*/
@@ -574,41 +570,6 @@ nsgtk_window_tabs_remove(GtkNotebook *notebook,
nsgtk_scaffolding_set_sensitivity(gs);
}
-/**
- * Handle opening a file path.
- *
- * \param filename The filename to open.
- */
-static void nsgtk_openfile_open(const char *filename)
-{
- struct browser_window *bw;
- char *urltxt;
- nsurl *url;
- nserror error;
-
- bw = nsgtk_get_browser_window(scaf_current->top_level);
-
- urltxt = malloc(strlen(filename) + FILE_SCHEME_PREFIX_LEN + 1);
-
- if (urltxt != NULL) {
- sprintf(urltxt, FILE_SCHEME_PREFIX"%s", filename);
-
- error = nsurl_create(urltxt, &url);
- if (error != NSERROR_OK) {
- nsgtk_warning(messages_get_errorcode(error), 0);
- } else {
- browser_window_navigate(bw,
- url,
- NULL,
- BW_NAVIGATE_HISTORY,
- NULL,
- NULL,
- NULL);
- nsurl_unref(url);
- }
- free(urltxt);
- }
-}
/* signal handlers for menu entries */
@@ -967,113 +928,46 @@ MENUHANDLER(reload, RELOAD_BUTTON);
*/
MENUHANDLER(back, BACK_BUTTON);
+/**
+ * menu signal handler for activation on forward item
+ */
+MENUHANDLER(forward, FORWARD_BUTTON);
-MULTIHANDLER(forward)
-{
- struct browser_window *bw =
- nsgtk_get_browser_window(g->top_level);
-
- if ((bw == NULL) || (!browser_window_history_forward_available(bw)))
- return TRUE;
-
- /* clear potential search effects */
- browser_window_search_clear(bw);
-
- browser_window_history_forward(bw, false);
- scaffolding_update_context(g);
-
- return TRUE;
-}
-
-MULTIHANDLER(home)
-{
- static const char *addr = NETSURF_HOMEPAGE;
- struct browser_window *bw = nsgtk_get_browser_window(g->top_level);
- nsurl *url;
- nserror error;
-
- if (nsoption_charp(homepage_url) != NULL) {
- addr = nsoption_charp(homepage_url);
- }
-
- error = nsurl_create(addr, &url);
- if (error != NSERROR_OK) {
- nsgtk_warning(messages_get_errorcode(error), 0);
- } else {
- browser_window_navigate(bw,
- url,
- NULL,
- BW_NAVIGATE_HISTORY,
- NULL,
- NULL,
- NULL);
- nsurl_unref(url);
- }
-
- return TRUE;
-}
-
-MULTIHANDLER(localhistory)
-{
- struct browser_window *bw = nsgtk_get_browser_window(g->top_level);
- nserror res;
+/**
+ * menu signal handler for activation on home item
+ */
+MENUHANDLER(home, HOME_BUTTON);
- res = nsgtk_local_history_present(g->window, bw);
- if (res != NSERROR_OK) {
- NSLOG(netsurf, INFO,
- "Unable to initialise local history window.");
- }
- return TRUE;
-}
+/**
+ * menu signal handler for activation on localhistory item
+ */
+MENUHANDLER(localhistory, LOCALHISTORY_BUTTON);
-MULTIHANDLER(globalhistory)
-{
- nserror res;
- res = nsgtk_global_history_present();
- if (res != NSERROR_OK) {
- NSLOG(netsurf, INFO,
- "Unable to initialise global history window.");
- }
- return TRUE;
-}
+/**
+ * menu signal handler for activation on globalhistory item
+ */
+MENUHANDLER(globalhistory, GLOBALHISTORY_BUTTON);
-MULTIHANDLER(addbookmarks)
-{
- struct browser_window *bw = nsgtk_get_browser_window(g->top_level);
+/**
+ * menu signal handler for activation on addbookmarks item
+ */
+MENUHANDLER(addbookmarks, ADDBOOKMARKS_BUTTON);
- if (bw == NULL || !browser_window_has_content(bw))
- return TRUE;
- hotlist_add_url(browser_window_access_url(bw));
- return TRUE;
-}
+/**
+ * menu signal handler for activation on showbookmarks item
+ */
+MENUHANDLER(showbookmarks, SHOWBOOKMARKS_BUTTON);
-MULTIHANDLER(showbookmarks)
-{
- nserror res;
- res = nsgtk_hotlist_present();
- if (res != NSERROR_OK) {
- NSLOG(netsurf, INFO, "Unable to initialise bookmark window.");
- }
- return TRUE;
-}
+/**
+ * menu signal handler for activation on showcookies item
+ */
+MENUHANDLER(showcookies, SHOWCOOKIES_BUTTON);
-MULTIHANDLER(showcookies)
-{
- nserror res;
- res = nsgtk_cookies_present();
- if (res != NSERROR_OK) {
- NSLOG(netsurf, INFO, "Unable to initialise cookies window.");
- }
- return TRUE;
-}
+/**
+ * menu signal handler for activation on showcookies item
+ */
+MENUHANDLER(openlocation, OPENLOCATION_BUTTON);
-MULTIHANDLER(openlocation)
-{
- #if 0
- gtk_widget_grab_focus(GTK_WIDGET(g->url_bar));
- #endif
- return TRUE;
-}
MULTIHANDLER(nexttab)
{
@@ -1101,86 +995,29 @@ nsgtk_on_closetab_activate_menu(GtkMenuItem *widget, gpointer data)
return TRUE;
}
-MULTIHANDLER(contents)
-{
- struct browser_window *bw = nsgtk_get_browser_window(g->top_level);
- nsurl *url;
- nserror error;
-
- error = nsurl_create("http://www.netsurf-browser.org/documentation/", &url);
- if (error != NSERROR_OK) {
- nsgtk_warning(messages_get_errorcode(error), 0);
- } else {
- browser_window_navigate(bw,
- url,
- NULL,
- BW_NAVIGATE_HISTORY,
- NULL,
- NULL,
- NULL);
- nsurl_unref(url);
- }
-
- return TRUE;
-}
-
-MULTIHANDLER(guide)
-{
- struct browser_window *bw = nsgtk_get_browser_window(g->top_level);
- nsurl *url;
-
- if (nsurl_create("http://www.netsurf-browser.org/documentation/guide", &url) != NSERROR_OK) {
- nsgtk_warning("NoMemory", 0);
- } else {
- browser_window_navigate(bw,
- url,
- NULL,
- BW_NAVIGATE_HISTORY,
- NULL,
- NULL,
- NULL);
- nsurl_unref(url);
- }
-
- return TRUE;
-}
-
-MULTIHANDLER(info)
-{
- struct browser_window *bw = nsgtk_get_browser_window(g->top_level);
- nsurl *url;
+/**
+ * menu signal handler for activation on showcookies item
+ */
+MENUHANDLER(contents, CONTENTS_BUTTON);
- if (nsurl_create("http://www.netsurf-browser.org/documentation/info", &url) != NSERROR_OK) {
- nsgtk_warning("NoMemory", 0);
- } else {
- browser_window_navigate(bw,
- url,
- NULL,
- BW_NAVIGATE_HISTORY,
- NULL,
- NULL,
- NULL);
- nsurl_unref(url);
- }
+/**
+ * menu signal handler for activation on showcookies item
+ */
+MENUHANDLER(guide, GUIDE_BUTTON);
- return TRUE;
-}
+/**
+ * menu signal handler for activation on showcookies item
+ */
+MENUHANDLER(info, INFO_BUTTON);
-MULTIHANDLER(about)
-{
- nsgtk_about_dialog_init(g->window);
- return TRUE;
-}
+/**
+ * menu signal handler for activation on showcookies item
+ */
+MENUHANDLER(about, ABOUT_BUTTON);
-BUTTONHANDLER(history)
-{
- struct nsgtk_scaffolding *g = (struct nsgtk_scaffolding *)data;
- return nsgtk_on_localhistory_activate(g);
-}
#undef MULTIHANDLER
-#undef CHECKHANDLER
-#undef BUTTONHANDLER
+#undef MENUHANDLER
/**
* attach gtk signal handlers for menus