| 382 gtk_widget_set_name(entry, "pidgin_request_imhtml"); |
382 gtk_widget_set_name(entry, "pidgin_request_imhtml"); |
| 383 if (default_value != NULL) |
383 if (default_value != NULL) |
| 384 gtk_imhtml_append_text(GTK_IMHTML(entry), default_value, GTK_IMHTML_NO_SCROLL); |
384 gtk_imhtml_append_text(GTK_IMHTML(entry), default_value, GTK_IMHTML_NO_SCROLL); |
| 385 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
385 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
| 386 gtk_widget_show(frame); |
386 gtk_widget_show(frame); |
| |
387 |
| |
388 gtk_imhtml_set_return_inserts_newline(GTK_IMHTML(entry)); |
| 387 } |
389 } |
| 388 else { |
390 else { |
| 389 if (multiline) { |
391 if (multiline) { |
| 390 GtkWidget *sw; |
392 GtkWidget *sw; |
| 391 |
393 |
| 680 } |
682 } |
| 681 |
683 |
| 682 static void |
684 static void |
| 683 req_entry_field_changed_cb(GtkWidget *entry, PurpleRequestField *field) |
685 req_entry_field_changed_cb(GtkWidget *entry, PurpleRequestField *field) |
| 684 { |
686 { |
| |
687 PurpleRequestFieldGroup *group; |
| 685 PidginRequestData *req_data; |
688 PidginRequestData *req_data; |
| 686 const char *text = gtk_entry_get_text(GTK_ENTRY(entry)); |
689 const char *text = gtk_entry_get_text(GTK_ENTRY(entry)); |
| 687 |
690 |
| 688 purple_request_field_string_set_value(field, (*text == '\0' ? NULL : text)); |
691 purple_request_field_string_set_value(field, (*text == '\0' ? NULL : text)); |
| 689 |
692 |
| 690 req_data = (PidginRequestData *)field->group->fields_list->ui_data; |
693 group = purple_request_field_get_group(field); |
| |
694 req_data = (PidginRequestData *)group->fields_list->ui_data; |
| 691 |
695 |
| 692 gtk_widget_set_sensitive(req_data->ok_button, |
696 gtk_widget_set_sensitive(req_data->ok_button, |
| 693 purple_request_fields_all_required_filled(field->group->fields_list)); |
697 purple_request_fields_all_required_filled(group->fields_list)); |
| 694 } |
698 } |
| 695 |
699 |
| 696 static void |
700 static void |
| 697 setup_entry_field(GtkWidget *entry, PurpleRequestField *field) |
701 setup_entry_field(GtkWidget *entry, PurpleRequestField *field) |
| 698 { |
702 { |
| 709 if ((type_hint = purple_request_field_get_type_hint(field)) != NULL) |
713 if ((type_hint = purple_request_field_get_type_hint(field)) != NULL) |
| 710 { |
714 { |
| 711 if (purple_str_has_prefix(type_hint, "screenname")) |
715 if (purple_str_has_prefix(type_hint, "screenname")) |
| 712 { |
716 { |
| 713 GtkWidget *optmenu = NULL; |
717 GtkWidget *optmenu = NULL; |
| 714 GList *fields = field->group->fields; |
718 PurpleRequestFieldGroup *group = purple_request_field_get_group(field); |
| |
719 GList *fields = group->fields; |
| 715 while (fields) |
720 while (fields) |
| 716 { |
721 { |
| 717 PurpleRequestField *fld = fields->data; |
722 PurpleRequestField *fld = fields->data; |
| 718 fields = fields->next; |
723 fields = fields->next; |
| 719 |
724 |
| 720 if (purple_request_field_get_type(fld) == PURPLE_REQUEST_FIELD_ACCOUNT) |
725 if (purple_request_field_get_type(fld) == PURPLE_REQUEST_FIELD_ACCOUNT) |
| 721 { |
726 { |
| 722 const char *type_hint = purple_request_field_get_type_hint(fld); |
727 const char *type_hint = purple_request_field_get_type_hint(fld); |
| 723 if (type_hint != NULL && strcmp(type_hint, "account") == 0) |
728 if (type_hint != NULL && strcmp(type_hint, "account") == 0) |
| 724 { |
729 { |
| 725 if (fld->ui_data == NULL) |
730 optmenu = GTK_WIDGET(purple_request_field_get_ui_data(fld)); |
| 726 fld->ui_data = create_account_field(fld); |
731 if (optmenu == NULL) { |
| 727 optmenu = GTK_WIDGET(fld->ui_data); |
732 optmenu = GTK_WIDGET(create_account_field(fld)); |
| |
733 purple_request_field_set_ui_data(field, optmenu); |
| |
734 } |
| 728 break; |
735 break; |
| 729 } |
736 } |
| 730 } |
737 } |
| 731 } |
738 } |
| 732 pidgin_setup_screenname_autocomplete_with_filter(entry, optmenu, pidgin_screenname_autocomplete_default_filter, GINT_TO_POINTER(!strcmp(type_hint, "screenname-all"))); |
739 pidgin_setup_screenname_autocomplete_with_filter(entry, optmenu, pidgin_screenname_autocomplete_default_filter, GINT_TO_POINTER(!strcmp(type_hint, "screenname-all"))); |
| 1336 } |
1343 } |
| 1337 |
1344 |
| 1338 gtk_widget_show(label); |
1345 gtk_widget_show(label); |
| 1339 } |
1346 } |
| 1340 |
1347 |
| 1341 if (field->ui_data != NULL) |
1348 widget = GTK_WIDGET(purple_request_field_get_ui_data(field)); |
| 1342 widget = GTK_WIDGET(field->ui_data); |
1349 if (widget == NULL) |
| 1343 else if (type == PURPLE_REQUEST_FIELD_STRING) |
1350 { |
| 1344 widget = create_string_field(field); |
1351 if (type == PURPLE_REQUEST_FIELD_STRING) |
| 1345 else if (type == PURPLE_REQUEST_FIELD_INTEGER) |
1352 widget = create_string_field(field); |
| 1346 widget = create_int_field(field); |
1353 else if (type == PURPLE_REQUEST_FIELD_INTEGER) |
| 1347 else if (type == PURPLE_REQUEST_FIELD_BOOLEAN) |
1354 widget = create_int_field(field); |
| 1348 widget = create_bool_field(field); |
1355 else if (type == PURPLE_REQUEST_FIELD_BOOLEAN) |
| 1349 else if (type == PURPLE_REQUEST_FIELD_CHOICE) |
1356 widget = create_bool_field(field); |
| 1350 widget = create_choice_field(field); |
1357 else if (type == PURPLE_REQUEST_FIELD_CHOICE) |
| 1351 else if (type == PURPLE_REQUEST_FIELD_LIST) |
1358 widget = create_choice_field(field); |
| 1352 widget = create_list_field(field); |
1359 else if (type == PURPLE_REQUEST_FIELD_LIST) |
| 1353 else if (type == PURPLE_REQUEST_FIELD_IMAGE) |
1360 widget = create_list_field(field); |
| 1354 widget = create_image_field(field); |
1361 else if (type == PURPLE_REQUEST_FIELD_IMAGE) |
| 1355 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) |
1362 widget = create_image_field(field); |
| 1356 widget = create_account_field(field); |
1363 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) |
| 1357 else |
1364 widget = create_account_field(field); |
| 1358 continue; |
1365 else |
| |
1366 continue; |
| |
1367 } |
| 1359 |
1368 |
| 1360 if (label) |
1369 if (label) |
| 1361 gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget); |
1370 gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget); |
| 1362 |
1371 |
| 1363 if (type == PURPLE_REQUEST_FIELD_STRING && |
1372 if (type == PURPLE_REQUEST_FIELD_STRING && |