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 PurplePresence:
- pass
+ ctypedef struct PurpleStatusType
+ ctypedef struct PurpleStatusAttr
+ ctypedef struct PurplePresence
+ ctypedef struct PurpleStatus
+
+ 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
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)