aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
authorSrinivasa Ragavan <sragavan@novell.com>2005-07-05 12:38:51 +0800
committerSrinivasa Ragavan <sragavan@src.gnome.org>2005-07-05 12:38:51 +0800
commit342d3c32efc78ba037046d32b137321b915bac6d (patch)
tree3d6124cd1437c75f5a13a71861343e824ecc57b3 /calendar/gui
parentd6634fe53c1b9ddb09b538f181b356865b3aeaf2 (diff)
downloadgsoc2013-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.c28
-rw-r--r--calendar/gui/dialogs/comp-editor.c9
-rw-r--r--calendar/gui/e-cal-popup.c34
-rw-r--r--calendar/gui/e-cal-popup.h29
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);
/* ********************************************************************** */