annotate src/list.h @ 4755:54fbd9769677

[gaim-migrate @ 5072] This fixes the debug window. It's probably not an ideal fix, but it works. Some kind of core/ui splittage here would be nice. I also made the gtk convo destroy function remove the timer to redraw animated buddy icons, if it exists. This doesn't really affect anything, since the redraw function checks to make sure the convo exists, but it's probably more better this way. Also, I meant to misspell "definitely." Really. I did. You don't believe me? It's ok, I wouldn't believe me either. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Thu, 13 Mar 2003 22:57:58 +0000
parents ac7ca2bd6d4f
children c4ebe1a8484b
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 GSList *members; /**< The buddies in this group. This is different from node.child in that it will only
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
86 contain buddies. */
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
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 * The Buddy List
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
92 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
93 struct gaim_buddy_list {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
94 GaimBlistNode *root; /**< The first node in the buddy list */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
95 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
96
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
97 void *ui_data; /**< UI-specific data. */
4688
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
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 * Buddy list UI operations.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
102 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
103 * 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
104 * structure to the buddy list core.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
105 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
106 struct gaim_blist_ui_ops
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
107 {
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
108 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
109 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
110 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
111 void (*update)(struct gaim_buddy_list *list,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
112 GaimBlistNode *node); /**< This will update a node in the buddy list. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
113 void (*remove)(struct gaim_buddy_list *list,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
114 GaimBlistNode *node); /**< This removes a node from the list */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
115 void (*destroy)(struct gaim_buddy_list *list); /**< When the list gets destroyed, this gets called to destroy the UI. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
116 void (*set_visible)(struct gaim_buddy_list *list,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
117 gboolean show); /**< Hides or unhides the buddy list */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
118
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
119 };
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
120
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 /** @name Buddy List API */
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
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 * Creates a new buddy list
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
128 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
129 struct gaim_buddy_list *gaim_blist_new();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
130
4695
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 * Sets 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 * @return The main buddy list.
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 void gaim_set_blist(struct gaim_buddy_list *blist);
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
137
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 * Returns 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 * @return The main buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
142 */
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
143 struct gaim_buddy_list *gaim_get_blist(void);
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
144
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 * Shows the buddy list, creating a new one if necessary.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
147 *
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 void gaim_blist_show();
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
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 * Destroys the buddy list window.
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 void gaim_blist_destroy();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
156
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 * Hides or unhides 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 * @param show Whether or not to show the buddy list
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 void gaim_blist_set_visible(gboolean show);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
163
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 * Updates a buddy's status.
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 * This needs to not take an int.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
168 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
169 * @param buddy The buddy whose status has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
170 * @param status The new status in cryptic prpl-understood code
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 void gaim_blist_update_buddy_status(struct buddy *buddy, int status);
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
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 * Updates a buddy's presence.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
177 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
178 * @param buddy The buddy whose presence has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
179 * @param presence The new 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 void gaim_blist_update_buddy_presence(struct buddy *buddy, int presence);
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
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 * Updates a buddy's idle time.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
186 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
187 * @param buddy The buddy whose idle time has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
188 * @param idle The buddy's idle time in minutes.
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 void gaim_blist_update_buddy_idle(struct buddy *buddy, int idle);
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
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
193 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
194 * Updates a buddy's warning level.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
195 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
196 * @param buddy The buddy whose warning level has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
197 * @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
198 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
199 void gaim_blist_update_buddy_evil(struct buddy *buddy, int warning);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
200
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
201
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
202 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
203 * Renames a buddy in the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
204 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
205 * @param buddy The buddy whose name will be changed.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
206 * @param name The new name of the buddy.
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 void gaim_blist_rename_buddy(struct buddy *buddy, const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
209
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
212 * Aliases a buddy in the buddy list.
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 * @param buddy The buddy whose alias will be changed.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
215 * @param alias The buddy's alias.
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 void gaim_blist_alias_buddy(struct buddy *buddy, const char *alias);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
218
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
221 * Renames a group
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 * @param group The group to rename
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
224 * @param name The new name
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 void gaim_blist_rename_group(struct group *group, const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
227
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
230 * Creates a new buddy
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 * @param account The account this buddy will get added to
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
233 * @param screenname The screenname of the new buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
234 * @param alias The alias of the new buddy (or NULL if unaliased)
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
235 * @return A newly allocated buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
236 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
237 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
238
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
239 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
240 * Adds a new buddy to the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
241 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
242 * 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
243 * 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
244 * the "Buddies" group.
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 * @param buddy The new buddy who gets added
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
247 * @param group The group to add the new buddy to.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
248 * @param node The insertion point
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
249 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 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
251
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
252 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
253 * Creates a new group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
254 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
255 * 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
256 * name of a group that already exists, it will return that group.
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 * @param name The name of the new group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259 * @return A new group struct
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 struct group *gaim_group_new(const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
262
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 * Adds a new group to the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
265 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
266 * 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
267 * the list if node is NULL.
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 * @param group The group to add the new buddy to.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
270 * @param node The insertion point
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 void gaim_blist_add_group(struct group *group, GaimBlistNode *node);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
273
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 * 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
276 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
277 * @param buddy The buddy to be removed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
278 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
279 void gaim_blist_remove_buddy(struct buddy *buddy);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
282 * 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
283 * its children
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 * @param group The group to be removed
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 void gaim_blist_remove_group(struct group *group);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
288
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289
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 * Returns the alias of a buddy.
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 * @param buddy The buddy whose name will be returned.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
294 * @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
295 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
296 char *gaim_get_buddy_alias_only(struct buddy *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
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
299 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
300 * Returns the correct name to display for a buddy.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
301 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
302 * @param buddy The buddy whose name will be returned.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
303 * @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
304 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
305 char *gaim_get_buddy_alias(struct buddy *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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
308 * Finds the buddy struct given a screenname and an account
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 * @param name The buddy's screenname
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
311 * @param account The account this buddy belongs to
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
312 * @return The buddy or NULL if the buddy does not exist
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
313 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
314 struct buddy *gaim_find_buddy(struct gaim_account *account, const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
315
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
316 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
317 * Finds a group by name
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 * @param name The groups name
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
320 * @return The group or NULL if the group does not exist
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 struct group *gaim_find_group(const char *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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
325 * Returns the group of which the buddy is a member.
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 * @param buddy The buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
328 * @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
329 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
330 struct group *gaim_find_buddys_group(struct buddy *buddy);
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
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
333 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
334 * Returns a list of accounts that have buddies in this group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
335 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
336 * @param group The group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
337 * @return A list of gaim_accounts
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 GSList *gaim_group_get_accounts(struct group *g);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
342 * Determines whether an account owns any buddies in a given group
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 * @param g The group to search through.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
345 * @account The account.
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 gboolean gaim_group_on_account(struct group *g, struct gaim_account *account);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
350 * 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
351 * and tells the UI to update them.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
352 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
353 * @param account The account
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 void gaim_blist_remove_account(struct gaim_account *account);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
356
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
357
4701
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
358 /**
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
359 * Determines the total size of a group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
360 *
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
361 * @param group The group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
362 * @param offline Count buddies in offline accounts
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
363 * @return The number of buddies in the group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
364 */
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
365 int gaim_blist_get_group_size(struct group *group, gboolean offline);
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
366
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
367 /**
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
368 * Determines the number of online buddies in a 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 * @param group The group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
371 * @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
372 */
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
373 int gaim_blist_get_group_online_count(struct group *group);
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
374
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
375 /*@}*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
376
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
377 /****************************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
378 /** @name Buddy list file management API */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
379 /****************************************************************************************/
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 * Saves the buddy list to file
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 void gaim_blist_save();
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 * 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
389 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
390 * @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
391 * @param config This is the toc-style buddy list data
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 void parse_toc_buddy_list(struct gaim_account *account, char *config);
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
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
396 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
397 * Loads the buddy list from ~/.gaim/blist.xml.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
398 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
399 void gaim_blist_load();
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 * Associates some data with the buddy in the xml buddy list
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 * @param b The buddy the data is associated with
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
405 * @param key The key used to retrieve the data
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
406 * @param value The data to set
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
407 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
408 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
409
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
410 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
411 * 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
412 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
413 * @param b The buddy to retrieve data from
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
414 * @param key The key to retrieve the data with
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
415 * @return The associated data or NULL if no data is associated
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
416 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
417 char *gaim_buddy_get_setting(struct buddy *b, const char *key);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
418
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
419 /*@}*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
420
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 /** @name UI Registration Functions */
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 * Sets the UI operations structure to be used for the buddy list.
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 * @param ops The ops struct.
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 void gaim_set_blist_ui_ops(struct gaim_blist_ui_ops *ops);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
432
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
433 /**
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
434 * 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
435 *
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
436 * @return The UI operations structure.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
437 */
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
438 struct gaim_blist_ui_ops *gaim_get_blist_ui_ops(void);
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
439
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
440 /*@}*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
441
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
442 #endif /* _LIST_H_ */