annotate src/list.h @ 4889:f7150929332b

[gaim-migrate @ 5219] Fix a lil ko.po problem some people with weird gettexts had. Swap the "Open Mail" and "Close" buttons on the mail notification dialog. Is this more HIGgish? If not, lemme know and I'll burninate. I took out lots of aim_conn_t's from ssi.c in favor of looking up the connection from the session when it is needed. I like this way better, and I've been slowly moving towards it. Added some code used for uploading icons. I haven't gotten it to work yet. I'm still not exactly sure what I'm supposed to be doing. 'twould be nice if Windows AIM still did this correctly. 'twould be nice to have that kind of job security. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Tue, 25 Mar 2003 05:01:00 +0000
parents 1e28e7d802a1
children 4691c5936c01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2 * @file list.h Buddy List API
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4 * gaim
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6 * Copyright (C) 2003, Sean Egan <sean.egan@binghamton.edu>
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 * (at your option) any later version.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 * GNU General Public License for more details.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
24 /* I can't believe I let ChipX86 inspire me to write good code. -Sean */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
26 #ifndef _LIST_H_
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
27 #define _LIST_H_
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
28
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
29 #include <glib.h>
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
31 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32 /* Enumerations */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34 enum gaim_blist_node_type {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35 GAIM_BLIST_GROUP_NODE,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36 GAIM_BLIST_BUDDY_NODE,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37 GAIM_BLIST_OTHER_NODE,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
38 };
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
39
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
40 #define GAIM_BLIST_NODE_IS_BUDDY(n) ((n)->type == GAIM_BLIST_BUDDY_NODE)
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
41 #define GAIM_BLIST_NODE_IS_GROUP(n) ((n)->type == GAIM_BLIST_GROUP_NODE)
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
42
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
43 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
44 /* Data Structures */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
45 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
46
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
47 typedef struct _GaimBlistNode GaimBlistNode;
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
48 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
49 * A Buddy list node. This can represent a group, a buddy, or anything else. This is a base class for struct buddy and
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
50 * struct group and for anything else that wants to put itself in the buddy list. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
51 struct _GaimBlistNode {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
52 enum gaim_blist_node_type type; /**< The type of node this is */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
53 GaimBlistNode *prev; /**< The sibling before this buddy. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
54 GaimBlistNode *next; /**< The sibling after this buddy. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
55 GaimBlistNode *parent; /**< The parent of this node */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
56 GaimBlistNode *child; /**< The child of this node */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
57 void *ui_data; /**< The UI can put data here. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
58 };
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
59
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
60 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
61 * A buddy. This contains everything Gaim will ever need to know about someone on the buddy list. Everything.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
62 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
63 struct buddy {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
64 GaimBlistNode node; /**< The node that this buddy inherits from */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
65 char *name; /**< The screenname of the buddy. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
66 char *alias; /**< The user-set alias of the buddy */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
67 char *server_alias; /**< The server-specified alias of the buddy. (i.e. MSN "Friendly Names") */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
68 int present; /**< This is 0 if the buddy appears offline, 1 if he appears online, and 2 if
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69 he has recently signed on */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70 int evil; /**< The warning level */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
71 time_t signon; /**< The time the buddy signed on. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
72 int idle; /**< The time the buddy has been idle in minutes. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
73 int uc; /**< This is a cryptic bitmask that makes sense only to the prpl. This will get changed */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
74 void *proto_data; /**< This allows the prpl to associate whatever data it wants with a buddy */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
75 struct gaim_account *account; /**< the account this buddy belongs to */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
76 GHashTable *settings; /**< per-buddy settings from the XML buddy list, set by plugins and the likes. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
77 };
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
78
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
79 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
80 * A group. This contains everything Gaim will ever need to know about a group.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
81 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
82 struct group {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
83 GaimBlistNode node; /**< The node that this group inherits from */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
84 char *name; /**< The name of this group. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
85 };
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
86
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
87
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
88 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
89 * The Buddy List
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
90 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
91 struct gaim_buddy_list {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
92 GaimBlistNode *root; /**< The first node in the buddy list */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
93 struct gaim_blist_ui_ops *ui_ops; /**< The UI operations for the buddy list */
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
94
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
95 void *ui_data; /**< UI-specific data. */
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
96 };
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
97
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
98 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
99 * Buddy list UI operations.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
100 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
101 * Any UI representing a buddy list must assign a filled-out gaim_window_ops
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
102 * structure to the buddy list core.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
103 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
104 struct gaim_blist_ui_ops
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
105 {
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
106 void (*new_list)(struct gaim_buddy_list *list); /**< Sets UI-specific data on a buddy list. */
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
107 void (*new_node)(GaimBlistNode *node); /**< Sets UI-specific data on a node. */
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
108 void (*show)(struct gaim_buddy_list *list); /**< The core will call this when its finished doing it's core stuff */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
109 void (*update)(struct gaim_buddy_list *list,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
110 GaimBlistNode *node); /**< This will update a node in the buddy list. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
111 void (*remove)(struct gaim_buddy_list *list,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
112 GaimBlistNode *node); /**< This removes a node from the list */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
113 void (*destroy)(struct gaim_buddy_list *list); /**< When the list gets destroyed, this gets called to destroy the UI. */
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4770
diff changeset
114 void (*set_visible)(struct gaim_buddy_list *list,
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
115 gboolean show); /**< Hides or unhides the buddy list */
4770
c4c28874ecd3 [gaim-migrate @ 5088]
Sean Egan <seanegan@gmail.com>
parents: 4765
diff changeset
116
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4770
diff changeset
117 };
4770
c4c28874ecd3 [gaim-migrate @ 5088]
Sean Egan <seanegan@gmail.com>
parents: 4765
diff changeset
118
c4c28874ecd3 [gaim-migrate @ 5088]
Sean Egan <seanegan@gmail.com>
parents: 4765
diff changeset
119 /**************************************************************************/
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
120 /** @name Buddy List API */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
121 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
122 /*@{*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
123
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
124 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
125 * Creates a new buddy list
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
126 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
127 struct gaim_buddy_list *gaim_blist_new();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
128
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
129 /**
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
130 * Sets the main buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
131 *
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
132 * @return The main buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
133 */
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
134 void gaim_set_blist(struct gaim_buddy_list *blist);
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
135
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
136 /**
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
137 * Returns the main buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
138 *
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
139 * @return The main buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
140 */
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
141 struct gaim_buddy_list *gaim_get_blist(void);
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
142
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
143 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
144 * Shows the buddy list, creating a new one if necessary.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
145 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
146 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
147 void gaim_blist_show();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
148
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
149
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
150 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
151 * Destroys the buddy list window.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
152 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
153 void gaim_blist_destroy();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
154
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
155 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
156 * Hides or unhides the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
157 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
158 * @param show Whether or not to show the buddy list
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
159 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
160 void gaim_blist_set_visible(gboolean show);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
161
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
162 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
163 * Updates a buddy's status.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
164 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
165 * This needs to not take an int.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
166 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
167 * @param buddy The buddy whose status has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
168 * @param status The new status in cryptic prpl-understood code
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
169 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
170 void gaim_blist_update_buddy_status(struct buddy *buddy, int status);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
171
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
172
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
173 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
174 * Updates a buddy's presence.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
175 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
176 * @param buddy The buddy whose presence has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
177 * @param presence The new presence
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
178 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
179 void gaim_blist_update_buddy_presence(struct buddy *buddy, int presence);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
180
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
181
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
182 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
183 * Updates a buddy's idle time.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
184 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
185 * @param buddy The buddy whose idle time has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
186 * @param idle The buddy's idle time in minutes.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
187 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
188 void gaim_blist_update_buddy_idle(struct buddy *buddy, int idle);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
189
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
190
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
191 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
192 * Updates a buddy's warning level.
4757
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
193 *
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
194 * @param buddy The buddy whose warning level has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
195 * @param evil The warning level as an int from 0 to 100 (or higher, I guess... but that'd be weird)
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
196 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
197 void gaim_blist_update_buddy_evil(struct buddy *buddy, int warning);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
198
4757
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
199 /**
4765
b6f6a10f9baf [gaim-migrate @ 5083]
Christian Hammond <chipx86@chipx86.com>
parents: 4757
diff changeset
200 * Updates a buddy's icon.
4757
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
201 *
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
202 * @param buddy The buddy whose buddy icon has changed
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
203 */
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
204 void gaim_blist_update_buddy_icon(struct buddy *buddy);
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
205
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
206
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
207
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
208 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
209 * Renames a buddy in the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
210 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
211 * @param buddy The buddy whose name will be changed.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
212 * @param name The new name of the buddy.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
213 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
214 void gaim_blist_rename_buddy(struct buddy *buddy, const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
215
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
216
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
217 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
218 * Aliases a buddy in the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
219 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
220 * @param buddy The buddy whose alias will be changed.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
221 * @param alias The buddy's alias.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
222 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
223 void gaim_blist_alias_buddy(struct buddy *buddy, const char *alias);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
224
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
225
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
226 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
227 * Renames a group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
228 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
229 * @param group The group to rename
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
230 * @param name The new name
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
231 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
232 void gaim_blist_rename_group(struct group *group, const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
233
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
234
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
235 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
236 * Creates a new buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
237 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
238 * @param account The account this buddy will get added to
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
239 * @param screenname The screenname of the new buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
240 * @param alias The alias of the new buddy (or NULL if unaliased)
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
241 * @return A newly allocated buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
242 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
243 struct buddy *gaim_buddy_new(struct gaim_account *account, const char *screenname, const char *alias);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
244
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
245 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
246 * Adds a new buddy to the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
247 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
248 * The buddy will be inserted right after node or appended to the end
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
249 * of group if node is NULL. If both are NULL, the buddy will be added to
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 * the "Buddies" group.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
251 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
252 * @param buddy The new buddy who gets added
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
253 * @param group The group to add the new buddy to.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
254 * @param node The insertion point
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
255 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
256 void gaim_blist_add_buddy(struct buddy *buddy, struct group *group, GaimBlistNode *node);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
257
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
258 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259 * Creates a new group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
260 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
261 * You can't have more than one group with the same name. Sorry. If you pass this the
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
262 * name of a group that already exists, it will return that group.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
263 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
264 * @param name The name of the new group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
265 * @return A new group struct
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
266 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
267 struct group *gaim_group_new(const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
268
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
269 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
270 * Adds a new group to the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
271 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
272 * The new group will be inserted after insert or appended to the end of
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
273 * the list if node is NULL.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
274 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
275 * @param group The group to add the new buddy to.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
276 * @param node The insertion point
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
277 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
278 void gaim_blist_add_group(struct group *group, GaimBlistNode *node);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
279
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
280 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
281 * Removes a buddy from the buddy list and frees the memory allocated to it.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
282 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
283 * @param buddy The buddy to be removed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
284 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
285 void gaim_blist_remove_buddy(struct buddy *buddy);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
286
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
287 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
288 * Removes a group from the buddy list and frees the memory allocated to it and to
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289 * its children
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
290 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
291 * @param group The group to be removed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
292 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
293 void gaim_blist_remove_group(struct group *group);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
294
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
295 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
296 * Returns the alias of a buddy.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
297 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
298 * @param buddy The buddy whose name will be returned.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
299 * @return The alias (if set), server alias (if option is set), or NULL.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
300 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
301 char *gaim_get_buddy_alias_only(struct buddy *buddy);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
302
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
303
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
304 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
305 * Returns the correct name to display for a buddy.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
306 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
307 * @param buddy The buddy whose name will be returned.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
308 * @return The alias (if set), server alias (if option is set), screenname, or "Unknown"
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
309 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
310 char *gaim_get_buddy_alias(struct buddy *buddy);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
311
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
312 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
313 * Finds the buddy struct given a screenname and an account
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
314 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
315 * @param name The buddy's screenname
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
316 * @param account The account this buddy belongs to
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
317 * @return The buddy or NULL if the buddy does not exist
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
318 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
319 struct buddy *gaim_find_buddy(struct gaim_account *account, const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
320
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
321 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
322 * Finds a group by name
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
323 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
324 * @param name The groups name
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
325 * @return The group or NULL if the group does not exist
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
326 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
327 struct group *gaim_find_group(const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
328
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
329 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
330 * Returns the group of which the buddy is a member.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
331 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
332 * @param buddy The buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
333 * @return The group or NULL if the buddy is not in a group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
334 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
335 struct group *gaim_find_buddys_group(struct buddy *buddy);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
336
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
337
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
338 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
339 * Returns a list of accounts that have buddies in this group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
340 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
341 * @param group The group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
342 * @return A list of gaim_accounts
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
343 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
344 GSList *gaim_group_get_accounts(struct group *g);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
345
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
346 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
347 * Determines whether an account owns any buddies in a given group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
348 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
349 * @param g The group to search through.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
350 * @account The account.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
351 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
352 gboolean gaim_group_on_account(struct group *g, struct gaim_account *account);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
353
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
354 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
355 * Called when an account gets signed off. Sets the presence of all the buddies to 0
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
356 * and tells the UI to update them.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
357 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
358 * @param account The account
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
359 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
360 void gaim_blist_remove_account(struct gaim_account *account);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
361
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
362
4701
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
363 /**
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
364 * Determines the total size of a group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
365 *
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
366 * @param group The group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
367 * @param offline Count buddies in offline accounts
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
368 * @return The number of buddies in the group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
369 */
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
370 int gaim_blist_get_group_size(struct group *group, gboolean offline);
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
371
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
372 /**
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
373 * Determines the number of online buddies in a group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
374 *
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
375 * @param group The group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
376 * @return The number of online buddies in the group, or 0 if the group is NULL
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
377 */
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
378 int gaim_blist_get_group_online_count(struct group *group);
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
379
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
380 /*@}*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
381
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
382 /****************************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
383 /** @name Buddy list file management API */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
384 /****************************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
385
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
386 /*@{*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
387 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
388 * Saves the buddy list to file
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
389 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
390 void gaim_blist_save();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
391
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
392 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
393 * Parses the toc-style buddy list used in older versions of Gaim and for SSI in toc.c
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
394 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
395 * @param account This is the account that the buddies and groups from config will get added to
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
396 * @param config This is the toc-style buddy list data
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
397 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
398 void parse_toc_buddy_list(struct gaim_account *account, char *config);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
399
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
400
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
401 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
402 * Loads the buddy list from ~/.gaim/blist.xml.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
403 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
404 void gaim_blist_load();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
405
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
406 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
407 * Associates some data with the buddy in the xml buddy list
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
408 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
409 * @param b The buddy the data is associated with
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
410 * @param key The key used to retrieve the data
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
411 * @param value The data to set
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
412 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
413 void gaim_buddy_set_setting(struct buddy *b, const char *key, const char *value);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
414
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
415 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
416 * Retrieves data from the XML buddy list set by gaim_buddy_set_setting())
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
417 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
418 * @param b The buddy to retrieve data from
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
419 * @param key The key to retrieve the data with
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
420 * @return The associated data or NULL if no data is associated
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
421 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
422 char *gaim_buddy_get_setting(struct buddy *b, const char *key);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
423
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
424 /*@}*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
425
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
426 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
427 /** @name UI Registration Functions */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
428 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
429 /*@{*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
430
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
431 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
432 * Sets the UI operations structure to be used for the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
433 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
434 * @param ops The ops struct.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
435 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
436 void gaim_set_blist_ui_ops(struct gaim_blist_ui_ops *ops);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
437
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
438 /**
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
439 * Returns the UI operations structure to be used for the buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
440 *
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
441 * @return The UI operations structure.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
442 */
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
443 struct gaim_blist_ui_ops *gaim_get_blist_ui_ops(void);
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
444
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
445 /*@}*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
446
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
447 #endif /* _LIST_H_ */