| 657 { &label, &dialog->speed_label, _("Speed:") }, |
659 { &label, &dialog->speed_label, _("Speed:") }, |
| 658 { &label, &dialog->time_elapsed_label, _("Time Elapsed:") }, |
660 { &label, &dialog->time_elapsed_label, _("Time Elapsed:") }, |
| 659 { &label, &dialog->time_remaining_label, _("Time Remaining:") } |
661 { &label, &dialog->time_remaining_label, _("Time Remaining:") } |
| 660 }; |
662 }; |
| 661 |
663 |
| 662 /* Setup the initial table */ |
664 /* Setup the initial grid */ |
| 663 dialog->table = table = gtk_table_new(G_N_ELEMENTS(labels) + 1, 2, FALSE); |
665 dialog->grid = grid = gtk_grid_table_new(G_N_ELEMENTS(labels) + 1, 2); |
| 664 gtk_table_set_row_spacings(GTK_TABLE(table), PIDGIN_HIG_BOX_SPACE); |
666 gtk_grid_set_row_spacing(GTK_GRID(grid), PIDGIN_HIG_BOX_SPACE); |
| 665 gtk_table_set_col_spacings(GTK_TABLE(table), PIDGIN_HIG_BOX_SPACE); |
667 gtk_grid_set_column_spacing(GTK_GRID(grid), PIDGIN_HIG_BOX_SPACE); |
| 666 |
668 |
| 667 /* Setup the labels */ |
669 /* Setup the labels */ |
| 668 for (i = 0; i < G_N_ELEMENTS(labels); i++) { |
670 for (i = 0; i < G_N_ELEMENTS(labels); i++) { |
| 669 GtkWidget *label; |
671 GtkWidget *label; |
| 670 char buf[256]; |
672 char buf[256]; |
| 674 |
676 |
| 675 *labels[i].desc_label = label = gtk_label_new(NULL); |
677 *labels[i].desc_label = label = gtk_label_new(NULL); |
| 676 gtk_label_set_markup(GTK_LABEL(label), buf); |
678 gtk_label_set_markup(GTK_LABEL(label), buf); |
| 677 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); |
679 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); |
| 678 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
680 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 679 gtk_table_attach(GTK_TABLE(table), label, 0, 1, i, i + 1, |
681 gtk_grid_attach_full(GTK_GRID(grid), label, 0, i, 1, 1, |
| 680 GTK_FILL, 0, 0, 0); |
682 GTK_FILL, 0, 0, 0); |
| 681 gtk_widget_show(label); |
683 gtk_widget_show(label); |
| 682 |
684 |
| 683 *labels[i].val_label = label = gtk_label_new(NULL); |
685 *labels[i].val_label = label = gtk_label_new(NULL); |
| 684 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
686 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 685 gtk_table_attach(GTK_TABLE(table), label, 1, 2, i, i + 1, |
687 gtk_grid_attach_full(GTK_GRID(grid), label, 1, i, 1, 1, |
| 686 GTK_FILL | GTK_EXPAND, 0, 0, 0); |
688 GTK_FILL | GTK_EXPAND, 0, 0, 0); |
| 687 gtk_widget_show(label); |
689 gtk_widget_show(label); |
| 688 } |
690 } |
| 689 |
691 |
| 690 /* Setup the progress bar */ |
692 /* Setup the progress bar */ |
| 691 dialog->progress = gtk_progress_bar_new(); |
693 dialog->progress = gtk_progress_bar_new(); |
| 692 gtk_table_attach(GTK_TABLE(table), dialog->progress, |
694 gtk_grid_attach_full(GTK_GRID(grid), dialog->progress, |
| 693 0, 2, |
695 0, G_N_ELEMENTS(labels), 2, 1, |
| 694 G_N_ELEMENTS(labels), G_N_ELEMENTS(labels) + 1, |
696 GTK_FILL, GTK_FILL, 0, 0); |
| 695 GTK_FILL, GTK_FILL, 0, 0); |
|
| 696 gtk_widget_show(dialog->progress); |
697 gtk_widget_show(dialog->progress); |
| 697 |
698 |
| 698 return table; |
699 return grid; |
| 699 } |
700 } |
| 700 |
701 |
| 701 PidginXferDialog * |
702 PidginXferDialog * |
| 702 pidgin_xfer_dialog_new(void) |
703 pidgin_xfer_dialog_new(void) |
| 703 { |
704 { |
| 704 PidginXferDialog *dialog; |
705 PidginXferDialog *dialog; |
| 705 GtkWidget *window; |
706 GtkWidget *window; |
| 706 GtkWidget *vbox; |
707 GtkWidget *vbox; |
| 707 GtkWidget *expander; |
708 GtkWidget *expander; |
| 708 GtkWidget *alignment; |
709 GtkWidget *alignment; |
| 709 GtkWidget *table; |
710 GtkWidget *grid; |
| 710 GtkWidget *checkbox; |
711 GtkWidget *checkbox; |
| 711 GtkWidget *bbox; |
712 GtkWidget *bbox; |
| 712 |
713 |
| 713 dialog = g_new0(PidginXferDialog, 1); |
714 dialog = g_new0(PidginXferDialog, 1); |
| 714 dialog->keep_open = |
715 dialog->keep_open = |
| 761 gtk_box_pack_start(GTK_BOX(vbox), expander, FALSE, FALSE, 0); |
762 gtk_box_pack_start(GTK_BOX(vbox), expander, FALSE, FALSE, 0); |
| 762 gtk_widget_show(expander); |
763 gtk_widget_show(expander); |
| 763 |
764 |
| 764 gtk_widget_set_sensitive(expander, FALSE); |
765 gtk_widget_set_sensitive(expander, FALSE); |
| 765 |
766 |
| 766 /* Small indent make table fall under GtkExpander's label */ |
767 /* Small indent make grid fall under GtkExpander's label */ |
| 767 alignment = gtk_alignment_new(1, 0, 1, 1); |
768 alignment = gtk_alignment_new(1, 0, 1, 1); |
| 768 gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 20, 0); |
769 gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 20, 0); |
| 769 gtk_container_add(GTK_CONTAINER(expander), alignment); |
770 gtk_container_add(GTK_CONTAINER(expander), alignment); |
| 770 gtk_widget_show(alignment); |
771 gtk_widget_show(alignment); |
| 771 |
772 |
| 772 /* The table of information. */ |
773 /* The grid of information. */ |
| 773 table = make_info_table(dialog); |
774 grid = make_info_grid(dialog); |
| 774 gtk_container_add(GTK_CONTAINER(alignment), table); |
775 gtk_container_add(GTK_CONTAINER(alignment), grid); |
| 775 gtk_widget_show(table); |
776 gtk_widget_show(grid); |
| 776 |
777 |
| 777 bbox = pidgin_dialog_get_action_area(GTK_DIALOG(window)); |
778 bbox = pidgin_dialog_get_action_area(GTK_DIALOG(window)); |
| 778 |
779 |
| 779 #define ADD_BUTTON(b, label, callback, callbackdata) do { \ |
780 #define ADD_BUTTON(b, label, callback, callbackdata) do { \ |
| 780 GtkWidget *button = gtk_button_new_from_stock(label); \ |
781 GtkWidget *button = gtk_button_new_from_stock(label); \ |