Control: tags -1 + patch Please find attached a patch -- note that it applies against the latest upstream release (0.1) which I assumed you would want to package anyway.
Description: Port to GTK 3. Bug-Debian: https://bugs.debian.org/967242 Author: Yavor Doganov <ya...@gnu.org> Forwarded: no Last-Update: 2024-01-11 ---
--- abx-0.1.orig/configure.ac +++ abx-0.1/configure.ac @@ -18,7 +18,7 @@ PKG_CHECK_MODULES(portaudio, portaudio-2.0 >= 19) PKG_CHECK_MODULES(sndfile, sndfile) AM_PATH_GLIB_2_0(2.0.0, [], AC_MSG_ERROR([cannot find glib version 2.0 or later with thread support]), gthread) -AM_PATH_GTK_2_0(2.6.0, [], AC_MSG_ERROR([cannot find gtk version 2.6 or later]), gthread) +PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.9.12]) AC_CONFIG_FILES([Makefile src/Makefile]) --- abx-0.1.orig/src/decidewin.c +++ abx-0.1/src/decidewin.c @@ -34,7 +34,7 @@ case 0: case 1: set_guess(current_trial, response); - gtk_widget_hide_all(dialog); + gtk_widget_hide(dialog); if (current_trial == num_test_trials() - 1) { /* test over */ show_result_window(); @@ -49,7 +49,7 @@ break; case GTK_RESPONSE_DELETE_EVENT: case GTK_RESPONSE_CANCEL: - gtk_widget_hide_all(dialog); + gtk_widget_hide(dialog); break; } } @@ -73,7 +73,7 @@ gtk_dialog_add_button(GTK_DIALOG(dialog), "_A", 0); gtk_dialog_add_button(GTK_DIALOG(dialog), "_B", 1); gtk_dialog_add_button(GTK_DIALOG(dialog), - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); + _("_Cancel"), GTK_RESPONSE_CANCEL); g_signal_connect(dialog, "response", G_CALLBACK(response_handler), NULL); gtk_widget_show_all(dialog); @@ -84,6 +84,6 @@ hide_decide_dialog(void) { if (dialog) { - gtk_widget_hide_all(dialog); + gtk_widget_hide(dialog); } } --- abx-0.1.orig/src/mainwin.c +++ abx-0.1/src/mainwin.c @@ -45,7 +45,7 @@ static GtkWidget *prev_marker; static GtkWidget *next_marker; -static GtkObject *adjustment; +static GtkAdjustment *adjustment; static GtkWidget *scale; static int is_user_seeking; @@ -223,17 +223,17 @@ menu_bar = create_menu_bar(); create_status_bar(); - left_box = gtk_vbox_new(FALSE, 10); + left_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10); gtk_box_pack_start(GTK_BOX(left_box), test_box, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(left_box), meta_box, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(left_box), playback_box, TRUE, FALSE, 0); - main_hbox = gtk_hbox_new(FALSE, 10); + main_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10); gtk_container_set_border_width(GTK_CONTAINER(main_hbox), 10); gtk_box_pack_start(GTK_BOX(main_hbox), left_box, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(main_hbox), marker_box, FALSE, FALSE, 0); - main_box = gtk_vbox_new(FALSE, 0); + main_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start(GTK_BOX(main_box), menu_bar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(main_box), main_hbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(main_box), status_bar, FALSE, FALSE, 0); @@ -252,10 +252,11 @@ static GtkWidget * create_play_button(gchar *label) { - GtkWidget *aligned_box = gtk_hbox_new(TRUE, 0); - GtkWidget *box = gtk_hbox_new(FALSE, 3); + GtkWidget *aligned_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + gtk_box_set_homogeneous(GTK_BOX(aligned_box), TRUE); + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3); gtk_box_pack_start(GTK_BOX(box), - gtk_image_new_from_stock(GTK_STOCK_MEDIA_PLAY, + gtk_image_new_from_icon_name("media-playback-start", GTK_ICON_SIZE_BUTTON), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(box), gtk_label_new_with_mnemonic(label), @@ -276,8 +277,7 @@ GtkWidget *first_row; GtkWidget *second_row; adjustment = gtk_adjustment_new(0, 0, 60, 1.0, 15.0, 0); - scale = gtk_hscale_new(GTK_ADJUSTMENT(adjustment)); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_DISCONTINUOUS); + scale = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, adjustment); is_user_seeking = 0; g_signal_connect(G_OBJECT(scale), "button_press_event", G_CALLBACK(scale_button_pressed_or_released), NULL); @@ -299,19 +299,25 @@ create_play_button("Play _X")); g_signal_connect(G_OBJECT(test_sample), "clicked", G_CALLBACK(play_button_clicked), NULL); - pause_button = gtk_button_new_from_stock(GTK_STOCK_MEDIA_PAUSE); + pause_button = gtk_button_new_from_icon_name("media-playback-pause", + GTK_ICON_SIZE_BUTTON); g_signal_connect(G_OBJECT(pause_button), "clicked", G_CALLBACK(pause_button_clicked), NULL); - prev_marker = gtk_button_new_from_stock(GTK_STOCK_MEDIA_PREVIOUS); + prev_marker = gtk_button_new_from_icon_name("media-skip-backward", + GTK_ICON_SIZE_BUTTON); g_signal_connect(G_OBJECT(prev_marker), "clicked", G_CALLBACK(rewind_button_clicked), NULL); - next_marker = gtk_button_new_from_stock(GTK_STOCK_MEDIA_NEXT); + next_marker = gtk_button_new_from_icon_name("media-skip-forward", + GTK_ICON_SIZE_BUTTON); g_signal_connect(G_OBJECT(next_marker), "clicked", G_CALLBACK(rewind_button_clicked), NULL); - button_box = gtk_vbox_new(TRUE, 5); - first_row = gtk_hbox_new(TRUE, 5); - second_row = gtk_hbox_new(TRUE, 5); + button_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); + gtk_box_set_homogeneous(GTK_BOX(button_box), TRUE); + first_row = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + gtk_box_set_homogeneous(GTK_BOX(first_row), TRUE); + second_row = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + gtk_box_set_homogeneous(GTK_BOX(second_row), TRUE); gtk_box_pack_start(GTK_BOX(first_row), first_sample, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(first_row), second_sample, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(first_row), test_sample, TRUE, TRUE, 0); @@ -321,7 +327,7 @@ gtk_box_pack_start(GTK_BOX(button_box), first_row, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(button_box), second_row, TRUE, TRUE, 0); - playback_box = gtk_vbox_new(FALSE, 5); + playback_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start(GTK_BOX(playback_box), scale, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(playback_box), button_box, FALSE, FALSE, 0); return playback_box; @@ -352,9 +358,10 @@ "text", 0, NULL)); gtk_tree_view_append_column(GTK_TREE_VIEW(markers), column); - add_marker = gtk_button_new_from_stock(GTK_STOCK_ADD); - remove_marker = gtk_button_new_from_stock(GTK_STOCK_REMOVE); - clear_markers = gtk_button_new_from_stock(GTK_STOCK_CLEAR); + add_marker = gtk_button_new_with_mnemonic(_("_Add")); + remove_marker = gtk_button_new_with_mnemonic(_("_Remove")); + clear_markers = gtk_button_new_from_icon_name("edit-clear", + GTK_ICON_SIZE_BUTTON); g_signal_connect(G_OBJECT(add_marker), "clicked", G_CALLBACK(add_marker_clicked), NULL); g_signal_connect(G_OBJECT(remove_marker), "clicked", @@ -363,25 +370,26 @@ G_CALLBACK(gtk_list_store_clear), G_OBJECT(marker_list)); - upper_buttons_box = gtk_hbox_new(TRUE, 5); + upper_buttons_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + gtk_box_set_homogeneous(GTK_BOX(upper_buttons_box), TRUE); gtk_box_pack_start(GTK_BOX(upper_buttons_box), add_marker, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(upper_buttons_box), remove_marker, TRUE, TRUE, 0); - marker_buttons_box = gtk_vbox_new(TRUE, 5); + marker_buttons_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); + gtk_box_set_homogeneous(GTK_BOX(marker_buttons_box), TRUE); gtk_box_pack_start(GTK_BOX(marker_buttons_box), upper_buttons_box, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(marker_buttons_box), clear_markers, TRUE, TRUE, 0); scrolled_window = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_add_with_viewport - (GTK_SCROLLED_WINDOW(scrolled_window), markers); + gtk_container_add(GTK_CONTAINER(scrolled_window), markers); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - marker_box = gtk_vbox_new(FALSE, 5); + marker_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start(GTK_BOX(marker_box), GTK_WIDGET(scrolled_window), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(marker_box), @@ -396,7 +404,7 @@ static GtkWidget * create_test_box(void) { - GtkWidget *test_box = gtk_hbox_new(FALSE, 5); + GtkWidget *test_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); GtkWidget *decide = gtk_button_new_with_mnemonic("_Decide X"); g_signal_connect(G_OBJECT(decide), "clicked", G_CALLBACK(decide_button_clicked), NULL); @@ -422,15 +430,16 @@ sample_b_label = gtk_label_new("Sample B:"); meta_a_label = gtk_label_new("(none)"); meta_b_label = gtk_label_new("(none)"); - meta_a_hbox = gtk_hbox_new(FALSE, 0); - meta_b_hbox = gtk_hbox_new(FALSE, 0); + meta_a_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + meta_b_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_spacing(GTK_BOX(meta_a_hbox), 5); gtk_box_set_spacing(GTK_BOX(meta_b_hbox), 5); gtk_box_pack_start(GTK_BOX(meta_a_hbox), sample_a_label, FALSE, FALSE, 0); gtk_box_pack_end(GTK_BOX(meta_a_hbox), meta_a_label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(meta_b_hbox), sample_b_label, FALSE, FALSE, 0); gtk_box_pack_end(GTK_BOX(meta_b_hbox), meta_b_label, FALSE, FALSE, 0); - meta_vbox = gtk_vbox_new(TRUE, 5); + meta_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); + gtk_box_set_homogeneous(GTK_BOX(meta_vbox), TRUE); gtk_box_pack_start(GTK_BOX(meta_vbox), meta_a_hbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(meta_vbox), meta_b_hbox, FALSE, FALSE, 0); return meta_vbox; @@ -450,9 +459,8 @@ GtkWidget *help_menu_item; test_menu = gtk_menu_new(); - new_test_menu_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_NEW, - NULL); - quit_menu_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL); + new_test_menu_item = gtk_menu_item_new_with_mnemonic(_("_New")); + quit_menu_item = gtk_menu_item_new_with_mnemonic(_("_Quit")); gtk_menu_shell_append(GTK_MENU_SHELL (test_menu), new_test_menu_item); gtk_menu_shell_append(GTK_MENU_SHELL (test_menu), quit_menu_item); g_signal_connect(G_OBJECT (new_test_menu_item), "activate", @@ -465,8 +473,7 @@ test_menu); help_menu = gtk_menu_new(); - about_menu_item = gtk_image_menu_item_new_from_stock - (GTK_STOCK_ABOUT, NULL); + about_menu_item = gtk_menu_item_new_with_mnemonic(_("_About")); gtk_menu_shell_append(GTK_MENU_SHELL (help_menu), about_menu_item); g_signal_connect(G_OBJECT (about_menu_item), "activate", G_CALLBACK (menu_item_clicked), @@ -476,8 +483,8 @@ help_menu); menu_bar = gtk_menu_bar_new(); - gtk_menu_bar_append(GTK_MENU_BAR(menu_bar), test_menu_item); - gtk_menu_bar_append(GTK_MENU_BAR(menu_bar), help_menu_item); + gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), test_menu_item); + gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), help_menu_item); return menu_bar; } --- abx-0.1.orig/src/newtestwin.c +++ abx-0.1/src/newtestwin.c @@ -28,7 +28,7 @@ static GtkWidget *first_file_box; static GtkWidget *second_file_box; static GtkWidget *file_box; -static GtkObject *adjustment; +static GtkAdjustment *adjustment; static GtkWidget *spinner; static GtkWidget *spinner_box; static GtkWidget *ok; @@ -130,17 +130,17 @@ gtk_label_set_mnemonic_widget(GTK_LABEL(sample_b_label), second_file_selector); - first_file_box = gtk_hbox_new(FALSE, 5); + first_file_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start(GTK_BOX(first_file_box), sample_a_label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(first_file_box), GTK_WIDGET(first_file_selector), TRUE, TRUE, 0); - second_file_box = gtk_hbox_new(FALSE, 5); + second_file_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start(GTK_BOX(second_file_box), sample_b_label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(second_file_box), second_file_selector, TRUE, TRUE, 0); - file_box = gtk_vbox_new(FALSE, 5); + file_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start(GTK_BOX(file_box), first_file_box, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(file_box), @@ -151,14 +151,15 @@ spinner = gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 1, 0); gtk_label_set_mnemonic_widget(GTK_LABEL(trials_label), spinner); - spinner_box = gtk_hbox_new(FALSE, 5); + spinner_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start(GTK_BOX(spinner_box), trials_label, FALSE, FALSE, 0); gtk_box_pack_end(GTK_BOX(spinner_box), spinner, FALSE, FALSE, 0); /* buttons */ - ok = gtk_button_new_from_stock(GTK_STOCK_OK); - cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL); - button_box = gtk_hbox_new(TRUE, 5); + ok = gtk_button_new_with_mnemonic(_("_OK")); + cancel = gtk_button_new_with_mnemonic(_("_Cancel")); + button_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + gtk_box_set_homogeneous(GTK_BOX(button_box), TRUE); gtk_box_pack_start(GTK_BOX(button_box), ok, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(button_box), cancel, TRUE, TRUE, 0); g_signal_connect(ok, "clicked", G_CALLBACK(button_clicked), NULL); @@ -168,7 +169,7 @@ /* main window */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "New test"); - main_box = gtk_vbox_new(FALSE, 5); + main_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width(GTK_CONTAINER(main_box), 10); gtk_box_pack_start(GTK_BOX(main_box), file_box, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(main_box), spinner_box, TRUE, TRUE, 5); --- abx-0.1.orig/src/resultwin.c +++ abx-0.1/src/resultwin.c @@ -61,7 +61,8 @@ gtk_window_set_title(GTK_WINDOW(window), "Test results"); g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event_handler), NULL); - close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); + close_button = gtk_button_new_from_icon_name("window-close", + GTK_ICON_SIZE_BUTTON); g_signal_connect(close_button, "clicked", G_CALLBACK(close_clicked), NULL); @@ -83,11 +84,11 @@ guesses = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL (guesses), gs->str); - answers_box = gtk_hbox_new(FALSE, 5); - guesses_box = gtk_hbox_new(FALSE, 5); - ncorr_box = gtk_hbox_new(FALSE, 5); - pval_box = gtk_hbox_new(FALSE, 5); - close_box = gtk_hbox_new(FALSE, 5); + answers_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + guesses_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + ncorr_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + pval_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); + close_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start(GTK_BOX(answers_box), gtk_label_new("Correct decisions:"), @@ -114,7 +115,7 @@ gtk_box_pack_start(GTK_BOX(close_box), close_button, TRUE, FALSE, 0); - main_box = gtk_vbox_new(FALSE, 5); + main_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width(GTK_CONTAINER(main_box), 10); gtk_box_pack_start(GTK_BOX(main_box), answers_box, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(main_box), guesses_box, TRUE, TRUE, 0); --- abx-0.1.orig/src/gtkui.h +++ abx-0.1/src/gtkui.h @@ -23,6 +23,7 @@ #include "playback.h" #include <gtk/gtk.h> +#include <glib/gi18n.h> extern Metadata metadata_a; extern Metadata metadata_b;