pounce.h
Go to the documentation of this file.00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _PURPLE_POUNCE_H_
00027 #define _PURPLE_POUNCE_H_
00028
00029 typedef struct _PurplePounce PurplePounce;
00030
00031 #include <glib.h>
00032 #include "account.h"
00033
00037 typedef enum
00038 {
00039 PURPLE_POUNCE_NONE = 0x000,
00040 PURPLE_POUNCE_SIGNON = 0x001,
00041 PURPLE_POUNCE_SIGNOFF = 0x002,
00042 PURPLE_POUNCE_AWAY = 0x004,
00043 PURPLE_POUNCE_AWAY_RETURN = 0x008,
00044 PURPLE_POUNCE_IDLE = 0x010,
00045 PURPLE_POUNCE_IDLE_RETURN = 0x020,
00046 PURPLE_POUNCE_TYPING = 0x040,
00047 PURPLE_POUNCE_TYPED = 0x080,
00048 PURPLE_POUNCE_TYPING_STOPPED = 0x100,
00049 PURPLE_POUNCE_MESSAGE_RECEIVED = 0x200
00051 } PurplePounceEvent;
00052
00053 typedef enum
00054 {
00055 PURPLE_POUNCE_OPTION_NONE = 0x00,
00056 PURPLE_POUNCE_OPTION_AWAY = 0x01
00057 } PurplePounceOption;
00058
00060 typedef void (*PurplePounceCb)(PurplePounce *, PurplePounceEvent, void *);
00061
00070 struct _PurplePounce
00071 {
00072 char *ui_type;
00074 PurplePounceEvent events;
00075 PurplePounceOption options;
00076 PurpleAccount *pouncer;
00078 char *pouncee;
00080 GHashTable *actions;
00082 gboolean save;
00084 void *data;
00085 };
00086
00087 #ifdef __cplusplus
00088 extern "C" {
00089 #endif
00090
00091
00093
00107 PurplePounce *purple_pounce_new(const char *ui_type, PurpleAccount *pouncer,
00108 const char *pouncee, PurplePounceEvent event,
00109 PurplePounceOption option);
00110
00116 void purple_pounce_destroy(PurplePounce *pounce);
00117
00123 void purple_pounce_destroy_all_by_account(PurpleAccount *account);
00124
00131 void purple_pounce_set_events(PurplePounce *pounce, PurplePounceEvent events);
00132
00139 void purple_pounce_set_options(PurplePounce *pounce, PurplePounceOption options);
00140
00147 void purple_pounce_set_pouncer(PurplePounce *pounce, PurpleAccount *pouncer);
00148
00155 void purple_pounce_set_pouncee(PurplePounce *pounce, const char *pouncee);
00156
00163 void purple_pounce_set_save(PurplePounce *pounce, gboolean save);
00164
00171 void purple_pounce_action_register(PurplePounce *pounce, const char *name);
00172
00180 void purple_pounce_action_set_enabled(PurplePounce *pounce, const char *action,
00181 gboolean enabled);
00182
00193 void purple_pounce_action_set_attribute(PurplePounce *pounce, const char *action,
00194 const char *attr, const char *value);
00195
00202 void purple_pounce_set_data(PurplePounce *pounce, void *data);
00203
00211 PurplePounceEvent purple_pounce_get_events(const PurplePounce *pounce);
00212
00220 PurplePounceOption purple_pounce_get_options(const PurplePounce *pounce);
00221
00229 PurpleAccount *purple_pounce_get_pouncer(const PurplePounce *pounce);
00230
00238 const char *purple_pounce_get_pouncee(const PurplePounce *pounce);
00239
00248 gboolean purple_pounce_get_save(const PurplePounce *pounce);
00249
00258 gboolean purple_pounce_action_is_enabled(const PurplePounce *pounce,
00259 const char *action);
00260
00270 const char *purple_pounce_action_get_attribute(const PurplePounce *pounce,
00271 const char *action,
00272 const char *attr);
00273
00281 void *purple_pounce_get_data(const PurplePounce *pounce);
00282
00290 void purple_pounce_execute(const PurpleAccount *pouncer, const char *pouncee,
00291 PurplePounceEvent events);
00292
00295
00297
00309 PurplePounce *purple_find_pounce(const PurpleAccount *pouncer,
00310 const char *pouncee, PurplePounceEvent events);
00311
00312
00318 gboolean purple_pounces_load(void);
00319
00328 void purple_pounces_register_handler(const char *ui, PurplePounceCb cb,
00329 void (*new_pounce)(PurplePounce *pounce),
00330 void (*free_pounce)(PurplePounce *pounce));
00331
00337 void purple_pounces_unregister_handler(const char *ui);
00338
00344 GList *purple_pounces_get_all(void);
00345
00355 GList *purple_pounces_get_all_for_ui(const char *ui);
00356
00362 void *purple_pounces_get_handle(void);
00363
00367 void purple_pounces_init(void);
00368
00372 void purple_pounces_uninit(void);
00373
00376 #ifdef __cplusplus
00377 }
00378 #endif
00379
00380 #endif