pidgin/gtkxfer.c

changeset 36245
7f2005523012
parent 35892
02bf3200b9cb
child 36257
c5445f25f90f
equal deleted inserted replaced
36244:2a4179d0177d 36245:7f2005523012
30 #include "gtkxfer.h" 30 #include "gtkxfer.h"
31 #include "prefs.h" 31 #include "prefs.h"
32 #include "pidginstock.h" 32 #include "pidginstock.h"
33 #include "gtkutils.h" 33 #include "gtkutils.h"
34 34
35 #include "gtk3compat.h"
36
35 #ifdef _WIN32 37 #ifdef _WIN32
36 # include <shellapi.h> 38 # include <shellapi.h>
37 #endif 39 #endif
38 40
39 /* the maximum size of files we will try to make a thumbnail for */ 41 /* the maximum size of files we will try to make a thumbnail for */
54 GtkWidget *tree; 56 GtkWidget *tree;
55 GtkListStore *model; 57 GtkListStore *model;
56 58
57 GtkWidget *expander; 59 GtkWidget *expander;
58 60
59 GtkWidget *table; 61 GtkWidget *grid;
60 62
61 GtkWidget *local_user_desc_label; 63 GtkWidget *local_user_desc_label;
62 GtkWidget *local_user_label; 64 GtkWidget *local_user_label;
63 GtkWidget *remote_user_desc_label; 65 GtkWidget *remote_user_desc_label;
64 GtkWidget *remote_user_label; 66 GtkWidget *remote_user_label;
632 634
633 return tree; 635 return tree;
634 } 636 }
635 637
636 static GtkWidget * 638 static GtkWidget *
637 make_info_table(PidginXferDialog *dialog) 639 make_info_grid(PidginXferDialog *dialog)
638 { 640 {
639 GtkWidget *table; 641 GtkWidget *grid;
640 GtkWidget *label; 642 GtkWidget *label;
641 gsize i; 643 gsize i;
642 644
643 struct 645 struct
644 { 646 {
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); \

mercurial