00001
00027 #ifndef _GAIM_ACCOUNT_H_
00028 #define _GAIM_ACCOUNT_H_
00029
00030 #include <glib.h>
00031
00032 typedef struct _GaimAccountUiOps GaimAccountUiOps;
00033 typedef struct _GaimAccount GaimAccount;
00034
00035 typedef gboolean (*GaimFilterAccountFunc)(GaimAccount *account);
00036
00037 #include "connection.h"
00038 #include "log.h"
00039 #include "proxy.h"
00040 #include "prpl.h"
00041
00042 struct _GaimAccountUiOps
00043 {
00044 void (*notify_added)(GaimAccount *account, const char *remote_user,
00045 const char *id, const char *alias,
00046 const char *message);
00047 };
00048
00049 struct _GaimAccount
00050 {
00051 char *username;
00052 char *alias;
00053 char *password;
00054 char *user_info;
00056 char *buddy_icon;
00058 gboolean remember_pass;
00060 char *protocol_id;
00062 GaimConnection *gc;
00064 GHashTable *settings;
00065 GHashTable *ui_settings;
00067 GaimProxyInfo *proxy_info;
00068
00069
00070
00071 GSList *permit;
00072 GSList *deny;
00073 int perm_deny;
00074 GaimLog *system_log;
00076 void *ui_data;
00077 };
00078
00079 #ifdef __cplusplus
00080 extern "C" {
00081 #endif
00082
00083
00085
00094 GaimAccount *gaim_account_new(const char *username, const char *protocol_id);
00095
00101 void gaim_account_destroy(GaimAccount *account);
00102
00110 GaimConnection *gaim_account_connect(GaimAccount *account);
00111
00119 GaimConnection *gaim_account_register(GaimAccount *account);
00120
00128 void gaim_account_disconnect(GaimAccount *account);
00129
00143 void gaim_account_notify_added(GaimAccount *account, const char *remote_user,
00144 const char *id, const char *alias,
00145 const char *message);
00146
00162 void gaim_account_request_add(GaimAccount *account, const char *remote_user,
00163 const char *id, const char *alias,
00164 const char *message);
00165
00171 void gaim_account_request_change_password(GaimAccount *account);
00172
00179 void gaim_account_request_change_user_info(GaimAccount *account);
00180
00187 void gaim_account_set_username(GaimAccount *account, const char *username);
00188
00195 void gaim_account_set_password(GaimAccount *account, const char *password);
00196
00203 void gaim_account_set_alias(GaimAccount *account, const char *alias);
00204
00211 void gaim_account_set_user_info(GaimAccount *account, const char *user_info);
00212
00219 void gaim_account_set_buddy_icon(GaimAccount *account, const char *icon);
00220
00227 void gaim_account_set_protocol_id(GaimAccount *account,
00228 const char *protocol_id);
00229
00236 void gaim_account_set_connection(GaimAccount *account, GaimConnection *gc);
00237
00244 void gaim_account_set_remember_password(GaimAccount *account, gboolean value);
00245
00252 void gaim_account_set_check_mail(GaimAccount *account, gboolean value);
00253
00262 void gaim_account_set_auto_login(GaimAccount *account, const char *ui,
00263 gboolean value);
00264
00271 void gaim_account_set_proxy_info(GaimAccount *account, GaimProxyInfo *info);
00272
00278 void gaim_account_clear_settings(GaimAccount *account);
00279
00287 void gaim_account_set_int(GaimAccount *account, const char *name, int value);
00288
00296 void gaim_account_set_string(GaimAccount *account, const char *name,
00297 const char *value);
00298
00306 void gaim_account_set_bool(GaimAccount *account, const char *name,
00307 gboolean value);
00308
00317 void gaim_account_set_ui_int(GaimAccount *account, const char *ui,
00318 const char *name, int value);
00319
00328 void gaim_account_set_ui_string(GaimAccount *account, const char *ui,
00329 const char *name, const char *value);
00330
00339 void gaim_account_set_ui_bool(GaimAccount *account, const char *ui,
00340 const char *name, gboolean value);
00341
00349 gboolean gaim_account_is_connected(const GaimAccount *account);
00350
00358 const char *gaim_account_get_username(const GaimAccount *account);
00359
00367 const char *gaim_account_get_password(const GaimAccount *account);
00368
00376 const char *gaim_account_get_alias(const GaimAccount *account);
00377
00385 const char *gaim_account_get_user_info(const GaimAccount *account);
00386
00394 const char *gaim_account_get_buddy_icon(const GaimAccount *account);
00395
00403 const char *gaim_account_get_protocol_id(const GaimAccount *account);
00404
00412 const char *gaim_account_get_protocol_name(const GaimAccount *account);
00413
00421 GaimConnection *gaim_account_get_connection(const GaimAccount *account);
00422
00430 gboolean gaim_account_get_remember_password(const GaimAccount *account);
00431
00439 gboolean gaim_account_get_check_mail(const GaimAccount *account);
00440
00450 gboolean gaim_account_get_auto_login(const GaimAccount *account,
00451 const char *ui);
00452
00460 GaimProxyInfo *gaim_account_get_proxy_info(const GaimAccount *account);
00461
00471 int gaim_account_get_int(const GaimAccount *account, const char *name,
00472 int default_value);
00473
00483 const char *gaim_account_get_string(const GaimAccount *account,
00484 const char *name,
00485 const char *default_value);
00486
00496 gboolean gaim_account_get_bool(const GaimAccount *account, const char *name,
00497 gboolean default_value);
00498
00509 int gaim_account_get_ui_int(const GaimAccount *account, const char *ui,
00510 const char *name, int default_value);
00511
00522 const char *gaim_account_get_ui_string(const GaimAccount *account,
00523 const char *ui, const char *name,
00524 const char *default_value);
00525
00536 gboolean gaim_account_get_ui_bool(const GaimAccount *account, const char *ui,
00537 const char *name, gboolean default_value);
00538
00539
00548 GaimLog *gaim_account_get_log(GaimAccount *account);
00549
00555 void gaim_account_destroy_log(GaimAccount *account);
00556
00559
00561
00570 gboolean gaim_accounts_load();
00571
00575 void gaim_accounts_sync();
00576
00582 void gaim_accounts_add(GaimAccount *account);
00583
00589 void gaim_accounts_remove(GaimAccount *account);
00590
00600 void gaim_accounts_delete(GaimAccount *account);
00601
00607 void gaim_accounts_auto_login(const char *ui);
00608
00615 void gaim_accounts_reorder(GaimAccount *account, size_t new_index);
00616
00622 GList *gaim_accounts_get_all(void);
00623
00632 GaimAccount *gaim_accounts_find(const char *name, const char *protocol);
00633
00637
00639
00646 void gaim_accounts_set_ui_ops(GaimAccountUiOps *ops);
00647
00653 GaimAccountUiOps *gaim_accounts_get_ui_ops(void);
00654
00658
00660
00668 void *gaim_accounts_get_handle(void);
00669
00673 void gaim_accounts_init(void);
00674
00678 void gaim_accounts_uninit(void);
00679
00682 #ifdef __cplusplus
00683 }
00684 #endif
00685
00686 #endif