From acf6572fe0c62397fecf2665d2beec00a5d95a8e Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 4 Sep 2019 18:25:48 +0100 Subject: simplify toolbar items macros --- frontends/gtk/scaffolding.c | 14 ++++-- frontends/gtk/toolbar.c | 4 +- frontends/gtk/toolbar_items.h | 112 +++++++++++++++++++++--------------------- 3 files changed, 67 insertions(+), 63 deletions(-) diff --git a/frontends/gtk/scaffolding.c b/frontends/gtk/scaffolding.c index 50e061eb1..7c68b9493 100644 --- a/frontends/gtk/scaffolding.c +++ b/frontends/gtk/scaffolding.c @@ -459,7 +459,7 @@ nsgtk_window_tabs_remove(GtkNotebook *notebook, /** * handle menu activate signals by calling toolbar item activation */ -#define TOOLBAR_ITEM_y(identifier, name) \ +#define TOOLBAR_ITEM_p(identifier, name) \ static gboolean \ nsgtk_on_##name##_activate_menu(GtkMenuItem *widget, gpointer data) \ { \ @@ -467,12 +467,14 @@ nsgtk_on_##name##_activate_menu(GtkMenuItem *widget, gpointer data) \ nsgtk_window_item_activate(gs->top_level, identifier); \ return TRUE; \ } +#define TOOLBAR_ITEM_y(identifier, name) #define TOOLBAR_ITEM_n(identifier, name) -#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate, pass) \ - TOOLBAR_ITEM_ ## pass(identifier, name) +#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate) \ + TOOLBAR_ITEM_ ## activate(identifier, name) #include "gtk/toolbar_items.h" #undef TOOLBAR_ITEM_y #undef TOOLBAR_ITEM_n +#undef TOOLBAR_ITEM_p #undef TOOLBAR_ITEM @@ -890,11 +892,13 @@ create_scaffolding_link_menu(struct nsgtk_scaffolding *g, GtkAccelGroup *group) */ static nserror nsgtk_menu_initialise(struct nsgtk_scaffolding *g) { +#define TOOLBAR_ITEM_p(identifier, name) \ + g->menus[identifier].mhandler = nsgtk_on_##name##_activate_menu; #define TOOLBAR_ITEM_y(identifier, name) \ g->menus[identifier].mhandler = nsgtk_on_##name##_activate_menu; -#define TOOLBAR_ITEM_n(identifier, name) \ +#define TOOLBAR_ITEM_n(identifier, name) \ g->menus[identifier].mhandler = NULL; -#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate, pass) \ +#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate) \ g->menus[identifier].sensitivity = snstvty; \ TOOLBAR_ITEM_ ## activate(identifier, name) #include "gtk/toolbar_items.h" diff --git a/frontends/gtk/toolbar.c b/frontends/gtk/toolbar.c index aa5585bb4..02097ea13 100644 --- a/frontends/gtk/toolbar.c +++ b/frontends/gtk/toolbar.c @@ -202,7 +202,7 @@ int nsgtk_toolbar_get_id_from_widget(GtkWidget *widget, struct nsgtk_scaffolding /* define data plus and data minus handlers */ -#define TOOLBAR_ITEM(identifier, name, sensitivity, clicked, activate, pass)\ +#define TOOLBAR_ITEM(identifier, name, sensitivity, clicked, activate) \ static gboolean \ nsgtk_toolbar_##name##_data_plus(GtkWidget *widget, \ GdkDragContext *cont, \ @@ -3300,7 +3300,7 @@ toolbar_item_create(nsgtk_toolbar_button id, item->bhandler = name##_button_clicked_cb; #define TOOLBAR_ITEM_n(name) \ item->bhandler = NULL; -#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate, pass)\ +#define TOOLBAR_ITEM(identifier, name, snstvty, clicked, activate) \ case identifier: \ item->sensitivity = snstvty; \ item->dataplus = nsgtk_toolbar_##name##_data_plus; \ diff --git a/frontends/gtk/toolbar_items.h b/frontends/gtk/toolbar_items.h index ae5c6bb07..0ed2f2af1 100644 --- a/frontends/gtk/toolbar_items.h +++ b/frontends/gtk/toolbar_items.h @@ -82,68 +82,68 @@ typedef enum { * identifier enum * name * initial sensitivity - * if there is a toolbar click signal handler - * if there is a menu activate signal handler - * if the menu activate signal handler calls the toolbar click handler + * y/n - if there is a toolbar click signal handler + * y/n/p - if there is a menu activate signal handler and if it calls the + * toolbar click handler. */ #ifndef TOOLBAR_ITEM -#define TOOLBAR_ITEM(a, b, c, d, e, f) +#define TOOLBAR_ITEM(a, b, c, d, e) #define TOOLBAR_ITEM_SET #endif -TOOLBAR_ITEM(BACK_BUTTON, back, false, y, y, y) -TOOLBAR_ITEM(HISTORY_BUTTON, history, true, y, n, n) -TOOLBAR_ITEM(FORWARD_BUTTON, forward, false, y, y, y) -TOOLBAR_ITEM(STOP_BUTTON, stop, false, y, y, y) -TOOLBAR_ITEM(RELOAD_BUTTON, reload, true, y, y, y) -TOOLBAR_ITEM(HOME_BUTTON, home, true, y, y, y) -TOOLBAR_ITEM(URL_BAR_ITEM, url_bar, true, n, n, n) -TOOLBAR_ITEM(WEBSEARCH_ITEM, websearch, true, n, n, n) -TOOLBAR_ITEM(THROBBER_ITEM, throbber, true, n, n, n) -TOOLBAR_ITEM(NEWWINDOW_BUTTON, newwindow, true, y, y, y) -TOOLBAR_ITEM(NEWTAB_BUTTON, newtab, true, y, y, y) -TOOLBAR_ITEM(OPENFILE_BUTTON, openfile, true, y, y, y) -TOOLBAR_ITEM(CLOSETAB_BUTTON, closetab, false, n, y, n) -TOOLBAR_ITEM(CLOSEWINDOW_BUTTON, closewindow, true, y, y, y) -TOOLBAR_ITEM(SAVEPAGE_BUTTON, savepage, true, y, y, y) -TOOLBAR_ITEM(PDF_BUTTON, pdf, false, y, y, y) -TOOLBAR_ITEM(PLAINTEXT_BUTTON, plaintext, true, y, y, y) -TOOLBAR_ITEM(DRAWFILE_BUTTON, drawfile, false, n, n, n) -TOOLBAR_ITEM(POSTSCRIPT_BUTTON, postscript, false, n, n, n) -TOOLBAR_ITEM(PRINTPREVIEW_BUTTON, printpreview, false, n, y, y) -TOOLBAR_ITEM(PRINT_BUTTON, print, true, y, y, y) -TOOLBAR_ITEM(QUIT_BUTTON, quit, true, y, y, y) -TOOLBAR_ITEM(CUT_BUTTON, cut, true, y, y, y) -TOOLBAR_ITEM(COPY_BUTTON, copy, true, y, y, y) -TOOLBAR_ITEM(PASTE_BUTTON, paste, true, y, y, y) -TOOLBAR_ITEM(DELETE_BUTTON, delete, false, y, y, y) -TOOLBAR_ITEM(SELECTALL_BUTTON, selectall, true, y, y, y) -TOOLBAR_ITEM(FIND_BUTTON, find, true, n, y, n) -TOOLBAR_ITEM(PREFERENCES_BUTTON, preferences, true, y, y, y) -TOOLBAR_ITEM(ZOOMPLUS_BUTTON, zoomplus, true, y, y, y) -TOOLBAR_ITEM(ZOOMMINUS_BUTTON, zoomminus, true, y, y, y) -TOOLBAR_ITEM(ZOOMNORMAL_BUTTON, zoomnormal, true, y, y, y) -TOOLBAR_ITEM(FULLSCREEN_BUTTON, fullscreen, true, y, y, y) -TOOLBAR_ITEM(VIEWSOURCE_BUTTON, viewsource, true, y, y, y) -TOOLBAR_ITEM(DOWNLOADS_BUTTON, downloads, true, y, y, y) -TOOLBAR_ITEM(SAVEWINDOWSIZE_BUTTON, savewindowsize, true, y, y, y) -TOOLBAR_ITEM(TOGGLEDEBUGGING_BUTTON, toggledebugging, true, y, y, y) -TOOLBAR_ITEM(SAVEBOXTREE_BUTTON, debugboxtree, true, y, y, y) -TOOLBAR_ITEM(SAVEDOMTREE_BUTTON, debugdomtree, true, y, y, y) -TOOLBAR_ITEM(LOCALHISTORY_BUTTON, localhistory, true, y, y, y) -TOOLBAR_ITEM(GLOBALHISTORY_BUTTON, globalhistory, true, y, y, y) -TOOLBAR_ITEM(ADDBOOKMARKS_BUTTON, addbookmarks, true, y, y, y) -TOOLBAR_ITEM(SHOWBOOKMARKS_BUTTON, showbookmarks, true, y, y, y) -TOOLBAR_ITEM(SHOWCOOKIES_BUTTON, showcookies, true, y, y, y) -TOOLBAR_ITEM(OPENLOCATION_BUTTON, openlocation, true, y, y, y) -TOOLBAR_ITEM(NEXTTAB_BUTTON, nexttab, false, n, y, n) -TOOLBAR_ITEM(PREVTAB_BUTTON, prevtab, false, n, y, n) -TOOLBAR_ITEM(CONTENTS_BUTTON, contents, true, y, y, y) -TOOLBAR_ITEM(GUIDE_BUTTON, guide, true, y, y, y) -TOOLBAR_ITEM(INFO_BUTTON, info, true, y, y, y) -TOOLBAR_ITEM(ABOUT_BUTTON, about, true, y, y, y) -TOOLBAR_ITEM(OPENMENU_BUTTON, openmenu, true, y, n, n) +TOOLBAR_ITEM(BACK_BUTTON, back, false, y, p) +TOOLBAR_ITEM(HISTORY_BUTTON, history, true, y, n) +TOOLBAR_ITEM(FORWARD_BUTTON, forward, false, y, p) +TOOLBAR_ITEM(STOP_BUTTON, stop, false, y, p) +TOOLBAR_ITEM(RELOAD_BUTTON, reload, true, y, p) +TOOLBAR_ITEM(HOME_BUTTON, home, true, y, p) +TOOLBAR_ITEM(URL_BAR_ITEM, url_bar, true, n, n) +TOOLBAR_ITEM(WEBSEARCH_ITEM, websearch, true, n, n) +TOOLBAR_ITEM(THROBBER_ITEM, throbber, true, n, n) +TOOLBAR_ITEM(NEWWINDOW_BUTTON, newwindow, true, y, p) +TOOLBAR_ITEM(NEWTAB_BUTTON, newtab, true, y, p) +TOOLBAR_ITEM(OPENFILE_BUTTON, openfile, true, y, p) +TOOLBAR_ITEM(CLOSETAB_BUTTON, closetab, false, n, y) +TOOLBAR_ITEM(CLOSEWINDOW_BUTTON, closewindow, true, y, p) +TOOLBAR_ITEM(SAVEPAGE_BUTTON, savepage, true, y, p) +TOOLBAR_ITEM(PDF_BUTTON, pdf, false, y, p) +TOOLBAR_ITEM(PLAINTEXT_BUTTON, plaintext, true, y, p) +TOOLBAR_ITEM(DRAWFILE_BUTTON, drawfile, false, n, n) +TOOLBAR_ITEM(POSTSCRIPT_BUTTON, postscript, false, n, n) +TOOLBAR_ITEM(PRINTPREVIEW_BUTTON, printpreview, false, n, p) +TOOLBAR_ITEM(PRINT_BUTTON, print, true, y, p) +TOOLBAR_ITEM(QUIT_BUTTON, quit, true, y, p) +TOOLBAR_ITEM(CUT_BUTTON, cut, true, y, p) +TOOLBAR_ITEM(COPY_BUTTON, copy, true, y, p) +TOOLBAR_ITEM(PASTE_BUTTON, paste, true, y, p) +TOOLBAR_ITEM(DELETE_BUTTON, delete, false, y, p) +TOOLBAR_ITEM(SELECTALL_BUTTON, selectall, true, y, p) +TOOLBAR_ITEM(FIND_BUTTON, find, true, n, y) +TOOLBAR_ITEM(PREFERENCES_BUTTON, preferences, true, y, p) +TOOLBAR_ITEM(ZOOMPLUS_BUTTON, zoomplus, true, y, p) +TOOLBAR_ITEM(ZOOMMINUS_BUTTON, zoomminus, true, y, p) +TOOLBAR_ITEM(ZOOMNORMAL_BUTTON, zoomnormal, true, y, p) +TOOLBAR_ITEM(FULLSCREEN_BUTTON, fullscreen, true, y, p) +TOOLBAR_ITEM(VIEWSOURCE_BUTTON, viewsource, true, y, p) +TOOLBAR_ITEM(DOWNLOADS_BUTTON, downloads, true, y, p) +TOOLBAR_ITEM(SAVEWINDOWSIZE_BUTTON, savewindowsize, true, y, p) +TOOLBAR_ITEM(TOGGLEDEBUGGING_BUTTON, toggledebugging, true, y, p) +TOOLBAR_ITEM(SAVEBOXTREE_BUTTON, debugboxtree, true, y, p) +TOOLBAR_ITEM(SAVEDOMTREE_BUTTON, debugdomtree, true, y, p) +TOOLBAR_ITEM(LOCALHISTORY_BUTTON, localhistory, true, y, p) +TOOLBAR_ITEM(GLOBALHISTORY_BUTTON, globalhistory, true, y, p) +TOOLBAR_ITEM(ADDBOOKMARKS_BUTTON, addbookmarks, true, y, p) +TOOLBAR_ITEM(SHOWBOOKMARKS_BUTTON, showbookmarks, true, y, p) +TOOLBAR_ITEM(SHOWCOOKIES_BUTTON, showcookies, true, y, p) +TOOLBAR_ITEM(OPENLOCATION_BUTTON, openlocation, true, y, p) +TOOLBAR_ITEM(NEXTTAB_BUTTON, nexttab, false, n, y) +TOOLBAR_ITEM(PREVTAB_BUTTON, prevtab, false, n, y) +TOOLBAR_ITEM(CONTENTS_BUTTON, contents, true, y, p) +TOOLBAR_ITEM(GUIDE_BUTTON, guide, true, y, p) +TOOLBAR_ITEM(INFO_BUTTON, info, true, y, p) +TOOLBAR_ITEM(ABOUT_BUTTON, about, true, y, p) +TOOLBAR_ITEM(OPENMENU_BUTTON, openmenu, true, y, n) #ifdef TOOLBAR_ITEM_SET #undef TOOLBAR_ITEM -- cgit v1.2.3