pounce.h

Go to the documentation of this file.
00001 
00025 #ifndef _PURPLE_POUNCE_H_
00026 #define _PURPLE_POUNCE_H_
00027 
00028 typedef struct _PurplePounce PurplePounce;
00029 
00030 #include <glib.h>
00031 #include "account.h"
00032 
00036 typedef enum
00037 {
00038     PURPLE_POUNCE_NONE             = 0x000, 
00039     PURPLE_POUNCE_SIGNON           = 0x001, 
00040     PURPLE_POUNCE_SIGNOFF          = 0x002, 
00041     PURPLE_POUNCE_AWAY             = 0x004, 
00042     PURPLE_POUNCE_AWAY_RETURN      = 0x008, 
00043     PURPLE_POUNCE_IDLE             = 0x010, 
00044     PURPLE_POUNCE_IDLE_RETURN      = 0x020, 
00045     PURPLE_POUNCE_TYPING           = 0x040, 
00046     PURPLE_POUNCE_TYPED            = 0x080, 
00047     PURPLE_POUNCE_TYPING_STOPPED   = 0x100, 
00048     PURPLE_POUNCE_MESSAGE_RECEIVED = 0x200  
00050 } PurplePounceEvent;
00051 
00052 typedef enum
00053 {
00054     PURPLE_POUNCE_OPTION_NONE       = 0x00, 
00055     PURPLE_POUNCE_OPTION_AWAY       = 0x01  
00056 } PurplePounceOption;
00057 
00059 typedef void (*PurplePounceCb)(PurplePounce *, PurplePounceEvent, void *);
00060 
00069 struct _PurplePounce
00070 {
00071     char *ui_type;                
00073     PurplePounceEvent events;       
00074     PurplePounceOption options;     
00075     PurpleAccount *pouncer;         
00077     char *pouncee;                
00079     GHashTable *actions;          
00081     gboolean save;                
00083     void *data;                   
00084 };
00085 
00086 #ifdef __cplusplus
00087 extern "C" {
00088 #endif
00089 
00090 /**************************************************************************/
00092 /**************************************************************************/
00106 PurplePounce *purple_pounce_new(const char *ui_type, PurpleAccount *pouncer,
00107                             const char *pouncee, PurplePounceEvent event,
00108                             PurplePounceOption option);
00109 
00115 void purple_pounce_destroy(PurplePounce *pounce);
00116 
00122 void purple_pounce_destroy_all_by_account(PurpleAccount *account);
00123 
00130 void purple_pounce_set_events(PurplePounce *pounce, PurplePounceEvent events);
00131 
00138 void purple_pounce_set_options(PurplePounce *pounce, PurplePounceOption options);
00139 
00146 void purple_pounce_set_pouncer(PurplePounce *pounce, PurpleAccount *pouncer);
00147 
00154 void purple_pounce_set_pouncee(PurplePounce *pounce, const char *pouncee);
00155 
00162 void purple_pounce_set_save(PurplePounce *pounce, gboolean save);
00163 
00170 void purple_pounce_action_register(PurplePounce *pounce, const char *name);
00171 
00179 void purple_pounce_action_set_enabled(PurplePounce *pounce, const char *action,
00180                                     gboolean enabled);
00181 
00192 void purple_pounce_action_set_attribute(PurplePounce *pounce, const char *action,
00193                                       const char *attr, const char *value);
00194 
00201 void purple_pounce_set_data(PurplePounce *pounce, void *data);
00202 
00210 PurplePounceEvent purple_pounce_get_events(const PurplePounce *pounce);
00211 
00219 PurplePounceOption purple_pounce_get_options(const PurplePounce *pounce);
00220 
00228 PurpleAccount *purple_pounce_get_pouncer(const PurplePounce *pounce);
00229 
00237 const char *purple_pounce_get_pouncee(const PurplePounce *pounce);
00238 
00247 gboolean purple_pounce_get_save(const PurplePounce *pounce);
00248 
00257 gboolean purple_pounce_action_is_enabled(const PurplePounce *pounce,
00258                                        const char *action);
00259 
00269 const char *purple_pounce_action_get_attribute(const PurplePounce *pounce,
00270                                              const char *action,
00271                                              const char *attr);
00272 
00280 void *purple_pounce_get_data(const PurplePounce *pounce);
00281 
00289 void purple_pounce_execute(const PurpleAccount *pouncer, const char *pouncee,
00290                          PurplePounceEvent events);
00291 
00294 /**************************************************************************/
00296 /**************************************************************************/
00308 PurplePounce *purple_find_pounce(const PurpleAccount *pouncer,
00309                              const char *pouncee, PurplePounceEvent events);
00310 
00311 
00317 gboolean purple_pounces_load(void);
00318 
00327 void purple_pounces_register_handler(const char *ui, PurplePounceCb cb,
00328                                    void (*new_pounce)(PurplePounce *pounce),
00329                                    void (*free_pounce)(PurplePounce *pounce));
00330 
00336 void purple_pounces_unregister_handler(const char *ui);
00337 
00343 GList *purple_pounces_get_all(void);
00344 
00350 void *purple_pounces_get_handle(void);
00351 
00355 void purple_pounces_init(void);
00356 
00360 void purple_pounces_uninit(void);
00361 
00364 #ifdef __cplusplus
00365 }
00366 #endif
00367 
00368 #endif /* _PURPLE_POUNCE_H_ */