Mercurial > pidgin
comparison src/request.h @ 5477:e8e498255369
[gaim-migrate @ 5873]
The beginnings of the request API.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Thu, 22 May 2003 05:36:47 +0000 |
parents | |
children | a41149ee8a29 |
comparison
equal
deleted
inserted
replaced
5476:9bcd8cd625ae | 5477:e8e498255369 |
---|---|
1 /** | |
2 * @file request.h Request API | |
3 * @ingroup core | |
4 * | |
5 * gaim | |
6 * | |
7 * Copyright (C) 2003 Christian Hammond <chipx86@gnupdate.org> | |
8 * | |
9 * This program is free software; you can redistribute it and/or modify | |
10 * it under the terms of the GNU General Public License as published by | |
11 * the Free Software Foundation; either version 2 of the License, or | |
12 * (at your option) any later version. | |
13 * | |
14 * This program is distributed in the hope that it will be useful, | |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 * GNU General Public License for more details. | |
18 * | |
19 * You should have received a copy of the GNU General Public License | |
20 * along with this program; if not, write to the Free Software | |
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
22 */ | |
23 #ifndef _GAIM_REQUEST_H_ | |
24 #define _GAIM_REQUEST_H_ | |
25 | |
26 #include <stdlib.h> | |
27 #include <glib-object.h> | |
28 #include <glib.h> | |
29 | |
30 /** | |
31 * Request types. | |
32 */ | |
33 typedef enum | |
34 { | |
35 GAIM_REQUEST_INPUT = 0, /**< Text input request. */ | |
36 GAIM_REQUEST_CHOICE, /**< Multiple-choice request. */ | |
37 GAIM_REQUEST_ACTION /**< Action request. */ | |
38 | |
39 } GaimRequestType; | |
40 | |
41 /** | |
42 * Request UI operations. | |
43 */ | |
44 typedef struct | |
45 { | |
46 void *(*request_input)(const char *title, const char *primary, | |
47 const char *secondary, const char *default_value, | |
48 const char *ok_text, GCallback ok_cb, | |
49 const char *cancel_text, GCallback cancel_cb, | |
50 void *user_data); | |
51 void *(*request_choice)(const char *title, const char *primary, | |
52 const char *secondary, unsigned int default_value, | |
53 const char *ok_text, GCallback ok_cb, | |
54 const char *cancel_text, GCallback cancel_cb, | |
55 void *user_data, va_list args); | |
56 void *(*request_action)(const char *title, const char *primary, | |
57 const char *secondary, unsigned int default_action, | |
58 void *user_data, va_list actions); | |
59 | |
60 void (*close_request)(GaimRequestType type, void *uihandle); | |
61 | |
62 } GaimRequestUiOps; | |
63 | |
64 /**************************************************************************/ | |
65 /** @name Request API */ | |
66 /**************************************************************************/ | |
67 /*@{*/ | |
68 | |
69 /** | |
70 * Prompts the user for text input. | |
71 * | |
72 * @param handle The plugin or connection handle. | |
73 * @param title The title of the message. | |
74 * @param primary The main point of the message. | |
75 * @param secondary The secondary information. | |
76 * @param default_value The default value. | |
77 * @param ok_text The text for the OK button. | |
78 * @param ok_cb The callback for the OK button. | |
79 * @param cancel_text The text for the cancel button. | |
80 * @param cancel_cb The callback for the cancel button. | |
81 * @param user_data The data to pass to the callback. | |
82 * | |
83 * @return A UI-specific handle. | |
84 */ | |
85 void *gaim_request_input(void *handle, const char *title, | |
86 const char *primary, const char *secondary, | |
87 const char *default_value, | |
88 const char *ok_text, GCallback ok_cb, | |
89 const char *cancel_text, GCallback cancel_cb, | |
90 void *user_data); | |
91 | |
92 /** | |
93 * Prompts the user for multiple-choice input. | |
94 * | |
95 * @param handle The plugin or connection handle. | |
96 * @param title The title of the message. | |
97 * @param primary The main point of the message. | |
98 * @param secondary The secondary information. | |
99 * @param default_value The default value. | |
100 * @param ok_text The text for the OK button. | |
101 * @param ok_cb The callback for the OK button. | |
102 * @param cancel_text The text for the cancel button. | |
103 * @param cancel_cb The callback for the cancel button. | |
104 * @param user_data The data to pass to the callback. | |
105 * @param choice The choices. | |
106 * | |
107 * @return A UI-specific handle. | |
108 */ | |
109 void *gaim_request_choice(void *handle, const char *title, | |
110 const char *primary, const char *secondary, | |
111 unsigned int default_value, | |
112 const char *ok_text, GCallback ok_cb, | |
113 const char *cancel_text, GCallback cancel_cb, | |
114 void *user_data, | |
115 const char *choice, ...); | |
116 | |
117 /** | |
118 * Prompts the user for multiple-choice input. | |
119 * | |
120 * @param handle The plugin or connection handle. | |
121 * @param title The title of the message. | |
122 * @param primary The main point of the message. | |
123 * @param secondary The secondary information. | |
124 * @param default_value The default value. | |
125 * @param ok_text The text for the OK button. | |
126 * @param ok_cb The callback for the OK button. | |
127 * @param cancel_text The text for the cancel button. | |
128 * @param cancel_cb The callback for the cancel button. | |
129 * @param user_data The data to pass to the callback. | |
130 * @param choices The choices. | |
131 * | |
132 * @return A UI-specific handle. | |
133 */ | |
134 void *gaim_request_choice_varg(void *handle, const char *title, | |
135 const char *primary, const char *secondary, | |
136 unsigned int default_value, | |
137 const char *ok_text, GCallback ok_cb, | |
138 const char *cancel_text, GCallback cancel_cb, | |
139 void *user_data, va_list choices); | |
140 | |
141 /** | |
142 * Prompts the user for an action. | |
143 * | |
144 * This is often represented as a dialog with a button for each action. | |
145 * | |
146 * @param handle The plugin or connection handle. | |
147 * @param title The title of the message. | |
148 * @param primary The main point of the message. | |
149 * @param secondary The secondary information. | |
150 * @param default_action The default value. | |
151 * @param user_data The data to pass to the callback. | |
152 * @param action The first action. | |
153 * | |
154 * @return A UI-specific handle. | |
155 */ | |
156 void *gaim_request_action(void *handle, const char *title, | |
157 const char *primary, const char *secondary, | |
158 unsigned int default_action, | |
159 void *user_data, const char *action, ...); | |
160 | |
161 /** | |
162 * Prompts the user for an action. | |
163 * | |
164 * This is often represented as a dialog with a button for each action. | |
165 * | |
166 * @param handle The plugin or connection handle. | |
167 * @param title The title of the message. | |
168 * @param primary The main point of the message. | |
169 * @param secondary The secondary information. | |
170 * @param default_action The default value. | |
171 * @param user_data The data to pass to the callback. | |
172 * @param actions A list of actions and callbacks. | |
173 * | |
174 * @return A UI-specific handle. | |
175 */ | |
176 void *gaim_request_action_varg(void *handle, const char *title, | |
177 const char *primary, const char *secondary, | |
178 unsigned int default_action, | |
179 void *user_data, va_list actions); | |
180 | |
181 /** | |
182 * Closes a request. | |
183 * | |
184 * This should be used only by the UI operation functions and part of the | |
185 * core. | |
186 * | |
187 * @param type The request type. | |
188 * @param uihandle The request UI handle. | |
189 */ | |
190 void gaim_request_close(GaimRequestType type, void *uihandle); | |
191 | |
192 /** | |
193 * Closes all requests registered with the specified handle. | |
194 * | |
195 * @param handle The handle. | |
196 */ | |
197 void gaim_request_close_with_handle(void *handle); | |
198 | |
199 /** | |
200 * A wrapper for gaim_request_action() that uses Yes and No buttons. | |
201 */ | |
202 #define gaim_request_yes_no(handle, title, primary, secondary, \ | |
203 default_action, user_data, yes_cb, no_cb) \ | |
204 gaim_request_action((handle), (title), (primary), (secondary) \ | |
205 (default_action), (user_data), \ | |
206 _("Yes"), (yes_cb), _("No"), (no_cb), NULL) | |
207 | |
208 /** | |
209 * A wrapper for gaim_request_action() that uses OK and Cancel buttons. | |
210 */ | |
211 #define gaim_request_ok_cancel(handle, title, primary, secondary, \ | |
212 default_action, user_data, ok_cb, cancel_cb) \ | |
213 gaim_request_action((handle), (title), (primary), (secondary) \ | |
214 (default_action), (user_data), \ | |
215 _("OK"), (ok_cb), _("Cancel"), (cancel_cb), NULL) | |
216 | |
217 /*@}*/ | |
218 | |
219 /**************************************************************************/ | |
220 /** @name UI Operations API */ | |
221 /**************************************************************************/ | |
222 /*@{*/ | |
223 | |
224 /** | |
225 * Sets the UI operations structure to be used when displaying a | |
226 * request. | |
227 * | |
228 * @param ops The UI operations structure. | |
229 */ | |
230 void gaim_set_request_ui_ops(GaimRequestUiOps *ops); | |
231 | |
232 /** | |
233 * Returns the UI operations structure to be used when displaying a | |
234 * request. | |
235 * | |
236 * @param ops The UI operations structure. | |
237 */ | |
238 GaimRequestUiOps *gaim_get_request_ui_ops(void); | |
239 | |
240 /*@}*/ | |
241 | |
242 #endif /* _GAIM_REQUEST_H_ */ |