| 532 |
532 |
| 533 static GntWidget* |
533 static GntWidget* |
| 534 process_pref_frame(PurplePluginPrefFrame *frame) |
534 process_pref_frame(PurplePluginPrefFrame *frame) |
| 535 { |
535 { |
| 536 PurpleRequestField *field; |
536 PurpleRequestField *field; |
| 537 PurpleRequestFields *fields; |
537 PurpleRequestPage *page; |
| 538 PurpleRequestGroup *group = NULL; |
538 PurpleRequestGroup *group = NULL; |
| 539 GList *prefs; |
539 GList *prefs; |
| 540 GList *stringlist = NULL; |
540 GList *stringlist = NULL; |
| 541 GntWidget *ret = NULL; |
541 GntWidget *ret = NULL; |
| 542 |
542 |
| 543 fields = purple_request_fields_new(); |
543 page = purple_request_page_new(); |
| 544 |
544 |
| 545 for (prefs = purple_plugin_pref_frame_get_prefs(frame); prefs; prefs = prefs->next) { |
545 for (prefs = purple_plugin_pref_frame_get_prefs(frame); prefs; prefs = prefs->next) { |
| 546 PurplePluginPref *pref = prefs->data; |
546 PurplePluginPref *pref = prefs->data; |
| 547 PurplePrefType type; |
547 PurplePrefType type; |
| 548 const char *name = purple_plugin_pref_get_name(pref); |
548 const char *name = purple_plugin_pref_get_name(pref); |
| 554 if(purple_plugin_pref_get_pref_type(pref) == PURPLE_PLUGIN_PREF_INFO) { |
554 if(purple_plugin_pref_get_pref_type(pref) == PURPLE_PLUGIN_PREF_INFO) { |
| 555 field = purple_request_field_label_new("*", purple_plugin_pref_get_label(pref)); |
555 field = purple_request_field_label_new("*", purple_plugin_pref_get_label(pref)); |
| 556 purple_request_group_add_field(group, field); |
556 purple_request_group_add_field(group, field); |
| 557 } else { |
557 } else { |
| 558 group = purple_request_group_new(label); |
558 group = purple_request_group_new(label); |
| 559 purple_request_fields_add_group(fields, group); |
559 purple_request_page_add_group(page, group); |
| 560 } |
560 } |
| 561 continue; |
561 continue; |
| 562 } |
562 } |
| 563 |
563 |
| 564 field = NULL; |
564 field = NULL; |
| 622 } |
622 } |
| 623 |
623 |
| 624 if (field) { |
624 if (field) { |
| 625 if (group == NULL) { |
625 if (group == NULL) { |
| 626 group = purple_request_group_new(_("Preferences")); |
626 group = purple_request_group_new(_("Preferences")); |
| 627 purple_request_fields_add_group(fields, group); |
627 purple_request_page_add_group(page, group); |
| 628 } |
628 } |
| 629 purple_request_group_add_field(group, field); |
629 purple_request_group_add_field(group, field); |
| 630 } |
630 } |
| 631 } |
631 } |
| 632 |
632 |
| 633 ret = purple_request_fields(NULL, _("Preferences"), NULL, NULL, fields, |
633 ret = purple_request_fields(NULL, _("Preferences"), NULL, NULL, page, |
| 634 _("Save"), G_CALLBACK(finch_request_save_in_prefs), _("Cancel"), NULL, |
634 _("Save"), G_CALLBACK(finch_request_save_in_prefs), _("Cancel"), NULL, |
| 635 NULL, NULL); |
635 NULL, NULL); |
| 636 g_signal_connect_swapped(G_OBJECT(ret), "destroy", G_CALLBACK(free_stringlist), stringlist); |
636 g_signal_connect_swapped(G_OBJECT(ret), "destroy", G_CALLBACK(free_stringlist), stringlist); |
| 637 return ret; |
637 return ret; |
| 638 } |
638 } |