Mercurial > pidgin
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); |