14192
|
1 /**
|
|
2 * @file account.h Account API
|
|
3 * @ingroup core
|
|
4 *
|
|
5 * gaim
|
|
6 *
|
|
7 * Gaim is the legal property of its developers, whose names are too numerous
|
|
8 * to list here. Please refer to the COPYRIGHT file distributed with this
|
|
9 * source distribution.
|
|
10 *
|
|
11 * This program is free software; you can redistribute it and/or modify
|
|
12 * it under the terms of the GNU General Public License as published by
|
|
13 * the Free Software Foundation; either version 2 of the License, or
|
|
14 * (at your option) any later version.
|
|
15 *
|
|
16 * This program is distributed in the hope that it will be useful,
|
|
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19 * GNU General Public License for more details.
|
|
20 *
|
|
21 * You should have received a copy of the GNU General Public License
|
|
22 * along with this program; if not, write to the Free Software
|
|
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
24 *
|
|
25 * @see @ref account-signals
|
|
26 */
|
|
27 #ifndef _GAIM_ACCOUNT_H_
|
|
28 #define _GAIM_ACCOUNT_H_
|
|
29
|
15058
|
30 #include <glib-object.h>
|
14192
|
31 #include <glib.h>
|
|
32
|
|
33 typedef struct _GaimAccountUiOps GaimAccountUiOps;
|
|
34 typedef struct _GaimAccount GaimAccount;
|
|
35
|
|
36 typedef gboolean (*GaimFilterAccountFunc)(GaimAccount *account);
|
15081
|
37 typedef void (*GaimAccountRequestAuthorizationCb)(void *);
|
14192
|
38
|
|
39 #include "connection.h"
|
|
40 #include "log.h"
|
|
41 #include "proxy.h"
|
|
42 #include "prpl.h"
|
|
43 #include "status.h"
|
|
44
|
|
45 struct _GaimAccountUiOps
|
|
46 {
|
|
47 /* A buddy we already have added us to their buddy list. */
|
|
48 void (*notify_added)(GaimAccount *account, const char *remote_user,
|
15035
|
49 const char *id, const char *alias,
|
14192
|
50 const char *message);
|
|
51 void (*status_changed)(GaimAccount *account, GaimStatus *status);
|
|
52 /* Someone we don't have on our list added us. Will prompt to add them. */
|
|
53 void (*request_add)(GaimAccount *account, const char *remote_user,
|
|
54 const char *id, const char *alias,
|
|
55 const char *message);
|
15058
|
56 void (*request_authorize)(GaimAccount *account, const char *remote_user, const char *id,
|
15136
|
57 const char *alias, const char *message, gboolean on_list,
|
15058
|
58 GCallback authorize_cb, GCallback deny_cb, void *user_data);
|
14192
|
59 };
|
|
60
|
|
61 struct _GaimAccount
|
|
62 {
|
|
63 char *username; /**< The username. */
|
14275
|
64 char *alias; /**< How you appear to yourself. */
|
14192
|
65 char *password; /**< The account password. */
|
|
66 char *user_info; /**< User information. */
|
|
67
|
15071
|
68 char *buddy_icon; /**< The buddy icon's cached path. */
|
|
69 char *buddy_icon_path; /**< The buddy icon's non-cached path. */
|
14192
|
70
|
|
71 gboolean remember_pass; /**< Remember the password. */
|
|
72
|
|
73 char *protocol_id; /**< The ID of the protocol. */
|
|
74
|
|
75 GaimConnection *gc; /**< The connection handle. */
|
|
76 gboolean disconnecting; /**< The account is currently disconnecting */
|
|
77
|
|
78 GHashTable *settings; /**< Protocol-specific settings. */
|
|
79 GHashTable *ui_settings; /**< UI-specific settings. */
|
|
80
|
|
81 GaimProxyInfo *proxy_info; /**< Proxy information. This will be set */
|
|
82 /* to NULL when the account inherits */
|
|
83 /* proxy settings from global prefs. */
|
|
84
|
|
85 GSList *permit; /**< Permit list. */
|
|
86 GSList *deny; /**< Deny list. */
|
|
87 int perm_deny; /**< The permit/deny setting. */
|
|
88
|
|
89 GList *status_types; /**< Status types. */
|
|
90
|
|
91 GaimPresence *presence; /**< Presence. */
|
|
92 GaimLog *system_log; /**< The system log */
|
|
93
|
|
94 void *ui_data; /**< The UI can put data here. */
|
|
95 };
|
|
96
|
|
97 #ifdef __cplusplus
|
|
98 extern "C" {
|
|
99 #endif
|
|
100
|
|
101 /**************************************************************************/
|
|
102 /** @name Account API */
|
|
103 /**************************************************************************/
|
|
104 /*@{*/
|
|
105
|
|
106 /**
|
|
107 * Creates a new account.
|
|
108 *
|
|
109 * @param username The username.
|
|
110 * @param protocol_id The protocol ID.
|
|
111 *
|
|
112 * @return The new account.
|
|
113 */
|
|
114 GaimAccount *gaim_account_new(const char *username, const char *protocol_id);
|
|
115
|
|
116 /**
|
|
117 * Destroys an account.
|
|
118 *
|
|
119 * @param account The account to destroy.
|
|
120 */
|
|
121 void gaim_account_destroy(GaimAccount *account);
|
|
122
|
|
123 /**
|
|
124 * Connects to an account.
|
|
125 *
|
|
126 * @param account The account to connect to.
|
|
127 */
|
|
128 void gaim_account_connect(GaimAccount *account);
|
|
129
|
|
130 /**
|
|
131 * Registers an account.
|
|
132 *
|
|
133 * @param account The account to register.
|
|
134 */
|
|
135 void gaim_account_register(GaimAccount *account);
|
|
136
|
|
137 /**
|
|
138 * Disconnects from an account.
|
|
139 *
|
|
140 * @param account The account to disconnect from.
|
|
141 */
|
|
142 void gaim_account_disconnect(GaimAccount *account);
|
|
143
|
|
144 /**
|
|
145 * Notifies the user that the account was added to a remote user's
|
|
146 * buddy list.
|
|
147 *
|
|
148 * This will present a dialog informing the user that he was added to the
|
|
149 * remote user's buddy list.
|
|
150 *
|
|
151 * @param account The account that was added.
|
|
152 * @param remote_user The name of the user that added this account.
|
|
153 * @param id The optional ID of the local account. Rarely used.
|
|
154 * @param alias The optional alias of the user.
|
|
155 * @param message The optional message sent from the user adding you.
|
|
156 */
|
|
157 void gaim_account_notify_added(GaimAccount *account, const char *remote_user,
|
|
158 const char *id, const char *alias,
|
|
159 const char *message);
|
|
160
|
|
161 /**
|
|
162 * Notifies the user that the account was addded to a remote user's buddy
|
|
163 * list and asks ther user if they want to add the remote user to their buddy
|
|
164 * list.
|
|
165 *
|
|
166 * This will present a dialog informing the local user that the remote user
|
|
167 * added them to the remote user's buddy list and will ask if they want to add
|
|
168 * the remote user to the buddy list.
|
|
169 *
|
|
170 * @param account The account that was added.
|
|
171 * @param remote_user The name of the user that added this account.
|
|
172 * @param id The optional ID of the local account. Rarely used.
|
|
173 * @param alias The optional alias of the user.
|
|
174 * @param message The optional message sent from the user adding you.
|
|
175 */
|
|
176 void gaim_account_request_add(GaimAccount *account, const char *remote_user,
|
|
177 const char *id, const char *alias,
|
|
178 const char *message);
|
15058
|
179
|
|
180 /**
|
|
181 * Notifies the user that a remote user has wants to add the local user
|
|
182 * to his or her buddy list and requires authorization to d oso.
|
|
183 *
|
15060
|
184 * This will present a dialog informing the user of this and ask if the
|
15058
|
185 * user authorizes or denies the remote user from adding him.
|
|
186 *
|
|
187 * @param account The account that was added
|
|
188 * @param remote_user The name of the usre that added this account.
|
|
189 * @param id The optional ID of the local account. Rarely used.
|
|
190 * @param alias The optional alias of the remote user.
|
|
191 * @param message The optional message sent from the uer requesting you
|
|
192 * @param auth_cb The callback called when the local user accepts
|
|
193 * @param deny_cb The callback called when the local user rejects
|
|
194 * @param user_data Data to be passed back to the above callbacks
|
|
195 */
|
|
196 void gaim_account_request_authorization(GaimAccount *account, const char *remote_user,
|
15136
|
197 const char *id, const char *alias, const char *message, gboolean on_list,
|
15058
|
198 GCallback auth_cb, GCallback deny_cb, void *user_data);
|
|
199
|
14192
|
200 /**
|
|
201 * Requests information from the user to change the account's password.
|
|
202 *
|
|
203 * @param account The account to change the password on.
|
|
204 */
|
|
205 void gaim_account_request_change_password(GaimAccount *account);
|
|
206
|
|
207 /**
|
|
208 * Requests information from the user to change the account's
|
|
209 * user information.
|
|
210 *
|
|
211 * @param account The account to change the user information on.
|
|
212 */
|
|
213 void gaim_account_request_change_user_info(GaimAccount *account);
|
|
214
|
|
215 /**
|
|
216 * Sets the account's username.
|
|
217 *
|
|
218 * @param account The account.
|
|
219 * @param username The username.
|
|
220 */
|
|
221 void gaim_account_set_username(GaimAccount *account, const char *username);
|
|
222
|
|
223 /**
|
|
224 * Sets the account's password.
|
|
225 *
|
|
226 * @param account The account.
|
|
227 * @param password The password.
|
|
228 */
|
|
229 void gaim_account_set_password(GaimAccount *account, const char *password);
|
|
230
|
|
231 /**
|
|
232 * Sets the account's alias.
|
|
233 *
|
|
234 * @param account The account.
|
|
235 * @param alias The alias.
|
|
236 */
|
|
237 void gaim_account_set_alias(GaimAccount *account, const char *alias);
|
|
238
|
|
239 /**
|
|
240 * Sets the account's user information
|
|
241 *
|
|
242 * @param account The account.
|
|
243 * @param user_info The user information.
|
|
244 */
|
|
245 void gaim_account_set_user_info(GaimAccount *account, const char *user_info);
|
|
246
|
|
247 /**
|
|
248 * Sets the account's buddy icon.
|
|
249 *
|
|
250 * @param account The account.
|
|
251 * @param icon The buddy icon file.
|
|
252 */
|
|
253 void gaim_account_set_buddy_icon(GaimAccount *account, const char *icon);
|
|
254
|
|
255 /**
|
15071
|
256 * Sets the account's buddy icon path.
|
|
257 *
|
|
258 * @param account The account.
|
|
259 * @param info The buddy icon non-cached path.
|
|
260 */
|
|
261 void gaim_account_set_buddy_icon_path(GaimAccount *account, const char *path);
|
|
262
|
|
263 /**
|
14192
|
264 * Sets the account's protocol ID.
|
|
265 *
|
|
266 * @param account The account.
|
|
267 * @param protocol_id The protocol ID.
|
|
268 */
|
|
269 void gaim_account_set_protocol_id(GaimAccount *account,
|
|
270 const char *protocol_id);
|
|
271
|
|
272 /**
|
|
273 * Sets the account's connection.
|
|
274 *
|
|
275 * @param account The account.
|
|
276 * @param gc The connection.
|
|
277 */
|
|
278 void gaim_account_set_connection(GaimAccount *account, GaimConnection *gc);
|
|
279
|
|
280 /**
|
|
281 * Sets whether or not this account should save its password.
|
|
282 *
|
|
283 * @param account The account.
|
|
284 * @param value @c TRUE if it should remember the password.
|
|
285 */
|
|
286 void gaim_account_set_remember_password(GaimAccount *account, gboolean value);
|
|
287
|
|
288 /**
|
|
289 * Sets whether or not this account should check for mail.
|
|
290 *
|
|
291 * @param account The account.
|
|
292 * @param value @c TRUE if it should check for mail.
|
|
293 */
|
|
294 void gaim_account_set_check_mail(GaimAccount *account, gboolean value);
|
|
295
|
|
296 /**
|
|
297 * Sets whether or not this account is enabled for the specified
|
|
298 * UI.
|
|
299 *
|
|
300 * @param account The account.
|
|
301 * @param ui The UI.
|
|
302 * @param value @c TRUE if it is enabled.
|
|
303 */
|
|
304 void gaim_account_set_enabled(GaimAccount *account, const char *ui,
|
|
305 gboolean value);
|
|
306
|
|
307 /**
|
|
308 * Sets the account's proxy information.
|
|
309 *
|
|
310 * @param account The account.
|
|
311 * @param info The proxy information.
|
|
312 */
|
|
313 void gaim_account_set_proxy_info(GaimAccount *account, GaimProxyInfo *info);
|
|
314
|
|
315 /**
|
|
316 * Sets the account's status types.
|
|
317 *
|
|
318 * @param account The account.
|
|
319 * @param status_types The list of status types.
|
|
320 */
|
|
321 void gaim_account_set_status_types(GaimAccount *account, GList *status_types);
|
|
322
|
|
323 /**
|
|
324 * Activates or deactivates a status. All changes to the statuses of
|
14643
|
325 * an account go through this function or gaim_account_set_status_list.
|
14192
|
326 *
|
|
327 * Only independent statuses can be deactivated with this. To deactivate
|
|
328 * an exclusive status, activate a different (and exclusive?) status.
|
|
329 *
|
|
330 * @param account The account.
|
|
331 * @param status_id The ID of the status.
|
|
332 * @param active The active state.
|
14643
|
333 * @param ... Pairs of attributes for the new status passed in
|
|
334 * as a NULL-terminated list of id/value pairs.
|
14192
|
335 */
|
|
336 void gaim_account_set_status(GaimAccount *account, const char *status_id,
|
|
337 gboolean active, ...);
|
|
338
|
|
339
|
|
340 /**
|
|
341 * Activates or deactivates a status. All changes to the statuses of
|
14643
|
342 * an account go through this function or gaim_account_set_status.
|
14192
|
343 *
|
|
344 * Only independent statuses can be deactivated with this. To deactivate
|
|
345 * an exclusive status, activate a different (and exclusive?) status.
|
|
346 *
|
|
347 * @param account The account.
|
|
348 * @param status_id The ID of the status.
|
|
349 * @param active The active state.
|
|
350 * @param attrs A list of attributes in key/value pairs
|
|
351 */
|
|
352 void gaim_account_set_status_list(GaimAccount *account,
|
|
353 const char *status_id,
|
|
354 gboolean active, GList *attrs);
|
|
355
|
|
356 /**
|
|
357 * Clears all protocol-specific settings on an account.
|
|
358 *
|
|
359 * @param account The account.
|
|
360 */
|
|
361 void gaim_account_clear_settings(GaimAccount *account);
|
|
362
|
|
363 /**
|
|
364 * Sets a protocol-specific integer setting for an account.
|
|
365 *
|
|
366 * @param account The account.
|
|
367 * @param name The name of the setting.
|
|
368 * @param value The setting's value.
|
|
369 */
|
|
370 void gaim_account_set_int(GaimAccount *account, const char *name, int value);
|
|
371
|
|
372 /**
|
|
373 * Sets a protocol-specific string setting for an account.
|
|
374 *
|
|
375 * @param account The account.
|
|
376 * @param name The name of the setting.
|
|
377 * @param value The setting's value.
|
|
378 */
|
|
379 void gaim_account_set_string(GaimAccount *account, const char *name,
|
|
380 const char *value);
|
|
381
|
|
382 /**
|
|
383 * Sets a protocol-specific boolean setting for an account.
|
|
384 *
|
|
385 * @param account The account.
|
|
386 * @param name The name of the setting.
|
|
387 * @param value The setting's value.
|
|
388 */
|
|
389 void gaim_account_set_bool(GaimAccount *account, const char *name,
|
|
390 gboolean value);
|
|
391
|
|
392 /**
|
|
393 * Sets a UI-specific integer setting for an account.
|
|
394 *
|
|
395 * @param account The account.
|
|
396 * @param ui The UI name.
|
|
397 * @param name The name of the setting.
|
|
398 * @param value The setting's value.
|
|
399 */
|
|
400 void gaim_account_set_ui_int(GaimAccount *account, const char *ui,
|
|
401 const char *name, int value);
|
|
402
|
|
403 /**
|
|
404 * Sets a UI-specific string setting for an account.
|
|
405 *
|
|
406 * @param account The account.
|
|
407 * @param ui The UI name.
|
|
408 * @param name The name of the setting.
|
|
409 * @param value The setting's value.
|
|
410 */
|
|
411 void gaim_account_set_ui_string(GaimAccount *account, const char *ui,
|
|
412 const char *name, const char *value);
|
|
413
|
|
414 /**
|
|
415 * Sets a UI-specific boolean setting for an account.
|
|
416 *
|
|
417 * @param account The account.
|
|
418 * @param ui The UI name.
|
|
419 * @param name The name of the setting.
|
|
420 * @param value The setting's value.
|
|
421 */
|
|
422 void gaim_account_set_ui_bool(GaimAccount *account, const char *ui,
|
|
423 const char *name, gboolean value);
|
|
424
|
|
425 /**
|
|
426 * Returns whether or not the account is connected.
|
|
427 *
|
|
428 * @param account The account.
|
|
429 *
|
|
430 * @return @c TRUE if connected, or @c FALSE otherwise.
|
|
431 */
|
|
432 gboolean gaim_account_is_connected(const GaimAccount *account);
|
|
433
|
|
434 /**
|
|
435 * Returns whether or not the account is connecting.
|
|
436 *
|
|
437 * @param account The account.
|
|
438 *
|
|
439 * @return @c TRUE if connecting, or @c FALSE otherwise.
|
|
440 */
|
|
441 gboolean gaim_account_is_connecting(const GaimAccount *account);
|
|
442
|
|
443 /**
|
|
444 * Returns whether or not the account is disconnected.
|
|
445 *
|
|
446 * @param account The account.
|
|
447 *
|
|
448 * @return @c TRUE if disconnected, or @c FALSE otherwise.
|
|
449 */
|
|
450 gboolean gaim_account_is_disconnected(const GaimAccount *account);
|
|
451
|
|
452 /**
|
|
453 * Returns the account's username.
|
|
454 *
|
|
455 * @param account The account.
|
|
456 *
|
|
457 * @return The username.
|
|
458 */
|
|
459 const char *gaim_account_get_username(const GaimAccount *account);
|
|
460
|
|
461 /**
|
|
462 * Returns the account's password.
|
|
463 *
|
|
464 * @param account The account.
|
|
465 *
|
|
466 * @return The password.
|
|
467 */
|
|
468 const char *gaim_account_get_password(const GaimAccount *account);
|
|
469
|
|
470 /**
|
|
471 * Returns the account's alias.
|
|
472 *
|
|
473 * @param account The account.
|
|
474 *
|
|
475 * @return The alias.
|
|
476 */
|
|
477 const char *gaim_account_get_alias(const GaimAccount *account);
|
|
478
|
|
479 /**
|
|
480 * Returns the account's user information.
|
|
481 *
|
|
482 * @param account The account.
|
|
483 *
|
|
484 * @return The user information.
|
|
485 */
|
|
486 const char *gaim_account_get_user_info(const GaimAccount *account);
|
|
487
|
|
488 /**
|
|
489 * Returns the account's buddy icon filename.
|
|
490 *
|
|
491 * @param account The account.
|
|
492 *
|
|
493 * @return The buddy icon filename.
|
|
494 */
|
|
495 const char *gaim_account_get_buddy_icon(const GaimAccount *account);
|
|
496
|
|
497 /**
|
15071
|
498 * Gets the account's buddy icon path.
|
|
499 *
|
|
500 * @param account The account.
|
|
501 *
|
|
502 * @return The buddy icon's non-cached path.
|
|
503 */
|
|
504 const char *gaim_account_get_buddy_icon_path(const GaimAccount *account);
|
|
505
|
|
506 /**
|
14192
|
507 * Returns the account's protocol ID.
|
|
508 *
|
|
509 * @param account The account.
|
|
510 *
|
|
511 * @return The protocol ID.
|
|
512 */
|
|
513 const char *gaim_account_get_protocol_id(const GaimAccount *account);
|
|
514
|
|
515 /**
|
|
516 * Returns the account's protocol name.
|
|
517 *
|
|
518 * @param account The account.
|
|
519 *
|
|
520 * @return The protocol name.
|
|
521 */
|
|
522 const char *gaim_account_get_protocol_name(const GaimAccount *account);
|
|
523
|
|
524 /**
|
|
525 * Returns the account's connection.
|
|
526 *
|
|
527 * @param account The account.
|
|
528 *
|
|
529 * @return The connection.
|
|
530 */
|
|
531 GaimConnection *gaim_account_get_connection(const GaimAccount *account);
|
|
532
|
|
533 /**
|
|
534 * Returns whether or not this account should save its password.
|
|
535 *
|
|
536 * @param account The account.
|
|
537 *
|
|
538 * @return @c TRUE if it should remember the password.
|
|
539 */
|
|
540 gboolean gaim_account_get_remember_password(const GaimAccount *account);
|
|
541
|
|
542 /**
|
|
543 * Returns whether or not this account should check for mail.
|
|
544 *
|
|
545 * @param account The account.
|
|
546 *
|
|
547 * @return @c TRUE if it should check for mail.
|
|
548 */
|
|
549 gboolean gaim_account_get_check_mail(const GaimAccount *account);
|
|
550
|
|
551 /**
|
|
552 * Returns whether or not this account is enabled for the
|
|
553 * specified UI.
|
|
554 *
|
|
555 * @param account The account.
|
|
556 * @param ui The UI.
|
|
557 *
|
|
558 * @return @c TRUE if it enabled on this UI.
|
|
559 */
|
|
560 gboolean gaim_account_get_enabled(const GaimAccount *account,
|
|
561 const char *ui);
|
|
562
|
|
563 /**
|
|
564 * Returns the account's proxy information.
|
|
565 *
|
|
566 * @param account The account.
|
|
567 *
|
|
568 * @return The proxy information.
|
|
569 */
|
|
570 GaimProxyInfo *gaim_account_get_proxy_info(const GaimAccount *account);
|
|
571
|
|
572 /**
|
|
573 * Returns the active status for this account. This looks through
|
|
574 * the GaimPresence associated with this account and returns the
|
|
575 * GaimStatus that has its active flag set to "TRUE." There can be
|
|
576 * only one active GaimStatus in a GaimPresence.
|
|
577 *
|
|
578 * @param account The account.
|
|
579 *
|
|
580 * @return The active status.
|
|
581 */
|
|
582 GaimStatus *gaim_account_get_active_status(const GaimAccount *account);
|
|
583
|
|
584 /**
|
|
585 * Returns the account status with the specified ID.
|
|
586 *
|
|
587 * Note that this works differently than gaim_buddy_get_status() in that
|
|
588 * it will only return NULL if the status was not registered.
|
|
589 *
|
|
590 * @param account The account.
|
|
591 * @param status_id The status ID.
|
|
592 *
|
|
593 * @return The status, or NULL if it was never registered.
|
|
594 */
|
|
595 GaimStatus *gaim_account_get_status(const GaimAccount *account,
|
|
596 const char *status_id);
|
|
597
|
|
598 /**
|
|
599 * Returns the account status type with the specified ID.
|
|
600 *
|
|
601 * @param account The account.
|
|
602 * @param id The ID of the status type to find.
|
|
603 *
|
|
604 * @return The status type if found, or NULL.
|
|
605 */
|
|
606 GaimStatusType *gaim_account_get_status_type(const GaimAccount *account,
|
|
607 const char *id);
|
|
608
|
|
609 /**
|
|
610 * Returns the account status type with the specified primitive.
|
|
611 * Note: It is possible for an account to have more than one
|
|
612 * GaimStatusType with the same primitive. In this case, the
|
|
613 * first GaimStatusType is returned.
|
|
614 *
|
|
615 * @param account The account.
|
|
616 * @param primitive The type of the status type to find.
|
|
617 *
|
|
618 * @return The status if found, or NULL.
|
|
619 */
|
|
620 GaimStatusType *gaim_account_get_status_type_with_primitive(
|
|
621 const GaimAccount *account,
|
|
622 GaimStatusPrimitive primitive);
|
|
623
|
|
624 /**
|
|
625 * Returns the account's presence.
|
|
626 *
|
|
627 * @param account The account.
|
|
628 *
|
|
629 * @return The account's presence.
|
|
630 */
|
|
631 GaimPresence *gaim_account_get_presence(const GaimAccount *account);
|
|
632
|
|
633 /**
|
|
634 * Returns whether or not an account status is active.
|
|
635 *
|
|
636 * @param account The account.
|
|
637 * @param status_id The status ID.
|
|
638 *
|
|
639 * @return TRUE if active, or FALSE if not.
|
|
640 */
|
|
641 gboolean gaim_account_is_status_active(const GaimAccount *account,
|
|
642 const char *status_id);
|
|
643
|
|
644 /**
|
|
645 * Returns the account's status types.
|
|
646 *
|
|
647 * @param account The account.
|
|
648 *
|
|
649 * @return The account's status types.
|
|
650 */
|
|
651 const GList *gaim_account_get_status_types(const GaimAccount *account);
|
|
652
|
|
653 /**
|
|
654 * Returns a protocol-specific integer setting for an account.
|
|
655 *
|
|
656 * @param account The account.
|
|
657 * @param name The name of the setting.
|
|
658 * @param default_value The default value.
|
|
659 *
|
|
660 * @return The value.
|
|
661 */
|
|
662 int gaim_account_get_int(const GaimAccount *account, const char *name,
|
|
663 int default_value);
|
|
664
|
|
665 /**
|
|
666 * Returns a protocol-specific string setting for an account.
|
|
667 *
|
|
668 * @param account The account.
|
|
669 * @param name The name of the setting.
|
|
670 * @param default_value The default value.
|
|
671 *
|
|
672 * @return The value.
|
|
673 */
|
|
674 const char *gaim_account_get_string(const GaimAccount *account,
|
|
675 const char *name,
|
|
676 const char *default_value);
|
|
677
|
|
678 /**
|
|
679 * Returns a protocol-specific boolean setting for an account.
|
|
680 *
|
|
681 * @param account The account.
|
|
682 * @param name The name of the setting.
|
|
683 * @param default_value The default value.
|
|
684 *
|
|
685 * @return The value.
|
|
686 */
|
|
687 gboolean gaim_account_get_bool(const GaimAccount *account, const char *name,
|
|
688 gboolean default_value);
|
|
689
|
|
690 /**
|
|
691 * Returns a UI-specific integer setting for an account.
|
|
692 *
|
|
693 * @param account The account.
|
|
694 * @param ui The UI name.
|
|
695 * @param name The name of the setting.
|
|
696 * @param default_value The default value.
|
|
697 *
|
|
698 * @return The value.
|
|
699 */
|
|
700 int gaim_account_get_ui_int(const GaimAccount *account, const char *ui,
|
|
701 const char *name, int default_value);
|
|
702
|
|
703 /**
|
|
704 * Returns a UI-specific string setting for an account.
|
|
705 *
|
|
706 * @param account The account.
|
|
707 * @param ui The UI name.
|
|
708 * @param name The name of the setting.
|
|
709 * @param default_value The default value.
|
|
710 *
|
|
711 * @return The value.
|
|
712 */
|
|
713 const char *gaim_account_get_ui_string(const GaimAccount *account,
|
|
714 const char *ui, const char *name,
|
|
715 const char *default_value);
|
|
716
|
|
717 /**
|
|
718 * Returns a UI-specific boolean setting for an account.
|
|
719 *
|
|
720 * @param account The account.
|
|
721 * @param ui The UI name.
|
|
722 * @param name The name of the setting.
|
|
723 * @param default_value The default value.
|
|
724 *
|
|
725 * @return The value.
|
|
726 */
|
|
727 gboolean gaim_account_get_ui_bool(const GaimAccount *account, const char *ui,
|
|
728 const char *name, gboolean default_value);
|
|
729
|
|
730
|
|
731 /**
|
|
732 * Returns the system log for an account.
|
|
733 *
|
|
734 * @param account The account.
|
|
735 * @param create Should it be created if it doesn't exist?
|
|
736 *
|
|
737 * @return The log.
|
|
738 *
|
|
739 * @note Callers should almost always pass @c FALSE for @a create.
|
|
740 * Passing @c TRUE could result in an existing log being reopened,
|
|
741 * if the log has already been closed, which not all loggers deal
|
|
742 * with appropriately.
|
|
743 */
|
|
744 GaimLog *gaim_account_get_log(GaimAccount *account, gboolean create);
|
|
745
|
|
746 /**
|
|
747 * Frees the system log of an account
|
|
748 *
|
|
749 * @param account The account.
|
|
750 */
|
|
751 void gaim_account_destroy_log(GaimAccount *account);
|
|
752
|
|
753 /**
|
|
754 * Adds a buddy to the server-side buddy list for the specified account.
|
|
755 *
|
|
756 * @param account The account.
|
|
757 * @param buddy The buddy to add.
|
|
758 */
|
|
759 void gaim_account_add_buddy(GaimAccount *account, GaimBuddy *buddy);
|
|
760 /**
|
|
761 * Adds a list of buddies to the server-side buddy list.
|
|
762 *
|
|
763 * @param account The account.
|
|
764 * @param buddies The list of GaimBlistNodes representing the buddies to add.
|
|
765 */
|
|
766 void gaim_account_add_buddies(GaimAccount *account, GList *buddies);
|
|
767
|
|
768 /**
|
|
769 * Removes a buddy from the server-side buddy list.
|
|
770 *
|
|
771 * @param account The account.
|
|
772 * @param buddy The buddy to remove.
|
|
773 * @param group The group to remove the buddy from.
|
|
774 */
|
|
775 void gaim_account_remove_buddy(GaimAccount *account, GaimBuddy *buddy,
|
|
776 GaimGroup *group);
|
|
777
|
|
778 /**
|
|
779 * Removes a list of buddies from the server-side buddy list.
|
|
780 *
|
|
781 * @note The lists buddies and groups are parallel lists. Be sure that node n of
|
|
782 * groups matches node n of buddies.
|
|
783 *
|
|
784 * @param account The account.
|
|
785 * @param buddies The list of buddies to remove.
|
|
786 * @param groups The list of groups to remove buddies from. Each node of this
|
|
787 * list should match the corresponding node of buddies.
|
|
788 */
|
|
789 void gaim_account_remove_buddies(GaimAccount *account, GList *buddies,
|
|
790 GList *groups);
|
|
791
|
|
792 /**
|
|
793 * Removes a group from the server-side buddy list.
|
|
794 *
|
|
795 * @param account The account.
|
|
796 * @param group The group to remove.
|
|
797 */
|
|
798 void gaim_account_remove_group(GaimAccount *account, GaimGroup *group);
|
|
799
|
|
800 /**
|
|
801 * Changes the password on the specified account.
|
|
802 *
|
|
803 * @param account The account.
|
|
804 * @param orig_pw The old password.
|
|
805 * @param new_pw The new password.
|
|
806 */
|
|
807 void gaim_account_change_password(GaimAccount *account, const char *orig_pw,
|
|
808 const char *new_pw);
|
|
809
|
|
810 /**
|
|
811 * Whether the account supports sending offline messages to buddy.
|
|
812 *
|
|
813 * @param account The account
|
|
814 * @param buddy The buddy
|
|
815 */
|
|
816 gboolean gaim_account_supports_offline_message(GaimAccount *account, GaimBuddy *buddy);
|
|
817
|
|
818 /*@}*/
|
|
819
|
|
820 /**************************************************************************/
|
|
821 /** @name Accounts API */
|
|
822 /**************************************************************************/
|
|
823 /*@{*/
|
|
824
|
|
825 /**
|
|
826 * Adds an account to the list of accounts.
|
|
827 *
|
|
828 * @param account The account.
|
|
829 */
|
|
830 void gaim_accounts_add(GaimAccount *account);
|
|
831
|
|
832 /**
|
|
833 * Removes an account from the list of accounts.
|
|
834 *
|
|
835 * @param account The account.
|
|
836 */
|
|
837 void gaim_accounts_remove(GaimAccount *account);
|
|
838
|
|
839 /**
|
|
840 * Deletes an account.
|
|
841 *
|
|
842 * This will remove any buddies from the buddy list that belong to this
|
|
843 * account, buddy pounces that belong to this account, and will also
|
|
844 * destroy @a account.
|
|
845 *
|
|
846 * @param account The account.
|
|
847 */
|
|
848 void gaim_accounts_delete(GaimAccount *account);
|
|
849
|
|
850 /**
|
|
851 * Reorders an account.
|
|
852 *
|
|
853 * @param account The account to reorder.
|
|
854 * @param new_index The new index for the account.
|
|
855 */
|
|
856 void gaim_accounts_reorder(GaimAccount *account, gint new_index);
|
|
857
|
|
858 /**
|
|
859 * Returns a list of all accounts.
|
|
860 *
|
|
861 * @return A list of all accounts.
|
|
862 */
|
|
863 GList *gaim_accounts_get_all(void);
|
|
864
|
|
865 /**
|
|
866 * Returns a list of all enabled accounts
|
|
867 *
|
|
868 * @return A list of all enabled accounts. The list is owned
|
|
869 * by the caller, and must be g_list_free()d to avoid
|
|
870 * leaking the nodes.
|
|
871 */
|
|
872 GList *gaim_accounts_get_all_active(void);
|
|
873
|
|
874 /**
|
|
875 * Finds an account with the specified name and protocol id.
|
|
876 *
|
|
877 * @param name The account username.
|
|
878 * @param protocol The account protocol ID.
|
|
879 *
|
|
880 * @return The account, if found, or @c FALSE otherwise.
|
|
881 */
|
|
882 GaimAccount *gaim_accounts_find(const char *name, const char *protocol);
|
|
883
|
|
884 /**
|
|
885 * This is called by the core after all subsystems and what
|
|
886 * not have been initialized. It sets all enabled accounts
|
|
887 * to their startup status by signing them on, setting them
|
|
888 * away, etc.
|
|
889 *
|
|
890 * You probably shouldn't call this unless you really know
|
|
891 * what you're doing.
|
|
892 */
|
|
893 void gaim_accounts_restore_current_statuses(void);
|
|
894
|
|
895 /*@}*/
|
|
896
|
|
897
|
|
898 /**************************************************************************/
|
|
899 /** @name UI Registration Functions */
|
|
900 /**************************************************************************/
|
|
901 /*@{*/
|
|
902 /**
|
|
903 * Sets the UI operations structure to be used for accounts.
|
|
904 *
|
|
905 * @param ops The UI operations structure.
|
|
906 */
|
|
907 void gaim_accounts_set_ui_ops(GaimAccountUiOps *ops);
|
|
908
|
|
909 /**
|
|
910 * Returns the UI operations structure used for accounts.
|
|
911 *
|
|
912 * @return The UI operations structure in use.
|
|
913 */
|
|
914 GaimAccountUiOps *gaim_accounts_get_ui_ops(void);
|
|
915
|
|
916 /*@}*/
|
|
917
|
|
918
|
|
919 /**************************************************************************/
|
|
920 /** @name Accounts Subsystem */
|
|
921 /**************************************************************************/
|
|
922 /*@{*/
|
|
923
|
|
924 /**
|
|
925 * Returns the accounts subsystem handle.
|
|
926 *
|
|
927 * @return The accounts subsystem handle.
|
|
928 */
|
|
929 void *gaim_accounts_get_handle(void);
|
|
930
|
|
931 /**
|
|
932 * Initializes the accounts subsystem.
|
|
933 */
|
|
934 void gaim_accounts_init(void);
|
|
935
|
|
936 /**
|
|
937 * Uninitializes the accounts subsystem.
|
|
938 */
|
|
939 void gaim_accounts_uninit(void);
|
|
940
|
|
941 /*@}*/
|
|
942
|
|
943 #ifdef __cplusplus
|
|
944 }
|
|
945 #endif
|
|
946
|
|
947 #endif /* _GAIM_ACCOUNT_H_ */
|