aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/bee.h
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-03-29 08:25:01 -0400
committerWilmer van der Gaast <wilmer@gaast.net>2010-03-29 08:25:01 -0400
commit10a96f44efbeb6af09e2728926ce15b6bda12131 (patch)
tree256bfa92a79775d4180a2c227a30512a56b39f26 /protocols/bee.h
parent38ee0216a7058b0f227d1c32b288e041a397528a (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.h73
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__ */