00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _PURPLE_ACCOUNT_H_
00028 #define _PURPLE_ACCOUNT_H_
00029
00030 #include <glib.h>
00031 #include <glib-object.h>
00032
00034 typedef struct _PurpleAccountUiOps PurpleAccountUiOps;
00036 typedef struct _PurpleAccount PurpleAccount;
00037
00038 typedef gboolean (*PurpleFilterAccountFunc)(PurpleAccount *account);
00039 typedef void (*PurpleAccountRequestAuthorizationCb)(void *);
00040 typedef void (*PurpleAccountRegistrationCb)(PurpleAccount *account, gboolean succeeded, void *user_data);
00041 typedef void (*PurpleAccountUnregistrationCb)(PurpleAccount *account, gboolean succeeded, void *user_data);
00042
00043 #include "connection.h"
00044 #include "log.h"
00045 #include "proxy.h"
00046 #include "prpl.h"
00047 #include "status.h"
00048
00052 typedef enum
00053 {
00054 PURPLE_ACCOUNT_REQUEST_AUTHORIZATION = 0
00055 } PurpleAccountRequestType;
00056
00057
00061 struct _PurpleAccountUiOps
00062 {
00066 void (*notify_added)(PurpleAccount *account,
00067 const char *remote_user,
00068 const char *id,
00069 const char *alias,
00070 const char *message);
00071
00073 void (*status_changed)(PurpleAccount *account,
00074 PurpleStatus *status);
00075
00077 void (*request_add)(PurpleAccount *account,
00078 const char *remote_user,
00079 const char *id,
00080 const char *alias,
00081 const char *message);
00082
00088 void *(*request_authorize)(PurpleAccount *account,
00089 const char *remote_user,
00090 const char *id,
00091 const char *alias,
00092 const char *message,
00093 gboolean on_list,
00094 PurpleAccountRequestAuthorizationCb authorize_cb,
00095 PurpleAccountRequestAuthorizationCb deny_cb,
00096 void *user_data);
00097
00101 void (*close_account_request)(void *ui_handle);
00102
00103 void (*_purple_reserved1)(void);
00104 void (*_purple_reserved2)(void);
00105 void (*_purple_reserved3)(void);
00106 void (*_purple_reserved4)(void);
00107 };
00108
00111 struct _PurpleAccount
00112 {
00113 char *username;
00114 char *alias;
00115 char *password;
00116 char *user_info;
00118 char *buddy_icon_path;
00120 gboolean remember_pass;
00122 char *protocol_id;
00124 PurpleConnection *gc;
00125 gboolean disconnecting;
00127 GHashTable *settings;
00128 GHashTable *ui_settings;
00130 PurpleProxyInfo *proxy_info;
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142 GSList *permit;
00143 GSList *deny;
00144 int perm_deny;
00146 GList *status_types;
00148 PurplePresence *presence;
00149 PurpleLog *system_log;
00151 void *ui_data;
00152 PurpleAccountRegistrationCb registration_cb;
00153 void *registration_cb_user_data;
00154
00155 gpointer priv;
00156 };
00157
00158 #ifdef __cplusplus
00159 extern "C" {
00160 #endif
00161
00162
00164
00175 PurpleAccount *purple_account_new(const char *username, const char *protocol_id);
00176
00182 void purple_account_destroy(PurpleAccount *account);
00183
00189 void purple_account_connect(PurpleAccount *account);
00190
00198 void purple_account_set_register_callback(PurpleAccount *account, PurpleAccountRegistrationCb cb, void *user_data);
00199
00205 void purple_account_register(PurpleAccount *account);
00206
00214 void purple_account_unregister(PurpleAccount *account, PurpleAccountUnregistrationCb cb, void *user_data);
00215
00221 void purple_account_disconnect(PurpleAccount *account);
00222
00236 void purple_account_notify_added(PurpleAccount *account, const char *remote_user,
00237 const char *id, const char *alias,
00238 const char *message);
00239
00255 void purple_account_request_add(PurpleAccount *account, const char *remote_user,
00256 const char *id, const char *alias,
00257 const char *message);
00258
00278 void *purple_account_request_authorization(PurpleAccount *account, const char *remote_user,
00279 const char *id, const char *alias, const char *message, gboolean on_list,
00280 PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data);
00281
00287 void purple_account_request_close_with_account(PurpleAccount *account);
00288
00294 void purple_account_request_close(void *ui_handle);
00295
00305 void purple_account_request_password(PurpleAccount *account, GCallback ok_cb,
00306 GCallback cancel_cb, void *user_data);
00307
00313 void purple_account_request_change_password(PurpleAccount *account);
00314
00321 void purple_account_request_change_user_info(PurpleAccount *account);
00322
00329 void purple_account_set_username(PurpleAccount *account, const char *username);
00330
00337 void purple_account_set_password(PurpleAccount *account, const char *password);
00338
00345 void purple_account_set_alias(PurpleAccount *account, const char *alias);
00346
00353 void purple_account_set_user_info(PurpleAccount *account, const char *user_info);
00354
00361 void purple_account_set_buddy_icon_path(PurpleAccount *account, const char *path);
00362
00369 void purple_account_set_protocol_id(PurpleAccount *account,
00370 const char *protocol_id);
00371
00378 void purple_account_set_connection(PurpleAccount *account, PurpleConnection *gc);
00379
00386 void purple_account_set_remember_password(PurpleAccount *account, gboolean value);
00387
00394 void purple_account_set_check_mail(PurpleAccount *account, gboolean value);
00395
00404 void purple_account_set_enabled(PurpleAccount *account, const char *ui,
00405 gboolean value);
00406
00413 void purple_account_set_proxy_info(PurpleAccount *account, PurpleProxyInfo *info);
00414
00421 void purple_account_set_status_types(PurpleAccount *account, GList *status_types);
00422
00429 void purple_account_set_status(PurpleAccount *account, const char *status_id,
00430 gboolean active, ...) G_GNUC_NULL_TERMINATED;
00431
00432
00450 void purple_account_set_status_list(PurpleAccount *account,
00451 const char *status_id, gboolean active, GList *attrs);
00452
00458 void purple_account_clear_settings(PurpleAccount *account);
00459
00467 void purple_account_set_int(PurpleAccount *account, const char *name, int value);
00468
00476 void purple_account_set_string(PurpleAccount *account, const char *name,
00477 const char *value);
00478
00486 void purple_account_set_bool(PurpleAccount *account, const char *name,
00487 gboolean value);
00488
00497 void purple_account_set_ui_int(PurpleAccount *account, const char *ui,
00498 const char *name, int value);
00499
00508 void purple_account_set_ui_string(PurpleAccount *account, const char *ui,
00509 const char *name, const char *value);
00510
00519 void purple_account_set_ui_bool(PurpleAccount *account, const char *ui,
00520 const char *name, gboolean value);
00521
00529 gboolean purple_account_is_connected(const PurpleAccount *account);
00530
00538 gboolean purple_account_is_connecting(const PurpleAccount *account);
00539
00547 gboolean purple_account_is_disconnected(const PurpleAccount *account);
00548
00556 const char *purple_account_get_username(const PurpleAccount *account);
00557
00565 const char *purple_account_get_password(const PurpleAccount *account);
00566
00574 const char *purple_account_get_alias(const PurpleAccount *account);
00575
00583 const char *purple_account_get_user_info(const PurpleAccount *account);
00584
00592 const char *purple_account_get_buddy_icon_path(const PurpleAccount *account);
00593
00601 const char *purple_account_get_protocol_id(const PurpleAccount *account);
00602
00610 const char *purple_account_get_protocol_name(const PurpleAccount *account);
00611
00619 PurpleConnection *purple_account_get_connection(const PurpleAccount *account);
00620
00628 gboolean purple_account_get_remember_password(const PurpleAccount *account);
00629
00637 gboolean purple_account_get_check_mail(const PurpleAccount *account);
00638
00648 gboolean purple_account_get_enabled(const PurpleAccount *account,
00649 const char *ui);
00650
00658 PurpleProxyInfo *purple_account_get_proxy_info(const PurpleAccount *account);
00659
00670 PurpleStatus *purple_account_get_active_status(const PurpleAccount *account);
00671
00683 PurpleStatus *purple_account_get_status(const PurpleAccount *account,
00684 const char *status_id);
00685
00694 PurpleStatusType *purple_account_get_status_type(const PurpleAccount *account,
00695 const char *id);
00696
00708 PurpleStatusType *purple_account_get_status_type_with_primitive(
00709 const PurpleAccount *account,
00710 PurpleStatusPrimitive primitive);
00711
00719 PurplePresence *purple_account_get_presence(const PurpleAccount *account);
00720
00729 gboolean purple_account_is_status_active(const PurpleAccount *account,
00730 const char *status_id);
00731
00739 GList *purple_account_get_status_types(const PurpleAccount *account);
00740
00750 int purple_account_get_int(const PurpleAccount *account, const char *name,
00751 int default_value);
00752
00762 const char *purple_account_get_string(const PurpleAccount *account,
00763 const char *name,
00764 const char *default_value);
00765
00775 gboolean purple_account_get_bool(const PurpleAccount *account, const char *name,
00776 gboolean default_value);
00777
00788 int purple_account_get_ui_int(const PurpleAccount *account, const char *ui,
00789 const char *name, int default_value);
00790
00801 const char *purple_account_get_ui_string(const PurpleAccount *account,
00802 const char *ui, const char *name,
00803 const char *default_value);
00804
00815 gboolean purple_account_get_ui_bool(const PurpleAccount *account, const char *ui,
00816 const char *name, gboolean default_value);
00817
00818
00832 PurpleLog *purple_account_get_log(PurpleAccount *account, gboolean create);
00833
00839 void purple_account_destroy_log(PurpleAccount *account);
00840
00847 void purple_account_add_buddy(PurpleAccount *account, PurpleBuddy *buddy);
00854 void purple_account_add_buddies(PurpleAccount *account, GList *buddies);
00855
00863 void purple_account_remove_buddy(PurpleAccount *account, PurpleBuddy *buddy,
00864 PurpleGroup *group);
00865
00877 void purple_account_remove_buddies(PurpleAccount *account, GList *buddies,
00878 GList *groups);
00879
00886 void purple_account_remove_group(PurpleAccount *account, PurpleGroup *group);
00887
00895 void purple_account_change_password(PurpleAccount *account, const char *orig_pw,
00896 const char *new_pw);
00897
00904 gboolean purple_account_supports_offline_message(PurpleAccount *account, PurpleBuddy *buddy);
00905
00916 const PurpleConnectionErrorInfo *purple_account_get_current_error(PurpleAccount *account);
00917
00923 void purple_account_clear_current_error(PurpleAccount *account);
00924
00927
00929
00937 void purple_accounts_add(PurpleAccount *account);
00938
00944 void purple_accounts_remove(PurpleAccount *account);
00945
00955 void purple_accounts_delete(PurpleAccount *account);
00956
00963 void purple_accounts_reorder(PurpleAccount *account, gint new_index);
00964
00970 GList *purple_accounts_get_all(void);
00971
00979 GList *purple_accounts_get_all_active(void);
00980
00989 PurpleAccount *purple_accounts_find(const char *name, const char *protocol);
00990
01000 void purple_accounts_restore_current_statuses(void);
01001
01005
01007
01014 void purple_accounts_set_ui_ops(PurpleAccountUiOps *ops);
01015
01021 PurpleAccountUiOps *purple_accounts_get_ui_ops(void);
01022
01026
01028
01036 void *purple_accounts_get_handle(void);
01037
01041 void purple_accounts_init(void);
01042
01046 void purple_accounts_uninit(void);
01047
01050 #ifdef __cplusplus
01051 }
01052 #endif
01053
01054 #endif