> +     gtk_menu_shell_append(GTK_MENU_SHELL(submenu), rmemtyln_item);
> +     gtk_menu_shell_append(GTK_MENU_SHELL(submenu), rmwhspln_item);
> +     gtk_menu_shell_append(GTK_MENU_SHELL(submenu), sep2);
> +     gtk_menu_shell_append(GTK_MENU_SHELL(submenu), sortasc_item);
> +     gtk_menu_shell_append(GTK_MENU_SHELL(submenu), sortdesc_item);
> +
> +     gtk_menu_item_set_submenu(GTK_MENU_ITEM(main_menu_item), submenu);
> +
> +     gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu), 
> main_menu_item);
> +
> +
> +     g_signal_connect(rmdupst_item, "activate", 
> G_CALLBACK(action_rmdupst_item), NULL);
> +     g_signal_connect(rmdupln_item, "activate", 
> G_CALLBACK(action_rmdupln_item), NULL);
> +     g_signal_connect(rmunqln_item, "activate", 
> G_CALLBACK(action_rmunqln_item), NULL);
> +     g_signal_connect(rmemtyln_item, "activate", 
> G_CALLBACK(action_rmemtyln_item), NULL);
> +     g_signal_connect(rmwhspln_item, "activate", 
> G_CALLBACK(action_rmwhspln_item), NULL);

you could lower duplication of the wrapper callbacks by having a single 
callback that calls the appropriate function (either passed as parameter [1] or 
referenced as an ID or something), as they all have they all behave the same 
(but the sort ones).
You may or may not want this, it's merely a suggestion.  And it's even a bad 
one if you expect to alter the various functions to receive different 
parameters in the future.

[1] technically in plain C you're not supposed to convert a function pointer to 
a data pointer.  However, GTK depends on this and it effectively works on all 
supported platforms (if not all platforms in general).

---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/pull/324/files#r49946615

Reply via email to