roomlist.h

Go to the documentation of this file.
00001 
00026 #ifndef _GAIM_ROOMLIST_H_
00027 #define _GAIM_ROOMLIST_H_
00028 
00029 
00030 #include <glib/glist.h>
00031 #include "account.h"
00032 
00033 
00034 /**************************************************************************/
00036 /**************************************************************************/
00037 
00038 typedef struct _GaimRoomlist GaimRoomlist;
00039 typedef struct _GaimRoomlistRoom GaimRoomlistRoom;
00040 typedef enum _GaimRoomlistRoomType GaimRoomlistRoomType;
00041 typedef struct _GaimRoomlistField GaimRoomlistField;
00042 typedef enum _GaimRoomlistFieldType GaimRoomlistFieldType;
00043 typedef struct _GaimRoomlistUiOps GaimRoomlistUiOps;
00044 
00048 struct _GaimRoomlist {
00049     GaimAccount *account; 
00050     GList *fields; 
00051     GList *rooms; 
00052     gboolean in_progress; 
00053     gpointer ui_data; 
00054     gpointer proto_data; 
00055     guint ref; 
00056 };
00057 
00063 enum _GaimRoomlistRoomType {
00064     GAIM_ROOMLIST_ROOMTYPE_CATEGORY = 0x01, 
00065     GAIM_ROOMLIST_ROOMTYPE_ROOM = 0x02,     
00066 };
00067 
00071 struct _GaimRoomlistRoom {
00072     GaimRoomlistRoomType type; 
00073     gchar *name; 
00074     GList *fields; 
00075     GaimRoomlistRoom *parent; 
00076     gboolean expanded_once; 
00077 };
00078 
00082 enum _GaimRoomlistFieldType {
00083     GAIM_ROOMLIST_FIELD_BOOL,
00084     GAIM_ROOMLIST_FIELD_INT,
00085     GAIM_ROOMLIST_FIELD_STRING, 
00086 };
00087 
00091 struct _GaimRoomlistField {
00092     GaimRoomlistFieldType type; 
00093     gchar *label; 
00094     gchar *name; 
00095     gboolean hidden; 
00096 };
00097 
00101 struct _GaimRoomlistUiOps {
00102     void (*show_with_account)(GaimAccount *account); 
00103     void (*new)(GaimRoomlist *list); 
00104     void (*set_fields)(GaimRoomlist *list, GList *fields); 
00105     void (*add_room)(GaimRoomlist *list, GaimRoomlistRoom *room); 
00106     void (*in_progress)(GaimRoomlist *list, gboolean flag); 
00107     void (*destroy)(GaimRoomlist *list); 
00108 };
00109 
00110 
00111 #ifdef __cplusplus
00112 extern "C" {
00113 #endif
00114 
00115 /**************************************************************************/
00117 /**************************************************************************/
00129 void gaim_roomlist_show_with_account(GaimAccount *account);
00130 
00139 GaimRoomlist *gaim_roomlist_new(GaimAccount *account);
00140 
00146 void gaim_roomlist_ref(GaimRoomlist *list);
00147 
00156 void gaim_roomlist_unref(GaimRoomlist *list);
00157 
00167 void gaim_roomlist_set_fields(GaimRoomlist *list, GList *fields);
00168 
00178 void gaim_roomlist_set_in_progress(GaimRoomlist *list, gboolean in_progress);
00179 
00189 gboolean gaim_roomlist_get_in_progress(GaimRoomlist *list);
00190 
00198 void gaim_roomlist_room_add(GaimRoomlist *list, GaimRoomlistRoom *room);
00199 
00209 GaimRoomlist *gaim_roomlist_get_list(GaimConnection *gc);
00210 
00219 void gaim_roomlist_cancel_get_list(GaimRoomlist *list);
00220 
00232 void gaim_roomlist_expand_category(GaimRoomlist *list, GaimRoomlistRoom *category);
00233 
00236 /**************************************************************************/
00238 /**************************************************************************/
00250 GaimRoomlistRoom *gaim_roomlist_room_new(GaimRoomlistRoomType type, const gchar *name,
00251                                          GaimRoomlistRoom *parent);
00252 
00260 void gaim_roomlist_room_add_field(GaimRoomlist *list, GaimRoomlistRoom *room, gconstpointer field);
00261 
00268 void gaim_roomlist_room_join(GaimRoomlist *list, GaimRoomlistRoom *room);
00269 
00272 /**************************************************************************/
00274 /**************************************************************************/
00288 GaimRoomlistField *gaim_roomlist_field_new(GaimRoomlistFieldType type,
00289                                            const gchar *label, const gchar *name,
00290                                            gboolean hidden);
00293 /**************************************************************************/
00295 /**************************************************************************/
00303 void gaim_roomlist_set_ui_ops(GaimRoomlistUiOps *ops);
00304 
00311 GaimRoomlistUiOps *gaim_roomlist_get_ui_ops(void);
00312 
00315 #ifdef __cplusplus
00316 }
00317 #endif
00318 
00319 #endif /* _GAIM_ROOMLIST_H_ */

Generated on Sun Feb 18 08:38:11 2007 for gaim by  doxygen 1.5.1