diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | plugin/test/test.c | 11 | ||||
-rw-r--r-- | src/main.c | 3 | ||||
-rw-r--r-- | src/plugin.c | 42 | ||||
-rw-r--r-- | src/plugin.h | 4 |
5 files changed, 66 insertions, 1 deletions
@@ -2,6 +2,13 @@ * src/plugin.[ch] src/main.c + plugin/test/test.c: added plug-in APIs to get selected messages + on summary. + +2010-07-06 + + * src/plugin.[ch] + src/main.c src/summaryview.c plugin/test/test.c: added new plug-in APIs for manipulating the summary view popup menu. diff --git a/plugin/test/test.c b/plugin/test/test.c index 07b2112e..9529d86e 100644 --- a/plugin/test/test.c +++ b/plugin/test/test.c @@ -140,7 +140,16 @@ static void summaryview_menu_popup_cb(GObject *obj, GtkItemFactory *ifactory, static void menu_selected_cb(void) { - g_print("test: menu selected\n"); + gint sel; + GSList *mlist; + + g_print("test: summary menu selected\n"); + sel = syl_plugin_summary_get_selection_type(); + mlist = syl_plugin_summary_get_selected_msg_list(); + g_print("test: selection type: %d\n", sel); + g_print("test: number of selected summary message: %d\n", + g_slist_length(mlist)); + g_slist_free(mlist); } static void compose_created_cb(GObject *obj, gpointer compose) @@ -1171,6 +1171,9 @@ static void plugin_init(void) ADD_SYM(summary_write_lock); ADD_SYM(summary_write_unlock); ADD_SYM(summary_is_write_locked); + ADD_SYM(summary_get_selection_type); + ADD_SYM(summary_get_selected_msg_list); + ADD_SYM(summary_get_msg_list); ADD_SYM(messageview_create_with_new_window); ADD_SYM(messageview_show); diff --git a/src/plugin.c b/src/plugin.c index 85da3f10..3e83a221 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -821,6 +821,48 @@ gboolean syl_plugin_summary_is_write_locked(void) return FALSE; } +gint syl_plugin_summary_get_selection_type(void) +{ + gint (*func)(gpointer); + gpointer summary; + + summary = syl_plugin_summary_view_get(); + if (summary) { + GETFUNC("summary_get_selection_type"); + return SAFE_CALL_ARG1_RET_VAL(func, summary, 0); + } + + return 0; +} + +GSList *syl_plugin_summary_get_selected_msg_list(void) +{ + GSList * (*func)(gpointer); + gpointer summary; + + summary = syl_plugin_summary_view_get(); + if (summary) { + GETFUNC("summary_get_selected_msg_list"); + return SAFE_CALL_ARG1_RET(func, summary); + } + + return NULL; +} + +GSList *syl_plugin_summary_get_msg_list(void) +{ + GSList * (*func)(gpointer); + gpointer summary; + + summary = syl_plugin_summary_view_get(); + if (summary) { + GETFUNC("summary_get_msg_list"); + return SAFE_CALL_ARG1_RET(func, summary); + } + + return NULL; +} + gpointer syl_plugin_messageview_create_with_new_window(void) { gpointer (*func)(void); diff --git a/src/plugin.h b/src/plugin.h index 6632f8e5..f7c29ed2 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -176,6 +176,10 @@ void syl_plugin_summary_write_lock (void); void syl_plugin_summary_write_unlock (void); gboolean syl_plugin_summary_is_write_locked (void); +gint syl_plugin_summary_get_selection_type (void); +GSList *syl_plugin_summary_get_selected_msg_list(void); +GSList *syl_plugin_summary_get_msg_list (void); + /* MessageView */ gpointer syl_plugin_messageview_create_with_new_window (void); |