Added PurpleNotifyUiOps callbacks.
[python-purple] / libpurple / blist.pxd
1 #
2 #  Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia
3 #
4 #  This file is part of python-purple.
5 #
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.
10 #
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.
15 #
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/>.
18 #
19
20 cimport glib
21
22 cimport account
23 cimport status
24
25 cdef extern from *:
26     ctypedef char const_char "const char"
27
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
36
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
43
44     ctypedef enum PurpleBlistNodeFlags:
45         PURPLE_BLIST_NODE_FLAG_NO_SAVE = 1 << 0
46
47     ctypedef struct PurpleBlistNode:
48         pass
49
50     ctypedef struct PurpleBuddy:
51         char *name
52         char *alias
53         char *server_alias
54
55     ctypedef struct PurpleContact:
56         pass
57
58     ctypedef struct PurpleGroup:
59         pass
60
61     ctypedef struct PurpleChat:
62         pass
63
64     ctypedef struct PurpleBuddyList:
65         pass
66
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) ()
78
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)
83
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)