| 964 void *user_data) |
964 void *user_data) |
| 965 { |
965 { |
| 966 GaimGtkRequestData *data; |
966 GaimGtkRequestData *data; |
| 967 GtkWidget *win; |
967 GtkWidget *win; |
| 968 GtkWidget *vbox; |
968 GtkWidget *vbox; |
| |
969 GtkWidget *vbox2; |
| 969 GtkWidget *hbox; |
970 GtkWidget *hbox; |
| 970 GtkWidget *bbox; |
971 GtkWidget *bbox; |
| 971 GtkWidget *frame; |
972 GtkWidget *frame; |
| 972 GtkWidget *label; |
973 GtkWidget *label; |
| 973 GtkWidget *table; |
974 GtkWidget *table; |
| 974 GtkWidget *button; |
975 GtkWidget *button; |
| 975 GtkWidget *img; |
976 GtkWidget *img; |
| |
977 GtkWidget *sw; |
| 976 GtkSizeGroup *sg; |
978 GtkSizeGroup *sg; |
| 977 GList *gl, *fl; |
979 GList *gl, *fl; |
| 978 GaimRequestFieldGroup *group; |
980 GaimRequestFieldGroup *group; |
| 979 GaimRequestField *field; |
981 GaimRequestField *field; |
| 980 char *label_text; |
982 char *label_text; |
| |
983 int total_fields = 0; |
| 981 |
984 |
| 982 data = g_new0(GaimGtkRequestData, 1); |
985 data = g_new0(GaimGtkRequestData, 1); |
| 983 data->type = GAIM_REQUEST_FIELDS; |
986 data->type = GAIM_REQUEST_FIELDS; |
| 984 data->user_data = user_data; |
987 data->user_data = user_data; |
| 985 data->u.multifield.fields = fields; |
988 data->u.multifield.fields = fields; |
| 1021 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); |
1024 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); |
| 1022 gtk_widget_show(vbox); |
1025 gtk_widget_show(vbox); |
| 1023 |
1026 |
| 1024 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
1027 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 1025 |
1028 |
| 1026 if (primary != NULL || secondary != NULL) |
1029 if(primary) { |
| 1027 { |
|
| 1028 label_text = g_strdup_printf( |
1030 label_text = g_strdup_printf( |
| 1029 (primary |
1031 "<span weight=\"bold\" size=\"larger\">%s</span>", primary); |
| 1030 ? "<span weight=\"bold\" size=\"larger\">" |
|
| 1031 "%s</span>%s%s" |
|
| 1032 : "%s%s%s"), |
|
| 1033 (primary ? primary : ""), |
|
| 1034 ((primary && secondary) ? "\n\n" : ""), |
|
| 1035 (secondary ? secondary : "")); |
|
| 1036 |
|
| 1037 label = gtk_label_new(NULL); |
1032 label = gtk_label_new(NULL); |
| 1038 |
1033 |
| 1039 gtk_label_set_markup(GTK_LABEL(label), label_text); |
1034 gtk_label_set_markup(GTK_LABEL(label), label_text); |
| 1040 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
1035 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 1041 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
1036 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 1042 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); |
1037 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); |
| 1043 gtk_widget_show(label); |
1038 gtk_widget_show(label); |
| 1044 |
|
| 1045 g_free(label_text); |
1039 g_free(label_text); |
| |
1040 } |
| |
1041 |
| |
1042 for (gl = gaim_request_fields_get_groups(fields); gl != NULL; |
| |
1043 gl = gl->next) |
| |
1044 total_fields += g_list_length(gaim_request_field_group_get_fields(gl->data)); |
| |
1045 |
| |
1046 if(total_fields > 9) { |
| |
1047 sw = gtk_scrolled_window_new(NULL, NULL); |
| |
1048 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
| |
1049 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); |
| |
1050 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
| |
1051 GTK_SHADOW_NONE); |
| |
1052 gtk_widget_set_size_request(sw, -1, 200); |
| |
1053 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); |
| |
1054 gtk_widget_show(sw); |
| |
1055 |
| |
1056 vbox2 = gtk_vbox_new(FALSE, 12); |
| |
1057 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), vbox2); |
| |
1058 gtk_widget_show(vbox2); |
| |
1059 } else { |
| |
1060 vbox2 = vbox; |
| |
1061 } |
| |
1062 |
| |
1063 if (secondary) { |
| |
1064 label = gtk_label_new(NULL); |
| |
1065 |
| |
1066 gtk_label_set_markup(GTK_LABEL(label), secondary); |
| |
1067 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| |
1068 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| |
1069 gtk_box_pack_start(GTK_BOX(vbox2), label, TRUE, TRUE, 0); |
| |
1070 gtk_widget_show(label); |
| 1046 } |
1071 } |
| 1047 |
1072 |
| 1048 for (gl = gaim_request_fields_get_groups(fields); |
1073 for (gl = gaim_request_fields_get_groups(fields); |
| 1049 gl != NULL; |
1074 gl != NULL; |
| 1050 gl = gl->next) |
1075 gl = gl->next) |
| 1059 group = gl->data; |
1084 group = gl->data; |
| 1060 field_list = gaim_request_field_group_get_fields(group); |
1085 field_list = gaim_request_field_group_get_fields(group); |
| 1061 |
1086 |
| 1062 if (gaim_request_field_group_get_title(group) != NULL) |
1087 if (gaim_request_field_group_get_title(group) != NULL) |
| 1063 { |
1088 { |
| 1064 frame = gaim_gtk_make_frame(vbox, |
1089 frame = gaim_gtk_make_frame(vbox2, |
| 1065 gaim_request_field_group_get_title(group)); |
1090 gaim_request_field_group_get_title(group)); |
| 1066 } |
1091 } |
| 1067 else |
1092 else |
| 1068 frame = vbox; |
1093 frame = vbox2; |
| 1069 |
1094 |
| 1070 field_count = g_list_length(field_list); |
1095 field_count = g_list_length(field_list); |
| 1071 |
1096 /* |
| 1072 if (field_count > 9) |
1097 if (field_count > 9) |
| 1073 { |
1098 { |
| 1074 rows = field_count / 2; |
1099 rows = field_count / 2; |
| 1075 cols++; |
1100 cols++; |
| 1076 } |
1101 } |
| 1077 else |
1102 else |
| |
1103 */ |
| 1078 rows = field_count; |
1104 rows = field_count; |
| 1079 |
1105 |
| 1080 col_num = 0; |
1106 col_num = 0; |
| 1081 |
1107 |
| 1082 for (fl = field_list; fl != NULL; fl = fl->next) |
1108 for (fl = field_list; fl != NULL; fl = fl->next) |