[geany/geany-plugins] f05a05: lineoperations: Make wrapper callbacks more generic
Colomban Wendling
git-noreply at xxxxx
Sun Jan 17 14:18:54 UTC 2016
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Sun, 17 Jan 2016 14:18:54 UTC
Commit: f05a05b67e8451d619ec90aa41ebb7c54f6b0039
https://github.com/geany/geany-plugins/commit/f05a05b67e8451d619ec90aa41ebb7c54f6b0039
Log Message:
-----------
lineoperations: Make wrapper callbacks more generic
Modified Paths:
--------------
lineoperations/src/lineoperations.c
Modified: lineoperations/src/lineoperations.c
92 lines changed, 23 insertions(+), 69 deletions(-)
===================================================================
@@ -27,80 +27,26 @@
static GtkWidget *main_menu_item = NULL;
-/* Remove Duplicate Lines, sorted */
+/* call custom func */
static void
-action_rmdupst_item(GtkMenuItem *menuitem, gpointer gdata)
+action_func_item(GtkMenuItem *menuitem, gpointer gdata)
{
+ void (*func)(GeanyDocument *) = gdata;
GeanyDocument *doc = NULL;
doc = document_get_current();
- if(doc) rmdupst(doc);
+ if(doc) func(doc);
}
-/* Remove Duplicate Lines, ordered */
+/* Sort Lines */
static void
-action_rmdupln_item(GtkMenuItem *menuitem, gpointer gdata)
+action_sort_item(GtkMenuItem *menuitem, gpointer gdata)
{
GeanyDocument *doc = NULL;
doc = document_get_current();
- if(doc) rmdupln(doc);
-}
-
-
-/* Remove Unique Lines */
-static void
-action_rmunqln_item(GtkMenuItem *menuitem, gpointer gdata)
-{
- GeanyDocument *doc = NULL;
- doc = document_get_current();
-
- if(doc) rmunqln(doc);
-}
-
-
-/* Remove Empty Lines */
-static void
-action_rmemtyln_item(GtkMenuItem *menuitem, gpointer gdata)
-{
- GeanyDocument *doc = NULL;
- doc = document_get_current();
-
- if(doc) rmemtyln(doc);
-}
-
-
-/* Remove Whitespace Lines */
-static void
-action_rmwhspln_item(GtkMenuItem *menuitem, gpointer gdata)
-{
- GeanyDocument *doc = NULL;
- doc = document_get_current();
-
- if(doc) rmwhspln(doc);
-}
-
-
-/* Sort Lines Ascending */
-static void
-action_sortasc_item(GtkMenuItem *menuitem, gpointer gdata)
-{
- GeanyDocument *doc = NULL;
- doc = document_get_current();
-
- if(doc) sortlines(doc, 1);
-}
-
-
-/* Sort Lines Descending */
-static void
-action_sortdesc_item(GtkMenuItem *menuitem, gpointer gdata)
-{
- GeanyDocument *doc = NULL;
- doc = document_get_current();
-
- if(doc) sortlines(doc, 0);
+ if(doc) sortlines(doc, GPOINTER_TO_INT(gdata));
}
@@ -114,16 +60,24 @@ lo_init(GeanyPlugin *plugin, gpointer gdata)
struct {
const gchar *label;
GCallback cb_activate;
+ gpointer cb_data;
} menu_items[] = {
- { N_("Remove Duplicate Lines, _Sorted"), G_CALLBACK(action_rmdupst_item) },
- { N_("Remove Duplicate Lines, _Ordered"), G_CALLBACK(action_rmdupln_item) },
- { N_("Remove _Unique Lines"), G_CALLBACK(action_rmunqln_item) },
+ { N_("Remove Duplicate Lines, _Sorted"),
+ G_CALLBACK(action_func_item), (gpointer) rmdupst },
+ { N_("Remove Duplicate Lines, _Ordered"),
+ G_CALLBACK(action_func_item), (gpointer) rmdupln },
+ { N_("Remove _Unique Lines"),
+ G_CALLBACK(action_func_item), (gpointer) rmunqln },
{ NULL },
- { N_("Remove _Empty Lines"), G_CALLBACK(action_rmemtyln_item) },
- { N_("Remove _Whitespace Lines"), G_CALLBACK(action_rmwhspln_item) },
+ { N_("Remove _Empty Lines"),
+ G_CALLBACK(action_func_item), (gpointer) rmemtyln },
+ { N_("Remove _Whitespace Lines"),
+ G_CALLBACK(action_func_item), (gpointer) rmwhspln },
{ NULL },
- { N_("Sort Lines _Ascending"), G_CALLBACK(action_sortasc_item) },
- { N_("Sort Lines _Descending"), G_CALLBACK(action_sortdesc_item) }
+ { N_("Sort Lines _Ascending"),
+ G_CALLBACK(action_sort_item), GINT_TO_POINTER(1) },
+ { N_("Sort Lines _Descending"),
+ G_CALLBACK(action_sort_item), GINT_TO_POINTER(0) }
};
main_menu_item = gtk_menu_item_new_with_mnemonic(_("_Line Operations"));
@@ -141,7 +95,7 @@ lo_init(GeanyPlugin *plugin, gpointer gdata)
else
{
item = gtk_menu_item_new_with_mnemonic(_(menu_items[i].label));
- g_signal_connect(item, "activate", menu_items[i].cb_activate, NULL);
+ g_signal_connect(item, "activate", menu_items[i].cb_activate, menu_items[i].cb_data);
ui_add_document_sensitive(item);
}
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list