annotate src/list.h @ 5205:fefad67de2c7

[gaim-migrate @ 5573] I had a damn good commit message, but it was eaten. Let's try it again. Announcing, Gaim Plugin API version 2.0, or GPAPIV2.0 for short. There are lots'a cool thingies here. Okay now, this isn't as cool as the previous message, but: 1) There's now a single entry function for all plugin types. It returns a detailed information structure on the plugin. This removes a lot of the ugliness from old plugins. Oh yeah, libicq wasn't converted to this, so if you use it, well, you shouldn't have used it anyway, but now you can't! bwahahaha. Use AIM/ICQ. 2) There are now 3 types of plugins: Standard, Loader, and Protocol plugins. Standard plugins are, well, standard, compiled plugins. Loader plugins load other plugins. For example, the perl support is now a loader plugin. It loads perl scripts. In the future, we'll have Ruby and Python loader plugins. Protocol plugins are, well, protocol plugins... yeah... 3) Plugins have unique IDs, so they can be referred to or automatically updated from a plugin database in the future. Neat, huh? 4) Plugins will have dependency support in the future, and can be hidden, so if you have, say, a logging core plugin, it won't have to show up, but then you load the GTK+ logging plugin and it'll auto-load the core plugin. Core/UI split plugins! 5) There will eventually be custom plugin signals and RPC of some sort, for the core/ui split plugins. So, okay, back up .gaimrc. I'd like to thank my parents for their support, javabsp for helping convert a bunch of protocol plugins, and Etan for helping convert a bunch of standard plugins. Have fun. If you have any problems, please let me know, but you probably won't have anything major happen. You will have to convert your plugins, though, and I'm not guaranteeing that all perl scripts will still work. I'll end up changing the perl script API eventually, so I know they won't down the road. Don't worry, though. It'll be mass cool. faceprint wants me to just commit the damn code already. So, here we go!!! .. .. I need a massage. From a young, cute girl. Are there any young, cute girls in the audience? IM me plz k thx. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Fri, 25 Apr 2003 06:47:33 +0000
parents 94f11800cac5
children
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
5034
4691c5936c01 [gaim-migrate @ 5377]
Christian Hammond <chipx86@chipx86.com>
parents: 4785
diff changeset
3 * @ingroup core
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5 * gaim
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 * Copyright (C) 2003, Sean Egan <sean.egan@binghamton.edu>
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 * 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
11 * the Free Software Foundation; either version 2 of the License, or
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 * (at your option) any later version.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 * GNU General Public License for more details.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 * along with this program; if not, write to the Free Software
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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
5068
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
43 enum gaim_buddy_presence_state {
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
44 GAIM_BUDDY_SIGNING_OFF = -1,
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
45 GAIM_BUDDY_OFFLINE = 0,
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
46 GAIM_BUDDY_ONLINE,
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
47 GAIM_BUDDY_SIGNING_ON,
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
48 };
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
49
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
50 #define GAIM_BUDDY_IS_ONLINE(b) ((b)->present == GAIM_BUDDY_ONLINE || \
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
51 (b)->present == GAIM_BUDDY_SIGNING_ON)
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
52
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
53
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
54 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
55 /* Data Structures */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
56 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
57
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
58 typedef struct _GaimBlistNode GaimBlistNode;
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 * 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
61 * 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
62 struct _GaimBlistNode {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
63 enum gaim_blist_node_type type; /**< The type of node this is */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
64 GaimBlistNode *prev; /**< The sibling before this buddy. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
65 GaimBlistNode *next; /**< The sibling after this buddy. */
5068
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
66 GaimBlistNode *parent; /**< The parent of this node */
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
67 GaimBlistNode *child; /**< The child of this node */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
68 void *ui_data; /**< The UI can put data here. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69 };
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
71 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
72 * 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
73 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
74 struct buddy {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
75 GaimBlistNode node; /**< The node that this buddy inherits from */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
76 char *name; /**< The screenname of the buddy. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
77 char *alias; /**< The user-set alias of the buddy */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
78 char *server_alias; /**< The server-specified alias of the buddy. (i.e. MSN "Friendly Names") */
5068
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
79 enum gaim_buddy_presence_state present; /**< This is 0 if the buddy appears offline, 1 if he appears online, and 2 if
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
80 he has recently signed on */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
81 int evil; /**< The warning level */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
82 time_t signon; /**< The time the buddy signed on. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
83 int idle; /**< The time the buddy has been idle in minutes. */
5068
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
84 int uc; /**< This is a cryptic bitmask that makes sense only to the prpl. This will get changed */
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
85 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
86 struct gaim_account *account; /**< the account this buddy belongs to */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
87 GHashTable *settings; /**< per-buddy settings from the XML buddy list, set by plugins and the likes. */
5068
b37d7d09ec83 [gaim-migrate @ 5419]
Nathan Walp <nwalp@pidgin.im>
parents: 5034
diff changeset
88 guint timer; /**< The timer handle. */
4688
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
92 * 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
93 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
94 struct group {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
95 GaimBlistNode node; /**< The node that this group inherits from */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
96 char *name; /**< The name of this group. */
5142
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
97 GHashTable *settings; /**< per-group settings from the XML buddy list, set by plugins and the likes. */
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
102 * The Buddy List
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_buddy_list {
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
105 GaimBlistNode *root; /**< The first node in the buddy list */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
106 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
107
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
108 void *ui_data; /**< UI-specific data. */
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
109 };
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
110
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
111 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
112 * Buddy list UI operations.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
113 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
114 * 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
115 * structure to the buddy list core.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
116 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
117 struct gaim_blist_ui_ops
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
118 {
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
119 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
120 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
121 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
122 void (*update)(struct gaim_buddy_list *list,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
123 GaimBlistNode *node); /**< This will update a node in the buddy list. */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
124 void (*remove)(struct gaim_buddy_list *list,
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
125 GaimBlistNode *node); /**< This removes a node from the list */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
126 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
127 void (*set_visible)(struct gaim_buddy_list *list,
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
128 gboolean show); /**< Hides or unhides the buddy list */
4770
c4c28874ecd3 [gaim-migrate @ 5088]
Sean Egan <seanegan@gmail.com>
parents: 4765
diff changeset
129
4785
1e28e7d802a1 [gaim-migrate @ 5105]
Nathan Walp <nwalp@pidgin.im>
parents: 4770
diff changeset
130 };
4770
c4c28874ecd3 [gaim-migrate @ 5088]
Sean Egan <seanegan@gmail.com>
parents: 4765
diff changeset
131
c4c28874ecd3 [gaim-migrate @ 5088]
Sean Egan <seanegan@gmail.com>
parents: 4765
diff changeset
132 /**************************************************************************/
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
133 /** @name Buddy List API */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
134 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
135 /*@{*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
136
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
137 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
138 * Creates a new buddy list
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
139 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
140 struct gaim_buddy_list *gaim_blist_new();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
141
4695
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 * Sets the main buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
144 *
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
145 * @return The main buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
146 */
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
147 void gaim_set_blist(struct gaim_buddy_list *blist);
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
148
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
149 /**
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
150 * Returns the main buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
151 *
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
152 * @return The main buddy list.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
153 */
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
154 struct gaim_buddy_list *gaim_get_blist(void);
4688
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
157 * Shows the buddy list, creating a new one if necessary.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
158 *
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_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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
164 * Destroys the buddy list window.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
165 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
166 void gaim_blist_destroy();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
167
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 * Hides or unhides the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
170 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
171 * @param show Whether or not to show the buddy list
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 void gaim_blist_set_visible(gboolean show);
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 status.
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 * This needs to not take an int.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
179 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
180 * @param buddy The buddy whose status has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
181 * @param status The new status in cryptic prpl-understood code
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 void gaim_blist_update_buddy_status(struct buddy *buddy, int status);
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
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 * Updates a buddy's presence.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
188 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
189 * @param buddy The buddy whose presence has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
190 * @param presence The new presence
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 void gaim_blist_update_buddy_presence(struct buddy *buddy, int presence);
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
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 * Updates a buddy's idle time.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
197 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
198 * @param buddy The buddy whose idle time has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
199 * @param idle The buddy's idle time in minutes.
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 void gaim_blist_update_buddy_idle(struct buddy *buddy, int idle);
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
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 * Updates a buddy's warning level.
4757
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 * @param buddy The buddy whose warning level has changed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
208 * @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
209 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
210 void gaim_blist_update_buddy_evil(struct buddy *buddy, int warning);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
211
4757
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
212 /**
4765
b6f6a10f9baf [gaim-migrate @ 5083]
Christian Hammond <chipx86@chipx86.com>
parents: 4757
diff changeset
213 * Updates a buddy's icon.
4757
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
214 *
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
215 * @param buddy The buddy whose buddy icon has changed
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
216 */
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
217 void gaim_blist_update_buddy_icon(struct buddy *buddy);
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
218
c4ebe1a8484b [gaim-migrate @ 5074]
Nathan Walp <nwalp@pidgin.im>
parents: 4701
diff changeset
219
4688
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
222 * Renames a buddy in the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
223 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
224 * @param buddy The buddy whose name will be changed.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
225 * @param name The new name of the buddy.
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 void gaim_blist_rename_buddy(struct buddy *buddy, const char *name);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
231 * Aliases a buddy in the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
232 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
233 * @param buddy The buddy whose alias will be changed.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
234 * @param alias The buddy's alias.
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 void gaim_blist_alias_buddy(struct buddy *buddy, const char *alias);
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
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 * Renames a group
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 * @param group The group to rename
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
243 * @param name The new name
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 void gaim_blist_rename_group(struct group *group, const char *name);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
246
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
249 * Creates a new buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
251 * @param account The account this buddy will get added to
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
252 * @param screenname The screenname of the new buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
253 * @param alias The alias of the new buddy (or NULL if unaliased)
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
254 * @return A newly allocated buddy
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 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
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 * Adds a new buddy to the buddy list.
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 * 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
262 * 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
263 * the "Buddies" group.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
264 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
265 * @param buddy The new buddy who gets added
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
266 * @param group The group to add the new buddy to.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
267 * @param node The insertion point
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 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
270
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 * Creates a new group
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 * 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
275 * name of a group that already exists, it will return that group.
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 name The name of the new group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
278 * @return A new group struct
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 struct group *gaim_group_new(const char *name);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
283 * Adds a new group to the buddy list.
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 * 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
286 * the list if node is NULL.
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 * @param group The group to add the new buddy to.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289 * @param node The insertion point
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 void gaim_blist_add_group(struct group *group, GaimBlistNode *node);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
294 * 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
295 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
296 * @param buddy The buddy to be removed
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 void gaim_blist_remove_buddy(struct buddy *buddy);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
301 * 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
302 * its children
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 * @param group The group to be removed
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
305 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
306 void gaim_blist_remove_group(struct group *group);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
309 * Returns the alias of a buddy.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
310 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
311 * @param buddy The buddy whose name will be returned.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
312 * @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
313 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
314 char *gaim_get_buddy_alias_only(struct buddy *buddy);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
318 * Returns the correct name to display for a buddy.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
319 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
320 * @param buddy The buddy whose name will be returned.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
321 * @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
322 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
323 char *gaim_get_buddy_alias(struct buddy *buddy);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
326 * Finds the buddy struct given a screenname and an account
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
327 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
328 * @param name The buddy's screenname
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
329 * @param account The account this buddy belongs to
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
330 * @return The buddy or NULL if the buddy does not exist
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 struct buddy *gaim_find_buddy(struct gaim_account *account, const char *name);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
335 * Finds a group by name
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 * @param name The groups name
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
338 * @return The group or NULL if the group does not exist
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
339 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
340 struct group *gaim_find_group(const char *name);
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 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
343 * Returns the group of which the buddy is a member.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
344 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
345 * @param buddy The buddy
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
346 * @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
347 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
348 struct group *gaim_find_buddys_group(struct buddy *buddy);
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
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 * Returns a list of accounts that have buddies in this group
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 * @param group The group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
355 * @return A list of gaim_accounts
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 GSList *gaim_group_get_accounts(struct group *g);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
358
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 * Determines whether an account owns any buddies in a given group
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
361 *
5034
4691c5936c01 [gaim-migrate @ 5377]
Christian Hammond <chipx86@chipx86.com>
parents: 4785
diff changeset
362 * @param g The group to search through.
4691c5936c01 [gaim-migrate @ 5377]
Christian Hammond <chipx86@chipx86.com>
parents: 4785
diff changeset
363 * @param account The account.
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
364 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
365 gboolean gaim_group_on_account(struct group *g, struct gaim_account *account);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
366
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
367 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
368 * 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
369 * and tells the UI to update them.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
370 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
371 * @param account The account
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
372 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
373 void gaim_blist_remove_account(struct gaim_account *account);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
374
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
375
4701
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
376 /**
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
377 * Determines the total size of a group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
378 *
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
379 * @param group The group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
380 * @param offline Count buddies in offline accounts
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
381 * @return The number of buddies in the group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
382 */
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
383 int gaim_blist_get_group_size(struct group *group, gboolean offline);
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
384
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
385 /**
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
386 * Determines the number of online buddies in a group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
387 *
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
388 * @param group The group
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
389 * @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
390 */
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
391 int gaim_blist_get_group_online_count(struct group *group);
ac7ca2bd6d4f [gaim-migrate @ 5012]
Nathan Walp <nwalp@pidgin.im>
parents: 4695
diff changeset
392
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
393 /*@}*/
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 /** @name Buddy list file management API */
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
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 * Saves the buddy list to file
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
402 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
403 void gaim_blist_save();
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
404
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 * 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
407 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
408 * @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
409 * @param config This is the toc-style buddy list data
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 void parse_toc_buddy_list(struct gaim_account *account, char *config);
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
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 * Loads the buddy list from ~/.gaim/blist.xml.
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 void gaim_blist_load();
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 /**
5142
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
420 * Associates some data with the group in the xml buddy list
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
421 *
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
422 * @param g The group the data is associated with
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
423 * @param key The key used to retrieve the data
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
424 * @param value The data to set
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
425 */
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
426 void gaim_group_set_setting(struct group *g, const char *key, const char *value);
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
427
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
428 /**
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
429 * Retrieves data from the XML buddy list set by gaim_group_set_setting())
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
430 *
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
431 * @param g The group to retrieve data from
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
432 * @param key The key to retrieve the data with
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
433 * @return The associated data or NULL if no data is associated
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
434 */
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
435 char *gaim_group_get_setting(struct group *g, const char *key);
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
436
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
437
94f11800cac5 [gaim-migrate @ 5506]
Nathan Walp <nwalp@pidgin.im>
parents: 5068
diff changeset
438 /**
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
439 * Associates some data with the buddy in the xml buddy list
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 * @param b The buddy the data is associated with
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
442 * @param key The key used to retrieve the data
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
443 * @param value The data to set
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
444 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
445 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
446
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
447 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
448 * 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
449 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
450 * @param b The buddy to retrieve data from
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
451 * @param key The key to retrieve the data with
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
452 * @return The associated data or NULL if no data is associated
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
453 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
454 char *gaim_buddy_get_setting(struct buddy *b, const char *key);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
455
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
456 /*@}*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
457
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
458 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
459 /** @name UI Registration Functions */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
460 /**************************************************************************/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
461 /*@{*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
462
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
463 /**
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
464 * Sets the UI operations structure to be used for the buddy list.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
465 *
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
466 * @param ops The ops struct.
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
467 */
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
468 void gaim_set_blist_ui_ops(struct gaim_blist_ui_ops *ops);
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
469
4695
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
470 /**
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
471 * 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
472 *
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
473 * @return The UI operations structure.
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
474 */
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
475 struct gaim_blist_ui_ops *gaim_get_blist_ui_ops(void);
4bdd9a5fd026 [gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents: 4688
diff changeset
476
4688
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
477 /*@}*/
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
478
0a35ec3585ef [gaim-migrate @ 4999]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
479 #endif /* _LIST_H_ */