Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

roomlist.h

Go to the documentation of this file.
00001 
00026 #ifndef _GAIM_ROOMLIST_H_
00027 #define _GAIM_ROOMLIST_H_
00028 
00029 /**************************************************************************/
00031 /**************************************************************************/
00032 
00033 typedef struct _GaimRoomlist GaimRoomlist;
00034 typedef struct _GaimRoomlistRoom GaimRoomlistRoom;
00035 typedef enum _GaimRoomlistRoomType GaimRoomlistRoomType;
00036 typedef struct _GaimRoomlistField GaimRoomlistField;
00037 typedef enum _GaimRoomlistFieldType GaimRoomlistFieldType;
00038 typedef struct _GaimRoomlistUiOps GaimRoomlistUiOps;
00039 
00043 struct _GaimRoomlist {
00044     GaimAccount *account; 
00045     GList *fields; 
00046     GList *rooms; 
00047     gboolean in_progress; 
00048     gpointer ui_data; 
00049     gpointer proto_data; 
00050     guint ref; 
00051 };
00052 
00058 enum _GaimRoomlistRoomType {
00059     GAIM_ROOMLIST_ROOMTYPE_CATEGORY = 0x01, 
00060     GAIM_ROOMLIST_ROOMTYPE_ROOM = 0x02,     
00061 };
00062 
00066 struct _GaimRoomlistRoom {
00067     GaimRoomlistRoomType type; 
00068     gchar *name; 
00069     GList *fields; 
00070     GaimRoomlistRoom *parent; 
00071     gboolean expanded_once; 
00072 };
00073 
00077 enum _GaimRoomlistFieldType {
00078     GAIM_ROOMLIST_FIELD_BOOL,
00079     GAIM_ROOMLIST_FIELD_INT,
00080     GAIM_ROOMLIST_FIELD_STRING, 
00081 };
00082 
00086 struct _GaimRoomlistField {
00087     GaimRoomlistFieldType type; 
00088     gchar *label; 
00089     gchar *name; 
00090     gboolean hidden; 
00091 };
00092 
00096 struct _GaimRoomlistUiOps {
00097     void (*show_with_account)(GaimAccount *account); 
00098     void (*new)(GaimRoomlist *list); 
00099     void (*set_fields)(GaimRoomlist *list, GList *fields); 
00100     void (*add_room)(GaimRoomlist *list, GaimRoomlistRoom *room); 
00101     void (*in_progress)(GaimRoomlist *list, gboolean flag); 
00102     void (*destroy)(GaimRoomlist *list); 
00103 };
00104 
00105 
00106 #ifdef __cplusplus
00107 extern "C" {
00108 #endif
00109 
00110 /**************************************************************************/
00112 /**************************************************************************/
00124 void gaim_roomlist_show_with_account(GaimAccount *account);
00125 
00134 GaimRoomlist *gaim_roomlist_new(GaimAccount *account);
00135 
00141 void gaim_roomlist_ref(GaimRoomlist *list);
00142 
00151 void gaim_roomlist_unref(GaimRoomlist *list);
00152 
00162 void gaim_roomlist_set_fields(GaimRoomlist *list, GList *fields);
00163 
00173 void gaim_roomlist_set_in_progress(GaimRoomlist *list, gboolean in_progress);
00174 
00184 gboolean gaim_roomlist_get_in_progress(GaimRoomlist *list);
00185 
00193 void gaim_roomlist_room_add(GaimRoomlist *list, GaimRoomlistRoom *room);
00194 
00201 gboolean gaim_roomlist_is_possible(GaimConnection *gc);
00202 
00212 GaimRoomlist *gaim_roomlist_get_list(GaimConnection *gc);
00213 
00222 void gaim_roomlist_cancel_get_list(GaimRoomlist *list);
00223 
00235 void gaim_roomlist_expand_category(GaimRoomlist *list, GaimRoomlistRoom *category);
00236 
00239 /**************************************************************************/
00241 /**************************************************************************/
00253 GaimRoomlistRoom *gaim_roomlist_room_new(GaimRoomlistRoomType type, const gchar *name,
00254                                          GaimRoomlistRoom *parent);
00255 
00263 void gaim_roomlist_room_add_field(GaimRoomlist *list, GaimRoomlistRoom *room, gconstpointer field);
00264 
00271 void gaim_roomlist_room_join(GaimRoomlist *list, GaimRoomlistRoom *room);
00272 
00275 /**************************************************************************/
00277 /**************************************************************************/
00290 GaimRoomlistField *gaim_roomlist_field_new(GaimRoomlistFieldType type,
00291                                            const gchar *label, const gchar *name,
00292                                            gboolean hidden);
00295 /**************************************************************************/
00297 /**************************************************************************/
00305 void gaim_roomlist_set_ui_ops(GaimRoomlistUiOps *ops);
00306 
00313 GaimRoomlistUiOps *gaim_roomlist_get_ui_ops(void);
00314 
00317 #ifdef __cplusplus
00318 }
00319 #endif
00320 
00321 #endif /* _GAIM_ROOMLIST_H_ */

Generated on Sun Aug 29 03:45:05 2004 for gaim by doxygen 1.3.4