diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-29 08:25:01 -0400 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-29 08:25:01 -0400 |
commit | 10a96f44efbeb6af09e2728926ce15b6bda12131 (patch) | |
tree | 256bfa92a79775d4180a2c227a30512a56b39f26 /protocols/bee.h | |
parent | 38ee0216a7058b0f227d1c32b288e041a397528a (diff) |
Start restoring IM-related bits, added bee_user.c with basic functions
and UI callbacks.
Diffstat (limited to 'protocols/bee.h')
-rw-r--r-- | protocols/bee.h | 73 |
1 files changed, 68 insertions, 5 deletions
diff --git a/protocols/bee.h b/protocols/bee.h index b25f0e08..e5c21120 100644 --- a/protocols/bee.h +++ b/protocols/bee.h @@ -1,7 +1,32 @@ -typedef struct bee_ui -{ - void *data; -} bee_ui_t; + /********************************************************************\ + * BitlBee -- An IRC to other IM-networks gateway * + * * + * Copyright 2002-2010 Wilmer van der Gaast and others * + \********************************************************************/ + +/* Stuff to handle, save and search buddies */ + +/* + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License with + the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL; + if not, write to the Free Software Foundation, Inc., 59 Temple Place, + Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __BEE_H__ +#define __BEE_H__ + +struct bee_ui_funcs; typedef struct bee { @@ -10,9 +35,47 @@ typedef struct bee GSList *users; GSList *accounts; - //const bee_ui_funcs_t *ui; + const struct bee_ui_funcs *ui; void *ui_data; } bee_t; bee_t *bee_new(); void bee_free( bee_t *b ); + +typedef enum +{ + BEE_USER_ONLINE = 1, + BEE_USER_AWAY = 2, +} bee_user_flags_t; + +typedef struct bee_user +{ + struct im_connection *ic; + char *handle; + char *fullname; + char *group; + + char *away; + char *status_msg; + + bee_t *bee; + void *ui_data; +} bee_user_t; + +typedef struct bee_ui_funcs +{ + gboolean (*user_new)( bee_t *bee, struct bee_user *bu ); + gboolean (*user_free)( bee_t *bee, struct bee_user *bu ); +} bee_ui_funcs_t; + + +/* bee.c */ +bee_t *bee_new(); +void bee_free( bee_t *b ); + +/* bee_user.c */ +bee_user_t *bee_user_new( bee_t *bee, struct im_connection *ic, const char *handle ); +int bee_user_free( bee_t *bee, struct im_connection *ic, const char *handle ); +bee_user_t *bee_user_by_handle( bee_t *bee, struct im_connection *ic, const char *handle ); + +#endif /* __BEE_H__ */ |