aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--plugin/test/test.c11
-rw-r--r--src/main.c3
-rw-r--r--src/plugin.c42
-rw-r--r--src/plugin.h4
5 files changed, 66 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c31c1b6e..8b6c71eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
diff --git a/src/main.c b/src/main.c
index 97667b18..df7cec6c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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);