2 # Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
4 # This file is part of python-purple.
6 # python-purple is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # python-purple is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
26 ctypedef char const_char "const char"
28 cdef extern from "libpurple/blist.h":
29 ctypedef struct PurpleBuddyList
30 ctypedef struct PurpleBlistUiOps
31 ctypedef struct PurpleBlistNode
32 ctypedef struct PurpleChat
33 ctypedef struct PurpleGroup
34 ctypedef struct PurpleContact
35 ctypedef struct PurpleBuddy
37 ctypedef enum PurpleBlistNodeType:
38 PURPLE_BLIST_GROUP_NODE
39 PURPLE_BLIST_CONTACT_NODE
40 PURPLE_BLIST_BUDDY_NODE
41 PURPLE_BLIST_CHAT_NODE
42 PURPLE_BLIST_OTHER_NODE
44 ctypedef enum PurpleBlistNodeFlags:
45 PURPLE_BLIST_NODE_FLAG_NO_SAVE = 1 << 0
47 ctypedef struct PurpleBlistNode:
50 ctypedef struct PurpleBuddy:
55 ctypedef struct PurpleContact:
58 ctypedef struct PurpleGroup:
61 ctypedef struct PurpleChat:
64 ctypedef struct PurpleBuddyList:
67 ctypedef struct PurpleBlistUiOps:
68 void (*new_list) (PurpleBuddyList *list)
69 void (*new_node) (PurpleBlistNode *node)
70 void (*show) (PurpleBuddyList *list)
71 void (*update) (PurpleBuddyList *list, PurpleBlistNode *node)
72 void (*remove) (PurpleBuddyList *list, PurpleBlistNode *node)
73 void (*destroy) (PurpleBuddyList *list)
74 void (*set_visible) (PurpleBuddyList *list, glib.gboolean show)
75 void (*request_add_buddy) (account.PurpleAccount *account, const_char *username, const_char *group, const_char *alias)
76 void (*request_add_chat) (account.PurpleAccount *account, PurpleGroup *group, const_char *alias, const_char *name)
77 void (*request_add_group) ()
79 void *c_purple_blist_get_handle "purple_blist_get_handle" ()
80 void c_purple_blist_load "purple_blist_load" ()
81 PurpleBuddyList* c_purple_blist_new "purple_blist_new" ()
82 void c_purple_blist_set_ui_ops "purple_blist_set_ui_ops" (PurpleBlistUiOps *ops)
84 PurpleBuddy *c_purple_buddy_new "purple_buddy_new" (account.PurpleAccount *account,
85 char *screenname, char *alias)
86 char *c_purple_buddy_get_alias_only "purple_buddy_get_alias_only" (PurpleBuddy *buddy)
87 char *c_purple_buddy_get_name "purple_buddy_get_name" (PurpleBuddy *buddy)
88 PurpleBuddy *c_purple_find_buddy "purple_find_buddy" (account.PurpleAccount *account, char *name)
89 void c_purple_set_blist "purple_set_blist" (PurpleBuddyList *list)
90 glib.GSList *c_purple_find_buddies "purple_find_buddies" (account.PurpleAccount *account, char *name)
91 account.PurpleAccount *c_purple_buddy_get_account "purple_buddy_get_account" (PurpleBuddy *buddy)
92 status.PurplePresence *c_purple_buddy_get_presence "purple_buddy_get_presence" (PurpleBuddy *buddy)