comparison pidgin/gtkft.c @ 21652:eb2d5ba2a50d

Add a utility function pidgin_dialog_add_button to add buttons to a dialog created by pidgin_create_dialog. This removes a lot of code duplication. Anyone using this branch should keep an eye on the buttons on the dialogs to make sure they are enabled/disabled/displayed/hidden/marinated correctly.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 27 Nov 2007 00:15:49 +0000
parents 2a2496044eef
children c2c66ffcdfa7
comparison
equal deleted inserted replaced
21651:9107bb853c49 21652:eb2d5ba2a50d
743 pidgin_xfer_dialog_new(void) 743 pidgin_xfer_dialog_new(void)
744 { 744 {
745 PidginXferDialog *dialog; 745 PidginXferDialog *dialog;
746 GtkWidget *window; 746 GtkWidget *window;
747 GtkWidget *vbox1, *vbox2; 747 GtkWidget *vbox1, *vbox2;
748 GtkWidget *bbox;
749 GtkWidget *sw; 748 GtkWidget *sw;
750 GtkWidget *button; 749 GtkWidget *button;
751 GtkWidget *expander; 750 GtkWidget *expander;
752 GtkWidget *table; 751 GtkWidget *table;
753 GtkWidget *checkbox; 752 GtkWidget *checkbox;
808 /* The table of information. */ 807 /* The table of information. */
809 table = make_info_table(dialog); 808 table = make_info_table(dialog);
810 gtk_container_add(GTK_CONTAINER(expander), table); 809 gtk_container_add(GTK_CONTAINER(expander), table);
811 gtk_widget_show(table); 810 gtk_widget_show(table);
812 811
813 /* Now the button box for the buttons */
814 bbox = pidgin_dialog_get_action_area(GTK_DIALOG(window));
815 gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE);
816 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
817
818 /* Open button */ 812 /* Open button */
819 button = gtk_button_new_from_stock(GTK_STOCK_OPEN); 813 button = pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_OPEN, G_CALLBACK(open_button_cb), dialog);
820 gtk_widget_set_sensitive(button, FALSE); 814 gtk_widget_set_sensitive(button, FALSE);
821 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
822 gtk_widget_show(button);
823 dialog->open_button = button; 815 dialog->open_button = button;
824 816
825 g_signal_connect(G_OBJECT(button), "clicked",
826 G_CALLBACK(open_button_cb), dialog);
827
828 /* Pause button */ 817 /* Pause button */
829 button = gtk_button_new_with_mnemonic(_("_Pause")); 818 button = pidgin_dialog_add_button(GTK_DIALOG(window), _("_Pause"), G_CALLBACK(pause_button_cb), dialog);
830 gtk_widget_set_sensitive(button, FALSE); 819 gtk_widget_set_sensitive(button, FALSE);
831 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
832 gtk_widget_show(button);
833 dialog->pause_button = button; 820 dialog->pause_button = button;
834 821
835 g_signal_connect(G_OBJECT(button), "clicked",
836 G_CALLBACK(pause_button_cb), dialog);
837
838 /* Resume button */ 822 /* Resume button */
839 button = gtk_button_new_with_mnemonic(_("_Resume")); 823 button = pidgin_dialog_add_button(GTK_DIALOG(window), _("_Resume"), G_CALLBACK(resume_button_cb), dialog);
840 gtk_widget_set_sensitive(button, FALSE); 824 gtk_widget_set_sensitive(button, FALSE);
841 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
842 gtk_widget_show(button);
843 dialog->resume_button = button; 825 dialog->resume_button = button;
844 826
845 g_signal_connect(G_OBJECT(button), "clicked",
846 G_CALLBACK(resume_button_cb), dialog);
847
848 /* Remove button */ 827 /* Remove button */
849 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); 828 button = pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_REMOVE, G_CALLBACK(remove_button_cb), dialog);
850 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
851 gtk_widget_hide(button); 829 gtk_widget_hide(button);
852 dialog->remove_button = button; 830 dialog->remove_button = button;
853 831
854 g_signal_connect(G_OBJECT(button), "clicked",
855 G_CALLBACK(remove_button_cb), dialog);
856
857 /* Stop button */ 832 /* Stop button */
858 button = gtk_button_new_from_stock(GTK_STOCK_STOP); 833 button = pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_STOP, G_CALLBACK(stop_button_cb), dialog);
859 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
860 gtk_widget_show(button);
861 gtk_widget_set_sensitive(button, FALSE); 834 gtk_widget_set_sensitive(button, FALSE);
862 dialog->stop_button = button; 835 dialog->stop_button = button;
863 836
864 g_signal_connect(G_OBJECT(button), "clicked",
865 G_CALLBACK(stop_button_cb), dialog);
866
867 /* Close button */ 837 /* Close button */
868 button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); 838 button = pidgin_dialog_add_button(GTK_DIALOG(window), GTK_STOCK_CLOSE, G_CALLBACK(close_button_cb), dialog);
869 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
870 gtk_widget_show(button);
871 dialog->close_button = button; 839 dialog->close_button = button;
872
873 g_signal_connect(G_OBJECT(button), "clicked",
874 G_CALLBACK(close_button_cb), dialog);
875 840
876 #ifdef _WIN32 841 #ifdef _WIN32
877 g_signal_connect(G_OBJECT(dialog->window), "show", 842 g_signal_connect(G_OBJECT(dialog->window), "show",
878 G_CALLBACK(winpidgin_ensure_onscreen), dialog->window); 843 G_CALLBACK(winpidgin_ensure_onscreen), dialog->window);
879 #endif 844 #endif