aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-event.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/em-event.c')
-rw-r--r--mail/em-event.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/mail/em-event.c b/mail/em-event.c
index 9ca6d8e940..228fcf78db 100644
--- a/mail/em-event.c
+++ b/mail/em-event.c
@@ -77,6 +77,12 @@ eme_target_free(EEvent *ep, EEventTarget *t)
camel_object_unref(s->message);
g_free(s->uid);
break; }
+ case EM_EVENT_TARGET_COMPOSER : {
+ EMEventTargetComposer *s = (EMEventTargetComposer *)t;
+
+ if (s->composer)
+ g_object_unref (s->composer);
+ break; }
}
((EEventClass *)eme_parent)->target_free(ep, t);
@@ -139,6 +145,17 @@ em_event_target_new_folder (EMEvent *eme, const char *uri, guint32 flags)
return t;
}
+EMEventTargetComposer *
+em_event_target_new_composer (EMEvent *eme, const EMsgComposer *composer, guint32 flags)
+{
+ EMEventTargetComposer *t = e_event_target_new(&eme->popup, EM_EVENT_TARGET_COMPOSER, sizeof(*t));
+
+ t->composer = g_object_ref(composer);
+ t->target.mask = ~flags;
+
+ return t;
+}
+
EMEventTargetMessage *
em_event_target_new_message(EMEvent *eme, CamelFolder *folder, CamelMimeMessage *message, const char *uid, guint32 flags)
{
@@ -167,6 +184,11 @@ static const EEventHookTargetMask emeh_folder_masks[] = {
};
+static const EEventHookTargetMask emeh_composer_masks[] = {
+ { "sendoption", EM_EVENT_COMPOSER_SEND_OPTION },
+ { 0 }
+};
+
static const EEventHookTargetMask emeh_message_masks[] = {
{ "replyall", EM_EVENT_MESSAGE_REPLY_ALL },
{ 0 }
@@ -175,6 +197,7 @@ static const EEventHookTargetMask emeh_message_masks[] = {
static const EEventHookTargetMap emeh_targets[] = {
{ "folder", EM_EVENT_TARGET_FOLDER, emeh_folder_masks },
{ "message", EM_EVENT_TARGET_MESSAGE, emeh_message_masks },
+ { "composer", EM_EVENT_TARGET_COMPOSER, emeh_composer_masks},
{ 0 }
};