00001
00027 #ifndef _PURPLE_ACCOUNT_H_
00028 #define _PURPLE_ACCOUNT_H_
00029
00030 #include <glib-object.h>
00031 #include <glib.h>
00032 #include <glib-object.h>
00033
00034 typedef struct _PurpleAccountUiOps PurpleAccountUiOps;
00035 typedef struct _PurpleAccount PurpleAccount;
00036
00037 typedef gboolean (*PurpleFilterAccountFunc)(PurpleAccount *account);
00038 typedef void (*PurpleAccountRequestAuthorizationCb)(void *);
00039
00040 #include "connection.h"
00041 #include "log.h"
00042 #include "proxy.h"
00043 #include "prpl.h"
00044 #include "status.h"
00045
00049 typedef enum
00050 {
00051 PURPLE_ACCOUNT_REQUEST_AUTHORIZATION = 0
00052 } PurpleAccountRequestType;
00053
00054
00058 struct _PurpleAccountUiOps
00059 {
00063 void (*notify_added)(PurpleAccount *account,
00064 const char *remote_user,
00065 const char *id,
00066 const char *alias,
00067 const char *message);
00068
00070 void (*status_changed)(PurpleAccount *account,
00071 PurpleStatus *status);
00072
00074 void (*request_add)(PurpleAccount *account,
00075 const char *remote_user,
00076 const char *id,
00077 const char *alias,
00078 const char *message);
00079
00085 void *(*request_authorize)(PurpleAccount *account,
00086 const char *remote_user,
00087 const char *id,
00088 const char *alias,
00089 const char *message,
00090 gboolean on_list,
00091 PurpleAccountRequestAuthorizationCb authorize_cb,
00092 PurpleAccountRequestAuthorizationCb deny_cb,
00093 void *user_data);
00094
00098 void (*close_account_request)(void *ui_handle);
00099
00100 void (*_purple_reserved1)(void);
00101 void (*_purple_reserved2)(void);
00102 void (*_purple_reserved3)(void);
00103 void (*_purple_reserved4)(void);
00104 };
00105
00106 struct _PurpleAccount
00107 {
00108 char *username;
00109 char *alias;
00110 char *password;
00111 char *user_info;
00113 char *buddy_icon_path;
00115 gboolean remember_pass;
00117 char *protocol_id;
00119 PurpleConnection *gc;
00120 gboolean disconnecting;
00122 GHashTable *settings;
00123 GHashTable *ui_settings;
00125 PurpleProxyInfo *proxy_info;
00126
00127
00128
00129 GSList *permit;
00130 GSList *deny;
00131 int perm_deny;
00133 GList *status_types;
00135 PurplePresence *presence;
00136 PurpleLog *system_log;
00138 void *ui_data;
00139 };
00140
00141 #ifdef __cplusplus
00142 extern "C" {
00143 #endif
00144
00145
00147
00158 PurpleAccount *purple_account_new(const char *username, const char *protocol_id);
00159
00165 void purple_account_destroy(PurpleAccount *account);
00166
00172 void purple_account_connect(PurpleAccount *account);
00173
00179 void purple_account_register(PurpleAccount *account);
00180
00186 void purple_account_disconnect(PurpleAccount *account);
00187
00201 void purple_account_notify_added(PurpleAccount *account, const char *remote_user,
00202 const char *id, const char *alias,
00203 const char *message);
00204
00220 void purple_account_request_add(PurpleAccount *account, const char *remote_user,
00221 const char *id, const char *alias,
00222 const char *message);
00223
00243 void *purple_account_request_authorization(PurpleAccount *account, const char *remote_user,
00244 const char *id, const char *alias, const char *message, gboolean on_list,
00245 PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data);
00246
00252 void purple_account_request_close_with_account(PurpleAccount *account);
00253
00259 void purple_account_request_close(void *ui_handle);
00260
00270 void purple_account_request_password(PurpleAccount *account, GCallback ok_cb,
00271 GCallback cancel_cb, void *user_data);
00272
00278 void purple_account_request_change_password(PurpleAccount *account);
00279
00286 void purple_account_request_change_user_info(PurpleAccount *account);
00287
00294 void purple_account_set_username(PurpleAccount *account, const char *username);
00295
00302 void purple_account_set_password(PurpleAccount *account, const char *password);
00303
00310 void purple_account_set_alias(PurpleAccount *account, const char *alias);
00311
00318 void purple_account_set_user_info(PurpleAccount *account, const char *user_info);
00319
00326 void purple_account_set_buddy_icon_path(PurpleAccount *account, const char *path);
00327
00334 void purple_account_set_protocol_id(PurpleAccount *account,
00335 const char *protocol_id);
00336
00343 void purple_account_set_connection(PurpleAccount *account, PurpleConnection *gc);
00344
00351 void purple_account_set_remember_password(PurpleAccount *account, gboolean value);
00352
00359 void purple_account_set_check_mail(PurpleAccount *account, gboolean value);
00360
00369 void purple_account_set_enabled(PurpleAccount *account, const char *ui,
00370 gboolean value);
00371
00378 void purple_account_set_proxy_info(PurpleAccount *account, PurpleProxyInfo *info);
00379
00386 void purple_account_set_status_types(PurpleAccount *account, GList *status_types);
00387
00401 void purple_account_set_status(PurpleAccount *account, const char *status_id,
00402 gboolean active, ...) G_GNUC_NULL_TERMINATED;
00403
00404
00417 void purple_account_set_status_list(PurpleAccount *account,
00418 const char *status_id,
00419 gboolean active, GList *attrs);
00420
00426 void purple_account_clear_settings(PurpleAccount *account);
00427
00435 void purple_account_set_int(PurpleAccount *account, const char *name, int value);
00436
00444 void purple_account_set_string(PurpleAccount *account, const char *name,
00445 const char *value);
00446
00454 void purple_account_set_bool(PurpleAccount *account, const char *name,
00455 gboolean value);
00456
00465 void purple_account_set_ui_int(PurpleAccount *account, const char *ui,
00466 const char *name, int value);
00467
00476 void purple_account_set_ui_string(PurpleAccount *account, const char *ui,
00477 const char *name, const char *value);
00478
00487 void purple_account_set_ui_bool(PurpleAccount *account, const char *ui,
00488 const char *name, gboolean value);
00489
00497 gboolean purple_account_is_connected(const PurpleAccount *account);
00498
00506 gboolean purple_account_is_connecting(const PurpleAccount *account);
00507
00515 gboolean purple_account_is_disconnected(const PurpleAccount *account);
00516
00524 const char *purple_account_get_username(const PurpleAccount *account);
00525
00533 const char *purple_account_get_password(const PurpleAccount *account);
00534
00542 const char *purple_account_get_alias(const PurpleAccount *account);
00543
00551 const char *purple_account_get_user_info(const PurpleAccount *account);
00552
00560 const char *purple_account_get_buddy_icon_path(const PurpleAccount *account);
00561
00569 const char *purple_account_get_protocol_id(const PurpleAccount *account);
00570
00578 const char *purple_account_get_protocol_name(const PurpleAccount *account);
00579
00587 PurpleConnection *purple_account_get_connection(const PurpleAccount *account);
00588
00596 gboolean purple_account_get_remember_password(const PurpleAccount *account);
00597
00605 gboolean purple_account_get_check_mail(const PurpleAccount *account);
00606
00616 gboolean purple_account_get_enabled(const PurpleAccount *account,
00617 const char *ui);
00618
00626 PurpleProxyInfo *purple_account_get_proxy_info(const PurpleAccount *account);
00627
00638 PurpleStatus *purple_account_get_active_status(const PurpleAccount *account);
00639
00651 PurpleStatus *purple_account_get_status(const PurpleAccount *account,
00652 const char *status_id);
00653
00662 PurpleStatusType *purple_account_get_status_type(const PurpleAccount *account,
00663 const char *id);
00664
00676 PurpleStatusType *purple_account_get_status_type_with_primitive(
00677 const PurpleAccount *account,
00678 PurpleStatusPrimitive primitive);
00679
00687 PurplePresence *purple_account_get_presence(const PurpleAccount *account);
00688
00697 gboolean purple_account_is_status_active(const PurpleAccount *account,
00698 const char *status_id);
00699
00707 GList *purple_account_get_status_types(const PurpleAccount *account);
00708
00718 int purple_account_get_int(const PurpleAccount *account, const char *name,
00719 int default_value);
00720
00730 const char *purple_account_get_string(const PurpleAccount *account,
00731 const char *name,
00732 const char *default_value);
00733
00743 gboolean purple_account_get_bool(const PurpleAccount *account, const char *name,
00744 gboolean default_value);
00745
00756 int purple_account_get_ui_int(const PurpleAccount *account, const char *ui,
00757 const char *name, int default_value);
00758
00769 const char *purple_account_get_ui_string(const PurpleAccount *account,
00770 const char *ui, const char *name,
00771 const char *default_value);
00772
00783 gboolean purple_account_get_ui_bool(const PurpleAccount *account, const char *ui,
00784 const char *name, gboolean default_value);
00785
00786
00800 PurpleLog *purple_account_get_log(PurpleAccount *account, gboolean create);
00801
00807 void purple_account_destroy_log(PurpleAccount *account);
00808
00815 void purple_account_add_buddy(PurpleAccount *account, PurpleBuddy *buddy);
00822 void purple_account_add_buddies(PurpleAccount *account, GList *buddies);
00823
00831 void purple_account_remove_buddy(PurpleAccount *account, PurpleBuddy *buddy,
00832 PurpleGroup *group);
00833
00845 void purple_account_remove_buddies(PurpleAccount *account, GList *buddies,
00846 GList *groups);
00847
00854 void purple_account_remove_group(PurpleAccount *account, PurpleGroup *group);
00855
00863 void purple_account_change_password(PurpleAccount *account, const char *orig_pw,
00864 const char *new_pw);
00865
00872 gboolean purple_account_supports_offline_message(PurpleAccount *account, PurpleBuddy *buddy);
00873
00876
00878
00886 void purple_accounts_add(PurpleAccount *account);
00887
00893 void purple_accounts_remove(PurpleAccount *account);
00894
00904 void purple_accounts_delete(PurpleAccount *account);
00905
00912 void purple_accounts_reorder(PurpleAccount *account, gint new_index);
00913
00919 GList *purple_accounts_get_all(void);
00920
00928 GList *purple_accounts_get_all_active(void);
00929
00938 PurpleAccount *purple_accounts_find(const char *name, const char *protocol);
00939
00949 void purple_accounts_restore_current_statuses(void);
00950
00954
00956
00963 void purple_accounts_set_ui_ops(PurpleAccountUiOps *ops);
00964
00970 PurpleAccountUiOps *purple_accounts_get_ui_ops(void);
00971
00975
00977
00985 void *purple_accounts_get_handle(void);
00986
00990 void purple_accounts_init(void);
00991
00995 void purple_accounts_uninit(void);
00996
00999 #ifdef __cplusplus
01000 }
01001 #endif
01002
01003 #endif