account.h

Go to the documentation of this file.
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 /* Account authorization request */
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                                 /*   to NULL when the account inherits      */
00127                                 /*   proxy settings from global prefs.      */
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 /* _PURPLE_ACCOUNT_H_ */