Mercurial > pidgin
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); |