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

roomlist.h File Reference

Room List API. More...

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Data Structures

struct  _GaimRoomlist
 Represents a list of rooms for a given connection on a given protocol. More...

struct  _GaimRoomlistField
 A field a room might have. More...

struct  _GaimRoomlistRoom
 Represents a room. More...

struct  _GaimRoomlistUiOps
 The room list ops to be filled out by the UI. More...


Room List API

void gaim_roomlist_show_with_account (GaimAccount *account)
 This is used to get the room list on an account, asking the UI to pop up a dialog with the specified account already selected, and pretend the user clicked the get list button.

GaimRoomlistgaim_roomlist_new (GaimAccount *account)
 Returns a newly created room list object.

void gaim_roomlist_ref (GaimRoomlist *list)
 Increases the reference count on the room list.

void gaim_roomlist_unref (GaimRoomlist *list)
 Decreases the reference count on the room list.

void gaim_roomlist_set_fields (GaimRoomlist *list, GList *fields)
 Set the different field types and their names for this protocol.

void gaim_roomlist_set_in_progress (GaimRoomlist *list, gboolean in_progress)
 Set the "in progress" state of the room list.

gboolean gaim_roomlist_get_in_progress (GaimRoomlist *list)
 Gets the "in progress" state of the room list.

void gaim_roomlist_room_add (GaimRoomlist *list, GaimRoomlistRoom *room)
 Adds a room to the list of them.

gboolean gaim_roomlist_is_possible (GaimConnection *gc)
 Do we support room listing?

GaimRoomlistgaim_roomlist_get_list (GaimConnection *gc)
 Returns a GaimRoomlist structure from the prpl, and instructs the prpl to start fetching the list.

void gaim_roomlist_cancel_get_list (GaimRoomlist *list)
 Tells the prpl to stop fetching the list.

void gaim_roomlist_expand_category (GaimRoomlist *list, GaimRoomlistRoom *category)
 Tells the prpl that a category was expanded.


Room API

GaimRoomlistRoomgaim_roomlist_room_new (GaimRoomlistRoomType type, const gchar *name, GaimRoomlistRoom *parent)
 Creates a new room, to be added to the list.

void gaim_roomlist_room_add_field (GaimRoomlist *list, GaimRoomlistRoom *room, gconstpointer field)
 Adds a field to a room.

void gaim_roomlist_room_join (GaimRoomlist *list, GaimRoomlistRoom *room)
 Join a room, given a GaimRoomlistRoom and it's associated GaimRoomlist.


Room Field API

GaimRoomlistFieldgaim_roomlist_field_new (GaimRoomlistFieldType type, const gchar *label, const gchar *name, gboolean hidden)
 Creates a new field.


UI Registration Functions

void gaim_roomlist_set_ui_ops (GaimRoomlistUiOps *ops)
 Sets the UI operations structure to be used in all gaim room lists.

GaimRoomlistUiOpsgaim_roomlist_get_ui_ops (void)
 Returns the gaim window UI operations structure to be used in new windows.


Typedefs

typedef _GaimRoomlist GaimRoomlist
 Data Structures.

typedef _GaimRoomlistRoom GaimRoomlistRoom
typedef enum _GaimRoomlistRoomType GaimRoomlistRoomType
typedef _GaimRoomlistField GaimRoomlistField
typedef enum _GaimRoomlistFieldType GaimRoomlistFieldType
typedef _GaimRoomlistUiOps GaimRoomlistUiOps

Enumerations

enum  _GaimRoomlistRoomType { GAIM_ROOMLIST_ROOMTYPE_CATEGORY = 0x01, GAIM_ROOMLIST_ROOMTYPE_ROOM = 0x02 }
 The types of rooms. More...

enum  _GaimRoomlistFieldType { GAIM_ROOMLIST_FIELD_BOOL, GAIM_ROOMLIST_FIELD_INT, GAIM_ROOMLIST_FIELD_STRING }
 The types of fields. More...


Detailed Description

Room List API.

gaim

Gaim is the legal property of its developers, whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution.

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 along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA


Enumeration Type Documentation

enum _GaimRoomlistFieldType
 

The types of fields.

Enumeration values:
GAIM_ROOMLIST_FIELD_STRING  We do a g_strdup on the passed value if it's this type.

enum _GaimRoomlistRoomType
 

The types of rooms.

These are ORable flags.

Enumeration values:
GAIM_ROOMLIST_ROOMTYPE_CATEGORY  It's a category, but not a room you can join.
GAIM_ROOMLIST_ROOMTYPE_ROOM  It's a room, like the kind you can join.


Function Documentation

void gaim_roomlist_cancel_get_list GaimRoomlist list  ) 
 

Tells the prpl to stop fetching the list.

If this is possible and done, the prpl will call set_in_progress with FALSE and possibly unref the list if it took a reference.

Parameters:
list The room list to cancel a get_list on.

void gaim_roomlist_expand_category GaimRoomlist list,
GaimRoomlistRoom category
 

Tells the prpl that a category was expanded.

On some protocols, the rooms in the category won't be fetched until this is called.

Parameters:
list The room list.
room The category that was expanded. The expression (category->type & GAIM_ROOMLIST_ROOMTYPE_CATEGORY) must be true.

GaimRoomlistField* gaim_roomlist_field_new GaimRoomlistFieldType  type,
const gchar *  label,
const gchar *  name,
gboolean  hidden
 

Creates a new field.

Parameters:
type The type of the field.
label The i18n'ed, user displayable name.
name The internal name of the field.
Returns:
A new GaimRoomlistField, ready to be added to a GList and passed to gaim_roomlist_set_fields().

gboolean gaim_roomlist_get_in_progress GaimRoomlist list  ) 
 

Gets the "in progress" state of the room list.

The UI is encouraged to somehow hint to the user whether or not we're busy downloading a room list or not.

Parameters:
list The room list.
Returns:
True if we're downloading it, or false if we're not.

GaimRoomlist* gaim_roomlist_get_list GaimConnection *  gc  ) 
 

Returns a GaimRoomlist structure from the prpl, and instructs the prpl to start fetching the list.

Parameters:
gc The GaimConnection to have get a list.
Returns:
A GaimRoomlist* or NULL if the protocol doesn't support that.

GaimRoomlistUiOps* gaim_roomlist_get_ui_ops void   ) 
 

Returns the gaim window UI operations structure to be used in new windows.

Returns:
A filled-out GaimRoomlistUiOps structure.

gboolean gaim_roomlist_is_possible GaimConnection *  gc  ) 
 

Do we support room listing?

Parameters:
gc The GaimConnection we're asking.
Returns:
TRUE if it's possible to get a room list.

GaimRoomlist* gaim_roomlist_new GaimAccount *  account  ) 
 

Returns a newly created room list object.

It has an initial reference count of 1.

Parameters:
account The account that's listing rooms.
Returns:
The new room list handle.

void gaim_roomlist_ref GaimRoomlist list  ) 
 

Increases the reference count on the room list.

Parameters:
list The object to ref.

void gaim_roomlist_room_add GaimRoomlist list,
GaimRoomlistRoom room
 

Adds a room to the list of them.

Parameters:
list The room list.
room The room to add to the list. The GList of fields must be in the same order as was given in gaim_roomlist_set_fields().

void gaim_roomlist_room_add_field GaimRoomlist list,
GaimRoomlistRoom room,
gconstpointer  field
 

Adds a field to a room.

Parameters:
list The room list the room belongs to.
room The room.
field The field to append. Strings get g_strdup'd internally.

void gaim_roomlist_room_join GaimRoomlist list,
GaimRoomlistRoom room
 

Join a room, given a GaimRoomlistRoom and it's associated GaimRoomlist.

Parameters:
list The room list the room belongs to.
room The room to join.

GaimRoomlistRoom* gaim_roomlist_room_new GaimRoomlistRoomType  type,
const gchar *  name,
GaimRoomlistRoom parent
 

Creates a new room, to be added to the list.

Parameters:
type The type of room.
name The name of the room.
parent The room's parent, if any.
Returns:
A new room.

void gaim_roomlist_set_fields GaimRoomlist list,
GList *  fields
 

Set the different field types and their names for this protocol.

This must be called before gaim_roomlist_room_add().

Parameters:
list The room list.
fields A GList of GaimRoomlistField's. UI's are encouraged to default to displaying them in the order given.

void gaim_roomlist_set_in_progress GaimRoomlist list,
gboolean  in_progress
 

Set the "in progress" state of the room list.

The UI is encouraged to somehow hint to the user whether or not we're busy downloading a room list or not.

Parameters:
list The room list.
in_progress We're downloading it, or we're not.

void gaim_roomlist_set_ui_ops GaimRoomlistUiOps ops  ) 
 

Sets the UI operations structure to be used in all gaim room lists.

Parameters:
ops The UI operations structure.

void gaim_roomlist_show_with_account GaimAccount *  account  ) 
 

This is used to get the room list on an account, asking the UI to pop up a dialog with the specified account already selected, and pretend the user clicked the get list button.

While we're pretending, predend I didn't say anything about dialogs or buttons, since this is the core.

Parameters:
account The account to get the list on.

void gaim_roomlist_unref GaimRoomlist list  ) 
 

Decreases the reference count on the room list.

The room list will be destroyed when this reaches 0.

Parameters:
list The room list object to unref and possibly destroy.


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