From 342d3c32efc78ba037046d32b137321b915bac6d Mon Sep 17 00:00:00 2001 From: Srinivasa Ragavan Date: Tue, 5 Jul 2005 04:38:51 +0000 Subject: Created new target type Added #define for the new target type Poped e-cal 2005-07-05 Srinivasa Ragavan * gui/e-cal-popup.c: Created new target type * gui/e-cal-popup.h: Added #define for the new target type * gui/dialogs/cal-attachment-bar.c: (cab_popup) Poped e-cal instead of em_*. Removed mailer code from calendar * gui/dialogs/comp-editor.c: (drag_data_received) Poped e-cal instead of em_*. Removed mailer code from calendar. svn path=/trunk/; revision=29630 --- calendar/ChangeLog | 9 ++++++++ calendar/gui/dialogs/cal-attachment-bar.c | 28 ++++++++++++------------- calendar/gui/dialogs/comp-editor.c | 9 ++++---- calendar/gui/e-cal-popup.c | 34 +++++++++++++++++++++++++++++++ calendar/gui/e-cal-popup.h | 29 ++++++++++++++++++++++++++ 5 files changed, 91 insertions(+), 18 deletions(-) diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 67e31f03d9..fa95f6ab1c 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,12 @@ +2005-07-05 Srinivasa Ragavan + + * gui/e-cal-popup.c: Created new target type + * gui/e-cal-popup.h: Added #define for the new target type + * gui/dialogs/cal-attachment-bar.c: (cab_popup) Poped e-cal instead of + em_*. Removed mailer code from calendar + * gui/dialogs/comp-editor.c: (drag_data_received) Poped e-cal instead of + em_*. Removed mailer code from calendar. + 2005-07-04 Chenthill Palanisamy * gui/calendar-component.c: (create_new_event): Set diff --git a/calendar/gui/dialogs/cal-attachment-bar.c b/calendar/gui/dialogs/cal-attachment-bar.c index b102315db8..17679549f7 100644 --- a/calendar/gui/dialogs/cal-attachment-bar.c +++ b/calendar/gui/dialogs/cal-attachment-bar.c @@ -58,7 +58,7 @@ #include "e-util/e-icon-factory.h" #include "e-util/e-error.h" #include "e-util/e-mktemp.h" -#include "mail/em-popup.h" +#include "../e-cal-popup.h" #define ICON_WIDTH 64 #define ICON_SEPARATORS " /-_" @@ -470,9 +470,9 @@ cab_remove(EPopup *ep, EPopupItem *item, void *data) /* Popup menu handling. */ static EPopupItem cab_popups[] = { - { E_POPUP_ITEM, "10.attach", N_("_Remove"), cab_remove, NULL, GTK_STOCK_REMOVE, EM_POPUP_ATTACHMENTS_MANY }, - { E_POPUP_ITEM, "20.attach", N_("_Properties"), cab_properties, NULL, GTK_STOCK_PROPERTIES, EM_POPUP_ATTACHMENTS_ONE }, - { E_POPUP_BAR, "30.attach.00", NULL, NULL, NULL, NULL, EM_POPUP_ATTACHMENTS_MANY|EM_POPUP_ATTACHMENTS_ONE }, + { E_POPUP_ITEM, "10.attach", N_("_Remove"), cab_remove, NULL, GTK_STOCK_REMOVE, E_CAL_POPUP_ATTACHMENTS_MANY }, + { E_POPUP_ITEM, "20.attach", N_("_Properties"), cab_properties, NULL, GTK_STOCK_PROPERTIES, E_CAL_POPUP_ATTACHMENTS_ONE }, + { E_POPUP_BAR, "30.attach.00", NULL, NULL, NULL, NULL, E_CAL_POPUP_ATTACHMENTS_MANY|E_CAL_POPUP_ATTACHMENTS_ONE }, { E_POPUP_ITEM, "30.attach.01", N_("_Add attachment..."), cab_add, NULL, GTK_STOCK_ADD, 0 }, }; @@ -512,8 +512,8 @@ cab_popup(CalAttachmentBar *bar, GdkEventButton *event, int id) GList *p; GSList *attachments = NULL, *menus = NULL; int i; - EMPopup *emp; - EMPopupTargetAttachments *t; + ECalPopup *ecp; + ECalPopupTargetAttachments *t; GtkMenu *menu; CalAttachment *attachment; @@ -538,18 +538,18 @@ cab_popup(CalAttachmentBar *bar, GdkEventButton *event, int id) for (i=0;itarget.widget = (GtkWidget *)bar; - menu = e_popup_create_menu_once((EPopup *)emp, (EPopupTarget *)t, 0); + menu = e_popup_create_menu_once((EPopup *)ecp, (EPopupTarget *)t, 0); if (event == NULL) gtk_menu_popup(menu, NULL, NULL, cab_popup_position, bar, 0, gtk_get_current_event_time()); diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index fda20375dd..c7a7c10d6d 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -57,6 +57,7 @@ #include "cancel-comp.h" #include "recur-comp.h" #include "comp-editor.h" +#include "../e-cal-popup.h" #include "cal-attachment-bar.h" #include "misc/e-expander.h" @@ -447,7 +448,7 @@ drag_data_received (CompEditor *editor, GdkDragContext *context, return; if (context->action == GDK_ACTION_ASK) { - EMPopup *emp; + ECalPopup *ecp; GSList *menus = NULL; GtkMenu *menu; int i; @@ -466,12 +467,12 @@ drag_data_received (CompEditor *editor, GdkDragContext *context, memcpy(m->selection->data, selection->data, selection->length); m->selection->length = selection->length; - emp = em_popup_new("org.gnome.evolution.mail.editor.popup.drop"); + ecp = e_cal_popup_new("org.gnome.evolution.calendar.editor.popup.drop"); for (i=0;iaction, selection, info, time); diff --git a/calendar/gui/e-cal-popup.c b/calendar/gui/e-cal-popup.c index 3ecddd0bb4..441bad505c 100644 --- a/calendar/gui/e-cal-popup.c +++ b/calendar/gui/e-cal-popup.c @@ -309,6 +309,33 @@ e_cal_popup_target_new_source(ECalPopup *eabp, ESourceSelector *selector) return t; } +/** + * e_cal_popup_target_new_attachments: + * @ecp: + * @attachments: A list of CalAttachment objects, reffed for + * the list. Will be unreff'd once finished with. + * + * Owns the list @attachments and their items after they're passed in. + * + * Return value: + **/ +ECalPopupTargetAttachments * +e_cal_popup_target_new_attachments(ECalPopup *ecp, GSList *attachments) +{ + ECalPopupTargetAttachments *t = e_popup_target_new(&ecp->popup, E_CAL_POPUP_TARGET_ATTACHMENTS, sizeof(*t)); + guint32 mask = ~0; + int len = g_slist_length(attachments); + + t->attachments = attachments; + if (len > 0) + mask &= ~ E_CAL_POPUP_ATTACHMENTS_MANY; + if (len == 1) + mask &= ~ E_CAL_POPUP_ATTACHMENTS_ONE; + t->target.mask = mask; + + return t; +} + /* ********************************************************************** */ /* Popup menu plugin handler */ @@ -365,9 +392,16 @@ static const EPopupHookTargetMask ecalph_source_masks[] = { { 0 } }; +static const EPopupHookTargetMask ecalph_attachments_masks[] = { + { "one", E_CAL_POPUP_ATTACHMENTS_ONE }, + { "many", E_CAL_POPUP_ATTACHMENTS_MANY }, + { 0 } +}; + static const EPopupHookTargetMap ecalph_targets[] = { { "select", E_CAL_POPUP_TARGET_SELECT, ecalph_select_masks }, { "source", E_CAL_POPUP_TARGET_SOURCE, ecalph_source_masks }, + { "attachments", E_CAL_POPUP_TARGET_ATTACHMENTS, ecalph_attachments_masks }, { 0 } }; diff --git a/calendar/gui/e-cal-popup.h b/calendar/gui/e-cal-popup.h index 0de18e70b4..8fc2ed5e85 100644 --- a/calendar/gui/e-cal-popup.h +++ b/calendar/gui/e-cal-popup.h @@ -47,6 +47,7 @@ struct _ECalendarView; enum _e_cal_popup_target_t { E_CAL_POPUP_TARGET_SELECT, E_CAL_POPUP_TARGET_SOURCE, + E_CAL_POPUP_TARGET_ATTACHMENTS, }; /** @@ -99,8 +100,21 @@ enum _e_cal_popup_target_source_t { E_CAL_POPUP_SOURCE_NO_OFFLINE = 1 <<4 }; +/** + * enum _e_cal_popup_target_attachments_t - ECalPopupTargetAttachments qualifiers. + * + * @E_CAL_POPUP_ATTACHMENTS_ONE: There is one and only one attachment selected. + * @E_CAL_POPUP_ATTACHMENTS_MANY: There is one or more attachments selected. + * + **/ +enum _e_cal_popup_target_attachments_t { + E_CAL_POPUP_ATTACHMENTS_ONE = 1<<0, /* only 1 selected */ + E_CAL_POPUP_ATTACHMENTS_MANY = 1<<1, /* one or more selected */ +}; + typedef struct _ECalPopupTargetSelect ECalPopupTargetSelect; typedef struct _ECalPopupTargetSource ECalPopupTargetSource; +typedef struct _ECalPopupTargetAttachments ECalPopupTargetAttachments; /** * struct _ECalPopupTargetSelect - A list of address cards. @@ -136,6 +150,20 @@ struct _ECalPopupTargetSource { struct _ESourceSelector *selector; }; +/** + * struct _ECalPopupTargetAttachments - A list of calendar attachments. + * + * @target: Superclass. + * @attachments: A GSList list of CalAttachments. + * + * This target is used to represent a selected list of attachments in + * the calendar attachment area. + **/ +struct _ECalPopupTargetAttachments { + EPopupTarget target; + GSList *attachments; +}; + typedef struct _EPopupItem ECalPopupItem; /* The object */ @@ -155,6 +183,7 @@ ECalPopup *e_cal_popup_new(const char *menuid); ECalPopupTargetSelect *e_cal_popup_target_new_select(ECalPopup *eabp, struct _ECalModel *model, GPtrArray *events); ECalPopupTargetSource *e_cal_popup_target_new_source(ECalPopup *eabp, struct _ESourceSelector *selector); +ECalPopupTargetAttachments * e_cal_popup_target_new_attachments (ECalPopup *ecp, GSList *attachments); /* ********************************************************************** */ -- cgit v1.2.3