comparison src/gtkft.c @ 11735:8d7c99f20e4c

[gaim-migrate @ 14026] Switch from using our old GaimGtkDisclosure widget to using the official GtkExpander widget. It works better and should make us look more uniform with other gtk apps. To maintain compatability with gtk < 2.4, I grabbed the gtkexpander.c and gtkexpander.h files from gtk+ CVS. I haven't tested compiling on a computer with gtk < 2.4 yet, so it's possible we'll need to get more stuff from gtk+ CVS. For future reference, gtkexpander.h was not modified, and gtkexpander.c was only modified to check if version is > 2.4 then do nothing. I also changed the #includes to use <> instead of "" committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 23 Oct 2005 03:24:53 +0000
parents 1e2105334505
children 8aa6462e563c
comparison
equal deleted inserted replaced
11734:2f6b4c544d5b 11735:8d7c99f20e4c
29 #include "notify.h" 29 #include "notify.h"
30 #include "ft.h" 30 #include "ft.h"
31 #include "prpl.h" 31 #include "prpl.h"
32 #include "util.h" 32 #include "util.h"
33 33
34 #include "gtkgaim-disclosure.h"
35 #include "gtkcellrendererprogress.h" 34 #include "gtkcellrendererprogress.h"
36 #include "gtkft.h" 35 #include "gtkft.h"
37 #include "prefs.h" 36 #include "prefs.h"
37 #include "gtkexpander.h"
38 #include "gtkstock.h"
38 #include "gtkutils.h" 39 #include "gtkutils.h"
39 #include "gtkstock.h"
40 40
41 #define GAIM_GTKXFER(xfer) \ 41 #define GAIM_GTKXFER(xfer) \
42 (GaimGtkXferUiData *)(xfer)->ui_data 42 (GaimGtkXferUiData *)(xfer)->ui_data
43 43
44 struct _GaimGtkXferDialog 44 struct _GaimGtkXferDialog
52 52
53 GtkWidget *window; 53 GtkWidget *window;
54 GtkWidget *tree; 54 GtkWidget *tree;
55 GtkListStore *model; 55 GtkListStore *model;
56 56
57 GtkWidget *disclosure; 57 GtkWidget *expander;
58 58
59 GtkWidget *table; 59 GtkWidget *table;
60 60
61 GtkWidget *local_user_desc_label; 61 GtkWidget *local_user_desc_label;
62 GtkWidget *local_user_label; 62 GtkWidget *local_user_label;
268 268
269 static void 269 static void
270 update_buttons(GaimGtkXferDialog *dialog, GaimXfer *xfer) 270 update_buttons(GaimGtkXferDialog *dialog, GaimXfer *xfer)
271 { 271 {
272 if (dialog->selected_xfer == NULL) { 272 if (dialog->selected_xfer == NULL) {
273 gtk_widget_set_sensitive(dialog->disclosure, FALSE); 273 gtk_widget_set_sensitive(dialog->expander, FALSE);
274 gtk_widget_set_sensitive(dialog->open_button, FALSE); 274 gtk_widget_set_sensitive(dialog->open_button, FALSE);
275 gtk_widget_set_sensitive(dialog->pause_button, FALSE); 275 gtk_widget_set_sensitive(dialog->pause_button, FALSE);
276 gtk_widget_set_sensitive(dialog->resume_button, FALSE); 276 gtk_widget_set_sensitive(dialog->resume_button, FALSE);
277 gtk_widget_set_sensitive(dialog->stop_button, FALSE); 277 gtk_widget_set_sensitive(dialog->stop_button, FALSE);
278 278
383 GaimXfer *xfer = NULL; 383 GaimXfer *xfer = NULL;
384 384
385 if (gtk_tree_selection_get_selected(selection, NULL, &iter)) { 385 if (gtk_tree_selection_get_selected(selection, NULL, &iter)) {
386 GValue val = {0, }; 386 GValue val = {0, };
387 387
388 gtk_widget_set_sensitive(dialog->disclosure, TRUE); 388 gtk_widget_set_sensitive(dialog->expander, TRUE);
389 389
390 gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model), 390 gtk_tree_model_get_value(GTK_TREE_MODEL(dialog->model),
391 &iter, COLUMN_DATA, &val); 391 &iter, COLUMN_DATA, &val);
392 392
393 xfer = g_value_get_pointer(&val); 393 xfer = g_value_get_pointer(&val);
395 update_detailed_info(dialog, xfer); 395 update_detailed_info(dialog, xfer);
396 396
397 dialog->selected_xfer = xfer; 397 dialog->selected_xfer = xfer;
398 } 398 }
399 else { 399 else {
400 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->disclosure), 400 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->expander),
401 FALSE); 401 FALSE);
402 402
403 gtk_widget_set_sensitive(dialog->disclosure, FALSE); 403 gtk_widget_set_sensitive(dialog->expander, FALSE);
404 404
405 dialog->selected_xfer = NULL; 405 dialog->selected_xfer = NULL;
406 } 406 }
407 407
408 update_buttons(dialog, xfer); 408 update_buttons(dialog, xfer);
673 GtkWidget *window; 673 GtkWidget *window;
674 GtkWidget *vbox1, *vbox2; 674 GtkWidget *vbox1, *vbox2;
675 GtkWidget *bbox; 675 GtkWidget *bbox;
676 GtkWidget *sw; 676 GtkWidget *sw;
677 GtkWidget *button; 677 GtkWidget *button;
678 GtkWidget *disclosure; 678 GtkWidget *expander;
679 GtkWidget *table; 679 GtkWidget *table;
680 GtkWidget *checkbox; 680 GtkWidget *checkbox;
681 681
682 dialog = g_new0(GaimGtkXferDialog, 1); 682 dialog = g_new0(GaimGtkXferDialog, 1);
683 dialog->keep_open = 683 dialog->keep_open =
729 G_CALLBACK(toggle_clear_finished_cb), dialog); 729 G_CALLBACK(toggle_clear_finished_cb), dialog);
730 gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0); 730 gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0);
731 gtk_widget_show(checkbox); 731 gtk_widget_show(checkbox);
732 732
733 /* "Download Details" arrow */ 733 /* "Download Details" arrow */
734 disclosure = gaim_disclosure_new(_("Show transfer details"), 734 expander = gtk_expander_new_with_mnemonic(_("File transfer _details"));
735 _("Hide transfer details")); 735 dialog->expander = expander;
736 dialog->disclosure = disclosure; 736 gtk_box_pack_start(GTK_BOX(vbox2), expander, FALSE, FALSE, 0);
737 gtk_box_pack_start(GTK_BOX(vbox2), disclosure, FALSE, FALSE, 0); 737 gtk_widget_show(expander);
738 gtk_widget_show(disclosure); 738
739 739 gtk_widget_set_sensitive(expander, FALSE);
740 gtk_widget_set_sensitive(disclosure, FALSE);
741
742 #if 0
743 g_signal_connect(G_OBJECT(disclosure), "toggled",
744 G_CALLBACK(toggle_details_cb), dialog);
745 #endif
746 740
747 /* The table of information. */ 741 /* The table of information. */
748 table = make_info_table(dialog); 742 table = make_info_table(dialog);
749 gtk_box_pack_start(GTK_BOX(vbox2), table, TRUE, TRUE, 0); 743 gtk_container_add(GTK_CONTAINER(expander), table);
750 744 gtk_widget_show(table);
751 /* Setup the disclosure for the table. */
752 gaim_disclosure_set_container(GAIM_DISCLOSURE(disclosure), table);
753 745
754 /* Now the button box for the buttons */ 746 /* Now the button box for the buttons */
755 bbox = gtk_hbutton_box_new(); 747 bbox = gtk_hbutton_box_new();
756 gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE); 748 gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE);
757 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); 749 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);