From 76ca8699d9a05eba65edbd23ddfb3def68c55424 Mon Sep 17 00:00:00 2001 From: Ragner Magalhaes Date: Tue, 2 Dec 2008 20:32:38 +0000 Subject: [PATCH] Fixed definition of union inside PurplePresence structure, added missing structure definitions. FIXES: - Fixed definition of union inside PurplePresence structure. - Added missing structure definitions. - Fixed small typo with PURPLE_STATUS_NUM_PRIMITIVES definition. Signed-off-by: Bruno Abinader git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1315 596f6dd7-e928-0410-a184-9e12fd12cf7e --- libpurple/status.pxd | 73 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 4 deletions(-) diff --git a/libpurple/status.pxd b/libpurple/status.pxd index 56747e5..6bd3917 100644 --- a/libpurple/status.pxd +++ b/libpurple/status.pxd @@ -19,14 +19,29 @@ cimport glib +cimport account +cimport blist +cimport conversation +cimport value + +cdef extern from *: + ctypedef char const_char "const char" + ctypedef int time_t + cdef extern from "libpurple/status.h": + ctypedef struct PurpleStatusType + ctypedef struct PurpleStatusAttr + ctypedef struct PurplePresence ctypedef struct PurpleStatus - ctypedef struct PurplePresence: - pass + ctypedef enum PurplePresenceContext: + PURPLE_PRESENCE_CONTEXT_UNSET = 0 + PURPLE_PRESENCE_CONTEXT_ACCOUNT + PURPLE_PRESENCE_CONTEXT_CONV + PURPLE_PRESENCE_CONTEXT_BUDDY ctypedef enum PurpleStatusPrimitive: - PURPLE_STATUS_UNSET + PURPLE_STATUS_UNSET = 0 PURPLE_STATUS_OFFLINE PURPLE_STATUS_AVAILABLE PURPLE_STATUS_UNAVAILABLE @@ -35,6 +50,56 @@ cdef extern from "libpurple/status.h": PURPLE_STATUS_EXTENDED_AWAY PURPLE_STATUS_MOBILE PURPLE_STATUS_TUNE - PURPLE_STATUS_NUN_PRIMITIVE + PURPLE_STATUS_NUM_PRIMITIVES + + ctypedef struct PurpleStatusType: + PurpleStatusPrimitive primitive + char *id + char *name + char *primary_attr_id + glib.gboolean saveable + glib.gboolean user_settable + glib.gboolean independent + glib.GList *attrs + + ctypedef struct PurpleStatusAttr: + char *id + char *name + value.PurpleValue *value_type + + ctypedef struct __ChatType: + conversation.PurpleConversation *conv + char *user + + ctypedef struct __BuddyType: + account.PurpleAccount *account + char *name + blist.PurpleBuddy *buddy + + ctypedef union __UnionType: + account.PurpleAccount *account + __ChatType chat + __BuddyType buddy + + ctypedef struct PurplePresence: + PurplePresenceContext context + glib.gboolean idle + time_t idle_time + time_t login_time + glib.GList *statuses + glib.GHashTable *status_table + PurpleStatus *active_status + __UnionType u + + ctypedef struct PurpleStatus: + PurpleStatusType *type + PurplePresence *presence + const_char *title + glib.gboolean active + glib.GHashTable *attr_values + + ctypedef struct PurpleStatusBuddyKey: + account.PurpleAccount *account + char *name glib.gboolean c_purple_presence_is_online "purple_presence_is_online" (PurplePresence *presence) -- 1.7.9.5