account.h

Go to the documentation of this file.
00001 
00007 /* purple
00008  *
00009  * Purple is the legal property of its developers, whose names are too numerous
00010  * to list here.  Please refer to the COPYRIGHT file distributed with this
00011  * source distribution.
00012  *
00013  * This program is free software; you can redistribute it and/or modify
00014  * it under the terms of the GNU General Public License as published by
00015  * the Free Software Foundation; either version 2 of the License, or
00016  * (at your option) any later version.
00017  *
00018  * This program is distributed in the hope that it will be useful,
00019  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00021  * GNU General Public License for more details.
00022  *
00023  * You should have received a copy of the GNU General Public License
00024  * along with this program; if not, write to the Free Software
00025  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
00026  */
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 
00035 typedef struct _PurpleAccountUiOps PurpleAccountUiOps;
00037 typedef struct _PurpleAccount      PurpleAccount;
00038 
00039 typedef gboolean (*PurpleFilterAccountFunc)(PurpleAccount *account);
00040 typedef void (*PurpleAccountRequestAuthorizationCb)(void *);
00041 typedef void (*PurpleAccountRegistrationCb)(PurpleAccount *account, gboolean succeeded, void *user_data);
00042 typedef void (*PurpleAccountUnregistrationCb)(PurpleAccount *account, gboolean succeeded, void *user_data);
00043 
00044 #include "connection.h"
00045 #include "log.h"
00046 #include "proxy.h"
00047 #include "prpl.h"
00048 #include "status.h"
00049 
00053 typedef enum
00054 {
00055     PURPLE_ACCOUNT_REQUEST_AUTHORIZATION = 0 /* Account authorization request */
00056 } PurpleAccountRequestType;
00057 
00058 
00062 struct _PurpleAccountUiOps
00063 {
00067     void (*notify_added)(PurpleAccount *account,
00068                          const char *remote_user,
00069                          const char *id,
00070                          const char *alias,
00071                          const char *message);
00072 
00074     void (*status_changed)(PurpleAccount *account,
00075                            PurpleStatus *status);
00076 
00078     void (*request_add)(PurpleAccount *account,
00079                         const char *remote_user,
00080                         const char *id,
00081                         const char *alias,
00082                         const char *message);
00083 
00089     void *(*request_authorize)(PurpleAccount *account,
00090                                const char *remote_user,
00091                                const char *id,
00092                                const char *alias,
00093                                const char *message,
00094                                gboolean on_list,
00095                                PurpleAccountRequestAuthorizationCb authorize_cb,
00096                                PurpleAccountRequestAuthorizationCb deny_cb,
00097                                void *user_data);
00098 
00102     void (*close_account_request)(void *ui_handle);
00103 
00104     void (*_purple_reserved1)(void);
00105     void (*_purple_reserved2)(void);
00106     void (*_purple_reserved3)(void);
00107     void (*_purple_reserved4)(void);
00108 };
00109 
00112 struct _PurpleAccount
00113 {
00114     char *username;             
00115     char *alias;                
00116     char *password;             
00117     char *user_info;            
00119     char *buddy_icon_path;      
00121     gboolean remember_pass;     
00123     char *protocol_id;          
00125     PurpleConnection *gc;         
00126     gboolean disconnecting;     
00128     GHashTable *settings;       
00129     GHashTable *ui_settings;    
00131     PurpleProxyInfo *proxy_info;  
00132                                 /*   to NULL when the account inherits      */
00133                                 /*   proxy settings from global prefs.      */
00134 
00135     GSList *permit;             
00136     GSList *deny;               
00137     int perm_deny;              
00139     GList *status_types;        
00141     PurplePresence *presence;     
00142     PurpleLog *system_log;        
00144     void *ui_data;              
00145     PurpleAccountRegistrationCb registration_cb;
00146     void *registration_cb_user_data;
00147 
00148     gpointer priv;              
00149 };
00150 
00151 #ifdef __cplusplus
00152 extern "C" {
00153 #endif
00154 
00155 /**************************************************************************/
00157 /**************************************************************************/
00168 PurpleAccount *purple_account_new(const char *username, const char *protocol_id);
00169 
00175 void purple_account_destroy(PurpleAccount *account);
00176 
00182 void purple_account_connect(PurpleAccount *account);
00183 
00191 void purple_account_set_register_callback(PurpleAccount *account, PurpleAccountRegistrationCb cb, void *user_data);
00192 
00198 void purple_account_register(PurpleAccount *account);
00199 
00207 void purple_account_unregister(PurpleAccount *account, PurpleAccountUnregistrationCb cb, void *user_data);
00208 
00214 void purple_account_disconnect(PurpleAccount *account);
00215 
00229 void purple_account_notify_added(PurpleAccount *account, const char *remote_user,
00230                                const char *id, const char *alias,
00231                                const char *message);
00232 
00248 void purple_account_request_add(PurpleAccount *account, const char *remote_user,
00249                               const char *id, const char *alias,
00250                               const char *message);
00251 
00271 void *purple_account_request_authorization(PurpleAccount *account, const char *remote_user,
00272                     const char *id, const char *alias, const char *message, gboolean on_list,
00273                     PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data);
00274 
00280 void purple_account_request_close_with_account(PurpleAccount *account);
00281 
00287 void purple_account_request_close(void *ui_handle);
00288 
00298 void purple_account_request_password(PurpleAccount *account, GCallback ok_cb,
00299                      GCallback cancel_cb, void *user_data);
00300 
00306 void purple_account_request_change_password(PurpleAccount *account);
00307 
00314 void purple_account_request_change_user_info(PurpleAccount *account);
00315 
00322 void purple_account_set_username(PurpleAccount *account, const char *username);
00323 
00330 void purple_account_set_password(PurpleAccount *account, const char *password);
00331 
00338 void purple_account_set_alias(PurpleAccount *account, const char *alias);
00339 
00346 void purple_account_set_user_info(PurpleAccount *account, const char *user_info);
00347 
00354 void purple_account_set_buddy_icon_path(PurpleAccount *account, const char *path);
00355 
00362 void purple_account_set_protocol_id(PurpleAccount *account,
00363                                   const char *protocol_id);
00364 
00371 void purple_account_set_connection(PurpleAccount *account, PurpleConnection *gc);
00372 
00379 void purple_account_set_remember_password(PurpleAccount *account, gboolean value);
00380 
00387 void purple_account_set_check_mail(PurpleAccount *account, gboolean value);
00388 
00397 void purple_account_set_enabled(PurpleAccount *account, const char *ui,
00398                   gboolean value);
00399 
00406 void purple_account_set_proxy_info(PurpleAccount *account, PurpleProxyInfo *info);
00407 
00414 void purple_account_set_status_types(PurpleAccount *account, GList *status_types);
00415 
00422 void purple_account_set_status(PurpleAccount *account, const char *status_id,
00423     gboolean active, ...) G_GNUC_NULL_TERMINATED;
00424 
00425 
00443 void purple_account_set_status_list(PurpleAccount *account,
00444     const char *status_id, gboolean active, GList *attrs);
00445 
00451 void purple_account_clear_settings(PurpleAccount *account);
00452 
00460 void purple_account_set_int(PurpleAccount *account, const char *name, int value);
00461 
00469 void purple_account_set_string(PurpleAccount *account, const char *name,
00470                              const char *value);
00471 
00479 void purple_account_set_bool(PurpleAccount *account, const char *name,
00480                            gboolean value);
00481 
00490 void purple_account_set_ui_int(PurpleAccount *account, const char *ui,
00491                              const char *name, int value);
00492 
00501 void purple_account_set_ui_string(PurpleAccount *account, const char *ui,
00502                                 const char *name, const char *value);
00503 
00512 void purple_account_set_ui_bool(PurpleAccount *account, const char *ui,
00513                               const char *name, gboolean value);
00514 
00522 gboolean purple_account_is_connected(const PurpleAccount *account);
00523 
00531 gboolean purple_account_is_connecting(const PurpleAccount *account);
00532 
00540 gboolean purple_account_is_disconnected(const PurpleAccount *account);
00541 
00549 const char *purple_account_get_username(const PurpleAccount *account);
00550 
00558 const char *purple_account_get_password(const PurpleAccount *account);
00559 
00567 const char *purple_account_get_alias(const PurpleAccount *account);
00568 
00576 const char *purple_account_get_user_info(const PurpleAccount *account);
00577 
00585 const char *purple_account_get_buddy_icon_path(const PurpleAccount *account);
00586 
00594 const char *purple_account_get_protocol_id(const PurpleAccount *account);
00595 
00603 const char *purple_account_get_protocol_name(const PurpleAccount *account);
00604 
00612 PurpleConnection *purple_account_get_connection(const PurpleAccount *account);
00613 
00621 gboolean purple_account_get_remember_password(const PurpleAccount *account);
00622 
00630 gboolean purple_account_get_check_mail(const PurpleAccount *account);
00631 
00641 gboolean purple_account_get_enabled(const PurpleAccount *account,
00642                   const char *ui);
00643 
00651 PurpleProxyInfo *purple_account_get_proxy_info(const PurpleAccount *account);
00652 
00663 PurpleStatus *purple_account_get_active_status(const PurpleAccount *account);
00664 
00676 PurpleStatus *purple_account_get_status(const PurpleAccount *account,
00677                                     const char *status_id);
00678 
00687 PurpleStatusType *purple_account_get_status_type(const PurpleAccount *account,
00688                                              const char *id);
00689 
00701 PurpleStatusType *purple_account_get_status_type_with_primitive(
00702                             const PurpleAccount *account,
00703                             PurpleStatusPrimitive primitive);
00704 
00712 PurplePresence *purple_account_get_presence(const PurpleAccount *account);
00713 
00722 gboolean purple_account_is_status_active(const PurpleAccount *account,
00723                                        const char *status_id);
00724 
00732 GList *purple_account_get_status_types(const PurpleAccount *account);
00733 
00743 int purple_account_get_int(const PurpleAccount *account, const char *name,
00744                          int default_value);
00745 
00755 const char *purple_account_get_string(const PurpleAccount *account,
00756                                     const char *name,
00757                                     const char *default_value);
00758 
00768 gboolean purple_account_get_bool(const PurpleAccount *account, const char *name,
00769                                gboolean default_value);
00770 
00781 int purple_account_get_ui_int(const PurpleAccount *account, const char *ui,
00782                             const char *name, int default_value);
00783 
00794 const char *purple_account_get_ui_string(const PurpleAccount *account,
00795                                        const char *ui, const char *name,
00796                                        const char *default_value);
00797 
00808 gboolean purple_account_get_ui_bool(const PurpleAccount *account, const char *ui,
00809                                   const char *name, gboolean default_value);
00810 
00811 
00825 PurpleLog *purple_account_get_log(PurpleAccount *account, gboolean create);
00826 
00832 void purple_account_destroy_log(PurpleAccount *account);
00833 
00840 void purple_account_add_buddy(PurpleAccount *account, PurpleBuddy *buddy);
00847 void purple_account_add_buddies(PurpleAccount *account, GList *buddies);
00848 
00856 void purple_account_remove_buddy(PurpleAccount *account, PurpleBuddy *buddy,
00857                                 PurpleGroup *group);
00858 
00870 void purple_account_remove_buddies(PurpleAccount *account, GList *buddies,
00871                                     GList *groups);
00872 
00879 void purple_account_remove_group(PurpleAccount *account, PurpleGroup *group);
00880 
00888 void purple_account_change_password(PurpleAccount *account, const char *orig_pw,
00889                                     const char *new_pw);
00890 
00897 gboolean purple_account_supports_offline_message(PurpleAccount *account, PurpleBuddy *buddy);
00898 
00909 const PurpleConnectionErrorInfo *purple_account_get_current_error(PurpleAccount *account);
00910 
00916 void purple_account_clear_current_error(PurpleAccount *account);
00917 
00920 /**************************************************************************/
00922 /**************************************************************************/
00930 void purple_accounts_add(PurpleAccount *account);
00931 
00937 void purple_accounts_remove(PurpleAccount *account);
00938 
00948 void purple_accounts_delete(PurpleAccount *account);
00949 
00956 void purple_accounts_reorder(PurpleAccount *account, gint new_index);
00957 
00963 GList *purple_accounts_get_all(void);
00964 
00972 GList *purple_accounts_get_all_active(void);
00973 
00982 PurpleAccount *purple_accounts_find(const char *name, const char *protocol);
00983 
00993 void purple_accounts_restore_current_statuses(void);
00994 
00998 /**************************************************************************/
01000 /**************************************************************************/
01007 void purple_accounts_set_ui_ops(PurpleAccountUiOps *ops);
01008 
01014 PurpleAccountUiOps *purple_accounts_get_ui_ops(void);
01015 
01019 /**************************************************************************/
01021 /**************************************************************************/
01029 void *purple_accounts_get_handle(void);
01030 
01034 void purple_accounts_init(void);
01035 
01039 void purple_accounts_uninit(void);
01040 
01043 #ifdef __cplusplus
01044 }
01045 #endif
01046 
01047 #endif /* _PURPLE_ACCOUNT_H_ */

Generated on Fri Jul 3 11:30:39 2009 for pidgin by  doxygen 1.5.5