[evolution/calendar-xfb: 1/9] added data types for XFB handling



commit 64e5527766cccfa96725984ce74817c5109f346b
Author: Christian Hilberg <chilberg src gnome org>
Date:   Fri Nov 9 10:19:44 2012 +0100

    added data types for XFB handling
    
    * EMeetingXfbData currently can hold summary (subject)
      and location data for free/busy objects
    * the Kolab groupware server optionally sends this data
      as X-SUMMARY and X-LOCATION ical properties with the
      vfreebusy ical object as freebusy request answer
      (http://wiki.kolab.org/Free_Busy#Kolab_Object_Storage_Format)
    * Exchange has a very similar capability of attaching
      this data to its freebusy answer, which trivially maps
      to the above
      (http://msdn.microsoft.com/en-us/library/aa563496%28v=exchg.140%29.aspx)

 calendar/gui/e-meeting-types.h |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/calendar/gui/e-meeting-types.h b/calendar/gui/e-meeting-types.h
index b8f1057..689fe9c 100644
--- a/calendar/gui/e-meeting-types.h
+++ b/calendar/gui/e-meeting-types.h
@@ -26,10 +26,17 @@
 
 #include <glib.h>
 
+/* Extended free/busy (XFB) vfreebusy properties */
+#define E_MEETING_FREE_BUSY_XPROP_SUMMARY  "X-SUMMARY"
+#define E_MEETING_FREE_BUSY_XPROP_LOCATION "X-LOCATION"
+/* Maximum string length displayed in the XFB tooltip */
+#define E_MEETING_FREE_BUSY_XPROP_MAXLEN   200
+
 G_BEGIN_DECLS
 
 typedef struct _EMeetingTime               EMeetingTime;
 typedef struct _EMeetingFreeBusyPeriod     EMeetingFreeBusyPeriod;
+typedef struct _EMeetingXfbData            EMeetingXfbData;
 
 /* These are used to specify whether an attendee is free or busy at a
  * particular time. We'll probably replace this with a global calendar type.
@@ -55,12 +62,29 @@ struct _EMeetingTime
 	guint8	minute;
 };
 
+/* This represents extended free/busy data (XFB) associated
+ * with a busy period (optional). Groupware servers like Kolab
+ * may send it as X-SUMMARY and X-LOCATION properties of vfreebusy
+ * calendar objects.
+ * See http://wiki.kolab.org/Free_Busy#Kolab_Object_Storage_Format
+ * for a reference. If we find that a vfreebusy object carries
+ * such information, we extract it and display it as a tooltip
+ * for the busy period in the meeting time selector scheduling page.
+ */
+struct _EMeetingXfbData
+{
+	/* if adding more items, adapt e_meeting_xfb_data_clear() */
+	gchar *summary;
+	gchar *location;
+};
+
 /* This represents a busy period. */
 struct _EMeetingFreeBusyPeriod
 {
 	EMeetingTime start;
 	EMeetingTime end;
 	EMeetingFreeBusyType busy_type;
+	EMeetingXfbData xfb;
 };
 
 G_END_DECLS



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]