comparison finch/gntrequest.c @ 32672:3828a61c44da

A boring and large patch so I can merge heads.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Fri, 23 Dec 2011 08:21:58 +0000
parents a8cc50c2279f
children 03dcb0185c82
comparison
equal deleted inserted replaced
32671:0e69949b3e61 32672:3828a61c44da
39 #include "finch.h" 39 #include "finch.h"
40 #include "gntrequest.h" 40 #include "gntrequest.h"
41 #include "debug.h" 41 #include "debug.h"
42 #include "util.h" 42 #include "util.h"
43 43
44 /* XXX: Until gobjectification ... */
45 #undef FINCH_GET_DATA
46 #undef FINCH_SET_DATA
47 #define FINCH_GET_DATA(obj) purple_request_field_get_ui_data(obj)
48 #define FINCH_SET_DATA(obj, data) purple_request_field_set_ui_data(obj, data)
49
50 typedef struct 44 typedef struct
51 { 45 {
52 void *user_data; 46 void *user_data;
53 GntWidget *dialog; 47 GntWidget *dialog;
54 GCallback *cbs; 48 GCallback *cbs;
321 PurpleRequestFieldType type = purple_request_field_get_type(field); 315 PurpleRequestFieldType type = purple_request_field_get_type(field);
322 if (!purple_request_field_is_visible(field)) 316 if (!purple_request_field_is_visible(field))
323 continue; 317 continue;
324 if (type == PURPLE_REQUEST_FIELD_BOOLEAN) 318 if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
325 { 319 {
326 GntWidget *check = FINCH_GET_DATA(field); 320 GntWidget *check = purple_request_field_get_ui_data(field);
327 gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check)); 321 gboolean value = gnt_check_box_get_checked(GNT_CHECK_BOX(check));
328 purple_request_field_bool_set_value(field, value); 322 purple_request_field_bool_set_value(field, value);
329 } 323 }
330 else if (type == PURPLE_REQUEST_FIELD_STRING) 324 else if (type == PURPLE_REQUEST_FIELD_STRING)
331 { 325 {
332 GntWidget *entry = FINCH_GET_DATA(field); 326 GntWidget *entry = purple_request_field_get_ui_data(field);
333 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); 327 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
334 purple_request_field_string_set_value(field, (text && *text) ? text : NULL); 328 purple_request_field_string_set_value(field, (text && *text) ? text : NULL);
335 } 329 }
336 else if (type == PURPLE_REQUEST_FIELD_INTEGER) 330 else if (type == PURPLE_REQUEST_FIELD_INTEGER)
337 { 331 {
338 GntWidget *entry = FINCH_GET_DATA(field); 332 GntWidget *entry = purple_request_field_get_ui_data(field);
339 const char *text = gnt_entry_get_text(GNT_ENTRY(entry)); 333 const char *text = gnt_entry_get_text(GNT_ENTRY(entry));
340 int value = (text && *text) ? atoi(text) : 0; 334 int value = (text && *text) ? atoi(text) : 0;
341 purple_request_field_int_set_value(field, value); 335 purple_request_field_int_set_value(field, value);
342 } 336 }
343 else if (type == PURPLE_REQUEST_FIELD_CHOICE) 337 else if (type == PURPLE_REQUEST_FIELD_CHOICE)
344 { 338 {
345 GntWidget *combo = FINCH_GET_DATA(field); 339 GntWidget *combo = purple_request_field_get_ui_data(field);
346 int id; 340 int id;
347 id = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo))); 341 id = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)));
348 purple_request_field_choice_set_value(field, id); 342 purple_request_field_choice_set_value(field, id);
349 } 343 }
350 else if (type == PURPLE_REQUEST_FIELD_LIST) 344 else if (type == PURPLE_REQUEST_FIELD_LIST)
351 { 345 {
352 GList *list = NULL, *iter; 346 GList *list = NULL, *iter;
353 if (purple_request_field_list_get_multi_select(field)) 347 if (purple_request_field_list_get_multi_select(field))
354 { 348 {
355 GntWidget *tree = FINCH_GET_DATA(field); 349 GntWidget *tree = purple_request_field_get_ui_data(field);
356 350
357 iter = purple_request_field_list_get_items(field); 351 iter = purple_request_field_list_get_items(field);
358 for (; iter; iter = iter->next) 352 for (; iter; iter = iter->next)
359 { 353 {
360 const char *text = iter->data; 354 const char *text = iter->data;
363 list = g_list_prepend(list, (gpointer)text); 357 list = g_list_prepend(list, (gpointer)text);
364 } 358 }
365 } 359 }
366 else 360 else
367 { 361 {
368 GntWidget *combo = FINCH_GET_DATA(field); 362 GntWidget *combo = purple_request_field_get_ui_data(field);
369 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); 363 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
370 364
371 iter = purple_request_field_list_get_items(field); 365 iter = purple_request_field_list_get_items(field);
372 for (; iter; iter = iter->next) { 366 for (; iter; iter = iter->next) {
373 const char *text = iter->data; 367 const char *text = iter->data;
382 purple_request_field_list_set_selected(field, list); 376 purple_request_field_list_set_selected(field, list);
383 g_list_free(list); 377 g_list_free(list);
384 } 378 }
385 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) 379 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
386 { 380 {
387 GntWidget *combo = FINCH_GET_DATA(field); 381 GntWidget *combo = purple_request_field_get_ui_data(field);
388 PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); 382 PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
389 purple_request_field_account_set_value(field, acc); 383 purple_request_field_account_set_value(field, acc);
390 } 384 }
391 } 385 }
392 } 386 }
631 gnt_box_add_widget(GNT_BOX(hbox), l); 625 gnt_box_add_widget(GNT_BOX(hbox), l);
632 } 626 }
633 627
634 if (type == PURPLE_REQUEST_FIELD_BOOLEAN) 628 if (type == PURPLE_REQUEST_FIELD_BOOLEAN)
635 { 629 {
636 FINCH_SET_DATA(field, create_boolean_field(field)); 630 purple_request_field_set_ui_data(field, create_boolean_field(field));
637 } 631 }
638 else if (type == PURPLE_REQUEST_FIELD_STRING) 632 else if (type == PURPLE_REQUEST_FIELD_STRING)
639 { 633 {
640 FINCH_SET_DATA(field, create_string_field(field, &username)); 634 purple_request_field_set_ui_data(field, create_string_field(field, &username));
641 } 635 }
642 else if (type == PURPLE_REQUEST_FIELD_INTEGER) 636 else if (type == PURPLE_REQUEST_FIELD_INTEGER)
643 { 637 {
644 FINCH_SET_DATA(field, create_integer_field(field)); 638 purple_request_field_set_ui_data(field, create_integer_field(field));
645 } 639 }
646 else if (type == PURPLE_REQUEST_FIELD_CHOICE) 640 else if (type == PURPLE_REQUEST_FIELD_CHOICE)
647 { 641 {
648 FINCH_SET_DATA(field, create_choice_field(field)); 642 purple_request_field_set_ui_data(field, create_choice_field(field));
649 } 643 }
650 else if (type == PURPLE_REQUEST_FIELD_LIST) 644 else if (type == PURPLE_REQUEST_FIELD_LIST)
651 { 645 {
652 FINCH_SET_DATA(field, create_list_field(field)); 646 purple_request_field_set_ui_data(field, create_list_field(field));
653 } 647 }
654 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) 648 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT)
655 { 649 {
656 accountlist = create_account_field(field); 650 accountlist = create_account_field(field);
657 FINCH_SET_DATA(field, accountlist); 651 purple_request_field_set_ui_data(field, accountlist);
658 } 652 }
659 else 653 else
660 { 654 {
661 FINCH_SET_DATA(field, gnt_label_new_with_format(_("Not implemented yet."), 655 purple_request_field_set_ui_data(field, gnt_label_new_with_format(_("Not implemented yet."),
662 GNT_TEXT_FLAG_BOLD)); 656 GNT_TEXT_FLAG_BOLD));
663 } 657 }
664 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID); 658 gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID);
665 gnt_box_add_widget(GNT_BOX(hbox), GNT_WIDGET(FINCH_GET_DATA(field))); 659 gnt_box_add_widget(GNT_BOX(hbox), GNT_WIDGET(purple_request_field_get_ui_data(field)));
666 } 660 }
667 if (grlist->next) 661 if (grlist->next)
668 gnt_box_add_widget(GNT_BOX(box), gnt_hline_new()); 662 gnt_box_add_widget(GNT_BOX(box), gnt_hline_new());
669 } 663 }
670 gnt_box_add_widget(GNT_BOX(window), box); 664 gnt_box_add_widget(GNT_BOX(window), box);