diff options
author | Srinivasa Ragavan <sragavan@novell.com> | 2005-07-05 12:38:51 +0800 |
---|---|---|
committer | Srinivasa Ragavan <sragavan@src.gnome.org> | 2005-07-05 12:38:51 +0800 |
commit | 342d3c32efc78ba037046d32b137321b915bac6d (patch) | |
tree | 3d6124cd1437c75f5a13a71861343e824ecc57b3 /calendar/gui | |
parent | d6634fe53c1b9ddb09b538f181b356865b3aeaf2 (diff) | |
download | gsoc2013-evolution-342d3c32efc78ba037046d32b137321b915bac6d.tar.gz gsoc2013-evolution-342d3c32efc78ba037046d32b137321b915bac6d.tar.zst gsoc2013-evolution-342d3c32efc78ba037046d32b137321b915bac6d.zip |
Created new target type Added #define for the new target type Poped e-cal
2005-07-05 Srinivasa Ragavan <sragavan@novell.com>
* 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
Diffstat (limited to 'calendar/gui')
-rw-r--r-- | calendar/gui/dialogs/cal-attachment-bar.c | 28 | ||||
-rw-r--r-- | calendar/gui/dialogs/comp-editor.c | 9 | ||||
-rw-r--r-- | calendar/gui/e-cal-popup.c | 34 | ||||
-rw-r--r-- | calendar/gui/e-cal-popup.h | 29 |
4 files changed, 82 insertions, 18 deletions
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;i<sizeof(cab_popups)/sizeof(cab_popups[0]);i++) menus = g_slist_prepend(menus, &cab_popups[i]); - /** @HookPoint-EMPopup: Composer Attachment Bar Context Menu - * @Id: org.gnome.evolution.mail.composer.attachmentbar.popup + /** @HookPoint-ECalPopup: Calendar Attachment Bar Context Menu + * @Id: org.gnome.evolution.calendar.attachmentbar.popup * @Class: org.gnome.evolution.mail.popup:1.0 - * @Target: EMPopupTargetAttachments + * @Target: ECalPopupTargetAttachments * - * This is the context menu on the composer attachment bar. + * This is the context menu on the calendar attachment bar. */ - emp = em_popup_new("org.gnome.evolution.mail.composer.attachmentbar.popup"); - e_popup_add_items((EPopup *)emp, menus, NULL, cab_popups_free, bar); - t = em_popup_target_new_attachments(emp, attachments); + ecp = e_cal_popup_new("org.gnome.evolution.calendar.attachmentbar.popup"); + e_popup_add_items((EPopup *)ecp, menus, NULL, cab_popups_free, bar); + t = e_cal_popup_target_new_attachments(ecp, attachments); t->target.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;i<sizeof(drop_popup_menu)/sizeof(drop_popup_menu[0]);i++) menus = g_slist_append(menus, &drop_popup_menu[i]); - e_popup_add_items((EPopup *)emp, menus, NULL, drop_popup_free, m); - menu = e_popup_create_menu_once((EPopup *)emp, NULL, 0); + e_popup_add_items((EPopup *)ecp, menus, NULL, drop_popup_free, m); + menu = e_popup_create_menu_once((EPopup *)ecp, NULL, 0); gtk_menu_popup(menu, NULL, NULL, NULL, NULL, 0, time); } else { drop_action(editor, context, context->action, 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); /* ********************************************************************** */ |