summaryrefslogtreecommitdiff
path: root/frontends/gtk/scaffolding.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2019-09-03 19:44:51 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2019-09-21 10:53:41 +0100
commit061499eef611ed39831a38384bba42d71d0e58c1 (patch)
tree2d309d69231fdf5c34ad6fde5fad5979d0d5819b /frontends/gtk/scaffolding.c
parent64b2f355dc8b1779996f9cb981b1e9ddebd7d7cd (diff)
downloadnetsurf-061499eef611ed39831a38384bba42d71d0e58c1.tar.gz
netsurf-061499eef611ed39831a38384bba42d71d0e58c1.tar.bz2
set menu activation handler using toolbar items
Diffstat (limited to 'frontends/gtk/scaffolding.c')
-rw-r--r--frontends/gtk/scaffolding.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/frontends/gtk/scaffolding.c b/frontends/gtk/scaffolding.c
index 350d5a986..7432812c8 100644
--- a/frontends/gtk/scaffolding.c
+++ b/frontends/gtk/scaffolding.c
@@ -459,8 +459,8 @@ nsgtk_window_tabs_remove(GtkNotebook *notebook,
/**
* handle menu activate signals by calling toolbar item activation
*/
-#define TOOLBAR_ITEM_y(identifier, name) \
-static gboolean \
+#define TOOLBAR_ITEM_y(identifier, name) \
+ static gboolean \
nsgtk_on_##name##_activate_menu(GtkMenuItem *widget, gpointer data) \
{ \
struct nsgtk_scaffolding *gs = (struct nsgtk_scaffolding *)data;\
@@ -468,8 +468,8 @@ nsgtk_on_##name##_activate_menu(GtkMenuItem *widget, gpointer data) \
return TRUE; \
}
#define TOOLBAR_ITEM_n(identifier, name)
-#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate) \
- TOOLBAR_ITEM_ ## activate(identifier, name)
+#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate, pass) \
+ TOOLBAR_ITEM_ ## pass(identifier, name)
#include "gtk/toolbar_items.h"
#undef TOOLBAR_ITEM_y
#undef TOOLBAR_ITEM_n
@@ -881,40 +881,42 @@ create_scaffolding_link_menu(struct nsgtk_scaffolding *g, GtkAccelGroup *group)
*/
static nserror nsgtk_menu_initialise(struct nsgtk_scaffolding *g)
{
-#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate) \
- g->menus[identifier].sensitivity = snstvty;
+#define TOOLBAR_ITEM_y(identifier, name) \
+ g->menus[identifier].mhandler = nsgtk_on_##name##_activate_menu;
+#define TOOLBAR_ITEM_n(identifier, name) \
+ g->menus[identifier].mhandler = NULL;
+#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate, pass) \
+ g->menus[identifier].sensitivity = snstvty; \
+ TOOLBAR_ITEM_ ## activate(identifier, name)
#include "gtk/toolbar_items.h"
+#undef TOOLBAR_ITEM_y
+#undef TOOLBAR_ITEM_n
#undef TOOLBAR_ITEM
/* items on menubar, burger */
#define ITEM_MAIN(p, q, r) \
- g->menus[p##_BUTTON].mhandler = nsgtk_on_##r##_activate_menu; \
g->menus[p##_BUTTON].main = g->menu_bar->q->r##_menuitem; \
g->menus[p##_BUTTON].burger = g->burger_menu->q->r##_menuitem
/* submenu items on menubar, burger */
#define ITEM_SUB(p, q, r, s) \
- g->menus[p##_BUTTON].mhandler = nsgtk_on_##s##_activate_menu; \
g->menus[p##_BUTTON].main = g->menu_bar->q->r##_submenu->s##_menuitem;\
g->menus[p##_BUTTON].burger = g->burger_menu->q->r##_submenu->s##_menuitem
/* items on menubar, burger and context popup */
#define ITEM_POP(p, q, r) \
- g->menus[p##_BUTTON].mhandler = nsgtk_on_##r##_activate_menu; \
g->menus[p##_BUTTON].main = g->menu_bar->q->r##_menuitem; \
g->menus[p##_BUTTON].burger = g->burger_menu->q->r##_menuitem; \
g->menus[p##_BUTTON].popup = g->popup_menu->r##_menuitem
/* items on menubar, burger and context popup */
#define ITEM_MAINPOP(p, q, r) \
- g->menus[p##_BUTTON].mhandler = nsgtk_on_##r##_activate_menu; \
g->menus[p##_BUTTON].main = g->menu_bar->q->r##_menuitem; \
g->menus[p##_BUTTON].burger = g->burger_menu->q->r##_menuitem; \
g->menus[p##_BUTTON].popup = g->popup_menu->q->r##_menuitem
/* sub submenu items on menubar, burger and context popup */
#define ITEM_SUBPOP(p, q, r, s) \
- g->menus[p##_BUTTON].mhandler = nsgtk_on_##s##_activate_menu; \
g->menus[p##_BUTTON].main = g->menu_bar->q->r##_submenu->s##_menuitem;\
g->menus[p##_BUTTON].burger = g->burger_menu->q->r##_submenu->s##_menuitem; \
g->menus[p##_BUTTON].popup = g->popup_menu->q->r##_submenu->s##_menuitem