comparison src/dialogs.c @ 2975:626729653436

[gaim-migrate @ 2988] I think I'm alone now ... committer: Tailor Script <tailor@pidgin.im>
author Rob Flynn <gaim@robflynn.com>
date Fri, 22 Feb 2002 23:47:55 +0000
parents a67cae459b01
children 1c6a3516e1ff
comparison
equal deleted inserted replaced
2974:11f563b4153a 2975:626729653436
4353 MultiEntryData *multi_entry_list_update(GSList **list, const char *label, const char *text, int add_it) 4353 MultiEntryData *multi_entry_list_update(GSList **list, const char *label, const char *text, int add_it)
4354 { 4354 {
4355 GSList *found; 4355 GSList *found;
4356 MultiEntryData *data; 4356 MultiEntryData *data;
4357 4357
4358 if((found = g_slist_find_custom(*list, label, multi_entry_data_label_compare)) == NULL) { 4358 if((found = g_slist_find_custom(*list, (void *)label, multi_entry_data_label_compare)) == NULL) {
4359 if(add_it) { 4359 if(add_it) {
4360 data = (MultiEntryData *) g_slist_last(*list = 4360 data = (MultiEntryData *) g_slist_last(*list =
4361 g_slist_append(*list, g_malloc(sizeof(MultiEntryData))))->data; 4361 g_slist_append(*list, g_malloc(sizeof(MultiEntryData))))->data;
4362 data->label = strcpy(g_malloc(strlen(label) +1), label); 4362 data->label = strcpy(g_malloc(strlen(label) +1), label);
4363 data->text = NULL; 4363 data->text = NULL;
4406 MultiTextData *multi_text_list_update(GSList **list, const char *label, const char *text, int add_it) 4406 MultiTextData *multi_text_list_update(GSList **list, const char *label, const char *text, int add_it)
4407 { 4407 {
4408 GSList *found; 4408 GSList *found;
4409 MultiTextData *data; 4409 MultiTextData *data;
4410 4410
4411 if((found = g_slist_find_custom(*list, label, multi_text_data_label_compare)) == NULL) { 4411 if((found = g_slist_find_custom(*list, (void *)label, multi_text_data_label_compare)) == NULL) {
4412 if(add_it) { 4412 if(add_it) {
4413 data = (MultiTextData *) g_slist_last(*list = 4413 data = (MultiTextData *) g_slist_last(*list =
4414 g_slist_append(*list, g_malloc(sizeof(MultiTextData))))->data; 4414 g_slist_append(*list, g_malloc(sizeof(MultiTextData))))->data;
4415 data->label = strcpy(g_malloc(strlen(label) +1), label); 4415 data->label = strcpy(g_malloc(strlen(label) +1), label);
4416 data->text = NULL; 4416 data->text = NULL;
4441 { 4441 {
4442 multi_entry_items_free_all(&(b->multi_entry_items)); 4442 multi_entry_items_free_all(&(b->multi_entry_items));
4443 multi_text_items_free_all(&(b->multi_text_items)); 4443 multi_text_items_free_all(&(b->multi_text_items));
4444 g_free(b->instructions->text); 4444 g_free(b->instructions->text);
4445 g_free(b->instructions); 4445 g_free(b->instructions);
4446 g_free(b->entries_title);
4446 g_free(b); 4447 g_free(b);
4447 } 4448 }
4448 4449
4449 /* 4450 /*
4450 * Multi-Entry dialog "destroyed" catcher 4451 * Multi-Entry dialog "destroyed" catcher
4483 GSList *multi_entry_items) 4484 GSList *multi_entry_items)
4484 { 4485 {
4485 GtkWidget *label; 4486 GtkWidget *label;
4486 GSList *multi_entry; 4487 GSList *multi_entry;
4487 MultiEntryData *med; 4488 MultiEntryData *med;
4488 int rows = 0; 4489 int rows, row_num, col_num, col_offset;
4489 int rowNum; 4490 int cols = 1;
4490 4491
4491 /* Figure-out number of rows needed for table */ 4492 /* Figure-out number of rows needed for table */
4492 rows = g_slist_length(multi_entry_items); 4493 if((rows = g_slist_length(multi_entry_items)) > 9) {
4494 rows /= 2;
4495 ++cols;
4496 }
4493 4497
4494 if(*entries_table != NULL) { 4498 if(*entries_table != NULL) {
4495 gtk_widget_destroy(GTK_WIDGET (*entries_table)); 4499 gtk_widget_destroy(GTK_WIDGET (*entries_table));
4496 } 4500 }
4497 *entries_table = gtk_table_new(rows, 3, FALSE); 4501 *entries_table = gtk_table_new(rows, 3 * cols, FALSE);
4498 gtk_table_set_col_spacings(GTK_TABLE(*entries_table), 5);
4499 gtk_table_set_row_spacings(GTK_TABLE(*entries_table), 5);
4500 gtk_container_set_border_width(GTK_CONTAINER(*entries_table), 5);
4501 gtk_container_add(GTK_CONTAINER (entries_frame), *entries_table); 4502 gtk_container_add(GTK_CONTAINER (entries_frame), *entries_table);
4502 4503
4503 for(rowNum = 0, multi_entry = multi_entry_items; 4504 for(col_num = 0, multi_entry = multi_entry_items; col_num < cols && multi_entry != NULL;
4504 multi_entry != NULL; ++rowNum, multi_entry = multi_entry->next) { 4505 ++col_num) {
4505 4506 col_offset = col_num * 3;
4506 med = (MultiEntryData *) multi_entry->data; 4507 for(row_num = 0; row_num < rows && multi_entry != NULL;
4507 4508 ++row_num, multi_entry = multi_entry->next) {
4508 label = gtk_label_new(med->label); 4509
4509 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 1.0, (gfloat) 0.5); 4510 med = (MultiEntryData *) multi_entry->data;
4510 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label, 0, 1, rowNum, rowNum +1); 4511
4511 gtk_widget_show(label); 4512 label = gtk_label_new(med->label);
4512 4513 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 1.0, (gfloat) 0.5);
4513 label = gtk_label_new(": "); 4514 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label,
4514 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 0.0, (gfloat) 0.5); 4515 col_offset, 1 + col_offset, row_num, row_num +1);
4515 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label, 1, 2, rowNum, rowNum +1); 4516 gtk_widget_show(label);
4516 gtk_widget_show(label); 4517
4517 4518 label = gtk_label_new(": ");
4518 med->widget = gtk_entry_new_with_max_length(50); 4519 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 0.0, (gfloat) 0.5);
4519 if(med->text != NULL) { 4520 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label,
4520 gtk_entry_set_text(GTK_ENTRY (med->widget), med->text); 4521 1 + col_offset, 2 + col_offset, row_num, row_num +1);
4522 gtk_widget_show(label);
4523
4524 med->widget = gtk_entry_new_with_max_length(50);
4525 if(med->text != NULL) {
4526 gtk_entry_set_text(GTK_ENTRY (med->widget), med->text);
4527 }
4528 gtk_entry_set_visibility(GTK_ENTRY (med->widget), med->visible);
4529 gtk_entry_set_editable(GTK_ENTRY (med->widget), med->editable);
4530 gtk_table_attach(GTK_TABLE (*entries_table), med->widget,
4531 2 + col_offset, 3 + col_offset, row_num, row_num +1,
4532 GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 5, 0);
4533 gtk_widget_show(med->widget);
4521 } 4534 }
4522 gtk_entry_set_visibility(GTK_ENTRY (med->widget), med->visible);
4523 gtk_entry_set_editable(GTK_ENTRY (med->widget), med->editable);
4524 gtk_table_attach_defaults(GTK_TABLE (*entries_table),
4525 med->widget, 2, 3, rowNum, rowNum +1);
4526 gtk_widget_show(med->widget);
4527 } 4535 }
4528 4536
4529 gtk_widget_show(*entries_table); 4537 gtk_widget_show(*entries_table);
4530 } 4538 }
4531 4539
4626 b->instructions->label = gtk_label_new(NULL); 4634 b->instructions->label = gtk_label_new(NULL);
4627 gtk_label_set_line_wrap(GTK_LABEL (b->instructions->label), TRUE); 4635 gtk_label_set_line_wrap(GTK_LABEL (b->instructions->label), TRUE);
4628 gtk_box_pack_start(GTK_BOX (vbox), b->instructions->label, TRUE, TRUE, 5); 4636 gtk_box_pack_start(GTK_BOX (vbox), b->instructions->label, TRUE, TRUE, 5);
4629 re_show_multi_entry_instr(b->instructions); 4637 re_show_multi_entry_instr(b->instructions);
4630 4638
4631 b->entries_frame = gtk_frame_new(NULL); 4639 b->entries_frame = gtk_frame_new(b->entries_title);
4632 gtk_box_pack_start(GTK_BOX (vbox), b->entries_frame, TRUE, TRUE, 5); 4640 gtk_box_pack_start(GTK_BOX (vbox), b->entries_frame, TRUE, TRUE, 5);
4633 gtk_widget_show(b->entries_frame); 4641 gtk_widget_show(b->entries_frame);
4634 b->entries_table = NULL; 4642 b->entries_table = NULL;
4635 re_show_multi_entry_entries(&(b->entries_table), b->entries_frame, b->multi_entry_items); 4643 re_show_multi_entry_entries(&(b->entries_table), b->entries_frame, b->multi_entry_items);
4636 4644