comparison src/gtkrequest.c @ 8524:253eb32e344c

[gaim-migrate @ 9263] add some sanity to overly large request dialogs committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Tue, 30 Mar 2004 04:49:53 +0000
parents 4cfb32f78d71
children 725413cc9fb9
comparison
equal deleted inserted replaced
8523:013d256e8ded 8524:253eb32e344c
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)