comparison finch/gntrequest.c @ 15822:32c366eeeb99

sed -ie 's/gaim/purple/g'
author Sean Egan <seanegan@gmail.com>
date Mon, 19 Mar 2007 07:01:17 +0000
parents 0e3a8505ebbe
children 2edbd4fede72
comparison
equal deleted inserted replaced
15821:84b0f9b23ede 15822:32c366eeeb99
1 /** 1 /**
2 * @file gntrequest.c GNT Request API 2 * @file gntrequest.c GNT Request API
3 * @ingroup gntui 3 * @ingroup gntui
4 * 4 *
5 * gaim 5 * purple
6 * 6 *
7 * Gaim is the legal property of its developers, whose names are too numerous 7 * Purple is the legal property of its developers, whose names are too numerous
8 * to list here. Please refer to the COPYRIGHT file distributed with this 8 * to list here. Please refer to the COPYRIGHT file distributed with this
9 * source distribution. 9 * source distribution.
10 * 10 *
11 * This program is free software; you can redistribute it and/or modify 11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by 12 * it under the terms of the GNU General Public License as published by
30 #include <gntentry.h> 30 #include <gntentry.h>
31 #include <gntlabel.h> 31 #include <gntlabel.h>
32 #include <gntline.h> 32 #include <gntline.h>
33 #include <gnttree.h> 33 #include <gnttree.h>
34 34
35 #include "gntgaim.h" 35 #include "finch.h"
36 #include "gntrequest.h" 36 #include "gntrequest.h"
37 #include "util.c" 37 #include "util.c"
38 38
39 typedef struct 39 typedef struct
40 { 40 {
41 void *user_data; 41 void *user_data;
42 GntWidget *entry, *dialog; 42 GntWidget *entry, *dialog;
43 GCallback *cbs; 43 GCallback *cbs;
44 } GaimGntFileRequest; 44 } PurpleGntFileRequest;
45 45
46 static GntWidget * 46 static GntWidget *
47 setup_request_window(const char *title, const char *primary, 47 setup_request_window(const char *title, const char *primary,
48 const char *secondary, GaimRequestType type) 48 const char *secondary, PurpleRequestType type)
49 { 49 {
50 GntWidget *window; 50 GntWidget *window;
51 51
52 window = gnt_vbox_new(FALSE); 52 window = gnt_vbox_new(FALSE);
53 gnt_box_set_toplevel(GNT_BOX(window), TRUE); 53 gnt_box_set_toplevel(GNT_BOX(window), TRUE);
58 gnt_box_add_widget(GNT_BOX(window), 58 gnt_box_add_widget(GNT_BOX(window),
59 gnt_label_new_with_format(primary, GNT_TEXT_FLAG_BOLD)); 59 gnt_label_new_with_format(primary, GNT_TEXT_FLAG_BOLD));
60 if (secondary) 60 if (secondary)
61 gnt_box_add_widget(GNT_BOX(window), gnt_label_new(secondary)); 61 gnt_box_add_widget(GNT_BOX(window), gnt_label_new(secondary));
62 62
63 g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gaim_request_close), 63 g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(purple_request_close),
64 GINT_TO_POINTER(type)); 64 GINT_TO_POINTER(type));
65 65
66 return window; 66 return window;
67 } 67 }
68 68
93 } 93 }
94 94
95 static void 95 static void
96 notify_input_cb(GntWidget *button, GntWidget *entry) 96 notify_input_cb(GntWidget *button, GntWidget *entry)
97 { 97 {
98 GaimRequestInputCb callback = g_object_get_data(G_OBJECT(button), "activate-callback"); 98 PurpleRequestInputCb callback = g_object_get_data(G_OBJECT(button), "activate-callback");
99 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata"); 99 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata");
100 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); 100 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
101 101
102 if (callback) 102 if (callback)
103 callback(data, text); 103 callback(data, text);
104 104
105 while (button->parent) 105 while (button->parent)
106 button = button->parent; 106 button = button->parent;
107 107
108 gaim_request_close(GAIM_REQUEST_INPUT, button); 108 purple_request_close(PURPLE_REQUEST_INPUT, button);
109 } 109 }
110 110
111 static void * 111 static void *
112 finch_request_input(const char *title, const char *primary, 112 finch_request_input(const char *title, const char *primary,
113 const char *secondary, const char *default_value, 113 const char *secondary, const char *default_value,
116 const char *cancel_text, GCallback cancel_cb, 116 const char *cancel_text, GCallback cancel_cb,
117 void *user_data) 117 void *user_data)
118 { 118 {
119 GntWidget *window, *box, *entry; 119 GntWidget *window, *box, *entry;
120 120
121 window = setup_request_window(title, primary, secondary, GAIM_REQUEST_INPUT); 121 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_INPUT);
122 122
123 entry = gnt_entry_new(default_value); 123 entry = gnt_entry_new(default_value);
124 if (masked) 124 if (masked)
125 gnt_entry_set_masked(GNT_ENTRY(entry), TRUE); 125 gnt_entry_set_masked(GNT_ENTRY(entry), TRUE);
126 gnt_box_add_widget(GNT_BOX(window), entry); 126 gnt_box_add_widget(GNT_BOX(window), entry);
133 133
134 return window; 134 return window;
135 } 135 }
136 136
137 static void 137 static void
138 finch_close_request(GaimRequestType type, gpointer ui_handle) 138 finch_close_request(PurpleRequestType type, gpointer ui_handle)
139 { 139 {
140 GntWidget *widget = GNT_WIDGET(ui_handle); 140 GntWidget *widget = GNT_WIDGET(ui_handle);
141 while (widget->parent) 141 while (widget->parent)
142 widget = widget->parent; 142 widget = widget->parent;
143 gnt_widget_destroy(widget); 143 gnt_widget_destroy(widget);
144 } 144 }
145 145
146 static void 146 static void
147 request_choice_cb(GntWidget *button, GntComboBox *combo) 147 request_choice_cb(GntWidget *button, GntComboBox *combo)
148 { 148 {
149 GaimRequestChoiceCb callback = g_object_get_data(G_OBJECT(button), "activate-callback"); 149 PurpleRequestChoiceCb callback = g_object_get_data(G_OBJECT(button), "activate-callback");
150 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata"); 150 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata");
151 int choice = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo))) - 1; 151 int choice = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo))) - 1;
152 152
153 if (callback) 153 if (callback)
154 callback(data, choice); 154 callback(data, choice);
155 155
156 while (button->parent) 156 while (button->parent)
157 button = button->parent; 157 button = button->parent;
158 158
159 gaim_request_close(GAIM_REQUEST_INPUT, button); 159 purple_request_close(PURPLE_REQUEST_INPUT, button);
160 } 160 }
161 161
162 static void * 162 static void *
163 finch_request_choice(const char *title, const char *primary, 163 finch_request_choice(const char *title, const char *primary,
164 const char *secondary, unsigned int default_value, 164 const char *secondary, unsigned int default_value,
168 { 168 {
169 GntWidget *window, *combo, *box; 169 GntWidget *window, *combo, *box;
170 const char *text; 170 const char *text;
171 int val; 171 int val;
172 172
173 window = setup_request_window(title, primary, secondary, GAIM_REQUEST_CHOICE); 173 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_CHOICE);
174 174
175 combo = gnt_combo_box_new(); 175 combo = gnt_combo_box_new();
176 gnt_box_add_widget(GNT_BOX(window), combo); 176 gnt_box_add_widget(GNT_BOX(window), combo);
177 while ((text = va_arg(choices, const char *))) 177 while ((text = va_arg(choices, const char *)))
178 { 178 {
191 } 191 }
192 192
193 static void 193 static void
194 request_action_cb(GntWidget *button, GntWidget *window) 194 request_action_cb(GntWidget *button, GntWidget *window)
195 { 195 {
196 GaimRequestActionCb callback = g_object_get_data(G_OBJECT(button), "activate-callback"); 196 PurpleRequestActionCb callback = g_object_get_data(G_OBJECT(button), "activate-callback");
197 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata"); 197 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata");
198 int id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "activate-id")); 198 int id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "activate-id"));
199 199
200 if (callback) 200 if (callback)
201 callback(data, id); 201 callback(data, id);
202 202
203 gaim_request_close(GAIM_REQUEST_ACTION, window); 203 purple_request_close(PURPLE_REQUEST_ACTION, window);
204 } 204 }
205 205
206 static void* 206 static void*
207 finch_request_action(const char *title, const char *primary, 207 finch_request_action(const char *title, const char *primary,
208 const char *secondary, unsigned int default_value, 208 const char *secondary, unsigned int default_value,
210 va_list actions) 210 va_list actions)
211 { 211 {
212 GntWidget *window, *box, *button; 212 GntWidget *window, *box, *button;
213 int i; 213 int i;
214 214
215 window = setup_request_window(title, primary, secondary, GAIM_REQUEST_ACTION); 215 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_ACTION);
216 216
217 box = gnt_hbox_new(FALSE); 217 box = gnt_hbox_new(FALSE);
218 gnt_box_add_widget(GNT_BOX(window), box); 218 gnt_box_add_widget(GNT_BOX(window), box);
219 for (i = 0; i < actioncount; i++) 219 for (i = 0; i < actioncount; i++)
220 { 220 {
221 const char *text = va_arg(actions, const char *); 221 const char *text = va_arg(actions, const char *);
222 GaimRequestActionCb callback = va_arg(actions, GaimRequestActionCb); 222 PurpleRequestActionCb callback = va_arg(actions, PurpleRequestActionCb);
223 223
224 button = gnt_button_new(text); 224 button = gnt_button_new(text);
225 gnt_box_add_widget(GNT_BOX(box), button); 225 gnt_box_add_widget(GNT_BOX(box), button);
226 226
227 g_object_set_data(G_OBJECT(button), "activate-callback", callback); 227 g_object_set_data(G_OBJECT(button), "activate-callback", callback);
234 234
235 return window; 235 return window;
236 } 236 }
237 237
238 static void 238 static void
239 request_fields_cb(GntWidget *button, GaimRequestFields *fields) 239 request_fields_cb(GntWidget *button, PurpleRequestFields *fields)
240 { 240 {
241 GaimRequestFieldsCb callback = g_object_get_data(G_OBJECT(button), "activate-callback"); 241 PurpleRequestFieldsCb callback = g_object_get_data(G_OBJECT(button), "activate-callback");
242 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata"); 242 gpointer data = g_object_get_data(G_OBJECT(button), "activate-userdata");
243 GList *list; 243 GList *list;
244 244
245 /* Update the data of the fields. GtkGaim does this differently. Instead of 245 /* Update the data of the fields. GtkPurple does this differently. Instead of
246 * updating the fields at the end like here, it updates the appropriate field 246 * updating the fields at the end like here, it updates the appropriate field
247 * instantly whenever a change is made. That allows it to make sure the 247 * instantly whenever a change is made. That allows it to make sure the
248 * 'required' fields are entered before the user can hit OK. It's not the case 248 * 'required' fields are entered before the user can hit OK. It's not the case
249 * here, althought it can be done. I am not honouring the 'required' fields 249 * here, althought it can be done. I am not honouring the 'required' fields
250 * for the moment. */ 250 * for the moment. */
251 for (list = gaim_request_fields_get_groups(fields); list; list = list->next) 251 for (list = purple_request_fields_get_groups(fields); list; list = list->next)
252 { 252 {
253 GaimRequestFieldGroup *group = list->data; 253 PurpleRequestFieldGroup *group = list->data;
254 GList *fields = gaim_request_field_group_get_fields(group); 254 GList *fields = purple_request_field_group_get_fields(group);
255 255
256 for (; fields ; fields = fields->next) 256 for (; fields ; fields = fields->next)
257 { 257 {
258 GaimRequestField *field = fields->data; 258 PurpleRequestField *field = fields->data;
259 GaimRequestFieldType type = gaim_request_field_get_type(field); 259 PurpleRequestFieldType type = purple_request_field_get_type(field);
260 if (type == GAIM_REQUEST_FIELD_BOOLEAN) 260 if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
261 { 261 {
262 GntWidget *check = field->ui_data; 262 GntWidget *check = field->ui_data;
263 gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check)); 263 gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check));
264 gaim_request_field_bool_set_value(field, value); 264 purple_request_field_bool_set_value(field, value);
265 } 265 }
266 else if (type == GAIM_REQUEST_FIELD_STRING) 266 else if (type == PURPLE_REQUEST_FIELD_STRING)
267 { 267 {
268 GntWidget *entry = field->ui_data; 268 GntWidget *entry = field->ui_data;
269 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); 269 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
270 gaim_request_field_string_set_value(field, (text && *text) ? text : NULL); 270 purple_request_field_string_set_value(field, (text && *text) ? text : NULL);
271 } 271 }
272 else if (type == GAIM_REQUEST_FIELD_INTEGER) 272 else if (type == PURPLE_REQUEST_FIELD_INTEGER)
273 { 273 {
274 GntWidget *entry = field->ui_data; 274 GntWidget *entry = field->ui_data;
275 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); 275 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
276 int value = (text && *text) ? atoi(text) : 0; 276 int value = (text && *text) ? atoi(text) : 0;
277 gaim_request_field_int_set_value(field, value); 277 purple_request_field_int_set_value(field, value);
278 } 278 }
279 else if (type == GAIM_REQUEST_FIELD_CHOICE) 279 else if (type == PURPLE_REQUEST_FIELD_CHOICE)
280 { 280 {
281 GntWidget *combo = field->ui_data; 281 GntWidget *combo = field->ui_data;
282 int id; 282 int id;
283 id = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo))); 283 id = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)));
284 gaim_request_field_choice_set_value(field, id); 284 purple_request_field_choice_set_value(field, id);
285 } 285 }
286 else if (type == GAIM_REQUEST_FIELD_LIST) 286 else if (type == PURPLE_REQUEST_FIELD_LIST)
287 { 287 {
288 GList *list = NULL; 288 GList *list = NULL;
289 if (gaim_request_field_list_get_multi_select(field)) 289 if (purple_request_field_list_get_multi_select(field))
290 { 290 {
291 const GList *iter; 291 const GList *iter;
292 GntWidget *tree = field->ui_data; 292 GntWidget *tree = field->ui_data;
293 293
294 iter = gaim_request_field_list_get_items(field); 294 iter = purple_request_field_list_get_items(field);
295 for (; iter; iter = iter->next) 295 for (; iter; iter = iter->next)
296 { 296 {
297 const char *text = iter->data; 297 const char *text = iter->data;
298 gpointer key = gaim_request_field_list_get_data(field, text); 298 gpointer key = purple_request_field_list_get_data(field, text);
299 if (gnt_tree_get_choice(GNT_TREE(tree), key)) 299 if (gnt_tree_get_choice(GNT_TREE(tree), key))
300 list = g_list_prepend(list, key); 300 list = g_list_prepend(list, key);
301 } 301 }
302 } 302 }
303 else 303 else
305 GntWidget *combo = field->ui_data; 305 GntWidget *combo = field->ui_data;
306 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); 306 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
307 list = g_list_append(list, data); 307 list = g_list_append(list, data);
308 } 308 }
309 309
310 gaim_request_field_list_set_selected(field, list); 310 purple_request_field_list_set_selected(field, list);
311 g_list_free(list); 311 g_list_free(list);
312 } 312 }
313 else if (type == GAIM_REQUEST_FIELD_ACCOUNT) 313 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
314 { 314 {
315 GntWidget *combo = field->ui_data; 315 GntWidget *combo = field->ui_data;
316 GaimAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); 316 PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
317 gaim_request_field_account_set_value(field, acc); 317 purple_request_field_account_set_value(field, acc);
318 } 318 }
319 } 319 }
320 } 320 }
321 321
322 if (callback) 322 if (callback)
323 callback(data, fields); 323 callback(data, fields);
324 324
325 while (button->parent) 325 while (button->parent)
326 button = button->parent; 326 button = button->parent;
327 327
328 gaim_request_close(GAIM_REQUEST_FIELDS, button); 328 purple_request_close(PURPLE_REQUEST_FIELDS, button);
329 } 329 }
330 330
331 static void * 331 static void *
332 finch_request_fields(const char *title, const char *primary, 332 finch_request_fields(const char *title, const char *primary,
333 const char *secondary, GaimRequestFields *allfields, 333 const char *secondary, PurpleRequestFields *allfields,
334 const char *ok, GCallback ok_cb, 334 const char *ok, GCallback ok_cb,
335 const char *cancel, GCallback cancel_cb, 335 const char *cancel, GCallback cancel_cb,
336 void *userdata) 336 void *userdata)
337 { 337 {
338 GntWidget *window, *box; 338 GntWidget *window, *box;
339 GList *grlist; 339 GList *grlist;
340 340
341 window = setup_request_window(title, primary, secondary, GAIM_REQUEST_FIELDS); 341 window = setup_request_window(title, primary, secondary, PURPLE_REQUEST_FIELDS);
342 342
343 /* This is how it's going to work: the request-groups are going to be 343 /* This is how it's going to work: the request-groups are going to be
344 * stacked vertically one after the other. A GntLine will be separating 344 * stacked vertically one after the other. A GntLine will be separating
345 * the groups. */ 345 * the groups. */
346 box = gnt_vbox_new(FALSE); 346 box = gnt_vbox_new(FALSE);
347 gnt_box_set_pad(GNT_BOX(box), 0); 347 gnt_box_set_pad(GNT_BOX(box), 0);
348 gnt_box_set_fill(GNT_BOX(box), TRUE); 348 gnt_box_set_fill(GNT_BOX(box), TRUE);
349 for (grlist = gaim_request_fields_get_groups(allfields); grlist; grlist = grlist->next) 349 for (grlist = purple_request_fields_get_groups(allfields); grlist; grlist = grlist->next)
350 { 350 {
351 GaimRequestFieldGroup *group = grlist->data; 351 PurpleRequestFieldGroup *group = grlist->data;
352 GList *fields = gaim_request_field_group_get_fields(group); 352 GList *fields = purple_request_field_group_get_fields(group);
353 GntWidget *hbox; 353 GntWidget *hbox;
354 const char *title = gaim_request_field_group_get_title(group); 354 const char *title = purple_request_field_group_get_title(group);
355 355
356 if (title) 356 if (title)
357 gnt_box_add_widget(GNT_BOX(box), 357 gnt_box_add_widget(GNT_BOX(box),
358 gnt_label_new_with_format(title, GNT_TEXT_FLAG_BOLD)); 358 gnt_label_new_with_format(title, GNT_TEXT_FLAG_BOLD));
359 359
360 for (; fields ; fields = fields->next) 360 for (; fields ; fields = fields->next)
361 { 361 {
362 /* XXX: Break each of the fields into a separate function? */ 362 /* XXX: Break each of the fields into a separate function? */
363 GaimRequestField *field = fields->data; 363 PurpleRequestField *field = fields->data;
364 GaimRequestFieldType type = gaim_request_field_get_type(field); 364 PurpleRequestFieldType type = purple_request_field_get_type(field);
365 const char *label = gaim_request_field_get_label(field); 365 const char *label = purple_request_field_get_label(field);
366 366
367 hbox = gnt_hbox_new(TRUE); /* hrm */ 367 hbox = gnt_hbox_new(TRUE); /* hrm */
368 gnt_box_add_widget(GNT_BOX(box), hbox); 368 gnt_box_add_widget(GNT_BOX(box), hbox);
369 369
370 if (type != GAIM_REQUEST_FIELD_BOOLEAN && label) 370 if (type != PURPLE_REQUEST_FIELD_BOOLEAN && label)
371 { 371 {
372 GntWidget *l = gnt_label_new(label); 372 GntWidget *l = gnt_label_new(label);
373 gnt_widget_set_size(l, 0, 1); 373 gnt_widget_set_size(l, 0, 1);
374 gnt_box_add_widget(GNT_BOX(hbox), l); 374 gnt_box_add_widget(GNT_BOX(hbox), l);
375 } 375 }
376 376
377 if (type == GAIM_REQUEST_FIELD_BOOLEAN) 377 if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
378 { 378 {
379 GntWidget *check = gnt_check_box_new(label); 379 GntWidget *check = gnt_check_box_new(label);
380 gnt_check_box_set_checked(GNT_CHECK_BOX(check), 380 gnt_check_box_set_checked(GNT_CHECK_BOX(check),
381 gaim_request_field_bool_get_default_value(field)); 381 purple_request_field_bool_get_default_value(field));
382 gnt_box_add_widget(GNT_BOX(hbox), check); 382 gnt_box_add_widget(GNT_BOX(hbox), check);
383 field->ui_data = check; 383 field->ui_data = check;
384 } 384 }
385 else if (type == GAIM_REQUEST_FIELD_STRING) 385 else if (type == PURPLE_REQUEST_FIELD_STRING)
386 { 386 {
387 GntWidget *entry = gnt_entry_new( 387 GntWidget *entry = gnt_entry_new(
388 gaim_request_field_string_get_default_value(field)); 388 purple_request_field_string_get_default_value(field));
389 gnt_entry_set_masked(GNT_ENTRY(entry), 389 gnt_entry_set_masked(GNT_ENTRY(entry),
390 gaim_request_field_string_is_masked(field)); 390 purple_request_field_string_is_masked(field));
391 gnt_box_add_widget(GNT_BOX(hbox), entry); 391 gnt_box_add_widget(GNT_BOX(hbox), entry);
392 field->ui_data = entry; 392 field->ui_data = entry;
393 } 393 }
394 else if (type == GAIM_REQUEST_FIELD_INTEGER) 394 else if (type == PURPLE_REQUEST_FIELD_INTEGER)
395 { 395 {
396 char str[256]; 396 char str[256];
397 int val = gaim_request_field_int_get_default_value(field); 397 int val = purple_request_field_int_get_default_value(field);
398 GntWidget *entry; 398 GntWidget *entry;
399 399
400 snprintf(str, sizeof(str), "%d", val); 400 snprintf(str, sizeof(str), "%d", val);
401 entry = gnt_entry_new(str); 401 entry = gnt_entry_new(str);
402 gnt_entry_set_flag(GNT_ENTRY(entry), GNT_ENTRY_FLAG_INT); 402 gnt_entry_set_flag(GNT_ENTRY(entry), GNT_ENTRY_FLAG_INT);
403 gnt_box_add_widget(GNT_BOX(hbox), entry); 403 gnt_box_add_widget(GNT_BOX(hbox), entry);
404 field->ui_data = entry; 404 field->ui_data = entry;
405 } 405 }
406 else if (type == GAIM_REQUEST_FIELD_CHOICE) 406 else if (type == PURPLE_REQUEST_FIELD_CHOICE)
407 { 407 {
408 int id; 408 int id;
409 const GList *list; 409 const GList *list;
410 GntWidget *combo = gnt_combo_box_new(); 410 GntWidget *combo = gnt_combo_box_new();
411 gnt_box_add_widget(GNT_BOX(hbox), combo); 411 gnt_box_add_widget(GNT_BOX(hbox), combo);
412 field->ui_data = combo; 412 field->ui_data = combo;
413 413
414 list = gaim_request_field_choice_get_labels(field); 414 list = purple_request_field_choice_get_labels(field);
415 for (id = 1; list; list = list->next, id++) 415 for (id = 1; list; list = list->next, id++)
416 { 416 {
417 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), 417 gnt_combo_box_add_data(GNT_COMBO_BOX(combo),
418 GINT_TO_POINTER(id), list->data); 418 GINT_TO_POINTER(id), list->data);
419 } 419 }
420 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), 420 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo),
421 GINT_TO_POINTER(gaim_request_field_choice_get_default_value(field))); 421 GINT_TO_POINTER(purple_request_field_choice_get_default_value(field)));
422 } 422 }
423 else if (type == GAIM_REQUEST_FIELD_LIST) 423 else if (type == PURPLE_REQUEST_FIELD_LIST)
424 { 424 {
425 const GList *list; 425 const GList *list;
426 gboolean multi = gaim_request_field_list_get_multi_select(field); 426 gboolean multi = purple_request_field_list_get_multi_select(field);
427 if (multi) 427 if (multi)
428 { 428 {
429 GntWidget *tree = gnt_tree_new(); 429 GntWidget *tree = gnt_tree_new();
430 gnt_box_add_widget(GNT_BOX(hbox), tree); 430 gnt_box_add_widget(GNT_BOX(hbox), tree);
431 field->ui_data = tree; 431 field->ui_data = tree;
432 432
433 list = gaim_request_field_list_get_items(field); 433 list = purple_request_field_list_get_items(field);
434 for (; list; list = list->next) 434 for (; list; list = list->next)
435 { 435 {
436 const char *text = list->data; 436 const char *text = list->data;
437 gpointer key = gaim_request_field_list_get_data(field, text); 437 gpointer key = purple_request_field_list_get_data(field, text);
438 gnt_tree_add_choice(GNT_TREE(tree), key, 438 gnt_tree_add_choice(GNT_TREE(tree), key,
439 gnt_tree_create_row(GNT_TREE(tree), text), NULL, NULL); 439 gnt_tree_create_row(GNT_TREE(tree), text), NULL, NULL);
440 if (gaim_request_field_list_is_selected(field, text)) 440 if (purple_request_field_list_is_selected(field, text))
441 gnt_tree_set_choice(GNT_TREE(tree), key, TRUE); 441 gnt_tree_set_choice(GNT_TREE(tree), key, TRUE);
442 } 442 }
443 } 443 }
444 else 444 else
445 { 445 {
446 GntWidget *combo = gnt_combo_box_new(); 446 GntWidget *combo = gnt_combo_box_new();
447 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID); 447 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID);
448 gnt_box_add_widget(GNT_BOX(hbox), combo); 448 gnt_box_add_widget(GNT_BOX(hbox), combo);
449 field->ui_data = combo; 449 field->ui_data = combo;
450 450
451 list = gaim_request_field_list_get_items(field); 451 list = purple_request_field_list_get_items(field);
452 for (; list; list = list->next) 452 for (; list; list = list->next)
453 { 453 {
454 const char *text = list->data; 454 const char *text = list->data;
455 gpointer key = gaim_request_field_list_get_data(field, text); 455 gpointer key = purple_request_field_list_get_data(field, text);
456 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), key, text); 456 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), key, text);
457 if (gaim_request_field_list_is_selected(field, text)) 457 if (purple_request_field_list_is_selected(field, text))
458 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), key); 458 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), key);
459 } 459 }
460 } 460 }
461 } 461 }
462 else if (type == GAIM_REQUEST_FIELD_ACCOUNT) 462 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
463 { 463 {
464 gboolean all; 464 gboolean all;
465 GaimAccount *def; 465 PurpleAccount *def;
466 GList *list; 466 GList *list;
467 GntWidget *combo = gnt_combo_box_new(); 467 GntWidget *combo = gnt_combo_box_new();
468 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID); 468 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID);
469 gnt_box_add_widget(GNT_BOX(hbox), combo); 469 gnt_box_add_widget(GNT_BOX(hbox), combo);
470 field->ui_data = combo; 470 field->ui_data = combo;
471 471
472 all = gaim_request_field_account_get_show_all(field); 472 all = purple_request_field_account_get_show_all(field);
473 def = gaim_request_field_account_get_default_value(field); 473 def = purple_request_field_account_get_default_value(field);
474 474
475 if (all) 475 if (all)
476 list = gaim_accounts_get_all(); 476 list = purple_accounts_get_all();
477 else 477 else
478 list = gaim_connections_get_all(); 478 list = purple_connections_get_all();
479 479
480 for (; list; list = list->next) 480 for (; list; list = list->next)
481 { 481 {
482 GaimAccount *account; 482 PurpleAccount *account;
483 char *text; 483 char *text;
484 484
485 if (all) 485 if (all)
486 account = list->data; 486 account = list->data;
487 else 487 else
488 account = gaim_connection_get_account(list->data); 488 account = purple_connection_get_account(list->data);
489 489
490 text = g_strdup_printf("%s (%s)", 490 text = g_strdup_printf("%s (%s)",
491 gaim_account_get_username(account), 491 purple_account_get_username(account),
492 gaim_account_get_protocol_name(account)); 492 purple_account_get_protocol_name(account));
493 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), account, text); 493 gnt_combo_box_add_data(GNT_COMBO_BOX(combo), account, text);
494 g_free(text); 494 g_free(text);
495 if (account == def) 495 if (account == def)
496 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), account); 496 gnt_combo_box_set_selected(GNT_COMBO_BOX(combo), account);
497 } 497 }
519 } 519 }
520 520
521 static void 521 static void
522 file_cancel_cb(GntWidget *wid, gpointer fq) 522 file_cancel_cb(GntWidget *wid, gpointer fq)
523 { 523 {
524 GaimGntFileRequest *data = fq; 524 PurpleGntFileRequest *data = fq;
525 if (data->cbs[1] != NULL) 525 if (data->cbs[1] != NULL)
526 ((GaimRequestFileCb)data->cbs[1])(data->user_data, NULL); 526 ((PurpleRequestFileCb)data->cbs[1])(data->user_data, NULL);
527 527
528 gaim_request_close(GAIM_REQUEST_FILE, data->dialog); 528 purple_request_close(PURPLE_REQUEST_FILE, data->dialog);
529 } 529 }
530 530
531 static void 531 static void
532 file_ok_cb(GntWidget *wid, gpointer fq) 532 file_ok_cb(GntWidget *wid, gpointer fq)
533 { 533 {
534 GaimGntFileRequest *data = fq; 534 PurpleGntFileRequest *data = fq;
535 if (data->cbs[0] != NULL) 535 if (data->cbs[0] != NULL)
536 ((GaimRequestFileCb)data->cbs[0])(data->user_data, gnt_entry_get_text(GNT_ENTRY(data->entry))); 536 ((PurpleRequestFileCb)data->cbs[0])(data->user_data, gnt_entry_get_text(GNT_ENTRY(data->entry)));
537 537
538 gaim_request_close(GAIM_REQUEST_FILE, data->dialog); 538 purple_request_close(PURPLE_REQUEST_FILE, data->dialog);
539 } 539 }
540 540
541 static void 541 static void
542 file_request_destroy(GaimGntFileRequest *data) 542 file_request_destroy(PurpleGntFileRequest *data)
543 { 543 {
544 g_free(data->cbs); 544 g_free(data->cbs);
545 g_free(data); 545 g_free(data);
546 } 546 }
547 547
551 GCallback ok_cb, GCallback cancel_cb, 551 GCallback ok_cb, GCallback cancel_cb,
552 void *user_data) 552 void *user_data)
553 { 553 {
554 GntWidget *window = gnt_vbox_new(FALSE); 554 GntWidget *window = gnt_vbox_new(FALSE);
555 GntWidget *entry, *hbox, *button; 555 GntWidget *entry, *hbox, *button;
556 GaimGntFileRequest *data = g_new0(GaimGntFileRequest, 1); 556 PurpleGntFileRequest *data = g_new0(PurpleGntFileRequest, 1);
557 557
558 data->user_data = user_data; 558 data->user_data = user_data;
559 data->cbs = g_new0(GCallback, 2); 559 data->cbs = g_new0(GCallback, 2);
560 data->cbs[0] = ok_cb; 560 data->cbs[0] = ok_cb;
561 data->cbs[1] = cancel_cb; 561 data->cbs[1] = cancel_cb;
562 data->dialog = window; 562 data->dialog = window;
563 data->entry = entry = gnt_entry_new(g_strconcat(gaim_home_dir(), G_DIR_SEPARATOR_S, filename, NULL)); 563 data->entry = entry = gnt_entry_new(g_strconcat(purple_home_dir(), G_DIR_SEPARATOR_S, filename, NULL));
564 gnt_widget_set_size(entry, 30, 1); 564 gnt_widget_set_size(entry, 30, 1);
565 gnt_box_set_toplevel(GNT_BOX(window), TRUE); 565 gnt_box_set_toplevel(GNT_BOX(window), TRUE);
566 gnt_box_set_title(GNT_BOX(window), title ? title : (savedialog ? _("Save File...") : _("Open File..."))); 566 gnt_box_set_title(GNT_BOX(window), title ? title : (savedialog ? _("Save File...") : _("Open File...")));
567 #if 0 567 #if 0
568 /* After the string freeze */ 568 /* After the string freeze */
591 gnt_widget_show(window); 591 gnt_widget_show(window);
592 592
593 return window; 593 return window;
594 } 594 }
595 595
596 static GaimRequestUiOps uiops = 596 static PurpleRequestUiOps uiops =
597 { 597 {
598 .request_input = finch_request_input, 598 .request_input = finch_request_input,
599 .close_request = finch_close_request, 599 .close_request = finch_close_request,
600 .request_choice = finch_request_choice, 600 .request_choice = finch_request_choice,
601 .request_action = finch_request_action, 601 .request_action = finch_request_action,
602 .request_fields = finch_request_fields, 602 .request_fields = finch_request_fields,
603 .request_file = finch_request_file, 603 .request_file = finch_request_file,
604 .request_folder = NULL /* No plans for this */ 604 .request_folder = NULL /* No plans for this */
605 }; 605 };
606 606
607 GaimRequestUiOps *finch_request_get_ui_ops() 607 PurpleRequestUiOps *finch_request_get_ui_ops()
608 { 608 {
609 return &uiops; 609 return &uiops;
610 } 610 }
611 611
612 void finch_request_init() 612 void finch_request_init()