libpurple/roomlist.h

Thu, 20 Sep 2007 16:30:17 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Thu, 20 Sep 2007 16:30:17 +0000
branch
sadrul.currentmedia
changeset 21193
e918a1846d03
parent 20330
650a7af9c238
child 22134
692ceed9d307
permissions
-rw-r--r--

Use an independant status type for 'current media' stuff, instead of using
status attributes. This includes changes in both xmpp and msn.
Also, in MSN, CurrentMedia is sent with PSM if you turn on the status and
set the attributes on the account.

8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
1 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
2 * @file roomlist.h Room List API
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
3 * @ingroup core
20330
650a7af9c238 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@pidgin.im>
parents: 19859
diff changeset
4 */
650a7af9c238 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@pidgin.im>
parents: 19859
diff changeset
5
650a7af9c238 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@pidgin.im>
parents: 19859
diff changeset
6 /* purple
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
7 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
8 * Purple is the legal property of its developers, whose names are too numerous
8146
4961c9c5fd61 [gaim-migrate @ 8854]
John Silvestri <john.silvestri@gmail.com>
parents: 8113
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
4961c9c5fd61 [gaim-migrate @ 8854]
John Silvestri <john.silvestri@gmail.com>
parents: 8113
diff changeset
10 * source distribution.
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
11 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
15 * (at your option) any later version.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
16 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
20 * GNU General Public License for more details.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
21 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16743
diff changeset
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
25 */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
26
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
27 #ifndef _PURPLE_ROOMLIST_H_
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
28 #define _PURPLE_ROOMLIST_H_
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
29
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
30 typedef struct _PurpleRoomlist PurpleRoomlist;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
31 typedef struct _PurpleRoomlistRoom PurpleRoomlistRoom;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
32 typedef struct _PurpleRoomlistField PurpleRoomlistField;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
33 typedef struct _PurpleRoomlistUiOps PurpleRoomlistUiOps;
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9000
diff changeset
34
9999
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
35 /**
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
36 * The types of rooms.
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
37 *
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
38 * These are ORable flags.
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
39 */
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
40 typedef enum
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
41 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
42 PURPLE_ROOMLIST_ROOMTYPE_CATEGORY = 0x01, /**< It's a category, but not a room you can join. */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
43 PURPLE_ROOMLIST_ROOMTYPE_ROOM = 0x02 /**< It's a room, like the kind you can join. */
9999
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
44
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
45 } PurpleRoomlistRoomType;
9999
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
46
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
47 /**
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
48 * The types of fields.
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
49 */
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
50 typedef enum
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
51 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
52 PURPLE_ROOMLIST_FIELD_BOOL,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
53 PURPLE_ROOMLIST_FIELD_INT,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
54 PURPLE_ROOMLIST_FIELD_STRING /**< We do a g_strdup on the passed value if it's this type. */
9999
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
55
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
56 } PurpleRoomlistFieldType;
9999
86e89e1dee10 [gaim-migrate @ 10913]
Mark Doliner <markdoliner@pidgin.im>
parents: 9030
diff changeset
57
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9000
diff changeset
58 #include "account.h"
10023
6b0014040323 [gaim-migrate @ 10955]
Mark Doliner <markdoliner@pidgin.im>
parents: 9999
diff changeset
59 #include "glib.h"
9030
7b574a641391 [gaim-migrate @ 9806]
Mark Doliner <markdoliner@pidgin.im>
parents: 9000
diff changeset
60
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
61 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
62 /** Data Structures */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
63 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
64
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
65 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
66 * Represents a list of rooms for a given connection on a given protocol.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
67 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
68 struct _PurpleRoomlist {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
69 PurpleAccount *account; /**< The account this list belongs to. */
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
70 GList *fields; /**< The fields. */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
71 GList *rooms; /**< The list of rooms. */
8199
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
72 gboolean in_progress; /**< The listing is in progress. */
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
73 gpointer ui_data; /**< UI private data. */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
74 gpointer proto_data; /** Prpl private data. */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
75 guint ref; /**< The reference count. */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
76 };
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
77
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
78 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
79 * Represents a room.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
80 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
81 struct _PurpleRoomlistRoom {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
82 PurpleRoomlistRoomType type; /**< The type of room. */
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
83 gchar *name; /**< The name of the room. */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
84 GList *fields; /**< Other fields. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
85 PurpleRoomlistRoom *parent; /**< The parent room, or NULL. */
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
86 gboolean expanded_once; /**< A flag the UI uses to avoid multiple expand prpl cbs. */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
87 };
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
88
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
89 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
90 * A field a room might have.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
91 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
92 struct _PurpleRoomlistField {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
93 PurpleRoomlistFieldType type; /**< The type of field. */
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
94 gchar *label; /**< The i18n user displayed name of the field. */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
95 gchar *name; /**< The internal name of the field. */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
96 gboolean hidden; /**< Hidden? */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
97 };
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
98
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
99 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
100 * The room list ops to be filled out by the UI.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
101 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
102 struct _PurpleRoomlistUiOps {
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
103 void (*show_with_account)(PurpleAccount *account); /**< Force the ui to pop up a dialog and get the list */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
104 void (*create)(PurpleRoomlist *list); /**< A new list was created. */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
105 void (*set_fields)(PurpleRoomlist *list, GList *fields); /**< Sets the columns. */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
106 void (*add_room)(PurpleRoomlist *list, PurpleRoomlistRoom *room); /**< Add a room to the list. */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
107 void (*in_progress)(PurpleRoomlist *list, gboolean flag); /**< Are we fetching stuff still? */
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
108 void (*destroy)(PurpleRoomlist *list); /**< We're destroying list. */
16743
1ce5ffe12e2a Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15884
diff changeset
109
1ce5ffe12e2a Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15884
diff changeset
110 void (*_purple_reserved1)(void);
1ce5ffe12e2a Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15884
diff changeset
111 void (*_purple_reserved2)(void);
1ce5ffe12e2a Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15884
diff changeset
112 void (*_purple_reserved3)(void);
1ce5ffe12e2a Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15884
diff changeset
113 void (*_purple_reserved4)(void);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
114 };
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
115
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
116
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
117 #ifdef __cplusplus
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
118 extern "C" {
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
119 #endif
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
120
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
121 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
122 /** @name Room List API */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
123 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
124 /*@{*/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
125
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
126 /**
8352
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
127 * This is used to get the room list on an account, asking the UI
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
128 * to pop up a dialog with the specified account already selected,
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
129 * and pretend the user clicked the get list button.
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
130 * While we're pretending, predend I didn't say anything about dialogs
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
131 * or buttons, since this is the core.
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
132 *
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
133 * @param account The account to get the list on.
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
134 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
135 void purple_roomlist_show_with_account(PurpleAccount *account);
8352
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
136
cf7ca701b213 [gaim-migrate @ 9076]
Tim Ringenbach <marv@pidgin.im>
parents: 8199
diff changeset
137 /**
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
138 * Returns a newly created room list object.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
139 *
8735
01248ea222d3 [gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 8584
diff changeset
140 * It has an initial reference count of 1.
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
141 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
142 * @param account The account that's listing rooms.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
143 * @return The new room list handle.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
144 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
145 PurpleRoomlist *purple_roomlist_new(PurpleAccount *account);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
146
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
147 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
148 * Increases the reference count on the room list.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
149 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
150 * @param list The object to ref.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
151 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
152 void purple_roomlist_ref(PurpleRoomlist *list);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
153
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
154 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
155 * Decreases the reference count on the room list.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
156 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
157 * The room list will be destroyed when this reaches 0.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
158 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
159 * @param list The room list object to unref and possibly
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
160 * destroy.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
161 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
162 void purple_roomlist_unref(PurpleRoomlist *list);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
163
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
164 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
165 * Set the different field types and their names for this protocol.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
166 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
167 * This must be called before purple_roomlist_room_add().
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
168 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
169 * @param list The room list.
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
170 * @param fields A GList of PurpleRoomlistField's. UI's are encouraged
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
171 * to default to displaying them in the order given.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
172 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
173 void purple_roomlist_set_fields(PurpleRoomlist *list, GList *fields);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
174
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
175 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
176 * Set the "in progress" state of the room list.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
177 *
8735
01248ea222d3 [gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 8584
diff changeset
178 * The UI is encouraged to somehow hint to the user
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
179 * whether or not we're busy downloading a room list or not.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
180 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
181 * @param list The room list.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
182 * @param in_progress We're downloading it, or we're not.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
183 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
184 void purple_roomlist_set_in_progress(PurpleRoomlist *list, gboolean in_progress);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
185
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
186 /**
8199
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
187 * Gets the "in progress" state of the room list.
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
188 *
8735
01248ea222d3 [gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 8584
diff changeset
189 * The UI is encouraged to somehow hint to the user
8199
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
190 * whether or not we're busy downloading a room list or not.
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
191 *
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
192 * @param list The room list.
8866
8a910a9b8865 [gaim-migrate @ 9634]
Nathan Walp <nwalp@pidgin.im>
parents: 8735
diff changeset
193 * @return True if we're downloading it, or false if we're not.
8199
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
194 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
195 gboolean purple_roomlist_get_in_progress(PurpleRoomlist *list);
8199
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
196
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
197 /**
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
198 * Adds a room to the list of them.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
199 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
200 * @param list The room list.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
201 * @param room The room to add to the list. The GList of fields must be in the same
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
202 order as was given in purple_roomlist_set_fields().
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
203 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
204 void purple_roomlist_room_add(PurpleRoomlist *list, PurpleRoomlistRoom *room);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
205
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
206 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
207 * Returns a PurpleRoomlist structure from the prpl, and
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
208 * instructs the prpl to start fetching the list.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
209 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
210 * @param gc The PurpleConnection to have get a list.
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
211 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
212 * @return A PurpleRoomlist* or @c NULL if the protocol
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
213 * doesn't support that.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
214 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
215 PurpleRoomlist *purple_roomlist_get_list(PurpleConnection *gc);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
216
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
217 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
218 * Tells the prpl to stop fetching the list.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
219 * If this is possible and done, the prpl will
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
220 * call set_in_progress with @c FALSE and possibly
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
221 * unref the list if it took a reference.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
222 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
223 * @param list The room list to cancel a get_list on.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
224 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
225 void purple_roomlist_cancel_get_list(PurpleRoomlist *list);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
226
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
227 /**
8584
871f67e4aa3c [gaim-migrate @ 9334]
Daniel Atallah <datallah@pidgin.im>
parents: 8352
diff changeset
228 * Tells the prpl that a category was expanded.
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
229 *
8584
871f67e4aa3c [gaim-migrate @ 9334]
Daniel Atallah <datallah@pidgin.im>
parents: 8352
diff changeset
230 * On some protocols, the rooms in the category
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
231 * won't be fetched until this is called.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
232 *
9000
ff260ac20c29 [gaim-migrate @ 9775]
Gary Kramlich <grim@pidgin.im>
parents: 8939
diff changeset
233 * @param list The room list.
ff260ac20c29 [gaim-migrate @ 9775]
Gary Kramlich <grim@pidgin.im>
parents: 8939
diff changeset
234 * @param category The category that was expanded. The expression
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
235 * (category->type & PURPLE_ROOMLIST_ROOMTYPE_CATEGORY)
9000
ff260ac20c29 [gaim-migrate @ 9775]
Gary Kramlich <grim@pidgin.im>
parents: 8939
diff changeset
236 * must be true.
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
237 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
238 void purple_roomlist_expand_category(PurpleRoomlist *list, PurpleRoomlistRoom *category);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
239
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
240 /*@}*/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
241
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
242 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
243 /** @name Room API */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
244 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
245 /*@{*/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
246
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
247 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
248 * Creates a new room, to be added to the list.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
249 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
250 * @param type The type of room.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
251 * @param name The name of the room.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
252 * @param parent The room's parent, if any.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
253 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
254 * @return A new room.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
255 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
256 PurpleRoomlistRoom *purple_roomlist_room_new(PurpleRoomlistRoomType type, const gchar *name,
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
257 PurpleRoomlistRoom *parent);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
258
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
259 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
260 * Adds a field to a room.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
261 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
262 * @param list The room list the room belongs to.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
263 * @param room The room.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
264 * @param field The field to append. Strings get g_strdup'd internally.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
265 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
266 void purple_roomlist_room_add_field(PurpleRoomlist *list, PurpleRoomlistRoom *room, gconstpointer field);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
267
8199
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
268 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
269 * Join a room, given a PurpleRoomlistRoom and it's associated PurpleRoomlist.
8199
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
270 *
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
271 * @param list The room list the room belongs to.
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
272 * @param room The room to join.
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
273 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
274 void purple_roomlist_room_join(PurpleRoomlist *list, PurpleRoomlistRoom *room);
8199
43d585355720 [gaim-migrate @ 8922]
Tim Ringenbach <marv@pidgin.im>
parents: 8146
diff changeset
275
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
276 /*@}*/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
277
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
278 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
279 /** @name Room Field API */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
280 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
281 /*@{*/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
282
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
283 /**
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
284 * Creates a new field.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
285 *
9000
ff260ac20c29 [gaim-migrate @ 9775]
Gary Kramlich <grim@pidgin.im>
parents: 8939
diff changeset
286 * @param type The type of the field.
ff260ac20c29 [gaim-migrate @ 9775]
Gary Kramlich <grim@pidgin.im>
parents: 8939
diff changeset
287 * @param label The i18n'ed, user displayable name.
ff260ac20c29 [gaim-migrate @ 9775]
Gary Kramlich <grim@pidgin.im>
parents: 8939
diff changeset
288 * @param name The internal name of the field.
ff260ac20c29 [gaim-migrate @ 9775]
Gary Kramlich <grim@pidgin.im>
parents: 8939
diff changeset
289 * @param hidden Hide the field.
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
290 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
291 * @return A new PurpleRoomlistField, ready to be added to a GList and passed to
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
292 * purple_roomlist_set_fields().
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
293 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
294 PurpleRoomlistField *purple_roomlist_field_new(PurpleRoomlistFieldType type,
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
295 const gchar *label, const gchar *name,
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
296 gboolean hidden);
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
297 /*@}*/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
298
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
299 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
300 /** @name UI Registration Functions */
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
301 /**************************************************************************/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
302 /*@{*/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
303
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
304 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
305 * Sets the UI operations structure to be used in all purple room lists.
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
306 *
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
307 * @param ops The UI operations structure.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
308 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
309 void purple_roomlist_set_ui_ops(PurpleRoomlistUiOps *ops);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
310
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
311 /**
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
312 * Returns the purple window UI operations structure to be used in
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
313 * new windows.
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
314 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
315 * @return A filled-out PurpleRoomlistUiOps structure.
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
316 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
317 PurpleRoomlistUiOps *purple_roomlist_get_ui_ops(void);
8113
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
318
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
319 /*@}*/
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
320
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
321 #ifdef __cplusplus
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
322 }
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
323 #endif
6a2ffc66c022 [gaim-migrate @ 8817]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
324
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
325 #endif /* _PURPLE_ROOMLIST_H_ */

mercurial