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 struct _PurpleAccountUiOps
00055 {
00056     /* A buddy we already have added us to their buddy list. */
00057     void (*notify_added)(PurpleAccount *account, const char *remote_user,
00058                         const char *id, const char *alias,
00059                          const char *message);
00060     void (*status_changed)(PurpleAccount *account, PurpleStatus *status);
00061     /* Someone we don't have on our list added us. Will prompt to add them. */
00062     void (*request_add)(PurpleAccount *account, const char *remote_user,
00063                         const char *id, const char *alias,
00064                         const char *message);
00065     void *(*request_authorize)(PurpleAccount *account, const char *remote_user, const char *id,
00066                  const char *alias, const char *message, gboolean on_list, 
00067                  GCallback authorize_cb, GCallback deny_cb, void *user_data);
00068     void (*close_account_request)(void *ui_handle);
00069 
00070     void (*_purple_reserved1)(void);
00071     void (*_purple_reserved2)(void);
00072     void (*_purple_reserved3)(void);
00073     void (*_purple_reserved4)(void);
00074 };
00075 
00076 struct _PurpleAccount
00077 {
00078     char *username;             
00079     char *alias;                
00080     char *password;             
00081     char *user_info;            
00083     char *buddy_icon_path;      
00085     gboolean remember_pass;     
00087     char *protocol_id;          
00089     PurpleConnection *gc;         
00090     gboolean disconnecting;     
00092     GHashTable *settings;       
00093     GHashTable *ui_settings;    
00095     PurpleProxyInfo *proxy_info;  
00096                                 /*   to NULL when the account inherits      */
00097                                 /*   proxy settings from global prefs.      */
00098 
00099     GSList *permit;             
00100     GSList *deny;               
00101     int perm_deny;              
00103     GList *status_types;        
00105     PurplePresence *presence;     
00106     PurpleLog *system_log;        
00108     void *ui_data;              
00109 };
00110 
00111 #ifdef __cplusplus
00112 extern "C" {
00113 #endif
00114 
00115 /**************************************************************************/
00117 /**************************************************************************/
00128 PurpleAccount *purple_account_new(const char *username, const char *protocol_id);
00129 
00135 void purple_account_destroy(PurpleAccount *account);
00136 
00142 void purple_account_connect(PurpleAccount *account);
00143 
00149 void purple_account_register(PurpleAccount *account);
00150 
00156 void purple_account_disconnect(PurpleAccount *account);
00157 
00171 void purple_account_notify_added(PurpleAccount *account, const char *remote_user,
00172                                const char *id, const char *alias,
00173                                const char *message);
00174 
00190 void purple_account_request_add(PurpleAccount *account, const char *remote_user,
00191                               const char *id, const char *alias,
00192                               const char *message);
00193 
00213 void *purple_account_request_authorization(PurpleAccount *account, const char *remote_user,
00214                     const char *id, const char *alias, const char *message, gboolean on_list,
00215                     GCallback auth_cb, GCallback deny_cb, void *user_data);
00216 
00222 void purple_account_request_close_with_account(PurpleAccount *account);
00223 
00229 void purple_account_request_close(void *ui_handle);
00230 
00240 void purple_account_request_password(PurpleAccount *account, GCallback ok_cb,
00241                      GCallback cancel_cb, void *user_data);
00242 
00248 void purple_account_request_change_password(PurpleAccount *account);
00249 
00256 void purple_account_request_change_user_info(PurpleAccount *account);
00257 
00264 void purple_account_set_username(PurpleAccount *account, const char *username);
00265 
00272 void purple_account_set_password(PurpleAccount *account, const char *password);
00273 
00280 void purple_account_set_alias(PurpleAccount *account, const char *alias);
00281 
00288 void purple_account_set_user_info(PurpleAccount *account, const char *user_info);
00289 
00296 void purple_account_set_buddy_icon_path(PurpleAccount *account, const char *path);
00297 
00304 void purple_account_set_protocol_id(PurpleAccount *account,
00305                                   const char *protocol_id);
00306 
00313 void purple_account_set_connection(PurpleAccount *account, PurpleConnection *gc);
00314 
00321 void purple_account_set_remember_password(PurpleAccount *account, gboolean value);
00322 
00329 void purple_account_set_check_mail(PurpleAccount *account, gboolean value);
00330 
00339 void purple_account_set_enabled(PurpleAccount *account, const char *ui,
00340                   gboolean value);
00341 
00348 void purple_account_set_proxy_info(PurpleAccount *account, PurpleProxyInfo *info);
00349 
00356 void purple_account_set_status_types(PurpleAccount *account, GList *status_types);
00357 
00371 void purple_account_set_status(PurpleAccount *account, const char *status_id,
00372                              gboolean active, ...);
00373 
00374 
00387 void purple_account_set_status_list(PurpleAccount *account,
00388                                   const char *status_id,
00389                                   gboolean active, GList *attrs);
00390 
00396 void purple_account_clear_settings(PurpleAccount *account);
00397 
00405 void purple_account_set_int(PurpleAccount *account, const char *name, int value);
00406 
00414 void purple_account_set_string(PurpleAccount *account, const char *name,
00415                              const char *value);
00416 
00424 void purple_account_set_bool(PurpleAccount *account, const char *name,
00425                            gboolean value);
00426 
00435 void purple_account_set_ui_int(PurpleAccount *account, const char *ui,
00436                              const char *name, int value);
00437 
00446 void purple_account_set_ui_string(PurpleAccount *account, const char *ui,
00447                                 const char *name, const char *value);
00448 
00457 void purple_account_set_ui_bool(PurpleAccount *account, const char *ui,
00458                               const char *name, gboolean value);
00459 
00467 gboolean purple_account_is_connected(const PurpleAccount *account);
00468 
00476 gboolean purple_account_is_connecting(const PurpleAccount *account);
00477 
00485 gboolean purple_account_is_disconnected(const PurpleAccount *account);
00486 
00494 const char *purple_account_get_username(const PurpleAccount *account);
00495 
00503 const char *purple_account_get_password(const PurpleAccount *account);
00504 
00512 const char *purple_account_get_alias(const PurpleAccount *account);
00513 
00521 const char *purple_account_get_user_info(const PurpleAccount *account);
00522 
00530 const char *purple_account_get_buddy_icon_path(const PurpleAccount *account);
00531 
00539 const char *purple_account_get_protocol_id(const PurpleAccount *account);
00540 
00548 const char *purple_account_get_protocol_name(const PurpleAccount *account);
00549 
00557 PurpleConnection *purple_account_get_connection(const PurpleAccount *account);
00558 
00566 gboolean purple_account_get_remember_password(const PurpleAccount *account);
00567 
00575 gboolean purple_account_get_check_mail(const PurpleAccount *account);
00576 
00586 gboolean purple_account_get_enabled(const PurpleAccount *account,
00587                   const char *ui);
00588 
00596 PurpleProxyInfo *purple_account_get_proxy_info(const PurpleAccount *account);
00597 
00608 PurpleStatus *purple_account_get_active_status(const PurpleAccount *account);
00609 
00621 PurpleStatus *purple_account_get_status(const PurpleAccount *account,
00622                                     const char *status_id);
00623 
00632 PurpleStatusType *purple_account_get_status_type(const PurpleAccount *account,
00633                                              const char *id);
00634 
00646 PurpleStatusType *purple_account_get_status_type_with_primitive(
00647                             const PurpleAccount *account,
00648                             PurpleStatusPrimitive primitive);
00649 
00657 PurplePresence *purple_account_get_presence(const PurpleAccount *account);
00658 
00667 gboolean purple_account_is_status_active(const PurpleAccount *account,
00668                                        const char *status_id);
00669 
00677 const GList *purple_account_get_status_types(const PurpleAccount *account);
00678 
00688 int purple_account_get_int(const PurpleAccount *account, const char *name,
00689                          int default_value);
00690 
00700 const char *purple_account_get_string(const PurpleAccount *account,
00701                                     const char *name,
00702                                     const char *default_value);
00703 
00713 gboolean purple_account_get_bool(const PurpleAccount *account, const char *name,
00714                                gboolean default_value);
00715 
00726 int purple_account_get_ui_int(const PurpleAccount *account, const char *ui,
00727                             const char *name, int default_value);
00728 
00739 const char *purple_account_get_ui_string(const PurpleAccount *account,
00740                                        const char *ui, const char *name,
00741                                        const char *default_value);
00742 
00753 gboolean purple_account_get_ui_bool(const PurpleAccount *account, const char *ui,
00754                                   const char *name, gboolean default_value);
00755 
00756 
00770 PurpleLog *purple_account_get_log(PurpleAccount *account, gboolean create);
00771 
00777 void purple_account_destroy_log(PurpleAccount *account);
00778 
00785 void purple_account_add_buddy(PurpleAccount *account, PurpleBuddy *buddy);
00792 void purple_account_add_buddies(PurpleAccount *account, GList *buddies);
00793 
00801 void purple_account_remove_buddy(PurpleAccount *account, PurpleBuddy *buddy,
00802                                 PurpleGroup *group);
00803 
00815 void purple_account_remove_buddies(PurpleAccount *account, GList *buddies,
00816                                     GList *groups);
00817 
00824 void purple_account_remove_group(PurpleAccount *account, PurpleGroup *group);
00825 
00833 void purple_account_change_password(PurpleAccount *account, const char *orig_pw,
00834                                     const char *new_pw);
00835 
00842 gboolean purple_account_supports_offline_message(PurpleAccount *account, PurpleBuddy *buddy);
00843 
00846 /**************************************************************************/
00848 /**************************************************************************/
00856 void purple_accounts_add(PurpleAccount *account);
00857 
00863 void purple_accounts_remove(PurpleAccount *account);
00864 
00874 void purple_accounts_delete(PurpleAccount *account);
00875 
00882 void purple_accounts_reorder(PurpleAccount *account, gint new_index);
00883 
00889 GList *purple_accounts_get_all(void);
00890 
00898 GList *purple_accounts_get_all_active(void);
00899 
00908 PurpleAccount *purple_accounts_find(const char *name, const char *protocol);
00909 
00919 void purple_accounts_restore_current_statuses(void);
00920 
00924 /**************************************************************************/
00926 /**************************************************************************/
00933 void purple_accounts_set_ui_ops(PurpleAccountUiOps *ops);
00934 
00940 PurpleAccountUiOps *purple_accounts_get_ui_ops(void);
00941 
00945 /**************************************************************************/
00947 /**************************************************************************/
00955 void *purple_accounts_get_handle(void);
00956 
00960 void purple_accounts_init(void);
00961 
00965 void purple_accounts_uninit(void);
00966 
00969 #ifdef __cplusplus
00970 }
00971 #endif
00972 
00973 #endif /* _PURPLE_ACCOUNT_H_ */