--- np2/x11/gtk2/dialog_sound.c 2004/07/15 14:24:33 1.1 +++ np2/x11/gtk2/dialog_sound.c 2009/09/28 13:47:12 1.7 @@ -1,8 +1,8 @@ -/* $Id: dialog_sound.c,v 1.1 2004/07/15 14:24:33 monaka Exp $ */ +/* $Id: dialog_sound.c,v 1.7 2009/09/28 13:47:12 monaka Exp $ */ /* - * Copyright (c) 2002, 2003, 2004 - * NONAKA Kimihiro (aw9k-nnk@asahi-net.or.jp) All rights reserved. + * Copyright (c) 2002-2004 NONAKA Kimihiro + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -229,18 +229,65 @@ static GtkObject *spb_vr_level_adj; /* + * JoyPad + */ + +static const char *joypad_nodevice_str = "No device"; +static const char *joypad_noconnect_str = "N/C"; +static const char *joypad_num_str[256] = { + "0", "1", "2", "3", "4", "5", "6", "7", + "8", "9", "10", "11", "12", "13", "14", "15", + "16", "17", "18", "19", "20", "21", "22", "23", + "24", "25", "26", "27", "28", "29", "30", "31", + "32", "33", "34", "35", "36", "37", "38", "39", + "40", "41", "42", "43", "44", "45", "46", "47", + "48", "49", "50", "51", "52", "53", "54", "55", + "56", "57", "58", "59", "60", "61", "62", "63", + "64", "65", "66", "67", "68", "69", "70", "71", + "72", "73", "74", "75", "76", "77", "78", "79", + "80", "81", "82", "83", "84", "85", "86", "87", + "88", "89", "90", "91", "92", "93", "94", "95", + "96", "97", "98", "99", "100", "101", "102", "103", + "104", "105", "106", "107", "108", "109", "110", "111", + "112", "113", "114", "115", "116", "117", "118", "119", + "120", "121", "122", "123", "124", "125", "126", "127", + "128", "129", "130", "131", "132", "133", "134", "135", + "136", "137", "138", "139", "140", "141", "142", "143", + "144", "145", "146", "147", "148", "149", "150", "151", + "152", "153", "154", "155", "156", "157", "158", "159", + "160", "161", "162", "163", "164", "165", "166", "167", + "168", "169", "170", "171", "172", "173", "174", "175", + "176", "177", "178", "179", "180", "181", "182", "183", + "184", "185", "186", "187", "188", "189", "190", "191", + "192", "193", "194", "195", "196", "197", "198", "199", + "200", "201", "202", "203", "204", "205", "206", "207", + "208", "209", "210", "211", "212", "213", "214", "215", + "216", "217", "218", "219", "220", "221", "222", "223", + "224", "225", "226", "227", "228", "229", "230", "231", + "232", "233", "234", "235", "236", "237", "238", "239", + "240", "241", "242", "243", "244", "245", "246", "247", + "248", "249", "250", "251", "252", "253", "254", "255", +}; + +static const joymng_devinfo_t **joypad_devlist; +static GtkWidget *joypad_use_checkbutton[1]; +static GtkWidget *joypad_devlist_combo; +static GtkWidget *joypad_axis_combo[JOY_NAXIS]; +static GtkWidget *joypad_button_combo[JOY_NBUTTON]; +static char joypad_devname[MAX_PATH]; +static UINT8 joypad_axis[JOY_NAXIS]; +static UINT8 joypad_button[JOY_NBUTTON]; + + +/* * Driver */ static const char *driver_name[SNDDRV_DRVMAX] = { "None", - "NetBSD", - "OSS", - "EsounD", "SDL", }; -static GtkWidget *driver_audio_device_entry; static int driver_snddrv; @@ -276,10 +323,12 @@ ok_button_clicked(GtkButton *b, gpointer UINT8 spb_x; UINT8 spbopt, spbopt_mask; - /* Driver */ - const gchar *driver_audiodevp; + /* JoyPad */ + UINT8 joypad[1]; + gint joypad_device_index; /* common */ + char buf[32]; int i; BOOL renewal; @@ -323,8 +372,8 @@ ok_button_clicked(GtkButton *b, gpointer for (i = 0; i < NELEMENTS(snd26_ioport_str); i++) { if (strcmp(snd26_ioport, snd26_ioport_str[i]) == 0) { if (SND26_GET_IOPORT() != i) { - snd86opt |= SND26_SET_IOPORT(i); - snd86opt_mask |= SND26_MASK_IOPORT; + snd26opt |= SND26_SET_IOPORT(i); + snd26opt_mask |= SND26_MASK_IOPORT; renewal = TRUE; } break; @@ -476,18 +525,59 @@ ok_button_clicked(GtkButton *b, gpointer sysmng_update(SYS_UPDATEOSCFG); } - /* Driver */ - driver_audiodevp = gtk_entry_get_text(GTK_ENTRY(driver_audio_device_entry)); + /* JoyPad */ + if (!(np2oscfg.JOYPAD1 & 2)) { + joypad[0] = GTK_TOGGLE_BUTTON(joypad_use_checkbutton[0])->active; + + renewal = FALSE; + if ((np2oscfg.JOYPAD1 ^ joypad[0]) & 1) { + np2oscfg.JOYPAD1 = joypad[0]; + renewal = TRUE; + } + + joypad_device_index = 0; + if (joypad_devlist == NULL) { + for (i = 0; joypad_devlist[i] != NULL; ++i) { + if (strcmp(joypad_devname, joypad_devlist[i]->devname) == 0) { + joypad_device_index = joypad_devlist[i]->devindex; + break; + } + } + } + g_snprintf(buf, sizeof(buf), "%d", joypad_device_index); + if (strcmp(np2oscfg.JOYDEV[0], buf) != 0) { + milstr_ncpy(np2oscfg.JOYDEV[0], buf, sizeof(np2oscfg.JOYDEV[0])); + renewal = TRUE; + } + + for (i = 0; i < JOY_NAXIS; ++i) { + if (np2oscfg.JOYAXISMAP[0][i] != joypad_axis[i]) { + memcpy(np2oscfg.JOYAXISMAP[0], joypad_axis, sizeof(np2oscfg.JOYAXISMAP[0])); + renewal = TRUE; + break; + } + } + + for (i = 0; i < JOY_NBUTTON; ++i) { + if (np2oscfg.JOYBTNMAP[0][i] != joypad_button[i]) { + memcpy(np2oscfg.JOYBTNMAP[0], joypad_button, sizeof(np2oscfg.JOYBTNMAP[0])); + renewal = TRUE; + break; + } + } + + if (renewal) { + joymng_initialize(); + sysmng_update(SYS_UPDATEOSCFG); + } + } + /* Driver */ renewal = FALSE; if (np2oscfg.snddrv != driver_snddrv) { np2oscfg.snddrv = driver_snddrv; renewal = TRUE; } - if (strcmp(np2oscfg.audiodev, driver_audiodevp) != 0) { - milstr_ncpy(np2oscfg.audiodev, driver_audiodevp, sizeof(np2oscfg.audiodev)); - renewal = TRUE; - } if (renewal) { sysmng_update(SYS_UPDATEOSCFG); @@ -636,7 +726,7 @@ create_mixer_note(void) gtk_widget_show(mixer_default_button); gtk_box_pack_end(GTK_BOX(hbox), mixer_default_button, FALSE, FALSE, 5); g_signal_connect_swapped(GTK_OBJECT(mixer_default_button), "clicked", - GTK_SIGNAL_FUNC(mixer_default_button_clicked), NULL); + G_CALLBACK(mixer_default_button_clicked), NULL); return root_widget; } @@ -684,7 +774,7 @@ create_pc9801_14_note(void) gtk_widget_show(snd14_default_button); gtk_box_pack_end(GTK_BOX(hbox), snd14_default_button, FALSE, FALSE, 5); g_signal_connect_swapped(GTK_OBJECT(snd14_default_button), "clicked", - GTK_SIGNAL_FUNC(snd14_default_button_clicked), NULL); + G_CALLBACK(snd14_default_button_clicked), NULL); return root_widget; } @@ -778,7 +868,7 @@ create_pc9801_26_note(void) gtk_widget_show(snd26_default_button); gtk_box_pack_end(GTK_BOX(hbox), snd26_default_button, FALSE, FALSE, 5); g_signal_connect_swapped(GTK_OBJECT(snd26_default_button), "clicked", - GTK_SIGNAL_FUNC(snd26_default_button_clicked), NULL); + G_CALLBACK(snd26_default_button_clicked), NULL); return root_widget; } @@ -880,7 +970,7 @@ create_pc9801_86_note(void) gtk_widget_show(snd86_default_button); gtk_box_pack_end(GTK_BOX(hbox), snd86_default_button, FALSE, FALSE, 5); g_signal_connect_swapped(GTK_OBJECT(snd86_default_button), "clicked", - GTK_SIGNAL_FUNC(snd86_default_button_clicked), NULL); + G_CALLBACK(snd86_default_button_clicked), NULL); return root_widget; } @@ -1008,7 +1098,234 @@ create_spb_note(void) gtk_widget_show(spb_default_button); gtk_box_pack_end(GTK_BOX(hbox), spb_default_button, FALSE, FALSE, 5); g_signal_connect_swapped(GTK_OBJECT(spb_default_button), "clicked", - GTK_SIGNAL_FUNC(spb_default_button_clicked), NULL); + G_CALLBACK(spb_default_button_clicked), NULL); + + return root_widget; +} + +static void +joypad_device_changed(GtkEditable *e, gpointer d) +{ + GtkWidget *axis_entry[JOY_NAXIS]; + GtkWidget *button_entry[JOY_NBUTTON]; + const gchar *devname; + int drv; + int i, j; + + UNUSED(d); + + devname = gtk_entry_get_text(GTK_ENTRY(e)); + if ((joypad_devlist == NULL) + || (devname == NULL) + || (strcmp(devname, joypad_nodevice_str) == 0)) { + milstr_ncpy(joypad_devname, joypad_nodevice_str, sizeof(joypad_devname)); + return; + } + + for (drv = 0; joypad_devlist[drv] != NULL; ++drv) { + if (strcmp(devname, joypad_devlist[drv]->devname) == 0) { + break; + } + } + if (joypad_devlist[drv] == NULL) { + drv = 0; + if (joypad_devlist[drv] == NULL) { + milstr_ncpy(joypad_devname, joypad_nodevice_str, sizeof(joypad_devname)); + return; + } + } + milstr_ncpy(joypad_devname, joypad_devlist[drv]->devname, sizeof(joypad_devname)); + + /* Axis */ + for (i = 0; i < JOY_NAXIS; ++i) { + gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_axis_combo[i]), joypad_noconnect_str); + for (j = 0; j < joypad_devlist[drv]->naxis; j++) { + gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_axis_combo[i]), joypad_num_str[j]); + } + + axis_entry[i] = GTK_BIN(joypad_axis_combo[i])->child; + gtk_widget_show(axis_entry[i]); + gtk_editable_set_editable(GTK_EDITABLE(axis_entry[i]), FALSE); + + if (np2oscfg.JOYAXISMAP[0][i] < joypad_devlist[drv]->naxis) { + gtk_entry_set_text(GTK_ENTRY(axis_entry[i]), joypad_num_str[np2oscfg.JOYAXISMAP[0][i]]); + } else { + gtk_entry_set_text(GTK_ENTRY(axis_entry[i]), joypad_noconnect_str); + } + } + + /* Button */ + for (i = 0; i < JOY_NBUTTON; ++i) { + gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_button_combo[i]), joypad_noconnect_str); + for (j = 0; j < joypad_devlist[drv]->nbutton; j++) { + gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_button_combo[i]), joypad_num_str[j]); + } + + button_entry[i] = GTK_BIN(joypad_button_combo[i])->child; + gtk_widget_show(button_entry[i]); + gtk_editable_set_editable(GTK_EDITABLE(button_entry[i]), FALSE); + + if (np2oscfg.JOYBTNMAP[0][i] < joypad_devlist[drv]->nbutton) { + gtk_entry_set_text(GTK_ENTRY(button_entry[i]), joypad_num_str[np2oscfg.JOYBTNMAP[0][i]]); + } else { + gtk_entry_set_text(GTK_ENTRY(button_entry[i]), joypad_noconnect_str); + } + } +} + +static void +joypad_axis_entry_changed(GtkEditable *e, gpointer d) +{ + const gchar *str = gtk_entry_get_text(GTK_ENTRY(e)); + UINT8 *p = (UINT8 *)d; + + if (strcmp(str, joypad_noconnect_str) == 0) { + *p = JOY_AXIS_INVALID; + } else { + *p = milstr_solveINT(str); + } +} + +static void +joypad_button_entry_changed(GtkEditable *e, gpointer d) +{ + const gchar *str = gtk_entry_get_text(GTK_ENTRY(e)); + UINT8 *p = (UINT8 *)d; + + if (strcmp(str, joypad_noconnect_str) == 0) { + *p = JOY_BUTTON_INVALID; + } else { + *p = milstr_solveINT(str); + } +} + +static GtkWidget * +create_joypad_note(void) +{ + char buf[32]; + GtkWidget *root_widget; + GtkWidget *table; + GtkWidget *devlist_label; + GtkWidget *devlist_entry; + GtkWidget *axis_label[JOY_NAXIS]; + GtkWidget *axis_entry[JOY_NAXIS]; + GtkWidget *button_label[JOY_NBUTTON]; + GtkWidget *button_entry[JOY_NBUTTON]; + int ndrv, drv; + int i; + + root_widget = gtk_vbox_new(FALSE, 0); + gtk_container_set_border_width(GTK_CONTAINER(root_widget), 5); + gtk_widget_show(root_widget); + + table = gtk_table_new(3, 8, FALSE); + gtk_table_set_row_spacings(GTK_TABLE(table), 3); + gtk_table_set_col_spacings(GTK_TABLE(table), 5); + gtk_box_pack_start(GTK_BOX(root_widget), table, FALSE, FALSE, 0); + gtk_widget_show(table); + + /* Use JoyPad-1 */ + joypad_use_checkbutton[0] = gtk_check_button_new_with_label("Use JoyPad-1"); + gtk_widget_show(joypad_use_checkbutton[0]); + gtk_table_attach_defaults(GTK_TABLE(table), joypad_use_checkbutton[0], 0, 3, 0, 1); + + /* Device */ + devlist_label = gtk_label_new("Device"); + gtk_widget_show(devlist_label); + gtk_table_attach_defaults(GTK_TABLE(table), devlist_label, 0, 1, 1, 2); + + joypad_devlist_combo = gtk_combo_box_entry_new_text(); + gtk_widget_show(joypad_devlist_combo); + gtk_table_attach_defaults(GTK_TABLE(table), joypad_devlist_combo, 1, 3, 1, 2); + + joypad_devlist = joymng_get_devinfo_list(); + if (joypad_devlist != NULL) { + for (i = 0; joypad_devlist[i] != NULL; ++i) { + gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_devlist_combo), joypad_devlist[i]->devname); + } + ndrv = i; + } else { + gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_devlist_combo), joypad_nodevice_str); + ndrv = 0; + } + + devlist_entry = GTK_BIN(joypad_devlist_combo)->child; + gtk_widget_show(devlist_entry); + gtk_editable_set_editable(GTK_EDITABLE(devlist_entry), FALSE); + g_signal_connect(GTK_OBJECT(devlist_entry), "changed", + G_CALLBACK(joypad_device_changed), (gpointer)joypad_devlist_combo); + + /* Axis */ + for (i = 0; i < JOY_NAXIS; ++i) { + g_snprintf(buf, sizeof(buf), "%c axis", 'X' + i); + axis_label[i] = gtk_label_new(buf); + gtk_widget_show(axis_label[i]); + gtk_table_attach_defaults(GTK_TABLE(table), axis_label[i], 0, 1, 2+i, 3+i); + + joypad_axis_combo[i] = gtk_combo_box_entry_new_text(); + gtk_widget_show(joypad_axis_combo[i]); + gtk_table_attach_defaults(GTK_TABLE(table), joypad_axis_combo[i], 1, 2, 2+i, 3+i); + gtk_widget_set_size_request(joypad_axis_combo[i], 48, -1); + + gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_axis_combo[i]), joypad_noconnect_str); + + axis_entry[i] = GTK_BIN(joypad_axis_combo[i])->child; + gtk_widget_show(axis_entry[i]); + gtk_editable_set_editable(GTK_EDITABLE(axis_entry[i]), FALSE); + gtk_entry_set_text(GTK_ENTRY(axis_entry[i]), joypad_noconnect_str); + g_signal_connect(GTK_OBJECT(axis_entry[i]), "changed", + G_CALLBACK(joypad_axis_entry_changed), + (gpointer)(&joypad_axis[i])); + } + + /* Button */ + for (i = 0; i < JOY_NBUTTON; ++i) { + g_snprintf(buf, sizeof(buf), "%sButton%d", (i >= JOY_NBUTTON / 2) ? "Rapid " : "", i % 2); + button_label[i] = gtk_label_new(buf); + gtk_widget_show(button_label[i]); + gtk_table_attach_defaults(GTK_TABLE(table), button_label[i], 0, 1, 4+i, 5+i); + + joypad_button_combo[i] = gtk_combo_box_entry_new_text(); + gtk_widget_show(joypad_button_combo[i]); + gtk_table_attach_defaults(GTK_TABLE(table), joypad_button_combo[i], 1, 2, 4+i, 5+i); + gtk_widget_set_size_request(joypad_button_combo[i], 48, -1); + + gtk_combo_box_append_text(GTK_COMBO_BOX(joypad_button_combo[i]), joypad_noconnect_str); + + button_entry[i] = GTK_BIN(joypad_button_combo[i])->child; + gtk_widget_show(button_entry[i]); + gtk_editable_set_editable(GTK_EDITABLE(button_entry[i]), FALSE); + gtk_entry_set_text(GTK_ENTRY(button_entry[i]), joypad_noconnect_str); + g_signal_connect(GTK_OBJECT(button_entry[i]), "changed", + G_CALLBACK(joypad_button_entry_changed), + (gpointer)(&joypad_button[i])); + } + + /* no joystick device */ + if ((np2oscfg.JOYPAD1 & 2) && (joypad_devlist == NULL)) { + gtk_widget_set_sensitive(joypad_use_checkbutton[0], FALSE); + gtk_widget_set_sensitive(joypad_devlist_combo, FALSE); + for (i = 0; i < JOY_NAXIS; ++i) { + gtk_widget_set_sensitive(joypad_axis_combo[i], FALSE); + } + for (i = 0; i < JOY_NBUTTON; ++i) { + gtk_widget_set_sensitive(joypad_button_combo[i], FALSE); + } + } + + /* update status */ + if (joypad_devlist != NULL) { + drv = milstr_solveINT(np2oscfg.JOYDEV[0]); + if (drv < 0 || drv >= ndrv) { + drv = 0; + } + gtk_entry_set_text(GTK_ENTRY(devlist_entry), joypad_devlist[drv]->devname); + } else { + gtk_entry_set_text(GTK_ENTRY(devlist_entry), joypad_nodevice_str); + } + if (np2oscfg.JOYPAD1 & 1) { + g_signal_emit_by_name(GTK_OBJECT(joypad_use_checkbutton[0]), "clicked"); + } return root_widget; } @@ -1020,7 +1337,6 @@ create_driver_note(void) GtkWidget *driver_frame; GtkWidget *driver_vbox; GtkWidget *driver_radiobutton[SNDDRV_DRVMAX]; - GtkWidget *audio_device_label; GtkWidget *snddrv_hbox; int i; @@ -1038,51 +1354,24 @@ create_driver_note(void) gtk_container_add(GTK_CONTAINER(driver_frame), driver_vbox); for (i = 0; i < SNDDRV_DRVMAX; i++) { - driver_radiobutton[i] = gtk_radio_button_new_with_label_from_widget((i > 0) ? GTK_RADIO_BUTTON(driver_radiobutton[i-1]) : NULL, driver_name[i]); + driver_radiobutton[i] = gtk_radio_button_new_with_label_from_widget(i > 0 ? GTK_RADIO_BUTTON(driver_radiobutton[i-1]) : NULL, driver_name[i]); gtk_widget_show(driver_radiobutton[i]); gtk_box_pack_start(GTK_BOX(driver_vbox), driver_radiobutton[i], TRUE, FALSE, 0); g_signal_connect(GTK_OBJECT(driver_radiobutton[i]), "clicked", - GTK_SIGNAL_FUNC(driver_radiobutton_clicked), (gpointer)i); + G_CALLBACK(driver_radiobutton_clicked), GINT_TO_POINTER(i)); } -#if !defined(USE_NETBSDAUDIO) - gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_NETBSD], FALSE); -#endif -#if !defined(USE_OSSAUDIO) - gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_OSS], FALSE); -#endif -#if !defined(USE_ESDAUDIO) - gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_ESD], FALSE); -#endif #if !defined(USE_SDLAUDIO) && !defined(USE_SDLMIXER) gtk_widget_set_sensitive(driver_radiobutton[SNDDRV_SDL], FALSE); #endif switch (np2oscfg.snddrv) { case SNDDRV_NODRV: -#if defined(USE_NETBSDAUDIO) - case SNDDRV_NETBSD: -#endif -#if defined(USE_OSSAUDIO) - case SNDDRV_OSS: -#endif -#if defined(USE_ESDAUDIO) - case SNDDRV_ESD: -#endif #if defined(USE_SDLAUDIO) || defined(USE_SDLMIXER) case SNDDRV_SDL: #endif g_signal_emit_by_name(GTK_OBJECT(driver_radiobutton[np2oscfg.snddrv]), "clicked"); break; -#if !defined(USE_NETBSDAUDIO) - case SNDDRV_NETBSD: -#endif -#if !defined(USE_OSSAUDIO) - case SNDDRV_OSS: -#endif -#if !defined(USE_ESDAUDIO) - case SNDDRV_ESD: -#endif #if !defined(USE_SDLAUDIO) && !defined(USE_SDLMIXER) case SNDDRV_SDL: #endif @@ -1098,15 +1387,6 @@ create_driver_note(void) gtk_widget_show(snddrv_hbox); gtk_box_pack_start(GTK_BOX(root_widget), snddrv_hbox, FALSE, FALSE, 0); - audio_device_label = gtk_label_new("Sound device"); - gtk_widget_show(audio_device_label); - gtk_box_pack_start(GTK_BOX(snddrv_hbox), audio_device_label, FALSE, FALSE, 3); - - driver_audio_device_entry = gtk_entry_new(); - gtk_widget_show(driver_audio_device_entry); - gtk_entry_set_text(GTK_ENTRY(driver_audio_device_entry), np2oscfg.audiodev); - gtk_box_pack_start(GTK_BOX(snddrv_hbox), driver_audio_device_entry, TRUE, TRUE, 3); - return root_widget; } @@ -1121,6 +1401,7 @@ create_sound_dialog(void) GtkWidget *pc9801_26_note; GtkWidget *pc9801_86_note; GtkWidget *spb_note; + GtkWidget *joypad_note; GtkWidget *driver_note; GtkWidget *confirm_widget; GtkWidget *ok_button; @@ -1135,7 +1416,7 @@ create_sound_dialog(void) gtk_window_set_resizable(GTK_WINDOW(sound_dialog), FALSE); g_signal_connect(GTK_OBJECT(sound_dialog), "destroy", - GTK_SIGNAL_FUNC(dialog_destroy), NULL); + G_CALLBACK(dialog_destroy), NULL); main_vbox = gtk_vbox_new(FALSE, 0); gtk_widget_show(main_vbox); @@ -1165,6 +1446,10 @@ create_sound_dialog(void) spb_note = create_spb_note(); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), spb_note, gtk_label_new("SPB")); + /* "JoyPad" note */ + joypad_note = create_joypad_note(); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), joypad_note, gtk_label_new("JoyPad")); + /* "Driver" note */ driver_note = create_driver_note(); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), driver_note, gtk_label_new("Driver")); @@ -1181,7 +1466,7 @@ create_sound_dialog(void) gtk_box_pack_end(GTK_BOX(confirm_widget), cancel_button, FALSE, FALSE, 0); GTK_WIDGET_SET_FLAGS(cancel_button, GTK_CAN_DEFAULT); g_signal_connect_swapped(GTK_OBJECT(cancel_button), "clicked", - GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(sound_dialog)); + G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(sound_dialog)); ok_button = gtk_button_new_from_stock(GTK_STOCK_OK); gtk_widget_show(ok_button); @@ -1189,7 +1474,7 @@ create_sound_dialog(void) GTK_WIDGET_SET_FLAGS(ok_button, GTK_CAN_DEFAULT); GTK_WIDGET_SET_FLAGS(ok_button, GTK_HAS_DEFAULT); g_signal_connect(GTK_OBJECT(ok_button), "clicked", - GTK_SIGNAL_FUNC(ok_button_clicked), (gpointer)sound_dialog); + G_CALLBACK(ok_button_clicked), (gpointer)sound_dialog); gtk_widget_grab_default(ok_button); gtk_widget_show_all(sound_dialog);