soylent r248 - trunk/libsoylent



Author: svenp
Date: Wed Jul 30 09:46:51 2008
New Revision: 248
URL: http://svn.gnome.org/viewvc/soylent?rev=248&view=rev

Log:
added convinience methods and macros for SlPerson
added a bunch of well-known attributes

Modified:
   trunk/libsoylent/sl-person.c
   trunk/libsoylent/sl-person.h

Modified: trunk/libsoylent/sl-person.c
==============================================================================
--- trunk/libsoylent/sl-person.c	(original)
+++ trunk/libsoylent/sl-person.c	Wed Jul 30 09:46:51 2008
@@ -119,11 +119,36 @@
   return self;
 }
 
+SlPerson *
+sl_person_new_with_econtact (EContact *econtact)
+{
+  SlPerson *self = g_object_new (SL_PERSON_TYPE, NULL);
+  sl_person_constr_with_econtact (self, econtact);
+  return self;
+}
+
 void
 sl_person_constr (SlPerson *self, const gchar *name)
 {
   sl_entity_constr (SL_ENTITY (self));
-  /* temporary, this will be moved to SlAttributes */
-  EContact *econtact = sl_entity_get_econtact (SL_ENTITY (self));
-  e_contact_set (econtact, E_CONTACT_NICKNAME, (const gpointer) name);
+  sl_person_set_nick (self, (gchar *) name);
+}
+
+void
+sl_person_constr_with_econtact (SlPerson *self, EContact *econtact)
+{
+  sl_entity_constr_with_econtact (SL_ENTITY (self), econtact);
+}
+
+gchar *
+sl_person_get_nick (SlPerson *self)
+{
+  /* TODO: create attrname -> internal_attrname mapping */
+  return sl_person_get (self, SL_ATTR_NICK);
+}
+
+void
+sl_person_set_nick (SlPerson *self, gchar *nick)
+{
+  sl_person_set (self, SL_ATTR_NICK, nick);
 }

Modified: trunk/libsoylent/sl-person.h
==============================================================================
--- trunk/libsoylent/sl-person.h	(original)
+++ trunk/libsoylent/sl-person.h	Wed Jul 30 09:46:51 2008
@@ -41,6 +41,81 @@
 #define SL_PERSON_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS (obj, \
   SL_PERSON_TYPE))
 
+/* well-known attributes */
+#define SL_ATTR_ID            "id"
+#define SL_ATTR_NAME          "name"
+#define SL_ATTR_FAMILY_NAME   "family-name"
+#define SL_ATTR_NICK          "nick"
+#define SL_ATTR_GROUP         "group"
+#define SL_ATTR_ADDRESS       "address"
+#define SL_ATTR_EMAIL         "email"
+#define SL_ATTR_TELEPHONE     "telephone"
+#define SL_ATTR_BIRTHDAY      "birthday"
+#define SL_ATTR_URL           "url"
+#define SL_ATTR_BLOG          "blog"
+#define SL_ATTR_CALENDAR_URL  "calendar-url"
+#define SL_ATTR_FREE_BUSY_URL "free-busy-url"
+#define SL_ATTR_NOTE          "note"
+#define SL_ATTR_PHOTO         "photo"
+#define SL_ATTR_ICON          "icon"
+/* TODO: job struct? */
+#define SL_ATTR_JOB_ROLE      "job-role"
+#define SL_ATTR_JOB_TITLE     "job-title"
+
+/*#define EVC_X_AIM              "X-AIM"
+#define EVC_X_GADUGADU        "X-GADUGADU"
+#define EVC_X_ICQ              "X-ICQ"
+#define EVC_X_JABBER           "X-JABBER"
+#define EVC_X_MSN           	"X-MSN"
+#define EVC_X_YAHOO         	"X-YAHOO"
+#define EVC_X_GROUPWISE     	"X-GROUPWISE"*/
+
+/*#define EVC_GEO		    "GEO"*/
+/*#define EVC_ICSCALENDAR     "ICSCALENDAR"*/
+/*#define EVC_KEY             "KEY"*/
+/*#define EVC_LABEL           "LABEL"*/
+/*#define EVC_MAILER          "MAILER"*/
+/*#define EVC_ORG             "ORG"*/
+/*#define EVC_PRODID          "PRODID"*/
+/*#define EVC_QUOTEDPRINTABLE "QUOTED-PRINTABLE"*/
+/*#define EVC_REV             "REV"*/
+/*#define EVC_ROLE            "ROLE"*/
+/*#define EVC_TITLE           "TITLE"*/
+/*#define EVC_TYPE            "TYPE"*/
+/*#define EVC_VALUE           "VALUE"*/
+/*#define EVC_VERSION         "VERSION"*/
+/*#define EVC_X_ANNIVERSARY      "X-EVOLUTION-ANNIVERSARY"*/
+/*#define EVC_X_ASSISTANT        "X-EVOLUTION-ASSISTANT"*/
+/*#define EVC_X_BIRTHDAY         "X-EVOLUTION-BIRTHDAY"*/
+/*#define EVC_X_FILE_AS          "X-EVOLUTION-FILE-AS"*/
+/*#define EVC_X_LIST_SHOW_ADDRESSES "X-EVOLUTION-LIST-SHOW_ADDRESSES"*/
+/*#define EVC_X_LIST          	"X-EVOLUTION-LIST"*/
+/*#define EVC_X_MANAGER       	"X-EVOLUTION-MANAGER"*/
+/*#define EVC_X_SPOUSE        	"X-EVOLUTION-SPOUSE"*/
+/*#define EVC_X_WANTS_HTML    	"X-MOZILLA-HTML"*/
+/*#define EVC_X_BOOK_URI     	"X-EVOLUTION-BOOK-URI"*/
+/*#define EVC_X_CALLBACK         "X-EVOLUTION-CALLBACK"*/
+/*#define EVC_X_COMPANY          "X-EVOLUTION-COMPANY"*/
+/*#define EVC_X_DEST_CONTACT_UID "X-EVOLUTION-DEST-CONTACT-UID"
+#define EVC_X_DEST_EMAIL       "X-EVOLUTION-DEST-EMAIL"
+#define EVC_X_DEST_EMAIL_NUM   "X-EVOLUTION-DEST-EMAIL-NUM"
+#define EVC_X_DEST_HTML_MAIL   "X-EVOLUTION-DEST-HTML-MAIL"
+#define EVC_X_DEST_NAME        "X-EVOLUTION-DEST-NAME"
+#define EVC_X_DEST_SOURCE_UID  "X-EVOLUTION-DEST-SOURCE-UID"
+#define EVC_X_RADIO         	"X-EVOLUTION-RADIO"
+#define EVC_X_TELEX         	"X-EVOLUTION-TELEX"
+#define EVC_X_TTYTDD        	"X-EVOLUTION-TTYTDD"
+#define EVC_X_VIDEO_URL     	"X-EVOLUTION-VIDEO-URL"*/
+
+
+
+#define sl_person_get(self, attrname)         (sl_entity_get ( \
+                                               SL_ENTITY (self), attrname))
+#define sl_person_set(self, attrname, value)  (sl_entity_set ( \
+  SL_ENTITY (self), attrname, value))
+#define sl_person_commit(self, error)         (sl_entity_commit ( \
+                                               SL_ENTITY (self), error))
+
 typedef struct _SlPerson      SlPerson;
 typedef struct _SlPersonClass SlPersonClass;
 typedef struct _SlPersonPriv  SlPersonPriv;
@@ -59,6 +134,11 @@
 GType sl_person_get_type (void);
 
 SlPerson *sl_person_new (const gchar *name);
+SlPerson *sl_person_new_with_econtact (EContact *econtact);
 void sl_person_constr (SlPerson *self, const gchar *name);
+void sl_person_constr_with_econtact (SlPerson *self, EContact *econtact);
+
+gchar *sl_person_get_nick (SlPerson *self);
+void sl_person_set_nick (SlPerson *self, gchar *nick);
 
 #endif



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