comparison src/blist.h @ 5234:890b29f00b68

[gaim-migrate @ 5604] Chats in the buddy list! You can now put chat rooms in your buddy list, and double-click them to join them, instead of having to do all that typing. I'm eventually gonna add auto-join support, so that ugly hack involving pouncing can go away. Someone should make some new artwork so we don't have 2 + icons next to each other in the menus. This also has some fixes to let gaim compile again, after the renaming of the buddy list files. This also fixes the problem with offline buddies not showing up in the list sometimes for accounts that didn't log in at startup. This probably fixes other stuff, but I can't remember any of it off the top of my head. I'm going to stop typing and let people play with this now. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sat, 26 Apr 2003 20:30:43 +0000
parents 1a53330dfd34
children 60983a46700e
comparison
equal deleted inserted replaced
5233:202105dbed8f 5234:890b29f00b68
1 /** 1 /**
2 * @file blist.h Buddy List API 2 * @file list.h Buddy List API
3 * @ingroup core 3 * @ingroup core
4 * 4 *
5 * gaim 5 * gaim
6 * 6 *
7 * Copyright (C) 2003, Sean Egan <sean.egan@binghamton.edu> 7 * Copyright (C) 2003, Sean Egan <sean.egan@binghamton.edu>
32 /* Enumerations */ 32 /* Enumerations */
33 /**************************************************************************/ 33 /**************************************************************************/
34 enum gaim_blist_node_type { 34 enum gaim_blist_node_type {
35 GAIM_BLIST_GROUP_NODE, 35 GAIM_BLIST_GROUP_NODE,
36 GAIM_BLIST_BUDDY_NODE, 36 GAIM_BLIST_BUDDY_NODE,
37 GAIM_BLIST_CHAT_NODE,
37 GAIM_BLIST_OTHER_NODE, 38 GAIM_BLIST_OTHER_NODE,
38 }; 39 };
39 40
41 #define GAIM_BLIST_NODE_IS_CHAT(n) ((n)->type == GAIM_BLIST_CHAT_NODE)
40 #define GAIM_BLIST_NODE_IS_BUDDY(n) ((n)->type == GAIM_BLIST_BUDDY_NODE) 42 #define GAIM_BLIST_NODE_IS_BUDDY(n) ((n)->type == GAIM_BLIST_BUDDY_NODE)
41 #define GAIM_BLIST_NODE_IS_GROUP(n) ((n)->type == GAIM_BLIST_GROUP_NODE) 43 #define GAIM_BLIST_NODE_IS_GROUP(n) ((n)->type == GAIM_BLIST_GROUP_NODE)
42 44
43 enum gaim_buddy_presence_state { 45 enum gaim_buddy_presence_state {
44 GAIM_BUDDY_SIGNING_OFF = -1, 46 GAIM_BUDDY_SIGNING_OFF = -1,
95 GaimBlistNode node; /**< The node that this group inherits from */ 97 GaimBlistNode node; /**< The node that this group inherits from */
96 char *name; /**< The name of this group. */ 98 char *name; /**< The name of this group. */
97 GHashTable *settings; /**< per-group settings from the XML buddy list, set by plugins and the likes. */ 99 GHashTable *settings; /**< per-group settings from the XML buddy list, set by plugins and the likes. */
98 }; 100 };
99 101
102 /**
103 * A group. This contains everything Gaim needs to put a chat room in the
104 * buddy list.
105 */
106 struct chat {
107 GaimBlistNode node; /**< The node that this chat inherits from */
108 char *alias; /**< The display name of this chat. */
109 GHashTable *components; /**< the stuff the protocol needs to know to join the chat */
110 struct gaim_account *account; /**< The account this chat is attached to */
111 };
112
100 113
101 /** 114 /**
102 * The Buddy List 115 * The Buddy List
103 */ 116 */
104 struct gaim_buddy_list { 117 struct gaim_buddy_list {
172 */ 185 */
173 void gaim_blist_set_visible(gboolean show); 186 void gaim_blist_set_visible(gboolean show);
174 187
175 /** 188 /**
176 * Updates a buddy's status. 189 * Updates a buddy's status.
177 * 190 *
178 * This needs to not take an int. 191 * This needs to not take an int.
179 * 192 *
180 * @param buddy The buddy whose status has changed 193 * @param buddy The buddy whose status has changed
181 * @param status The new status in cryptic prpl-understood code 194 * @param status The new status in cryptic prpl-understood code
182 */ 195 */
233 * @param buddy The buddy whose alias will be changed. 246 * @param buddy The buddy whose alias will be changed.
234 * @param alias The buddy's alias. 247 * @param alias The buddy's alias.
235 */ 248 */
236 void gaim_blist_alias_buddy(struct buddy *buddy, const char *alias); 249 void gaim_blist_alias_buddy(struct buddy *buddy, const char *alias);
237 250
251 /**
252 * Aliases a chat in the buddy list.
253 *
254 * @param chat The chat whose alias will be changed.
255 * @param alias The chat's new alias.
256 */
257 void gaim_blist_alias_chat(struct chat *chat, const char *alias);
238 258
239 /** 259 /**
240 * Renames a group 260 * Renames a group
241 * 261 *
242 * @param group The group to rename 262 * @param group The group to rename
243 * @param name The new name 263 * @param name The new name
244 */ 264 */
245 void gaim_blist_rename_group(struct group *group, const char *name); 265 void gaim_blist_rename_group(struct group *group, const char *name);
246 266
267 /**
268 * Creates a new chat for the buddy list
269 *
270 * @param account The account this chat will get added to
271 * @param alias The alias of the new chat
272 * @param components The info the prpl needs to join the chat
273 * @return A newly allocated chat
274 */
275 struct chat *gaim_chat_new(struct gaim_account *account, const char *alias, GHashTable *components);
276
277 /**
278 * Adds a new chat to the buddy list.
279 *
280 * The chat will be inserted right after node or appended to the end
281 * of group if node is NULL. If both are NULL, the buddy will be added to
282 * the "Chats" group.
283 *
284 * @param chat The new chat who gets added
285 * @param group The group to add the new chat to.
286 * @param node The insertion point
287 */
288 void gaim_blist_add_chat(struct chat *chat, struct group *group, GaimBlistNode *node);
247 289
248 /** 290 /**
249 * Creates a new buddy 291 * Creates a new buddy
250 * 292 *
251 * @param account The account this buddy will get added to 293 * @param account The account this buddy will get added to
296 * @param buddy The buddy to be removed 338 * @param buddy The buddy to be removed
297 */ 339 */
298 void gaim_blist_remove_buddy(struct buddy *buddy); 340 void gaim_blist_remove_buddy(struct buddy *buddy);
299 341
300 /** 342 /**
343 * Removes a chat from the buddy list and frees the memory allocated to it.
344 *
345 * @param chat The chat to be removed
346 */
347 void gaim_blist_remove_chat(struct chat *chat);
348
349 /**
301 * Removes a group from the buddy list and frees the memory allocated to it and to 350 * Removes a group from the buddy list and frees the memory allocated to it and to
302 * its children 351 * its children
303 * 352 *
304 * @param group The group to be removed 353 * @param group The group to be removed
305 */ 354 */
363 * @param account The account. 412 * @param account The account.
364 */ 413 */
365 gboolean gaim_group_on_account(struct group *g, struct gaim_account *account); 414 gboolean gaim_group_on_account(struct group *g, struct gaim_account *account);
366 415
367 /** 416 /**
417 * Called when an account gets signed on. Tells the UI to update all the
418 * buddies.
419 *
420 * @param account The account
421 */
422 void gaim_blist_add_account(struct gaim_account *account);
423
424
425 /**
368 * Called when an account gets signed off. Sets the presence of all the buddies to 0 426 * Called when an account gets signed off. Sets the presence of all the buddies to 0
369 * and tells the UI to update them. 427 * and tells the UI to update them.
370 * 428 *
371 * @param account The account 429 * @param account The account
372 */ 430 */