view src/xs_interface.c @ 896:911401ea2145

Add message box functionality.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 09 Nov 2012 08:24:37 +0200
parents 350f755549dd
children 5d26b869a48e
line wrap: on
line source

/*
 * DO NOT EDIT THIS FILE - it is generated by Glade.
 */

#ifdef HAVE_CONFIG_H
#  include <config.h>
#endif

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>

#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>

#include "xs_genui.h"
#include "xs_interface.h"
#include "xs_glade.h"

GtkWidget*
create_xs_configwin (void)
{
  GtkWidget *xs_configwin;
  GtkWidget *w_vbox1;
  GtkWidget *cfg_notebook;
  GtkWidget *w_vbox6;
  GtkWidget *w_hbox2;
  GtkWidget *cfg_sndres_frame;
  GtkWidget *w_vbox9;
  GSList *resolution_group = NULL;
  GtkWidget *cfg_res_8bit;
  GtkWidget *cfg_res_16bit;
  GtkWidget *cfg_channels_frame;
  GtkWidget *w_vbox10;
  GSList *channels_group = NULL;
  GtkWidget *cfg_chn_mono;
  GtkWidget *cfg_chn_stereo;
  GtkWidget *cfg_chn_autopan;
  GtkWidget *cfg_samplerate_frame;
  GtkWidget *w_hbox4;
  GtkWidget *cfg_samplerate_combo;
  GtkWidget *cfg_samplerate;
  GtkWidget *w_label8;
  GtkWidget *w_label54;
  GtkWidget *w_label1;
  GtkWidget *w_vbox2;
  GtkWidget *w_hbox1;
  GtkWidget *cfg_clock_frame;
  GtkWidget *w_vbox4;
  GtkWidget *cfg_emu_clock_force;
  GSList *speed_group = NULL;
  GtkWidget *cfg_emu_clock_pal;
  GtkWidget *cfg_emu_clock_ntsc;
  GtkWidget *cfg_sid_model_frame;
  GtkWidget *w_vbox3;
  GtkWidget *cfg_emu_sid_force;
  GSList *waveforms_group = NULL;
  GtkWidget *cfg_emu_mos6581;
  GtkWidget *cfg_emu_mos8580;
  GtkWidget *cfg_emulib_frame;
  GtkWidget *w_vbox26;
  GSList *emulator_group = NULL;
  GtkWidget *cfg_emu_sidplay1;
  GtkWidget *cfg_emu_sidplay2;
  GtkWidget *cfg_emu_sidplayfp;
  GtkWidget *cfg_memmode_frame;
  GtkWidget *w_vbox5;
  GSList *memorymode_group = NULL;
  GtkWidget *cfg_emu_mem_real;
  GtkWidget *cfg_emu_mem_banksw;
  GtkWidget *cfg_emu_mem_transrom;
  GtkWidget *cfg_emu_mem_playsid;
  GtkWidget *w_label2;
  GtkWidget *w_vbox29;
  GtkWidget *cfg_sidplay2_frame;
  GtkWidget *w_vbox30;
  GtkWidget *cfg_emu_sp2_opt;
  GSList *emutype_group = NULL;
  GtkWidget *cfg_emu_sp2_resid_fp;
  GtkWidget *cfg_emu_sp2_resid;
  GtkWidget *cfg_emu_sp2_hardsid;
  GtkWidget *cfg_resid_frame;
  GtkWidget *w_vbox37;
  GSList *samplingtype_group = NULL;
  GtkWidget *cfg_emu_resid_fast;
  GtkWidget *cfg_emu_resid_int;
  GtkWidget *cfg_emu_resid_res_fast;
  GtkWidget *cfg_emu_resid_res_int;
  GtkWidget *cfg_rom_frame;
  GtkWidget *w_rom_hbox;
  GtkWidget *cfg_rom_label1;
  GtkWidget *cfg_rom_path;
  GtkWidget *cfg_rom_browse;
  GtkWidget *w_label48;
  GtkWidget *w_vbox25;
  GtkWidget *cfg_emu_filters;
  GtkWidget *cfg_filters_notebook;
  GtkWidget *cfg_box_filter_sidplay1;
  GtkWidget *cfg_sp1_frm_fs;
  GtkWidget *cfg_sp1_filter_fs;
  GtkWidget *cfg_sp1_frm_fm;
  GtkWidget *cfg_sp1_filter_fm;
  GtkWidget *cfg_sp1_frm_ft;
  GtkWidget *cfg_sp1_filter_ft;
  GtkWidget *w_vbox17;
  GtkWidget *cfg_sp1_filter_reset;
  GtkWidget *w_label55;
  GtkWidget *cfg_box_filter_sidplay2;
  GtkWidget *cfg_sp_filter_controlbox;
  GtkWidget *cfg_sp2_filter_combo;
  GtkWidget *cfg_sp2_filter_combo_entry;
  GtkWidget *table3;
  GtkWidget *cfg_sp2_filter_export;
  GtkWidget *cfg_sp2_filter_load;
  GtkWidget *cfg_sp2_filter_save;
  GtkWidget *cfg_sp2_filter_import;
  GtkWidget *cfg_sp2_filter_delete;
  GtkWidget *cfg_sp2_filter_new;
  GtkWidget *cfg_sp2_filter_frame;
  GtkWidget *w_label56;
  GtkWidget *w_label24;
  GtkWidget *w_vbox20;
  GtkWidget *w_frame29;
  GtkWidget *w_vbox32;
  GtkWidget *cfg_mintime_enable;
  GtkWidget *cfg_mintime_box;
  GtkWidget *cfg_mintime_label1;
  GtkObject *cfg_mintime_adj;
  GtkWidget *cfg_mintime;
  GtkWidget *cfg_mintime_label2;
  GtkWidget *w_frame21;
  GtkWidget *w_vbox21;
  GtkWidget *cfg_maxtime_enable;
  GtkWidget *cfg_maxtime_unknown;
  GtkWidget *cfg_maxtime_box;
  GtkWidget *cfg_maxtime_label1;
  GtkObject *cfg_maxtime_adj;
  GtkWidget *cfg_maxtime;
  GtkWidget *cfg_maxtime_label2;
  GtkWidget *w_frame18;
  GtkWidget *w_vbox18;
  GtkWidget *cfg_sld_enable;
  GtkWidget *cfg_sld_box;
  GtkWidget *cfg_sld_label1;
  GtkWidget *cfg_sld_dbpath;
  GtkWidget *cfg_sld_dbbrowse;
  GtkWidget *w_label26;
  GtkWidget *w_vbox33;
  GtkWidget *w_frame7;
  GtkWidget *w_vbox8;
  GtkWidget *cfg_stil_enable;
  GtkWidget *cfg_stil_box1;
  GtkWidget *cfg_stil_label1;
  GtkWidget *w_alignment2;
  GtkWidget *cfg_stil_dbpath;
  GtkWidget *w_alignment1;
  GtkWidget *cfg_stil_browse;
  GtkWidget *cfg_stil_box2;
  GtkWidget *cfg_hvsc_label1;
  GtkWidget *w_alignment6;
  GtkWidget *cfg_hvsc_path;
  GtkWidget *w_alignment7;
  GtkWidget *cfg_hvsc_browse;
  GtkWidget *w_frame16;
  GtkWidget *vbox1;
  GtkWidget *cfg_ftitle_override;
  GtkWidget *cfg_ftitle_box;
  GtkWidget *cfg_ftitle_format;
  GtkWidget *w_hbox9;
  GtkWidget *cfg_ftitle_desc1;
  GtkWidget *cfg_ftitle_desc2;
  GtkWidget *w_label23;
  GtkWidget *w_vbox19;
  GtkWidget *w_frame28;
  GtkWidget *w_vbox31;
  GSList *subtune_group = NULL;
  GtkWidget *cfg_subctrl_none;
  GtkWidget *cfg_subctrl_seek;
  GtkWidget *cfg_subctrl_popup;
  GtkWidget *cfg_subctrl_patch;
  GtkWidget *w_frame31;
  GtkWidget *w_vbox35;
  GtkWidget *cfg_subauto_enable;
  GtkWidget *cfg_subauto_min_only;
  GtkWidget *cfg_subauto_box;
  GtkWidget *w_label52;
  GtkObject *cfg_subauto_mintime_adj;
  GtkWidget *cfg_subauto_mintime;
  GtkWidget *w_label53;
  GtkWidget *w_frame22;
  GtkWidget *w_vbox22;
  GtkWidget *cfg_detectmagic;
  GtkWidget *w_label3;
  GtkWidget *hbuttonbox1;
  GtkWidget *cfg_ok;
  GtkWidget *cfg_cancel;
  GtkTooltips *tooltips;

  tooltips = gtk_tooltips_new ();

  xs_configwin = gtk_window_new (GTK_WINDOW_DIALOG);
  gtk_widget_set_name (xs_configwin, "xs_configwin");
  gtk_object_set_data (GTK_OBJECT (xs_configwin), "xs_configwin", xs_configwin);
  gtk_window_set_title (GTK_WINDOW (xs_configwin), _("XMMS-SID configuration"));
  gtk_window_set_policy (GTK_WINDOW (xs_configwin), FALSE, FALSE, FALSE);

  w_vbox1 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (w_vbox1, "w_vbox1");
  gtk_widget_ref (w_vbox1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox1", w_vbox1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox1);
  gtk_container_add (GTK_CONTAINER (xs_configwin), w_vbox1);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox1), 8);

  cfg_notebook = gtk_notebook_new ();
  gtk_widget_set_name (cfg_notebook, "cfg_notebook");
  gtk_widget_ref (cfg_notebook);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_notebook", cfg_notebook,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_notebook);
  gtk_box_pack_start (GTK_BOX (w_vbox1), cfg_notebook, TRUE, TRUE, 0);
  gtk_notebook_set_show_border (GTK_NOTEBOOK (cfg_notebook), FALSE);

  w_vbox6 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (w_vbox6, "w_vbox6");
  gtk_widget_ref (w_vbox6);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox6", w_vbox6,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox6);
  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox6);

  w_hbox2 = gtk_hbox_new (FALSE, 0);
  gtk_widget_set_name (w_hbox2, "w_hbox2");
  gtk_widget_ref (w_hbox2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_hbox2", w_hbox2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_hbox2);
  gtk_box_pack_start (GTK_BOX (w_vbox6), w_hbox2, FALSE, TRUE, 0);

  cfg_sndres_frame = gtk_frame_new (_("Resolution:"));
  gtk_widget_set_name (cfg_sndres_frame, "cfg_sndres_frame");
  gtk_widget_ref (cfg_sndres_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sndres_frame", cfg_sndres_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sndres_frame);
  gtk_box_pack_start (GTK_BOX (w_hbox2), cfg_sndres_frame, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_sndres_frame), 4);

  w_vbox9 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox9, "w_vbox9");
  gtk_widget_ref (w_vbox9);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox9", w_vbox9,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox9);
  gtk_container_add (GTK_CONTAINER (cfg_sndres_frame), w_vbox9);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox9), 2);

  cfg_res_8bit = gtk_radio_button_new_with_label (resolution_group, _("8-bit"));
  resolution_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_res_8bit));
  gtk_widget_set_name (cfg_res_8bit, "cfg_res_8bit");
  gtk_widget_ref (cfg_res_8bit);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_res_8bit", cfg_res_8bit,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_res_8bit);
  gtk_box_pack_start (GTK_BOX (w_vbox9), cfg_res_8bit, FALSE, FALSE, 0);

  cfg_res_16bit = gtk_radio_button_new_with_label (resolution_group, _("16-bit"));
  resolution_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_res_16bit));
  gtk_widget_set_name (cfg_res_16bit, "cfg_res_16bit");
  gtk_widget_ref (cfg_res_16bit);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_res_16bit", cfg_res_16bit,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_res_16bit);
  gtk_box_pack_start (GTK_BOX (w_vbox9), cfg_res_16bit, FALSE, FALSE, 0);

  cfg_channels_frame = gtk_frame_new (_("Channels:"));
  gtk_widget_set_name (cfg_channels_frame, "cfg_channels_frame");
  gtk_widget_ref (cfg_channels_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_channels_frame", cfg_channels_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_channels_frame);
  gtk_box_pack_start (GTK_BOX (w_hbox2), cfg_channels_frame, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_channels_frame), 4);

  w_vbox10 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox10, "w_vbox10");
  gtk_widget_ref (w_vbox10);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox10", w_vbox10,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox10);
  gtk_container_add (GTK_CONTAINER (cfg_channels_frame), w_vbox10);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox10), 2);

  cfg_chn_mono = gtk_radio_button_new_with_label (channels_group, _("Mono"));
  channels_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_chn_mono));
  gtk_widget_set_name (cfg_chn_mono, "cfg_chn_mono");
  gtk_widget_ref (cfg_chn_mono);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_chn_mono", cfg_chn_mono,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_chn_mono);
  gtk_box_pack_start (GTK_BOX (w_vbox10), cfg_chn_mono, FALSE, FALSE, 0);

  cfg_chn_stereo = gtk_radio_button_new_with_label (channels_group, _("Stereo"));
  channels_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_chn_stereo));
  gtk_widget_set_name (cfg_chn_stereo, "cfg_chn_stereo");
  gtk_widget_ref (cfg_chn_stereo);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_chn_stereo", cfg_chn_stereo,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_chn_stereo);
  gtk_box_pack_start (GTK_BOX (w_vbox10), cfg_chn_stereo, FALSE, FALSE, 0);

  cfg_chn_autopan = gtk_radio_button_new_with_label (channels_group, _("Autopanning"));
  channels_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_chn_autopan));
  gtk_widget_set_name (cfg_chn_autopan, "cfg_chn_autopan");
  gtk_widget_ref (cfg_chn_autopan);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_chn_autopan", cfg_chn_autopan,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_chn_autopan);
  gtk_box_pack_start (GTK_BOX (w_vbox10), cfg_chn_autopan, FALSE, FALSE, 0);

  cfg_samplerate_frame = gtk_frame_new (_("Samplerate:"));
  gtk_widget_set_name (cfg_samplerate_frame, "cfg_samplerate_frame");
  gtk_widget_ref (cfg_samplerate_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_samplerate_frame", cfg_samplerate_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_samplerate_frame);
  gtk_box_pack_start (GTK_BOX (w_vbox6), cfg_samplerate_frame, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_samplerate_frame), 4);

  w_hbox4 = gtk_hbox_new (FALSE, 0);
  gtk_widget_set_name (w_hbox4, "w_hbox4");
  gtk_widget_ref (w_hbox4);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_hbox4", w_hbox4,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_hbox4);
  gtk_container_add (GTK_CONTAINER (cfg_samplerate_frame), w_hbox4);
  gtk_container_set_border_width (GTK_CONTAINER (w_hbox4), 4);

  cfg_samplerate_combo = gtk_combo_new ();
  gtk_widget_set_name (cfg_samplerate_combo, "cfg_samplerate_combo");
  gtk_widget_ref (cfg_samplerate_combo);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_samplerate_combo", cfg_samplerate_combo,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_samplerate_combo);
  gtk_box_pack_start (GTK_BOX (w_hbox4), cfg_samplerate_combo, FALSE, FALSE, 0);

  cfg_samplerate = GTK_COMBO (cfg_samplerate_combo)->entry;
  gtk_widget_set_name (cfg_samplerate, "cfg_samplerate");
  gtk_widget_ref (cfg_samplerate);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_samplerate", cfg_samplerate,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_samplerate);

  w_label8 = gtk_label_new (_("Hz"));
  gtk_widget_set_name (w_label8, "w_label8");
  gtk_widget_ref (w_label8);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label8", w_label8,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label8);
  gtk_box_pack_start (GTK_BOX (w_hbox4), w_label8, FALSE, TRUE, 4);

  w_label54 = gtk_label_new ("");
  gtk_widget_set_name (w_label54, "w_label54");
  gtk_widget_ref (w_label54);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label54", w_label54,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label54);
  gtk_box_pack_start (GTK_BOX (w_hbox4), w_label54, FALSE, TRUE, 0);

  w_label1 = gtk_label_new (_("Audio"));
  gtk_widget_set_name (w_label1, "w_label1");
  gtk_widget_ref (w_label1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label1", w_label1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label1);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 0), w_label1);

  w_vbox2 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (w_vbox2, "w_vbox2");
  gtk_widget_ref (w_vbox2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox2", w_vbox2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox2);
  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox2);

  w_hbox1 = gtk_hbox_new (FALSE, 0);
  gtk_widget_set_name (w_hbox1, "w_hbox1");
  gtk_widget_ref (w_hbox1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_hbox1", w_hbox1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_hbox1);
  gtk_box_pack_start (GTK_BOX (w_vbox2), w_hbox1, FALSE, TRUE, 0);

  cfg_clock_frame = gtk_frame_new (_("Clock speed:"));
  gtk_widget_set_name (cfg_clock_frame, "cfg_clock_frame");
  gtk_widget_ref (cfg_clock_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_clock_frame", cfg_clock_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_clock_frame);
  gtk_box_pack_start (GTK_BOX (w_hbox1), cfg_clock_frame, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_clock_frame), 4);

  w_vbox4 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox4, "w_vbox4");
  gtk_widget_ref (w_vbox4);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox4", w_vbox4,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox4);
  gtk_container_add (GTK_CONTAINER (cfg_clock_frame), w_vbox4);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox4), 2);

  cfg_emu_clock_force = gtk_check_button_new_with_label (_("Force speed"));
  gtk_widget_set_name (cfg_emu_clock_force, "cfg_emu_clock_force");
  gtk_widget_ref (cfg_emu_clock_force);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_clock_force", cfg_emu_clock_force,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_clock_force);
  gtk_box_pack_start (GTK_BOX (w_vbox4), cfg_emu_clock_force, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_clock_force, _("If enabled, this option \"forces\" the emulation engine to use the selected clock speed/frequency. Otherwise the speed is determined from played file itself."), NULL);

  cfg_emu_clock_pal = gtk_radio_button_new_with_label (speed_group, _("PAL (50 Hz)"));
  speed_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_clock_pal));
  gtk_widget_set_name (cfg_emu_clock_pal, "cfg_emu_clock_pal");
  gtk_widget_ref (cfg_emu_clock_pal);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_clock_pal", cfg_emu_clock_pal,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_clock_pal);
  gtk_box_pack_start (GTK_BOX (w_vbox4), cfg_emu_clock_pal, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_clock_pal, _("PAL is the european TV standard, which uses 50Hz vertical refresh frequency. Most of SID-tunes have been made for PAL computers."), NULL);

  cfg_emu_clock_ntsc = gtk_radio_button_new_with_label (speed_group, _("NTSC (60 Hz)"));
  speed_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_clock_ntsc));
  gtk_widget_set_name (cfg_emu_clock_ntsc, "cfg_emu_clock_ntsc");
  gtk_widget_ref (cfg_emu_clock_ntsc);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_clock_ntsc", cfg_emu_clock_ntsc,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_clock_ntsc);
  gtk_box_pack_start (GTK_BOX (w_vbox4), cfg_emu_clock_ntsc, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_clock_ntsc, _("NTSC is the TV standard with 60Hz vertical refresh rate (and other features that differ from PAL). It is mainly used in United States, Japan and certain other countries."), NULL);

  cfg_sid_model_frame = gtk_frame_new (_("SID model:"));
  gtk_widget_set_name (cfg_sid_model_frame, "cfg_sid_model_frame");
  gtk_widget_ref (cfg_sid_model_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sid_model_frame", cfg_sid_model_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sid_model_frame);
  gtk_box_pack_start (GTK_BOX (w_hbox1), cfg_sid_model_frame, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_sid_model_frame), 4);

  w_vbox3 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox3, "w_vbox3");
  gtk_widget_ref (w_vbox3);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox3", w_vbox3,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox3);
  gtk_container_add (GTK_CONTAINER (cfg_sid_model_frame), w_vbox3);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox3), 2);

  cfg_emu_sid_force = gtk_check_button_new_with_label (_("Force model"));
  gtk_widget_set_name (cfg_emu_sid_force, "cfg_emu_sid_force");
  gtk_widget_ref (cfg_emu_sid_force);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sid_force", cfg_emu_sid_force,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_sid_force);
  gtk_box_pack_start (GTK_BOX (w_vbox3), cfg_emu_sid_force, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_sid_force, _("If enabled, this option \"forces\" the emulation engine to use the selected SID-chip model. Otherwise the preferred SID model is determined from the file (if PSIDv2NG type) or if not available, this setting is used."), NULL);

  cfg_emu_mos6581 = gtk_radio_button_new_with_label (waveforms_group, _("MOS 6581"));
  waveforms_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mos6581));
  gtk_widget_set_name (cfg_emu_mos6581, "cfg_emu_mos6581");
  gtk_widget_ref (cfg_emu_mos6581);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mos6581", cfg_emu_mos6581,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_mos6581);
  gtk_box_pack_start (GTK_BOX (w_vbox3), cfg_emu_mos6581, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_mos6581, _("MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 in few ways, having much fuller filter (which, due to design error, is never same between two different SID-chips) and has the \"volume adjustment bug\", which enables playing of digital samples."), NULL);

  cfg_emu_mos8580 = gtk_radio_button_new_with_label (waveforms_group, _("MOS 8580"));
  waveforms_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mos8580));
  gtk_widget_set_name (cfg_emu_mos8580, "cfg_emu_mos8580");
  gtk_widget_ref (cfg_emu_mos8580);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mos8580", cfg_emu_mos8580,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_mos8580);
  gtk_box_pack_start (GTK_BOX (w_vbox3), cfg_emu_mos8580, FALSE, FALSE, 0);

  cfg_emulib_frame = gtk_frame_new (_("Emulation library selection:"));
  gtk_widget_set_name (cfg_emulib_frame, "cfg_emulib_frame");
  gtk_widget_ref (cfg_emulib_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emulib_frame", cfg_emulib_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emulib_frame);
  gtk_box_pack_start (GTK_BOX (w_vbox2), cfg_emulib_frame, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_emulib_frame), 4);

  w_vbox26 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox26, "w_vbox26");
  gtk_widget_ref (w_vbox26);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox26", w_vbox26,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox26);
  gtk_container_add (GTK_CONTAINER (cfg_emulib_frame), w_vbox26);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox26), 2);

  cfg_emu_sidplay1 = gtk_radio_button_new_with_label (emulator_group, _("SIDPlay 1 (frame-based, fast, inaccurate)"));
  emulator_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplay1));
  gtk_widget_set_name (cfg_emu_sidplay1, "cfg_emu_sidplay1");
  gtk_widget_ref (cfg_emu_sidplay1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sidplay1", cfg_emu_sidplay1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_sidplay1);
  gtk_box_pack_start (GTK_BOX (w_vbox26), cfg_emu_sidplay1, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_sidplay1, _("Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most cases, though."), NULL);

  cfg_emu_sidplay2 = gtk_radio_button_new_with_label (emulator_group, _("SIDPlay 2 (cycle-based, rather accurate)"));
  emulator_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplay2));
  gtk_widget_set_name (cfg_emu_sidplay2, "cfg_emu_sidplay2");
  gtk_widget_ref (cfg_emu_sidplay2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sidplay2", cfg_emu_sidplay2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_sidplay2);
  gtk_box_pack_start (GTK_BOX (w_vbox26), cfg_emu_sidplay2, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_sidplay2, _("Use libSIDPlay 2.x emulation, which requires powerful CPU due to cycle-exact emulation."), NULL);

  cfg_emu_sidplayfp = gtk_radio_button_new_with_label (emulator_group, _("SIDPlay FP (cycle-exact, very accurate, slow)"));
  emulator_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sidplayfp));
  gtk_widget_set_name (cfg_emu_sidplayfp, "cfg_emu_sidplayfp");
  gtk_widget_ref (cfg_emu_sidplayfp);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sidplayfp", cfg_emu_sidplayfp,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_sidplayfp);
  gtk_box_pack_start (GTK_BOX (w_vbox26), cfg_emu_sidplayfp, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_sidplayfp, _("Use libSIDPlayFP emulation, requires a high-end system due to accurate simulation of filter and cycle-accurate emulation."), NULL);

  cfg_memmode_frame = gtk_frame_new (_("Memory mode:"));
  gtk_widget_set_name (cfg_memmode_frame, "cfg_memmode_frame");
  gtk_widget_ref (cfg_memmode_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_memmode_frame", cfg_memmode_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_memmode_frame);
  gtk_box_pack_start (GTK_BOX (w_vbox2), cfg_memmode_frame, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_memmode_frame), 4);

  w_vbox5 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox5, "w_vbox5");
  gtk_widget_ref (w_vbox5);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox5", w_vbox5,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox5);
  gtk_container_add (GTK_CONTAINER (cfg_memmode_frame), w_vbox5);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox5), 2);

  cfg_emu_mem_real = gtk_radio_button_new_with_label (memorymode_group, _("Real C64 (SIDPlay 2 only)"));
  memorymode_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mem_real));
  gtk_widget_set_name (cfg_emu_mem_real, "cfg_emu_mem_real");
  gtk_widget_ref (cfg_emu_mem_real);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mem_real", cfg_emu_mem_real,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_mem_real);
  gtk_box_pack_start (GTK_BOX (w_vbox5), cfg_emu_mem_real, FALSE, FALSE, 0);

  cfg_emu_mem_banksw = gtk_radio_button_new_with_label (memorymode_group, _("Bank switching"));
  memorymode_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mem_banksw));
  gtk_widget_set_name (cfg_emu_mem_banksw, "cfg_emu_mem_banksw");
  gtk_widget_ref (cfg_emu_mem_banksw);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mem_banksw", cfg_emu_mem_banksw,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_mem_banksw);
  gtk_box_pack_start (GTK_BOX (w_vbox5), cfg_emu_mem_banksw, FALSE, FALSE, 0);

  cfg_emu_mem_transrom = gtk_radio_button_new_with_label (memorymode_group, _("Transparent ROM"));
  memorymode_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mem_transrom));
  gtk_widget_set_name (cfg_emu_mem_transrom, "cfg_emu_mem_transrom");
  gtk_widget_ref (cfg_emu_mem_transrom);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mem_transrom", cfg_emu_mem_transrom,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_mem_transrom);
  gtk_box_pack_start (GTK_BOX (w_vbox5), cfg_emu_mem_transrom, FALSE, FALSE, 0);

  cfg_emu_mem_playsid = gtk_radio_button_new_with_label (memorymode_group, _("PlaySID environment"));
  memorymode_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_mem_playsid));
  gtk_widget_set_name (cfg_emu_mem_playsid, "cfg_emu_mem_playsid");
  gtk_widget_ref (cfg_emu_mem_playsid);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_mem_playsid", cfg_emu_mem_playsid,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_mem_playsid);
  gtk_box_pack_start (GTK_BOX (w_vbox5), cfg_emu_mem_playsid, FALSE, FALSE, 0);

  w_label2 = gtk_label_new (_("Emu#1"));
  gtk_widget_set_name (w_label2, "w_label2");
  gtk_widget_ref (w_label2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label2", w_label2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label2);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 1), w_label2);

  w_vbox29 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (w_vbox29, "w_vbox29");
  gtk_widget_ref (w_vbox29);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox29", w_vbox29,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox29);
  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox29);

  cfg_sidplay2_frame = gtk_frame_new (_("SIDPlay 2 options:"));
  gtk_widget_set_name (cfg_sidplay2_frame, "cfg_sidplay2_frame");
  gtk_widget_ref (cfg_sidplay2_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sidplay2_frame", cfg_sidplay2_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sidplay2_frame);
  gtk_box_pack_start (GTK_BOX (w_vbox29), cfg_sidplay2_frame, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_sidplay2_frame), 4);

  w_vbox30 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox30, "w_vbox30");
  gtk_widget_ref (w_vbox30);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox30", w_vbox30,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox30);
  gtk_container_add (GTK_CONTAINER (cfg_sidplay2_frame), w_vbox30);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox30), 2);

  cfg_emu_sp2_opt = gtk_check_button_new_with_label (_("Optimization mode (faster, inaccurate)"));
  gtk_widget_set_name (cfg_emu_sp2_opt, "cfg_emu_sp2_opt");
  gtk_widget_ref (cfg_emu_sp2_opt);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sp2_opt", cfg_emu_sp2_opt,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_sp2_opt);
  gtk_box_pack_start (GTK_BOX (w_vbox30), cfg_emu_sp2_opt, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_sp2_opt, _("This setting can be used to enable libSIDPlay2's \"optimization mode\", which in downgrades the emulation from cycle-exact to something similar to frame-exact. The result is lower CPU usage, but worse accuracy."), NULL);

  cfg_emu_sp2_resid_fp = gtk_radio_button_new_with_label (emutype_group, _("reSID-FP-emulation"));
  emutype_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sp2_resid_fp));
  gtk_widget_set_name (cfg_emu_sp2_resid_fp, "cfg_emu_sp2_resid_fp");
  gtk_widget_ref (cfg_emu_sp2_resid_fp);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sp2_resid_fp", cfg_emu_sp2_resid_fp,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_sp2_resid_fp);
  gtk_box_pack_start (GTK_BOX (w_vbox30), cfg_emu_sp2_resid_fp, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_sp2_resid_fp, _("reSID-FP is the heaviest and most accurate software SID-chip simulator based on SID reverse-engineering, created by Dag Lem, Antti Lankila and others. It is probably the closest thing to real SID available as software-only emulation."), NULL);

  cfg_emu_sp2_resid = gtk_radio_button_new_with_label (emutype_group, _("reSID-emulation"));
  emutype_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sp2_resid));
  gtk_widget_set_name (cfg_emu_sp2_resid, "cfg_emu_sp2_resid");
  gtk_widget_ref (cfg_emu_sp2_resid);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sp2_resid", cfg_emu_sp2_resid,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_sp2_resid);
  gtk_box_pack_start (GTK_BOX (w_vbox30), cfg_emu_sp2_resid, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_sp2_resid, _("reSID is the software SID-chip simulator based on SID reverse-engineering, created by Dag Lem. It is probably the closest thing to real SID available as software-only emulation."), NULL);

  cfg_emu_sp2_hardsid = gtk_radio_button_new_with_label (emutype_group, _("HardSID"));
  emutype_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_sp2_hardsid));
  gtk_widget_set_name (cfg_emu_sp2_hardsid, "cfg_emu_sp2_hardsid");
  gtk_widget_ref (cfg_emu_sp2_hardsid);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_sp2_hardsid", cfg_emu_sp2_hardsid,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_sp2_hardsid);
  gtk_box_pack_start (GTK_BOX (w_vbox30), cfg_emu_sp2_hardsid, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_sp2_hardsid, _("HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a real SID-chip. Software can be used to control the HardSID and combined with software emulation of rest of C64 via libSIDPlay2 HardSID can be used to achieve \"near 100%\" similarity to real C64. For more information, see http://www.hardsid.com/"), NULL);

  cfg_resid_frame = gtk_frame_new (_("reSID sampling options:"));
  gtk_widget_set_name (cfg_resid_frame, "cfg_resid_frame");
  gtk_widget_ref (cfg_resid_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_resid_frame", cfg_resid_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_resid_frame);
  gtk_box_pack_start (GTK_BOX (w_vbox29), cfg_resid_frame, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_resid_frame), 4);

  w_vbox37 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox37, "w_vbox37");
  gtk_widget_ref (w_vbox37);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox37", w_vbox37,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox37);
  gtk_container_add (GTK_CONTAINER (cfg_resid_frame), w_vbox37);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox37), 2);

  cfg_emu_resid_fast = gtk_radio_button_new_with_label (samplingtype_group, _("Fast (nearest neighbour)"));
  samplingtype_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_resid_fast));
  gtk_widget_set_name (cfg_emu_resid_fast, "cfg_emu_resid_fast");
  gtk_widget_ref (cfg_emu_resid_fast);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_resid_fast", cfg_emu_resid_fast,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_resid_fast);
  gtk_box_pack_start (GTK_BOX (w_vbox37), cfg_emu_resid_fast, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_resid_fast, _("Fastest and also worst sounding sampling method, simply picks nearest neighbouring sample."), NULL);

  cfg_emu_resid_int = gtk_radio_button_new_with_label (samplingtype_group, _("Linear interpolation"));
  samplingtype_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_resid_int));
  gtk_widget_set_name (cfg_emu_resid_int, "cfg_emu_resid_int");
  gtk_widget_ref (cfg_emu_resid_int);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_resid_int", cfg_emu_resid_int,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_resid_int);
  gtk_box_pack_start (GTK_BOX (w_vbox37), cfg_emu_resid_int, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_resid_int, _("Uses linear interpolation between samples, yielding higher audio quality with less sampling noise."), NULL);

  cfg_emu_resid_res_fast = gtk_radio_button_new_with_label (samplingtype_group, _("Resampling"));
  samplingtype_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_resid_res_fast));
  gtk_widget_set_name (cfg_emu_resid_res_fast, "cfg_emu_resid_res_fast");
  gtk_widget_ref (cfg_emu_resid_res_fast);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_resid_res_fast", cfg_emu_resid_res_fast,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_resid_res_fast);
  gtk_box_pack_start (GTK_BOX (w_vbox37), cfg_emu_resid_res_fast, FALSE, FALSE, 0);

  cfg_emu_resid_res_int = gtk_radio_button_new_with_label (samplingtype_group, _("Resampling (FIR)"));
  samplingtype_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_emu_resid_res_int));
  gtk_widget_set_name (cfg_emu_resid_res_int, "cfg_emu_resid_res_int");
  gtk_widget_ref (cfg_emu_resid_res_int);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_resid_res_int", cfg_emu_resid_res_int,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_resid_res_int);
  gtk_box_pack_start (GTK_BOX (w_vbox37), cfg_emu_resid_res_int, FALSE, FALSE, 0);

  cfg_rom_frame = gtk_frame_new (_("C64 Kernal/Basic/Chargen ROMs:"));
  gtk_widget_set_name (cfg_rom_frame, "cfg_rom_frame");
  gtk_widget_ref (cfg_rom_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_frame", cfg_rom_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_rom_frame);
  gtk_box_pack_start (GTK_BOX (w_vbox29), cfg_rom_frame, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_rom_frame), 4);

  w_rom_hbox = gtk_hbox_new (FALSE, 4);
  gtk_widget_set_name (w_rom_hbox, "w_rom_hbox");
  gtk_widget_ref (w_rom_hbox);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_rom_hbox", w_rom_hbox,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_rom_hbox);
  gtk_container_add (GTK_CONTAINER (cfg_rom_frame), w_rom_hbox);
  gtk_container_set_border_width (GTK_CONTAINER (w_rom_hbox), 2);

  cfg_rom_label1 = gtk_label_new (_("Path:"));
  gtk_widget_set_name (cfg_rom_label1, "cfg_rom_label1");
  gtk_widget_ref (cfg_rom_label1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_label1", cfg_rom_label1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_rom_label1);
  gtk_box_pack_start (GTK_BOX (w_rom_hbox), cfg_rom_label1, FALSE, FALSE, 0);

  cfg_rom_path = gtk_entry_new ();
  gtk_widget_set_name (cfg_rom_path, "cfg_rom_path");
  gtk_widget_ref (cfg_rom_path);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_path", cfg_rom_path,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_rom_path);
  gtk_box_pack_start (GTK_BOX (w_rom_hbox), cfg_rom_path, TRUE, TRUE, 0);

  cfg_rom_browse = gtk_button_new_with_label (_("Browse"));
  gtk_widget_set_name (cfg_rom_browse, "cfg_rom_browse");
  gtk_widget_ref (cfg_rom_browse);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_browse", cfg_rom_browse,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_rom_browse);
  gtk_box_pack_start (GTK_BOX (w_rom_hbox), cfg_rom_browse, FALSE, FALSE, 0);

  w_label48 = gtk_label_new (_("Emu#2"));
  gtk_widget_set_name (w_label48, "w_label48");
  gtk_widget_ref (w_label48);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label48", w_label48,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label48);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 2), w_label48);

  w_vbox25 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox25, "w_vbox25");
  gtk_widget_ref (w_vbox25);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox25", w_vbox25,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox25);
  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox25);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox25), 4);

  cfg_emu_filters = gtk_check_button_new_with_label (_("Emulate filters"));
  gtk_widget_set_name (cfg_emu_filters, "cfg_emu_filters");
  gtk_widget_ref (cfg_emu_filters);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_emu_filters", cfg_emu_filters,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_emu_filters);
  gtk_box_pack_start (GTK_BOX (w_vbox25), cfg_emu_filters, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_emu_filters, _("This option enables emulation of SID filter. The filter is an essential part of SID's sound capacity, but accurate emulation of it may require quite much CPU power. However, if filter emulation is disabled, tunes won't sound authentic at all if they utilize the filter."), NULL);

  cfg_filters_notebook = gtk_notebook_new ();
  gtk_widget_set_name (cfg_filters_notebook, "cfg_filters_notebook");
  gtk_widget_ref (cfg_filters_notebook);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_filters_notebook", cfg_filters_notebook,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_filters_notebook);
  gtk_box_pack_start (GTK_BOX (w_vbox25), cfg_filters_notebook, TRUE, TRUE, 0);

  cfg_box_filter_sidplay1 = gtk_hbox_new (FALSE, 0);
  gtk_widget_set_name (cfg_box_filter_sidplay1, "cfg_box_filter_sidplay1");
  gtk_widget_ref (cfg_box_filter_sidplay1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_box_filter_sidplay1", cfg_box_filter_sidplay1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_box_filter_sidplay1);
  gtk_container_add (GTK_CONTAINER (cfg_filters_notebook), cfg_box_filter_sidplay1);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_box_filter_sidplay1), 4);

  cfg_sp1_frm_fs = gtk_frame_new (_("FS"));
  gtk_widget_set_name (cfg_sp1_frm_fs, "cfg_sp1_frm_fs");
  gtk_widget_ref (cfg_sp1_frm_fs);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp1_frm_fs", cfg_sp1_frm_fs,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp1_frm_fs);
  gtk_box_pack_start (GTK_BOX (cfg_box_filter_sidplay1), cfg_sp1_frm_fs, TRUE, TRUE, 0);
  gtk_widget_set_usize (cfg_sp1_frm_fs, 45, -2);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_sp1_frm_fs), 2);

  cfg_sp1_filter_fs = gtk_vscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 1000, 1, 100, 0)));
  gtk_widget_set_name (cfg_sp1_filter_fs, "cfg_sp1_filter_fs");
  gtk_widget_ref (cfg_sp1_filter_fs);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp1_filter_fs", cfg_sp1_filter_fs,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp1_filter_fs);
  gtk_container_add (GTK_CONTAINER (cfg_sp1_frm_fs), cfg_sp1_filter_fs);
  gtk_scale_set_digits (GTK_SCALE (cfg_sp1_filter_fs), 2);

  cfg_sp1_frm_fm = gtk_frame_new (_("FM"));
  gtk_widget_set_name (cfg_sp1_frm_fm, "cfg_sp1_frm_fm");
  gtk_widget_ref (cfg_sp1_frm_fm);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp1_frm_fm", cfg_sp1_frm_fm,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp1_frm_fm);
  gtk_box_pack_start (GTK_BOX (cfg_box_filter_sidplay1), cfg_sp1_frm_fm, TRUE, TRUE, 0);
  gtk_widget_set_usize (cfg_sp1_frm_fm, 45, -2);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_sp1_frm_fm), 2);

  cfg_sp1_filter_fm = gtk_vscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 10, 0)));
  gtk_widget_set_name (cfg_sp1_filter_fm, "cfg_sp1_filter_fm");
  gtk_widget_ref (cfg_sp1_filter_fm);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp1_filter_fm", cfg_sp1_filter_fm,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp1_filter_fm);
  gtk_container_add (GTK_CONTAINER (cfg_sp1_frm_fm), cfg_sp1_filter_fm);
  gtk_scale_set_digits (GTK_SCALE (cfg_sp1_filter_fm), 2);

  cfg_sp1_frm_ft = gtk_frame_new (_("FT"));
  gtk_widget_set_name (cfg_sp1_frm_ft, "cfg_sp1_frm_ft");
  gtk_widget_ref (cfg_sp1_frm_ft);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp1_frm_ft", cfg_sp1_frm_ft,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp1_frm_ft);
  gtk_box_pack_start (GTK_BOX (cfg_box_filter_sidplay1), cfg_sp1_frm_ft, TRUE, TRUE, 0);
  gtk_widget_set_usize (cfg_sp1_frm_ft, 45, -2);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_sp1_frm_ft), 2);

  cfg_sp1_filter_ft = gtk_vscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 1, 0.01, 0.1, 0)));
  gtk_widget_set_name (cfg_sp1_filter_ft, "cfg_sp1_filter_ft");
  gtk_widget_ref (cfg_sp1_filter_ft);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp1_filter_ft", cfg_sp1_filter_ft,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp1_filter_ft);
  gtk_container_add (GTK_CONTAINER (cfg_sp1_frm_ft), cfg_sp1_filter_ft);
  gtk_scale_set_digits (GTK_SCALE (cfg_sp1_filter_ft), 2);

  w_vbox17 = gtk_vbox_new (FALSE, 8);
  gtk_widget_set_name (w_vbox17, "w_vbox17");
  gtk_widget_ref (w_vbox17);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox17", w_vbox17,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox17);
  gtk_box_pack_start (GTK_BOX (cfg_box_filter_sidplay1), w_vbox17, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox17), 4);

  cfg_sp1_filter_reset = gtk_button_new_with_label (_("Reset values"));
  gtk_widget_set_name (cfg_sp1_filter_reset, "cfg_sp1_filter_reset");
  gtk_widget_ref (cfg_sp1_filter_reset);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp1_filter_reset", cfg_sp1_filter_reset,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp1_filter_reset);
  gtk_box_pack_start (GTK_BOX (w_vbox17), cfg_sp1_filter_reset, FALSE, FALSE, 0);

  w_label55 = gtk_label_new (_("SIDPlay1"));
  gtk_widget_set_name (w_label55, "w_label55");
  gtk_widget_ref (w_label55);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label55", w_label55,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label55);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_filters_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_filters_notebook), 0), w_label55);

  cfg_box_filter_sidplay2 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (cfg_box_filter_sidplay2, "cfg_box_filter_sidplay2");
  gtk_widget_ref (cfg_box_filter_sidplay2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_box_filter_sidplay2", cfg_box_filter_sidplay2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_box_filter_sidplay2);
  gtk_container_add (GTK_CONTAINER (cfg_filters_notebook), cfg_box_filter_sidplay2);

  cfg_sp_filter_controlbox = gtk_hbox_new (FALSE, 0);
  gtk_widget_set_name (cfg_sp_filter_controlbox, "cfg_sp_filter_controlbox");
  gtk_widget_ref (cfg_sp_filter_controlbox);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp_filter_controlbox", cfg_sp_filter_controlbox,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp_filter_controlbox);
  gtk_box_pack_start (GTK_BOX (cfg_box_filter_sidplay2), cfg_sp_filter_controlbox, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_sp_filter_controlbox), 2);

  cfg_sp2_filter_combo = gtk_combo_new ();
  gtk_widget_set_name (cfg_sp2_filter_combo, "cfg_sp2_filter_combo");
  gtk_widget_ref (cfg_sp2_filter_combo);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp2_filter_combo", cfg_sp2_filter_combo,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp2_filter_combo);
  gtk_box_pack_start (GTK_BOX (cfg_sp_filter_controlbox), cfg_sp2_filter_combo, TRUE, TRUE, 0);

  cfg_sp2_filter_combo_entry = GTK_COMBO (cfg_sp2_filter_combo)->entry;
  gtk_widget_set_name (cfg_sp2_filter_combo_entry, "cfg_sp2_filter_combo_entry");
  gtk_widget_ref (cfg_sp2_filter_combo_entry);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp2_filter_combo_entry", cfg_sp2_filter_combo_entry,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp2_filter_combo_entry);

  table3 = gtk_table_new (2, 3, TRUE);
  gtk_widget_set_name (table3, "table3");
  gtk_widget_ref (table3);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "table3", table3,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (table3);
  gtk_box_pack_start (GTK_BOX (cfg_sp_filter_controlbox), table3, FALSE, TRUE, 0);

  cfg_sp2_filter_export = gtk_button_new_with_label (_("Export"));
  gtk_widget_set_name (cfg_sp2_filter_export, "cfg_sp2_filter_export");
  gtk_widget_ref (cfg_sp2_filter_export);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp2_filter_export", cfg_sp2_filter_export,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp2_filter_export);
  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_export, 2, 3, 1, 2,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_export, GTK_CAN_DEFAULT);
  gtk_tooltips_set_tip (tooltips, cfg_sp2_filter_export, _("Export all filters into a INI-format file."), NULL);

  cfg_sp2_filter_load = gtk_button_new_with_label (_("<- Use"));
  gtk_widget_set_name (cfg_sp2_filter_load, "cfg_sp2_filter_load");
  gtk_widget_ref (cfg_sp2_filter_load);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp2_filter_load", cfg_sp2_filter_load,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp2_filter_load);
  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_load, 0, 1, 0, 1,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_load, GTK_CAN_DEFAULT);
  gtk_tooltips_set_tip (tooltips, cfg_sp2_filter_load, _("Load and use the selected filter."), NULL);

  cfg_sp2_filter_save = gtk_button_new_with_label (_("Save"));
  gtk_widget_set_name (cfg_sp2_filter_save, "cfg_sp2_filter_save");
  gtk_widget_ref (cfg_sp2_filter_save);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp2_filter_save", cfg_sp2_filter_save,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp2_filter_save);
  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_save, 1, 2, 0, 1,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_save, GTK_CAN_DEFAULT);
  gtk_tooltips_set_tip (tooltips, cfg_sp2_filter_save, _("Save the currently edited filter."), NULL);

  cfg_sp2_filter_import = gtk_button_new_with_label (_("Import"));
  gtk_widget_set_name (cfg_sp2_filter_import, "cfg_sp2_filter_import");
  gtk_widget_ref (cfg_sp2_filter_import);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp2_filter_import", cfg_sp2_filter_import,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp2_filter_import);
  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_import, 1, 2, 1, 2,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_import, GTK_CAN_DEFAULT);
  gtk_tooltips_set_tip (tooltips, cfg_sp2_filter_import, _("Import a INI-format filter definition file."), NULL);

  cfg_sp2_filter_delete = gtk_button_new_with_label (_("Delete"));
  gtk_widget_set_name (cfg_sp2_filter_delete, "cfg_sp2_filter_delete");
  gtk_widget_ref (cfg_sp2_filter_delete);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp2_filter_delete", cfg_sp2_filter_delete,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp2_filter_delete);
  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_delete, 2, 3, 0, 1,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_delete, GTK_CAN_DEFAULT);
  gtk_tooltips_set_tip (tooltips, cfg_sp2_filter_delete, _("Delete the selected filter."), NULL);

  cfg_sp2_filter_new = gtk_button_new_with_label (_("New"));
  gtk_widget_set_name (cfg_sp2_filter_new, "cfg_sp2_filter_new");
  gtk_widget_ref (cfg_sp2_filter_new);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp2_filter_new", cfg_sp2_filter_new,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp2_filter_new);
  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_new, 0, 1, 1, 2,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_new, GTK_CAN_DEFAULT);
  gtk_tooltips_set_tip (tooltips, cfg_sp2_filter_new, _("Create a new filter."), NULL);

  cfg_sp2_filter_frame = gtk_frame_new (_("Filter:"));
  gtk_widget_set_name (cfg_sp2_filter_frame, "cfg_sp2_filter_frame");
  gtk_widget_ref (cfg_sp2_filter_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sp2_filter_frame", cfg_sp2_filter_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sp2_filter_frame);
  gtk_box_pack_start (GTK_BOX (cfg_box_filter_sidplay2), cfg_sp2_filter_frame, TRUE, TRUE, 0);
  gtk_widget_set_usize (cfg_sp2_filter_frame, -2, 250);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_sp2_filter_frame), 2);

  w_label56 = gtk_label_new (_("SIDPlay2"));
  gtk_widget_set_name (w_label56, "w_label56");
  gtk_widget_ref (w_label56);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label56", w_label56,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label56);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_filters_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_filters_notebook), 1), w_label56);

  w_label24 = gtk_label_new (_("Filters"));
  gtk_widget_set_name (w_label24, "w_label24");
  gtk_widget_ref (w_label24);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label24", w_label24,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label24);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 3), w_label24);

  w_vbox20 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (w_vbox20, "w_vbox20");
  gtk_widget_ref (w_vbox20);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox20", w_vbox20,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox20);
  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox20);

  w_frame29 = gtk_frame_new (_("Minimum playtime:"));
  gtk_widget_set_name (w_frame29, "w_frame29");
  gtk_widget_ref (w_frame29);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_frame29", w_frame29,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame29);
  gtk_box_pack_start (GTK_BOX (w_vbox20), w_frame29, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame29), 4);

  w_vbox32 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox32, "w_vbox32");
  gtk_widget_ref (w_vbox32);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox32", w_vbox32,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox32);
  gtk_container_add (GTK_CONTAINER (w_frame29), w_vbox32);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox32), 2);

  cfg_mintime_enable = gtk_check_button_new_with_label (_("Play at least for specified time"));
  gtk_widget_set_name (cfg_mintime_enable, "cfg_mintime_enable");
  gtk_widget_ref (cfg_mintime_enable);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_mintime_enable", cfg_mintime_enable,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_mintime_enable);
  gtk_box_pack_start (GTK_BOX (w_vbox32), cfg_mintime_enable, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_mintime_enable, _("If enabled, the tune is played at least for the specified time, adding silence to the end if necessary."), NULL);

  cfg_mintime_box = gtk_hbox_new (FALSE, 2);
  gtk_widget_set_name (cfg_mintime_box, "cfg_mintime_box");
  gtk_widget_ref (cfg_mintime_box);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_mintime_box", cfg_mintime_box,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_mintime_box);
  gtk_box_pack_start (GTK_BOX (w_vbox32), cfg_mintime_box, FALSE, TRUE, 2);

  cfg_mintime_label1 = gtk_label_new (_("Playtime:"));
  gtk_widget_set_name (cfg_mintime_label1, "cfg_mintime_label1");
  gtk_widget_ref (cfg_mintime_label1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_mintime_label1", cfg_mintime_label1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_mintime_label1);
  gtk_box_pack_start (GTK_BOX (cfg_mintime_box), cfg_mintime_label1, FALSE, FALSE, 0);
  gtk_misc_set_alignment (GTK_MISC (cfg_mintime_label1), 0, 0.5);

  cfg_mintime_adj = gtk_adjustment_new (15, 1, 32767, 1, 60, 60);
  cfg_mintime = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_mintime_adj), 1, 0);
  gtk_widget_set_name (cfg_mintime, "cfg_mintime");
  gtk_widget_ref (cfg_mintime);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_mintime", cfg_mintime,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_mintime);
  gtk_box_pack_start (GTK_BOX (cfg_mintime_box), cfg_mintime, FALSE, TRUE, 0);

  cfg_mintime_label2 = gtk_label_new (_("seconds"));
  gtk_widget_set_name (cfg_mintime_label2, "cfg_mintime_label2");
  gtk_widget_ref (cfg_mintime_label2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_mintime_label2", cfg_mintime_label2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_mintime_label2);
  gtk_box_pack_start (GTK_BOX (cfg_mintime_box), cfg_mintime_label2, FALSE, FALSE, 0);
  gtk_misc_set_alignment (GTK_MISC (cfg_mintime_label2), 0, 0.5);

  w_frame21 = gtk_frame_new (_("Maximum playtime:"));
  gtk_widget_set_name (w_frame21, "w_frame21");
  gtk_widget_ref (w_frame21);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_frame21", w_frame21,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame21);
  gtk_box_pack_start (GTK_BOX (w_vbox20), w_frame21, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame21), 4);

  w_vbox21 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox21, "w_vbox21");
  gtk_widget_ref (w_vbox21);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox21", w_vbox21,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox21);
  gtk_container_add (GTK_CONTAINER (w_frame21), w_vbox21);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox21), 2);

  cfg_maxtime_enable = gtk_check_button_new_with_label (_("Play for specified time maximum"));
  gtk_widget_set_name (cfg_maxtime_enable, "cfg_maxtime_enable");
  gtk_widget_ref (cfg_maxtime_enable);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime_enable", cfg_maxtime_enable,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_maxtime_enable);
  gtk_box_pack_start (GTK_BOX (w_vbox21), cfg_maxtime_enable, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_maxtime_enable, _("If enabled, tune is played until specified duration is reached (aka maximum playtime)."), NULL);

  cfg_maxtime_unknown = gtk_check_button_new_with_label (_("Only when song length is unknown"));
  gtk_widget_set_name (cfg_maxtime_unknown, "cfg_maxtime_unknown");
  gtk_widget_ref (cfg_maxtime_unknown);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime_unknown", cfg_maxtime_unknown,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_maxtime_unknown);
  gtk_box_pack_start (GTK_BOX (w_vbox21), cfg_maxtime_unknown, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_maxtime_unknown, _("If enabled, the maximum playtime is applied only if song/tune length is not known."), NULL);

  cfg_maxtime_box = gtk_hbox_new (FALSE, 2);
  gtk_widget_set_name (cfg_maxtime_box, "cfg_maxtime_box");
  gtk_widget_ref (cfg_maxtime_box);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime_box", cfg_maxtime_box,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_maxtime_box);
  gtk_box_pack_start (GTK_BOX (w_vbox21), cfg_maxtime_box, FALSE, TRUE, 2);

  cfg_maxtime_label1 = gtk_label_new (_("Playtime:"));
  gtk_widget_set_name (cfg_maxtime_label1, "cfg_maxtime_label1");
  gtk_widget_ref (cfg_maxtime_label1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime_label1", cfg_maxtime_label1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_maxtime_label1);
  gtk_box_pack_start (GTK_BOX (cfg_maxtime_box), cfg_maxtime_label1, FALSE, FALSE, 0);
  gtk_misc_set_alignment (GTK_MISC (cfg_maxtime_label1), 0, 0.5);

  cfg_maxtime_adj = gtk_adjustment_new (150, 1, 32767, 1, 60, 60);
  cfg_maxtime = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_maxtime_adj), 1, 0);
  gtk_widget_set_name (cfg_maxtime, "cfg_maxtime");
  gtk_widget_ref (cfg_maxtime);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime", cfg_maxtime,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_maxtime);
  gtk_box_pack_start (GTK_BOX (cfg_maxtime_box), cfg_maxtime, FALSE, TRUE, 0);

  cfg_maxtime_label2 = gtk_label_new (_("seconds"));
  gtk_widget_set_name (cfg_maxtime_label2, "cfg_maxtime_label2");
  gtk_widget_ref (cfg_maxtime_label2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_maxtime_label2", cfg_maxtime_label2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_maxtime_label2);
  gtk_box_pack_start (GTK_BOX (cfg_maxtime_box), cfg_maxtime_label2, FALSE, FALSE, 0);
  gtk_misc_set_alignment (GTK_MISC (cfg_maxtime_label2), 0, 0.5);

  w_frame18 = gtk_frame_new (_("Song length database:"));
  gtk_widget_set_name (w_frame18, "w_frame18");
  gtk_widget_ref (w_frame18);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_frame18", w_frame18,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame18);
  gtk_box_pack_start (GTK_BOX (w_vbox20), w_frame18, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame18), 4);

  w_vbox18 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox18, "w_vbox18");
  gtk_widget_ref (w_vbox18);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox18", w_vbox18,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox18);
  gtk_container_add (GTK_CONTAINER (w_frame18), w_vbox18);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox18), 2);

  cfg_sld_enable = gtk_check_button_new_with_label (_("Use XSIDPLAY-compatible database"));
  gtk_widget_set_name (cfg_sld_enable, "cfg_sld_enable");
  gtk_widget_ref (cfg_sld_enable);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sld_enable", cfg_sld_enable,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sld_enable);
  gtk_box_pack_start (GTK_BOX (w_vbox18), cfg_sld_enable, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_sld_enable, _("This option enables using of XSIDPLAY compatible song length database. (Refer to XMMS-SID documentation for more information)"), NULL);

  cfg_sld_box = gtk_hbox_new (FALSE, 4);
  gtk_widget_set_name (cfg_sld_box, "cfg_sld_box");
  gtk_widget_ref (cfg_sld_box);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sld_box", cfg_sld_box,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sld_box);
  gtk_box_pack_start (GTK_BOX (w_vbox18), cfg_sld_box, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (cfg_sld_box), 2);

  cfg_sld_label1 = gtk_label_new (_("DB-file:"));
  gtk_widget_set_name (cfg_sld_label1, "cfg_sld_label1");
  gtk_widget_ref (cfg_sld_label1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sld_label1", cfg_sld_label1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sld_label1);
  gtk_box_pack_start (GTK_BOX (cfg_sld_box), cfg_sld_label1, FALSE, TRUE, 0);

  cfg_sld_dbpath = gtk_entry_new ();
  gtk_widget_set_name (cfg_sld_dbpath, "cfg_sld_dbpath");
  gtk_widget_ref (cfg_sld_dbpath);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sld_dbpath", cfg_sld_dbpath,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sld_dbpath);
  gtk_box_pack_start (GTK_BOX (cfg_sld_box), cfg_sld_dbpath, TRUE, TRUE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_sld_dbpath, _("Database path and filename"), NULL);

  cfg_sld_dbbrowse = gtk_button_new_with_label (_("Browse"));
  gtk_widget_set_name (cfg_sld_dbbrowse, "cfg_sld_dbbrowse");
  gtk_widget_ref (cfg_sld_dbbrowse);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_sld_dbbrowse", cfg_sld_dbbrowse,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_sld_dbbrowse);
  gtk_box_pack_start (GTK_BOX (cfg_sld_box), cfg_sld_dbbrowse, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_sld_dbbrowse, _("Browse for song length-database file"), NULL);

  w_label26 = gtk_label_new (_("Songlength"));
  gtk_widget_set_name (w_label26, "w_label26");
  gtk_widget_ref (w_label26);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label26", w_label26,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label26);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 4), w_label26);

  w_vbox33 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (w_vbox33, "w_vbox33");
  gtk_widget_ref (w_vbox33);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox33", w_vbox33,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox33);
  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox33);

  w_frame7 = gtk_frame_new (_("SID Tune Information List (STIL) database:"));
  gtk_widget_set_name (w_frame7, "w_frame7");
  gtk_widget_ref (w_frame7);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_frame7", w_frame7,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame7);
  gtk_box_pack_start (GTK_BOX (w_vbox33), w_frame7, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame7), 4);

  w_vbox8 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox8, "w_vbox8");
  gtk_widget_ref (w_vbox8);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox8", w_vbox8,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox8);
  gtk_container_add (GTK_CONTAINER (w_frame7), w_vbox8);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox8), 2);

  cfg_stil_enable = gtk_check_button_new_with_label (_("Use STIL database"));
  gtk_widget_set_name (cfg_stil_enable, "cfg_stil_enable");
  gtk_widget_ref (cfg_stil_enable);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_enable", cfg_stil_enable,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_stil_enable);
  gtk_box_pack_start (GTK_BOX (w_vbox8), cfg_stil_enable, TRUE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_stil_enable, _("If this option is enabled (and the database & HVSC settings below are correctly set), XMMS-SID will use and display additional information from STIL database when HVSC SIDs are played."), NULL);

  cfg_stil_box1 = gtk_hbox_new (FALSE, 0);
  gtk_widget_set_name (cfg_stil_box1, "cfg_stil_box1");
  gtk_widget_ref (cfg_stil_box1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_box1", cfg_stil_box1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_stil_box1);
  gtk_box_pack_start (GTK_BOX (w_vbox8), cfg_stil_box1, TRUE, TRUE, 0);

  cfg_stil_label1 = gtk_label_new (_("STIL file:"));
  gtk_widget_set_name (cfg_stil_label1, "cfg_stil_label1");
  gtk_widget_ref (cfg_stil_label1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_label1", cfg_stil_label1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_stil_label1);
  gtk_box_pack_start (GTK_BOX (cfg_stil_box1), cfg_stil_label1, FALSE, FALSE, 0);
  gtk_misc_set_padding (GTK_MISC (cfg_stil_label1), 4, 0);

  w_alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);
  gtk_widget_set_name (w_alignment2, "w_alignment2");
  gtk_widget_ref (w_alignment2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_alignment2", w_alignment2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_alignment2);
  gtk_box_pack_start (GTK_BOX (cfg_stil_box1), w_alignment2, TRUE, TRUE, 4);

  cfg_stil_dbpath = gtk_entry_new ();
  gtk_widget_set_name (cfg_stil_dbpath, "cfg_stil_dbpath");
  gtk_widget_ref (cfg_stil_dbpath);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_dbpath", cfg_stil_dbpath,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_stil_dbpath);
  gtk_container_add (GTK_CONTAINER (w_alignment2), cfg_stil_dbpath);
  gtk_tooltips_set_tip (tooltips, cfg_stil_dbpath, _("Path and filename of STIL database file (STIL.txt), usually found from HVSC's DOCUMENTS-subdirectory."), NULL);

  w_alignment1 = gtk_alignment_new (0.5, 0.5, 1, 0.300001);
  gtk_widget_set_name (w_alignment1, "w_alignment1");
  gtk_widget_ref (w_alignment1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_alignment1", w_alignment1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_alignment1);
  gtk_box_pack_end (GTK_BOX (cfg_stil_box1), w_alignment1, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_alignment1), 4);

  cfg_stil_browse = gtk_button_new_with_label (_("Browse"));
  gtk_widget_set_name (cfg_stil_browse, "cfg_stil_browse");
  gtk_widget_ref (cfg_stil_browse);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_browse", cfg_stil_browse,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_stil_browse);
  gtk_container_add (GTK_CONTAINER (w_alignment1), cfg_stil_browse);
  gtk_tooltips_set_tip (tooltips, cfg_stil_browse, _("Browse for STIL-database file"), NULL);

  cfg_stil_box2 = gtk_hbox_new (FALSE, 0);
  gtk_widget_set_name (cfg_stil_box2, "cfg_stil_box2");
  gtk_widget_ref (cfg_stil_box2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_stil_box2", cfg_stil_box2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_stil_box2);
  gtk_box_pack_start (GTK_BOX (w_vbox8), cfg_stil_box2, TRUE, TRUE, 0);

  cfg_hvsc_label1 = gtk_label_new (_("HVSC path:"));
  gtk_widget_set_name (cfg_hvsc_label1, "cfg_hvsc_label1");
  gtk_widget_ref (cfg_hvsc_label1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_hvsc_label1", cfg_hvsc_label1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_hvsc_label1);
  gtk_box_pack_start (GTK_BOX (cfg_stil_box2), cfg_hvsc_label1, FALSE, FALSE, 0);
  gtk_misc_set_padding (GTK_MISC (cfg_hvsc_label1), 4, 0);

  w_alignment6 = gtk_alignment_new (0.5, 0.5, 1, 1);
  gtk_widget_set_name (w_alignment6, "w_alignment6");
  gtk_widget_ref (w_alignment6);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_alignment6", w_alignment6,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_alignment6);
  gtk_box_pack_start (GTK_BOX (cfg_stil_box2), w_alignment6, TRUE, TRUE, 4);

  cfg_hvsc_path = gtk_entry_new ();
  gtk_widget_set_name (cfg_hvsc_path, "cfg_hvsc_path");
  gtk_widget_ref (cfg_hvsc_path);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_hvsc_path", cfg_hvsc_path,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_hvsc_path);
  gtk_container_add (GTK_CONTAINER (w_alignment6), cfg_hvsc_path);
  gtk_tooltips_set_tip (tooltips, cfg_hvsc_path, _("Path to base-directory of your High Voltage SID Collection (HVSC), for example /media/C64Music/"), NULL);

  w_alignment7 = gtk_alignment_new (0.5, 0.5, 1, 0.300001);
  gtk_widget_set_name (w_alignment7, "w_alignment7");
  gtk_widget_ref (w_alignment7);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_alignment7", w_alignment7,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_alignment7);
  gtk_box_pack_end (GTK_BOX (cfg_stil_box2), w_alignment7, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_alignment7), 4);

  cfg_hvsc_browse = gtk_button_new_with_label (_("Browse"));
  gtk_widget_set_name (cfg_hvsc_browse, "cfg_hvsc_browse");
  gtk_widget_ref (cfg_hvsc_browse);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_hvsc_browse", cfg_hvsc_browse,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_hvsc_browse);
  gtk_container_add (GTK_CONTAINER (w_alignment7), cfg_hvsc_browse);
  gtk_tooltips_set_tip (tooltips, cfg_hvsc_browse, _("Browse for HVSC path"), NULL);

  w_frame16 = gtk_frame_new (_("Song name/title format:"));
  gtk_widget_set_name (w_frame16, "w_frame16");
  gtk_widget_ref (w_frame16);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_frame16", w_frame16,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame16);
  gtk_box_pack_start (GTK_BOX (w_vbox33), w_frame16, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame16), 4);

  vbox1 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (vbox1, "vbox1");
  gtk_widget_ref (vbox1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "vbox1", vbox1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (vbox1);
  gtk_container_add (GTK_CONTAINER (w_frame16), vbox1);
  gtk_container_set_border_width (GTK_CONTAINER (vbox1), 2);

  cfg_ftitle_override = gtk_check_button_new_with_label (_("Override generic XMMS titles"));
  gtk_widget_set_name (cfg_ftitle_override, "cfg_ftitle_override");
  gtk_widget_ref (cfg_ftitle_override);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_override", cfg_ftitle_override,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_ftitle_override);
  gtk_box_pack_start (GTK_BOX (vbox1), cfg_ftitle_override, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_ftitle_override, _("XMMS v1.2.5 and later support generic titlestring formatting (see XMMS preferences). This option can be enabled to override those generic titles with XMMS-SID specific ones. Formatting mnemonics are explained briefly below."), NULL);

  cfg_ftitle_box = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (cfg_ftitle_box, "cfg_ftitle_box");
  gtk_widget_ref (cfg_ftitle_box);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_box", cfg_ftitle_box,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_ftitle_box);
  gtk_box_pack_start (GTK_BOX (vbox1), cfg_ftitle_box, TRUE, TRUE, 0);

  cfg_ftitle_format = gtk_entry_new ();
  gtk_widget_set_name (cfg_ftitle_format, "cfg_ftitle_format");
  gtk_widget_ref (cfg_ftitle_format);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_format", cfg_ftitle_format,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_ftitle_format);
  gtk_box_pack_start (GTK_BOX (cfg_ftitle_box), cfg_ftitle_format, FALSE, FALSE, 2);

  w_hbox9 = gtk_hbox_new (TRUE, 0);
  gtk_widget_set_name (w_hbox9, "w_hbox9");
  gtk_widget_ref (w_hbox9);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_hbox9", w_hbox9,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_hbox9);
  gtk_box_pack_start (GTK_BOX (cfg_ftitle_box), w_hbox9, FALSE, FALSE, 2);

  cfg_ftitle_desc1 = gtk_label_new (_("%% - '%' character\n%p - Performer/composer\n%t - Song name (title)\n%c - Copyright\n%s - File type\n%m - SID model"));
  gtk_widget_set_name (cfg_ftitle_desc1, "cfg_ftitle_desc1");
  gtk_widget_ref (cfg_ftitle_desc1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_desc1", cfg_ftitle_desc1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_ftitle_desc1);
  gtk_box_pack_start (GTK_BOX (w_hbox9), cfg_ftitle_desc1, FALSE, FALSE, 0);
  gtk_label_set_justify (GTK_LABEL (cfg_ftitle_desc1), GTK_JUSTIFY_LEFT);
  gtk_misc_set_alignment (GTK_MISC (cfg_ftitle_desc1), 0.04, 0.5);

  cfg_ftitle_desc2 = gtk_label_new (_("%C - Speed/clock (PAL/NTSC)\n%n - Subtune\n%N - Number of subtunes\n%f - Filename\n%F - File path\n%e - File extension"));
  gtk_widget_set_name (cfg_ftitle_desc2, "cfg_ftitle_desc2");
  gtk_widget_ref (cfg_ftitle_desc2);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ftitle_desc2", cfg_ftitle_desc2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_ftitle_desc2);
  gtk_box_pack_start (GTK_BOX (w_hbox9), cfg_ftitle_desc2, FALSE, FALSE, 0);
  gtk_label_set_justify (GTK_LABEL (cfg_ftitle_desc2), GTK_JUSTIFY_LEFT);
  gtk_misc_set_alignment (GTK_MISC (cfg_ftitle_desc2), 0.04, 0.5);

  w_label23 = gtk_label_new (_("Title"));
  gtk_widget_set_name (w_label23, "w_label23");
  gtk_widget_ref (w_label23);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label23", w_label23,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label23);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 5), w_label23);

  w_vbox19 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (w_vbox19, "w_vbox19");
  gtk_widget_ref (w_vbox19);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox19", w_vbox19,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox19);
  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox19);

  w_frame28 = gtk_frame_new (_("Sub-tune control:"));
  gtk_widget_set_name (w_frame28, "w_frame28");
  gtk_widget_ref (w_frame28);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_frame28", w_frame28,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame28);
  gtk_box_pack_start (GTK_BOX (w_vbox19), w_frame28, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame28), 4);

  w_vbox31 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox31, "w_vbox31");
  gtk_widget_ref (w_vbox31);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox31", w_vbox31,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox31);
  gtk_container_add (GTK_CONTAINER (w_frame28), w_vbox31);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox31), 2);

  cfg_subctrl_none = gtk_radio_button_new_with_label (subtune_group, _("Disabled"));
  subtune_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_subctrl_none));
  gtk_widget_set_name (cfg_subctrl_none, "cfg_subctrl_none");
  gtk_widget_ref (cfg_subctrl_none);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subctrl_none", cfg_subctrl_none,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_subctrl_none);
  gtk_box_pack_start (GTK_BOX (w_vbox31), cfg_subctrl_none, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_subctrl_none, _("No sub-tune control."), NULL);

  cfg_subctrl_seek = gtk_radio_button_new_with_label (subtune_group, _("Seek back/forward changes sub-tune"));
  subtune_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_subctrl_seek));
  gtk_widget_set_name (cfg_subctrl_seek, "cfg_subctrl_seek");
  gtk_widget_ref (cfg_subctrl_seek);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subctrl_seek", cfg_subctrl_seek,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_subctrl_seek);
  gtk_box_pack_start (GTK_BOX (w_vbox31), cfg_subctrl_seek, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_subctrl_seek, _("Seeking backwards/forwards selects previous/next sub-tune, similar to selector used in XMMS-SidPlay."), NULL);

  cfg_subctrl_popup = gtk_radio_button_new_with_label (subtune_group, _("Pop-up via seekbar (UADE-style)"));
  subtune_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_subctrl_popup));
  gtk_widget_set_name (cfg_subctrl_popup, "cfg_subctrl_popup");
  gtk_widget_ref (cfg_subctrl_popup);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subctrl_popup", cfg_subctrl_popup,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_subctrl_popup);
  gtk_box_pack_start (GTK_BOX (w_vbox31), cfg_subctrl_popup, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_subctrl_popup, _("By pressing the seekbar a sub-tune control window pops up, in style of UADE (Unix Amiga Delitracker Emulator)"), NULL);

  cfg_subctrl_patch = gtk_radio_button_new_with_label (subtune_group, _("Song-position patch"));
  subtune_group = gtk_radio_button_group (GTK_RADIO_BUTTON (cfg_subctrl_patch));
  gtk_widget_set_name (cfg_subctrl_patch, "cfg_subctrl_patch");
  gtk_widget_ref (cfg_subctrl_patch);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subctrl_patch", cfg_subctrl_patch,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_subctrl_patch);
  gtk_box_pack_start (GTK_BOX (w_vbox31), cfg_subctrl_patch, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_subctrl_patch, _("Seekbar works as a sub-tune selector (Best option if you have patched your XMMS with the song-position patch.)"), NULL);

  w_frame31 = gtk_frame_new (_("Automatic sub-tune changes:"));
  gtk_widget_set_name (w_frame31, "w_frame31");
  gtk_widget_ref (w_frame31);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_frame31", w_frame31,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame31);
  gtk_box_pack_start (GTK_BOX (w_vbox19), w_frame31, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame31), 4);

  w_vbox35 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox35, "w_vbox35");
  gtk_widget_ref (w_vbox35);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox35", w_vbox35,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox35);
  gtk_container_add (GTK_CONTAINER (w_frame31), w_vbox35);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox35), 2);

  cfg_subauto_enable = gtk_check_button_new_with_label (_("Go through all sub-tunes in file"));
  gtk_widget_set_name (cfg_subauto_enable, "cfg_subauto_enable");
  gtk_widget_ref (cfg_subauto_enable);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subauto_enable", cfg_subauto_enable,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_subauto_enable);
  gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_enable, FALSE, FALSE, 0);

  cfg_subauto_min_only = gtk_check_button_new_with_label (_("Only tunes with specified minimum length "));
  gtk_widget_set_name (cfg_subauto_min_only, "cfg_subauto_min_only");
  gtk_widget_ref (cfg_subauto_min_only);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subauto_min_only", cfg_subauto_min_only,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_subauto_min_only);
  gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_min_only, FALSE, FALSE, 0);

  cfg_subauto_box = gtk_hbox_new (FALSE, 2);
  gtk_widget_set_name (cfg_subauto_box, "cfg_subauto_box");
  gtk_widget_ref (cfg_subauto_box);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subauto_box", cfg_subauto_box,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_subauto_box);
  gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_box, TRUE, TRUE, 0);

  w_label52 = gtk_label_new (_("Playtime:"));
  gtk_widget_set_name (w_label52, "w_label52");
  gtk_widget_ref (w_label52);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label52", w_label52,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label52);
  gtk_box_pack_start (GTK_BOX (cfg_subauto_box), w_label52, FALSE, FALSE, 0);
  gtk_misc_set_alignment (GTK_MISC (w_label52), 0, 0.5);

  cfg_subauto_mintime_adj = gtk_adjustment_new (15, 1, 32767, 1, 60, 60);
  cfg_subauto_mintime = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_subauto_mintime_adj), 1, 0);
  gtk_widget_set_name (cfg_subauto_mintime, "cfg_subauto_mintime");
  gtk_widget_ref (cfg_subauto_mintime);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_subauto_mintime", cfg_subauto_mintime,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_subauto_mintime);
  gtk_box_pack_start (GTK_BOX (cfg_subauto_box), cfg_subauto_mintime, FALSE, TRUE, 0);

  w_label53 = gtk_label_new (_("seconds"));
  gtk_widget_set_name (w_label53, "w_label53");
  gtk_widget_ref (w_label53);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label53", w_label53,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label53);
  gtk_box_pack_start (GTK_BOX (cfg_subauto_box), w_label53, FALSE, FALSE, 0);
  gtk_misc_set_alignment (GTK_MISC (w_label53), 0, 0.5);

  w_frame22 = gtk_frame_new (_("Miscellaneous options:"));
  gtk_widget_set_name (w_frame22, "w_frame22");
  gtk_widget_ref (w_frame22);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_frame22", w_frame22,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame22);
  gtk_box_pack_start (GTK_BOX (w_vbox19), w_frame22, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame22), 4);

  w_vbox22 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (w_vbox22, "w_vbox22");
  gtk_widget_ref (w_vbox22);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_vbox22", w_vbox22,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox22);
  gtk_container_add (GTK_CONTAINER (w_frame22), w_vbox22);
  gtk_container_set_border_width (GTK_CONTAINER (w_vbox22), 2);

  cfg_detectmagic = gtk_check_button_new_with_label (_("Detect file by contents (slower)"));
  gtk_widget_set_name (cfg_detectmagic, "cfg_detectmagic");
  gtk_widget_ref (cfg_detectmagic);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_detectmagic", cfg_detectmagic,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_detectmagic);
  gtk_box_pack_start (GTK_BOX (w_vbox22), cfg_detectmagic, FALSE, FALSE, 0);
  gtk_tooltips_set_tip (tooltips, cfg_detectmagic, _("Determine if file is a SID-tune by checking the file contents. If NOT selected, filetype is determined by checking filename extension (.sid, .dat, ...)"), NULL);

  w_label3 = gtk_label_new (_("Misc"));
  gtk_widget_set_name (w_label3, "w_label3");
  gtk_widget_ref (w_label3);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_label3", w_label3,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label3);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 6), w_label3);

  hbuttonbox1 = gtk_hbutton_box_new ();
  gtk_widget_set_name (hbuttonbox1, "hbuttonbox1");
  gtk_widget_ref (hbuttonbox1);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "hbuttonbox1", hbuttonbox1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (hbuttonbox1);
  gtk_box_pack_end (GTK_BOX (w_vbox1), hbuttonbox1, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox1), 4);
  gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END);
  gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox1), 0);
  gtk_button_box_set_child_size (GTK_BUTTON_BOX (hbuttonbox1), 85, 30);

  cfg_ok = gtk_button_new_with_label (_("OK"));
  gtk_widget_set_name (cfg_ok, "cfg_ok");
  gtk_widget_ref (cfg_ok);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_ok", cfg_ok,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_ok);
  gtk_container_add (GTK_CONTAINER (hbuttonbox1), cfg_ok);
  GTK_WIDGET_SET_FLAGS (cfg_ok, GTK_CAN_DEFAULT);
  gtk_tooltips_set_tip (tooltips, cfg_ok, _("Accept and update changes"), NULL);

  cfg_cancel = gtk_button_new_with_label (_("Cancel"));
  gtk_widget_set_name (cfg_cancel, "cfg_cancel");
  gtk_widget_ref (cfg_cancel);
  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_cancel", cfg_cancel,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (cfg_cancel);
  gtk_container_add (GTK_CONTAINER (hbuttonbox1), cfg_cancel);
  GTK_WIDGET_SET_FLAGS (cfg_cancel, GTK_CAN_DEFAULT);
  gtk_tooltips_set_tip (tooltips, cfg_cancel, _("Cancel any changes"), NULL);

  gtk_signal_connect (GTK_OBJECT (xs_configwin), "delete_event",
                      GTK_SIGNAL_FUNC (xs_configwin_delete),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_emu_sidplay1), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_emu_sidplay1_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_emu_sidplay2), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_emu_sidplay2_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_emu_sidplayfp), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_emu_sidplay2_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_rom_browse), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_rom_browse),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_emu_filters), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_emu_filters_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_sp1_filter_reset), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_sp1_filter_reset),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_sp2_filter_export), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_sp2_filter_export),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_sp2_filter_load), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_sp2_filter_load),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_sp2_filter_save), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_sp2_filter_save),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_sp2_filter_import), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_sp2_filter_import),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_sp2_filter_delete), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_sp2_filter_delete),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_sp2_filter_new), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_sp2_filter_new),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_mintime_enable), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_mintime_enable_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_mintime), "changed",
                      GTK_SIGNAL_FUNC (xs_cfg_mintime_changed),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_maxtime_enable), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_maxtime_enable_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_maxtime), "changed",
                      GTK_SIGNAL_FUNC (xs_cfg_maxtime_changed),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_sld_enable), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_sldb_enable_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_sld_dbbrowse), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_sldb_browse),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_stil_enable), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_stil_enable_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_stil_browse), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_stil_browse),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_hvsc_browse), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_hvsc_browse),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_ftitle_override), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_ftitle_override_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_subauto_enable), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_subauto_enable_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_subauto_min_only), "toggled",
                      GTK_SIGNAL_FUNC (xs_cfg_subauto_min_only_toggled),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_ok), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_ok),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cfg_cancel), "clicked",
                      GTK_SIGNAL_FUNC (xs_cfg_cancel),
                      NULL);

  gtk_object_set_data (GTK_OBJECT (xs_configwin), "tooltips", tooltips);

  return xs_configwin;
}

GtkWidget*
create_xs_fileinfowin (void)
{
  GtkWidget *xs_fileinfowin;
  GtkWidget *w_vbox14;
  GtkWidget *w_alignment8;
  GtkWidget *w_frame30;
  GtkWidget *w_hbox19;
  GtkWidget *fileinfo_subctrl_prev;
  GtkWidget *fileinfo_subctrl_adj;
  GtkWidget *fileinfo_subctrl_next;
  GtkWidget *w_frame14;
  GtkWidget *table1;
  GtkWidget *w_label16;
  GtkWidget *w_label17;
  GtkWidget *w_label18;
  GtkWidget *w_label19;
  GtkWidget *fileinfo_filename;
  GtkWidget *fileinfo_songname;
  GtkWidget *fileinfo_composer;
  GtkWidget *fileinfo_copyright;
  GtkWidget *w_frame15;
  GtkWidget *w_vbox15;
  GtkWidget *fileinfo_sub_tune;
  GtkWidget *fileinfo_sub_tune_menu;
  GtkWidget *glade_menuitem;
  GtkWidget *table2;
  GtkWidget *w_label41;
  GtkWidget *fileinfo_sub_author;
  GtkWidget *w_label50;
  GtkWidget *fileinfo_sub_name;
  GtkWidget *w_label51;
  GtkWidget *entry1;
  GtkWidget *scrolledwindow2;
  GtkWidget *fileinfo_sub_info;
  GtkWidget *button2;

  xs_fileinfowin = gtk_window_new (GTK_WINDOW_DIALOG);
  gtk_widget_set_name (xs_fileinfowin, "xs_fileinfowin");
  gtk_object_set_data (GTK_OBJECT (xs_fileinfowin), "xs_fileinfowin", xs_fileinfowin);
  gtk_widget_set_usize (xs_fileinfowin, 400, -2);
  gtk_window_set_title (GTK_WINDOW (xs_fileinfowin), _("XMMS-SID Fileinfo"));
  gtk_window_set_position (GTK_WINDOW (xs_fileinfowin), GTK_WIN_POS_MOUSE);

  w_vbox14 = gtk_vbox_new (FALSE, 0);
  gtk_widget_set_name (w_vbox14, "w_vbox14");
  gtk_widget_ref (w_vbox14);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_vbox14", w_vbox14,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox14);
  gtk_container_add (GTK_CONTAINER (xs_fileinfowin), w_vbox14);

  w_alignment8 = gtk_alignment_new (0.5, 0.5, 0.1, 1);
  gtk_widget_set_name (w_alignment8, "w_alignment8");
  gtk_widget_ref (w_alignment8);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_alignment8", w_alignment8,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_alignment8);
  gtk_box_pack_start (GTK_BOX (w_vbox14), w_alignment8, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_alignment8), 2);

  w_frame30 = gtk_frame_new (NULL);
  gtk_widget_set_name (w_frame30, "w_frame30");
  gtk_widget_ref (w_frame30);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_frame30", w_frame30,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame30);
  gtk_container_add (GTK_CONTAINER (w_alignment8), w_frame30);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame30), 2);
  gtk_frame_set_shadow_type (GTK_FRAME (w_frame30), GTK_SHADOW_OUT);

  w_hbox19 = gtk_hbox_new (FALSE, 0);
  gtk_widget_set_name (w_hbox19, "w_hbox19");
  gtk_widget_ref (w_hbox19);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_hbox19", w_hbox19,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_hbox19);
  gtk_container_add (GTK_CONTAINER (w_frame30), w_hbox19);
  gtk_container_set_border_width (GTK_CONTAINER (w_hbox19), 4);

  fileinfo_subctrl_prev = gtk_button_new_with_label (_(" < "));
  gtk_widget_set_name (fileinfo_subctrl_prev, "fileinfo_subctrl_prev");
  gtk_widget_ref (fileinfo_subctrl_prev);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_subctrl_prev", fileinfo_subctrl_prev,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_subctrl_prev);
  gtk_box_pack_start (GTK_BOX (w_hbox19), fileinfo_subctrl_prev, FALSE, FALSE, 0);

  fileinfo_subctrl_adj = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 0, 0, 0, 0)));
  gtk_widget_set_name (fileinfo_subctrl_adj, "fileinfo_subctrl_adj");
  gtk_widget_ref (fileinfo_subctrl_adj);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_subctrl_adj", fileinfo_subctrl_adj,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_subctrl_adj);
  gtk_box_pack_start (GTK_BOX (w_hbox19), fileinfo_subctrl_adj, TRUE, TRUE, 0);
  gtk_scale_set_digits (GTK_SCALE (fileinfo_subctrl_adj), 0);
  gtk_range_set_update_policy (GTK_RANGE (fileinfo_subctrl_adj), GTK_UPDATE_DELAYED);

  fileinfo_subctrl_next = gtk_button_new_with_label (_(" > "));
  gtk_widget_set_name (fileinfo_subctrl_next, "fileinfo_subctrl_next");
  gtk_widget_ref (fileinfo_subctrl_next);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_subctrl_next", fileinfo_subctrl_next,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_subctrl_next);
  gtk_box_pack_start (GTK_BOX (w_hbox19), fileinfo_subctrl_next, FALSE, FALSE, 0);

  w_frame14 = gtk_frame_new (_("Song Information:"));
  gtk_widget_set_name (w_frame14, "w_frame14");
  gtk_widget_ref (w_frame14);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_frame14", w_frame14,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame14);
  gtk_box_pack_start (GTK_BOX (w_vbox14), w_frame14, FALSE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame14), 4);

  table1 = gtk_table_new (4, 2, FALSE);
  gtk_widget_set_name (table1, "table1");
  gtk_widget_ref (table1);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "table1", table1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (table1);
  gtk_container_add (GTK_CONTAINER (w_frame14), table1);
  gtk_container_set_border_width (GTK_CONTAINER (table1), 4);
  gtk_table_set_row_spacings (GTK_TABLE (table1), 2);
  gtk_table_set_col_spacings (GTK_TABLE (table1), 4);

  w_label16 = gtk_label_new (_("Filename:"));
  gtk_widget_set_name (w_label16, "w_label16");
  gtk_widget_ref (w_label16);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_label16", w_label16,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label16);
  gtk_table_attach (GTK_TABLE (table1), w_label16, 0, 1, 0, 1,
                    (GtkAttachOptions) (0),
                    (GtkAttachOptions) (0), 0, 0);

  w_label17 = gtk_label_new (_("Songname:"));
  gtk_widget_set_name (w_label17, "w_label17");
  gtk_widget_ref (w_label17);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_label17", w_label17,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label17);
  gtk_table_attach (GTK_TABLE (table1), w_label17, 0, 1, 1, 2,
                    (GtkAttachOptions) (0),
                    (GtkAttachOptions) (0), 0, 0);

  w_label18 = gtk_label_new (_("Composer:"));
  gtk_widget_set_name (w_label18, "w_label18");
  gtk_widget_ref (w_label18);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_label18", w_label18,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label18);
  gtk_table_attach (GTK_TABLE (table1), w_label18, 0, 1, 2, 3,
                    (GtkAttachOptions) (0),
                    (GtkAttachOptions) (0), 0, 0);

  w_label19 = gtk_label_new (_("Copyright:"));
  gtk_widget_set_name (w_label19, "w_label19");
  gtk_widget_ref (w_label19);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_label19", w_label19,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label19);
  gtk_table_attach (GTK_TABLE (table1), w_label19, 0, 1, 3, 4,
                    (GtkAttachOptions) (0),
                    (GtkAttachOptions) (0), 0, 0);

  fileinfo_filename = gtk_entry_new ();
  gtk_widget_set_name (fileinfo_filename, "fileinfo_filename");
  gtk_widget_ref (fileinfo_filename);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_filename", fileinfo_filename,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_filename);
  gtk_table_attach (GTK_TABLE (table1), fileinfo_filename, 1, 2, 0, 1,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_entry_set_editable (GTK_ENTRY (fileinfo_filename), FALSE);

  fileinfo_songname = gtk_entry_new ();
  gtk_widget_set_name (fileinfo_songname, "fileinfo_songname");
  gtk_widget_ref (fileinfo_songname);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_songname", fileinfo_songname,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_songname);
  gtk_table_attach (GTK_TABLE (table1), fileinfo_songname, 1, 2, 1, 2,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_entry_set_editable (GTK_ENTRY (fileinfo_songname), FALSE);

  fileinfo_composer = gtk_entry_new ();
  gtk_widget_set_name (fileinfo_composer, "fileinfo_composer");
  gtk_widget_ref (fileinfo_composer);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_composer", fileinfo_composer,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_composer);
  gtk_table_attach (GTK_TABLE (table1), fileinfo_composer, 1, 2, 2, 3,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_entry_set_editable (GTK_ENTRY (fileinfo_composer), FALSE);

  fileinfo_copyright = gtk_entry_new ();
  gtk_widget_set_name (fileinfo_copyright, "fileinfo_copyright");
  gtk_widget_ref (fileinfo_copyright);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_copyright", fileinfo_copyright,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_copyright);
  gtk_table_attach (GTK_TABLE (table1), fileinfo_copyright, 1, 2, 3, 4,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_entry_set_editable (GTK_ENTRY (fileinfo_copyright), FALSE);

  w_frame15 = gtk_frame_new (_("Sub-tune Information:"));
  gtk_widget_set_name (w_frame15, "w_frame15");
  gtk_widget_ref (w_frame15);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_frame15", w_frame15,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_frame15);
  gtk_box_pack_start (GTK_BOX (w_vbox14), w_frame15, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (w_frame15), 4);

  w_vbox15 = gtk_vbox_new (FALSE, 2);
  gtk_widget_set_name (w_vbox15, "w_vbox15");
  gtk_widget_ref (w_vbox15);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_vbox15", w_vbox15,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_vbox15);
  gtk_container_add (GTK_CONTAINER (w_frame15), w_vbox15);

  fileinfo_sub_tune = gtk_option_menu_new ();
  gtk_widget_set_name (fileinfo_sub_tune, "fileinfo_sub_tune");
  gtk_widget_ref (fileinfo_sub_tune);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_sub_tune", fileinfo_sub_tune,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_sub_tune);
  gtk_box_pack_start (GTK_BOX (w_vbox15), fileinfo_sub_tune, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (fileinfo_sub_tune), 2);
  fileinfo_sub_tune_menu = gtk_menu_new ();
  glade_menuitem = gtk_menu_item_new_with_label (_(" "));
  gtk_widget_show (glade_menuitem);
  gtk_menu_append (GTK_MENU (fileinfo_sub_tune_menu), glade_menuitem);
  gtk_option_menu_set_menu (GTK_OPTION_MENU (fileinfo_sub_tune), fileinfo_sub_tune_menu);

  table2 = gtk_table_new (3, 2, FALSE);
  gtk_widget_set_name (table2, "table2");
  gtk_widget_ref (table2);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "table2", table2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (table2);
  gtk_box_pack_start (GTK_BOX (w_vbox15), table2, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (table2), 4);
  gtk_table_set_row_spacings (GTK_TABLE (table2), 2);
  gtk_table_set_col_spacings (GTK_TABLE (table2), 4);

  w_label41 = gtk_label_new (_("Author:"));
  gtk_widget_set_name (w_label41, "w_label41");
  gtk_widget_ref (w_label41);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_label41", w_label41,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label41);
  gtk_table_attach (GTK_TABLE (table2), w_label41, 0, 1, 1, 2,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);

  fileinfo_sub_author = gtk_entry_new ();
  gtk_widget_set_name (fileinfo_sub_author, "fileinfo_sub_author");
  gtk_widget_ref (fileinfo_sub_author);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_sub_author", fileinfo_sub_author,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_sub_author);
  gtk_table_attach (GTK_TABLE (table2), fileinfo_sub_author, 1, 2, 1, 2,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_entry_set_editable (GTK_ENTRY (fileinfo_sub_author), FALSE);

  w_label50 = gtk_label_new (_("Name:"));
  gtk_widget_set_name (w_label50, "w_label50");
  gtk_widget_ref (w_label50);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_label50", w_label50,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label50);
  gtk_table_attach (GTK_TABLE (table2), w_label50, 0, 1, 0, 1,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);

  fileinfo_sub_name = gtk_entry_new ();
  gtk_widget_set_name (fileinfo_sub_name, "fileinfo_sub_name");
  gtk_widget_ref (fileinfo_sub_name);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_sub_name", fileinfo_sub_name,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_sub_name);
  gtk_table_attach (GTK_TABLE (table2), fileinfo_sub_name, 1, 2, 0, 1,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_entry_set_editable (GTK_ENTRY (fileinfo_sub_name), FALSE);

  w_label51 = gtk_label_new (_("Duration:"));
  gtk_widget_set_name (w_label51, "w_label51");
  gtk_widget_ref (w_label51);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "w_label51", w_label51,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (w_label51);
  gtk_table_attach (GTK_TABLE (table2), w_label51, 0, 1, 2, 3,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_misc_set_alignment (GTK_MISC (w_label51), 0, 0.5);

  entry1 = gtk_entry_new ();
  gtk_widget_set_name (entry1, "entry1");
  gtk_widget_ref (entry1);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "entry1", entry1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (entry1);
  gtk_table_attach (GTK_TABLE (table2), entry1, 1, 2, 2, 3,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_entry_set_editable (GTK_ENTRY (entry1), FALSE);

  scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
  gtk_widget_set_name (scrolledwindow2, "scrolledwindow2");
  gtk_widget_ref (scrolledwindow2);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "scrolledwindow2", scrolledwindow2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (scrolledwindow2);
  gtk_box_pack_start (GTK_BOX (w_vbox15), scrolledwindow2, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow2), 4);
  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);

  fileinfo_sub_info = gtk_text_new (NULL, NULL);
  gtk_widget_set_name (fileinfo_sub_info, "fileinfo_sub_info");
  gtk_widget_ref (fileinfo_sub_info);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "fileinfo_sub_info", fileinfo_sub_info,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (fileinfo_sub_info);
  gtk_container_add (GTK_CONTAINER (scrolledwindow2), fileinfo_sub_info);

  button2 = gtk_button_new_with_label (_("Close"));
  gtk_widget_set_name (button2, "button2");
  gtk_widget_ref (button2);
  gtk_object_set_data_full (GTK_OBJECT (xs_fileinfowin), "button2", button2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (button2);
  gtk_box_pack_start (GTK_BOX (w_vbox14), button2, FALSE, FALSE, 0);
  GTK_WIDGET_SET_FLAGS (button2, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_fileinfowin), "delete_event",
                      GTK_SIGNAL_FUNC (xs_fileinfo_delete),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (fileinfo_subctrl_prev), "clicked",
                      GTK_SIGNAL_FUNC (xs_subctrl_prevsong),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (fileinfo_subctrl_next), "clicked",
                      GTK_SIGNAL_FUNC (xs_subctrl_nextsong),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (button2), "clicked",
                      GTK_SIGNAL_FUNC (xs_fileinfo_ok),
                      NULL);

  gtk_widget_grab_focus (button2);
  gtk_widget_grab_default (button2);
  return xs_fileinfowin;
}

GtkWidget*
create_xs_sldb_fs (void)
{
  GtkWidget *xs_sldb_fs;
  GtkWidget *ok_button2;
  GtkWidget *cancel_button2;

  xs_sldb_fs = gtk_file_selection_new (_("Select HVSC song length database"));
  gtk_widget_set_name (xs_sldb_fs, "xs_sldb_fs");
  gtk_object_set_data (GTK_OBJECT (xs_sldb_fs), "xs_sldb_fs", xs_sldb_fs);
  gtk_container_set_border_width (GTK_CONTAINER (xs_sldb_fs), 10);
  gtk_window_set_modal (GTK_WINDOW (xs_sldb_fs), TRUE);
  gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_sldb_fs));

  ok_button2 = GTK_FILE_SELECTION (xs_sldb_fs)->ok_button;
  gtk_widget_set_name (ok_button2, "ok_button2");
  gtk_object_set_data (GTK_OBJECT (xs_sldb_fs), "ok_button2", ok_button2);
  gtk_widget_show (ok_button2);
  GTK_WIDGET_SET_FLAGS (ok_button2, GTK_CAN_DEFAULT);

  cancel_button2 = GTK_FILE_SELECTION (xs_sldb_fs)->cancel_button;
  gtk_widget_set_name (cancel_button2, "cancel_button2");
  gtk_object_set_data (GTK_OBJECT (xs_sldb_fs), "cancel_button2", cancel_button2);
  gtk_widget_show (cancel_button2);
  GTK_WIDGET_SET_FLAGS (cancel_button2, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_sldb_fs), "delete_event",
                      GTK_SIGNAL_FUNC (xs_sldb_fs_delete),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (ok_button2), "clicked",
                      GTK_SIGNAL_FUNC (xs_sldb_fs_ok),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cancel_button2), "clicked",
                      GTK_SIGNAL_FUNC (xs_sldb_fs_cancel),
                      NULL);

  return xs_sldb_fs;
}

GtkWidget*
create_xs_stil_fs (void)
{
  GtkWidget *xs_stil_fs;
  GtkWidget *ok_button3;
  GtkWidget *cancel_button3;

  xs_stil_fs = gtk_file_selection_new (_("Select STIL-database "));
  gtk_widget_set_name (xs_stil_fs, "xs_stil_fs");
  gtk_object_set_data (GTK_OBJECT (xs_stil_fs), "xs_stil_fs", xs_stil_fs);
  gtk_container_set_border_width (GTK_CONTAINER (xs_stil_fs), 10);
  gtk_window_set_modal (GTK_WINDOW (xs_stil_fs), TRUE);
  gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_stil_fs));

  ok_button3 = GTK_FILE_SELECTION (xs_stil_fs)->ok_button;
  gtk_widget_set_name (ok_button3, "ok_button3");
  gtk_object_set_data (GTK_OBJECT (xs_stil_fs), "ok_button3", ok_button3);
  gtk_widget_show (ok_button3);
  GTK_WIDGET_SET_FLAGS (ok_button3, GTK_CAN_DEFAULT);

  cancel_button3 = GTK_FILE_SELECTION (xs_stil_fs)->cancel_button;
  gtk_widget_set_name (cancel_button3, "cancel_button3");
  gtk_object_set_data (GTK_OBJECT (xs_stil_fs), "cancel_button3", cancel_button3);
  gtk_widget_show (cancel_button3);
  GTK_WIDGET_SET_FLAGS (cancel_button3, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_stil_fs), "delete_event",
                      GTK_SIGNAL_FUNC (xs_stil_fs_delete),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (ok_button3), "clicked",
                      GTK_SIGNAL_FUNC (xs_stil_fs_ok),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cancel_button3), "clicked",
                      GTK_SIGNAL_FUNC (xs_stil_fs_cancel),
                      NULL);

  return xs_stil_fs;
}

GtkWidget*
create_xs_hvsc_fs (void)
{
  GtkWidget *xs_hvsc_fs;
  GtkWidget *ok_button4;
  GtkWidget *cancel_button4;

  xs_hvsc_fs = gtk_file_selection_new (_("Select HVSC location prefix"));
  gtk_widget_set_name (xs_hvsc_fs, "xs_hvsc_fs");
  gtk_object_set_data (GTK_OBJECT (xs_hvsc_fs), "xs_hvsc_fs", xs_hvsc_fs);
  gtk_container_set_border_width (GTK_CONTAINER (xs_hvsc_fs), 10);
  gtk_window_set_modal (GTK_WINDOW (xs_hvsc_fs), TRUE);
  gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_hvsc_fs));

  ok_button4 = GTK_FILE_SELECTION (xs_hvsc_fs)->ok_button;
  gtk_widget_set_name (ok_button4, "ok_button4");
  gtk_object_set_data (GTK_OBJECT (xs_hvsc_fs), "ok_button4", ok_button4);
  gtk_widget_show (ok_button4);
  GTK_WIDGET_SET_FLAGS (ok_button4, GTK_CAN_DEFAULT);

  cancel_button4 = GTK_FILE_SELECTION (xs_hvsc_fs)->cancel_button;
  gtk_widget_set_name (cancel_button4, "cancel_button4");
  gtk_object_set_data (GTK_OBJECT (xs_hvsc_fs), "cancel_button4", cancel_button4);
  gtk_widget_show (cancel_button4);
  GTK_WIDGET_SET_FLAGS (cancel_button4, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_hvsc_fs), "delete_event",
                      GTK_SIGNAL_FUNC (xs_hvsc_fs_delete),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (ok_button4), "clicked",
                      GTK_SIGNAL_FUNC (xs_hvsc_fs_ok),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cancel_button4), "clicked",
                      GTK_SIGNAL_FUNC (xs_hvsc_fs_cancel),
                      NULL);

  return xs_hvsc_fs;
}

GtkWidget*
create_xs_filter_import_fs (void)
{
  GtkWidget *xs_filter_import_fs;
  GtkWidget *ok_button64;
  GtkWidget *cancel_button64;

  xs_filter_import_fs = gtk_file_selection_new (_("Select SIDPlay2 filters file for importing"));
  gtk_widget_set_name (xs_filter_import_fs, "xs_filter_import_fs");
  gtk_object_set_data (GTK_OBJECT (xs_filter_import_fs), "xs_filter_import_fs", xs_filter_import_fs);
  gtk_container_set_border_width (GTK_CONTAINER (xs_filter_import_fs), 10);
  gtk_window_set_modal (GTK_WINDOW (xs_filter_import_fs), TRUE);
  gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_filter_import_fs));

  ok_button64 = GTK_FILE_SELECTION (xs_filter_import_fs)->ok_button;
  gtk_widget_set_name (ok_button64, "ok_button64");
  gtk_object_set_data (GTK_OBJECT (xs_filter_import_fs), "ok_button64", ok_button64);
  gtk_widget_show (ok_button64);
  GTK_WIDGET_SET_FLAGS (ok_button64, GTK_CAN_DEFAULT);

  cancel_button64 = GTK_FILE_SELECTION (xs_filter_import_fs)->cancel_button;
  gtk_widget_set_name (cancel_button64, "cancel_button64");
  gtk_object_set_data (GTK_OBJECT (xs_filter_import_fs), "cancel_button64", cancel_button64);
  gtk_widget_show (cancel_button64);
  GTK_WIDGET_SET_FLAGS (cancel_button64, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_filter_import_fs), "delete_event",
                      GTK_SIGNAL_FUNC (xs_filter_import_fs_delete),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (ok_button64), "clicked",
                      GTK_SIGNAL_FUNC (xs_filter_import_fs_ok),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cancel_button64), "clicked",
                      GTK_SIGNAL_FUNC (xs_filter_import_fs_cancel),
                      NULL);

  return xs_filter_import_fs;
}

GtkWidget*
create_xs_filter_export_fs (void)
{
  GtkWidget *xs_filter_export_fs;
  GtkWidget *ok_button64;
  GtkWidget *cancel_button64;

  xs_filter_export_fs = gtk_file_selection_new (_("Select SIDPlay2 filters file for exporting"));
  gtk_widget_set_name (xs_filter_export_fs, "xs_filter_export_fs");
  gtk_object_set_data (GTK_OBJECT (xs_filter_export_fs), "xs_filter_export_fs", xs_filter_export_fs);
  gtk_container_set_border_width (GTK_CONTAINER (xs_filter_export_fs), 10);
  gtk_window_set_modal (GTK_WINDOW (xs_filter_export_fs), TRUE);
  gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_filter_export_fs));

  ok_button64 = GTK_FILE_SELECTION (xs_filter_export_fs)->ok_button;
  gtk_widget_set_name (ok_button64, "ok_button64");
  gtk_object_set_data (GTK_OBJECT (xs_filter_export_fs), "ok_button64", ok_button64);
  gtk_widget_show (ok_button64);
  GTK_WIDGET_SET_FLAGS (ok_button64, GTK_CAN_DEFAULT);

  cancel_button64 = GTK_FILE_SELECTION (xs_filter_export_fs)->cancel_button;
  gtk_widget_set_name (cancel_button64, "cancel_button64");
  gtk_object_set_data (GTK_OBJECT (xs_filter_export_fs), "cancel_button64", cancel_button64);
  gtk_widget_show (cancel_button64);
  GTK_WIDGET_SET_FLAGS (cancel_button64, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_filter_export_fs), "delete_event",
                      GTK_SIGNAL_FUNC (xs_filter_export_fs_delete),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (ok_button64), "clicked",
                      GTK_SIGNAL_FUNC (xs_filter_export_fs_ok),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cancel_button64), "clicked",
                      GTK_SIGNAL_FUNC (xs_filter_export_fs_cancel),
                      NULL);

  return xs_filter_export_fs;
}

GtkWidget*
create_xs_confirmwin (void)
{
  GtkWidget *xs_confirmwin;
  GtkWidget *dialog_vbox1;
  GtkWidget *xs_confirm_frame;
  GtkWidget *dialog_action_area1;
  GtkWidget *hbuttonbox2;
  GtkWidget *xs_confirm_yes;
  GtkWidget *xs_confirm_no;

  xs_confirmwin = gtk_dialog_new ();
  gtk_widget_set_name (xs_confirmwin, "xs_confirmwin");
  gtk_object_set_data (GTK_OBJECT (xs_confirmwin), "xs_confirmwin", xs_confirmwin);
  gtk_window_set_title (GTK_WINDOW (xs_confirmwin), _("Confirm selected action"));
  GTK_WINDOW (xs_confirmwin)->type = GTK_WINDOW_DIALOG;
  gtk_window_set_policy (GTK_WINDOW (xs_confirmwin), TRUE, TRUE, FALSE);

  dialog_vbox1 = GTK_DIALOG (xs_confirmwin)->vbox;
  gtk_widget_set_name (dialog_vbox1, "dialog_vbox1");
  gtk_object_set_data (GTK_OBJECT (xs_confirmwin), "dialog_vbox1", dialog_vbox1);
  gtk_widget_show (dialog_vbox1);

  xs_confirm_frame = gtk_frame_new (_("Confirm selected action"));
  gtk_widget_set_name (xs_confirm_frame, "xs_confirm_frame");
  gtk_widget_ref (xs_confirm_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_confirmwin), "xs_confirm_frame", xs_confirm_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_confirm_frame);
  gtk_box_pack_start (GTK_BOX (dialog_vbox1), xs_confirm_frame, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (xs_confirm_frame), 6);

  dialog_action_area1 = GTK_DIALOG (xs_confirmwin)->action_area;
  gtk_widget_set_name (dialog_action_area1, "dialog_action_area1");
  gtk_object_set_data (GTK_OBJECT (xs_confirmwin), "dialog_action_area1", dialog_action_area1);
  gtk_widget_show (dialog_action_area1);
  gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area1), 6);

  hbuttonbox2 = gtk_hbutton_box_new ();
  gtk_widget_set_name (hbuttonbox2, "hbuttonbox2");
  gtk_widget_ref (hbuttonbox2);
  gtk_object_set_data_full (GTK_OBJECT (xs_confirmwin), "hbuttonbox2", hbuttonbox2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (hbuttonbox2);
  gtk_box_pack_start (GTK_BOX (dialog_action_area1), hbuttonbox2, TRUE, TRUE, 0);
  gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox2), GTK_BUTTONBOX_END);
  gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox2), 8);
  gtk_button_box_set_child_ipadding (GTK_BUTTON_BOX (hbuttonbox2), 0, 0);

  xs_confirm_yes = gtk_button_new_with_label (_("Yes"));
  gtk_widget_set_name (xs_confirm_yes, "xs_confirm_yes");
  gtk_widget_ref (xs_confirm_yes);
  gtk_object_set_data_full (GTK_OBJECT (xs_confirmwin), "xs_confirm_yes", xs_confirm_yes,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_confirm_yes);
  gtk_container_add (GTK_CONTAINER (hbuttonbox2), xs_confirm_yes);
  GTK_WIDGET_SET_FLAGS (xs_confirm_yes, GTK_CAN_DEFAULT);

  xs_confirm_no = gtk_button_new_with_label (_("No"));
  gtk_widget_set_name (xs_confirm_no, "xs_confirm_no");
  gtk_widget_ref (xs_confirm_no);
  gtk_object_set_data_full (GTK_OBJECT (xs_confirmwin), "xs_confirm_no", xs_confirm_no,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_confirm_no);
  gtk_container_add (GTK_CONTAINER (hbuttonbox2), xs_confirm_no);
  GTK_WIDGET_SET_FLAGS (xs_confirm_no, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_confirmwin), "delete_event",
                      GTK_SIGNAL_FUNC (xs_confirmwin_delete),
                      NULL);

  return xs_confirmwin;
}

GtkWidget*
create_xs_filter_newwin (void)
{
  GtkWidget *xs_filter_newwin;
  GtkWidget *dialog_vbox2;
  GtkWidget *frame1;
  GtkWidget *table4;
  GtkWidget *xs_filter_new_name;
  GtkWidget *xs_filter_new_type_combo;
  GtkWidget *xs_filter_new_type;
  GtkWidget *label1;
  GtkWidget *label2;
  GtkWidget *dialog_action_area2;
  GtkWidget *hbuttonbox3;
  GtkWidget *xs_filter_new_create;
  GtkWidget *xs_filter_new_cancel;

  xs_filter_newwin = gtk_dialog_new ();
  gtk_widget_set_name (xs_filter_newwin, "xs_filter_newwin");
  gtk_object_set_data (GTK_OBJECT (xs_filter_newwin), "xs_filter_newwin", xs_filter_newwin);
  gtk_window_set_title (GTK_WINDOW (xs_filter_newwin), _("Create new filter"));
  gtk_window_set_policy (GTK_WINDOW (xs_filter_newwin), TRUE, TRUE, FALSE);

  dialog_vbox2 = GTK_DIALOG (xs_filter_newwin)->vbox;
  gtk_widget_set_name (dialog_vbox2, "dialog_vbox2");
  gtk_object_set_data (GTK_OBJECT (xs_filter_newwin), "dialog_vbox2", dialog_vbox2);
  gtk_widget_show (dialog_vbox2);

  frame1 = gtk_frame_new (_("Filter parameters"));
  gtk_widget_set_name (frame1, "frame1");
  gtk_widget_ref (frame1);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "frame1", frame1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (frame1);
  gtk_box_pack_start (GTK_BOX (dialog_vbox2), frame1, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (frame1), 6);

  table4 = gtk_table_new (2, 2, FALSE);
  gtk_widget_set_name (table4, "table4");
  gtk_widget_ref (table4);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "table4", table4,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (table4);
  gtk_container_add (GTK_CONTAINER (frame1), table4);
  gtk_container_set_border_width (GTK_CONTAINER (table4), 4);
  gtk_table_set_row_spacings (GTK_TABLE (table4), 4);
  gtk_table_set_col_spacings (GTK_TABLE (table4), 4);

  xs_filter_new_name = gtk_entry_new ();
  gtk_widget_set_name (xs_filter_new_name, "xs_filter_new_name");
  gtk_widget_ref (xs_filter_new_name);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "xs_filter_new_name", xs_filter_new_name,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_filter_new_name);
  gtk_table_attach (GTK_TABLE (table4), xs_filter_new_name, 1, 2, 0, 1,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);

  xs_filter_new_type_combo = gtk_combo_new ();
  gtk_widget_set_name (xs_filter_new_type_combo, "xs_filter_new_type_combo");
  gtk_widget_ref (xs_filter_new_type_combo);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "xs_filter_new_type_combo", xs_filter_new_type_combo,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_filter_new_type_combo);
  gtk_table_attach (GTK_TABLE (table4), xs_filter_new_type_combo, 1, 2, 1, 2,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);

  xs_filter_new_type = GTK_COMBO (xs_filter_new_type_combo)->entry;
  gtk_widget_set_name (xs_filter_new_type, "xs_filter_new_type");
  gtk_widget_ref (xs_filter_new_type);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "xs_filter_new_type", xs_filter_new_type,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_filter_new_type);
  gtk_entry_set_editable (GTK_ENTRY (xs_filter_new_type), FALSE);

  label1 = gtk_label_new (_("Name:"));
  gtk_widget_set_name (label1, "label1");
  gtk_widget_ref (label1);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "label1", label1,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (label1);
  gtk_table_attach (GTK_TABLE (table4), label1, 0, 1, 0, 1,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5);

  label2 = gtk_label_new (_("Type:"));
  gtk_widget_set_name (label2, "label2");
  gtk_widget_ref (label2);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "label2", label2,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (label2);
  gtk_table_attach (GTK_TABLE (table4), label2, 0, 1, 1, 2,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5);

  dialog_action_area2 = GTK_DIALOG (xs_filter_newwin)->action_area;
  gtk_widget_set_name (dialog_action_area2, "dialog_action_area2");
  gtk_object_set_data (GTK_OBJECT (xs_filter_newwin), "dialog_action_area2", dialog_action_area2);
  gtk_widget_show (dialog_action_area2);
  gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area2), 10);

  hbuttonbox3 = gtk_hbutton_box_new ();
  gtk_widget_set_name (hbuttonbox3, "hbuttonbox3");
  gtk_widget_ref (hbuttonbox3);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "hbuttonbox3", hbuttonbox3,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (hbuttonbox3);
  gtk_box_pack_start (GTK_BOX (dialog_action_area2), hbuttonbox3, TRUE, TRUE, 0);
  gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox3), GTK_BUTTONBOX_END);
  gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox3), 8);
  gtk_button_box_set_child_ipadding (GTK_BUTTON_BOX (hbuttonbox3), 0, 0);

  xs_filter_new_create = gtk_button_new_with_label (_("Create"));
  gtk_widget_set_name (xs_filter_new_create, "xs_filter_new_create");
  gtk_widget_ref (xs_filter_new_create);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "xs_filter_new_create", xs_filter_new_create,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_filter_new_create);
  gtk_container_add (GTK_CONTAINER (hbuttonbox3), xs_filter_new_create);
  GTK_WIDGET_SET_FLAGS (xs_filter_new_create, GTK_CAN_DEFAULT);

  xs_filter_new_cancel = gtk_button_new_with_label (_("Cancel"));
  gtk_widget_set_name (xs_filter_new_cancel, "xs_filter_new_cancel");
  gtk_widget_ref (xs_filter_new_cancel);
  gtk_object_set_data_full (GTK_OBJECT (xs_filter_newwin), "xs_filter_new_cancel", xs_filter_new_cancel,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_filter_new_cancel);
  gtk_container_add (GTK_CONTAINER (hbuttonbox3), xs_filter_new_cancel);
  GTK_WIDGET_SET_FLAGS (xs_filter_new_cancel, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_filter_newwin), "delete_event",
                      GTK_SIGNAL_FUNC (xs_filter_newwin_delete),
                      NULL);

  return xs_filter_newwin;
}

GtkWidget*
create_xs_rom_fs (void)
{
  GtkWidget *xs_rom_fs;
  GtkWidget *ok_button65;
  GtkWidget *cancel_button65;

  xs_rom_fs = gtk_file_selection_new (_("Select path to C64 ROM images"));
  gtk_widget_set_name (xs_rom_fs, "xs_rom_fs");
  gtk_object_set_data (GTK_OBJECT (xs_rom_fs), "xs_rom_fs", xs_rom_fs);
  gtk_container_set_border_width (GTK_CONTAINER (xs_rom_fs), 10);
  gtk_window_set_modal (GTK_WINDOW (xs_rom_fs), TRUE);
  gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_rom_fs));

  ok_button65 = GTK_FILE_SELECTION (xs_rom_fs)->ok_button;
  gtk_widget_set_name (ok_button65, "ok_button65");
  gtk_object_set_data (GTK_OBJECT (xs_rom_fs), "ok_button65", ok_button65);
  gtk_widget_show (ok_button65);
  GTK_WIDGET_SET_FLAGS (ok_button65, GTK_CAN_DEFAULT);

  cancel_button65 = GTK_FILE_SELECTION (xs_rom_fs)->cancel_button;
  gtk_widget_set_name (cancel_button65, "cancel_button65");
  gtk_object_set_data (GTK_OBJECT (xs_rom_fs), "cancel_button65", cancel_button65);
  gtk_widget_show (cancel_button65);
  GTK_WIDGET_SET_FLAGS (cancel_button65, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_rom_fs), "delete_event",
                      GTK_SIGNAL_FUNC (xs_rom_fs_delete),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (ok_button65), "clicked",
                      GTK_SIGNAL_FUNC (xs_rom_fs_ok),
                      NULL);
  gtk_signal_connect (GTK_OBJECT (cancel_button65), "clicked",
                      GTK_SIGNAL_FUNC (xs_rom_fs_cancel),
                      NULL);

  return xs_rom_fs;
}

GtkWidget*
create_xs_messagebox (void)
{
  GtkWidget *xs_messagebox;
  GtkWidget *vbox2;
  GtkWidget *xs_messagebox_frame;
  GtkWidget *xs_messagebox_msg;
  GtkWidget *hbox1;
  GtkWidget *hbuttonbox4;
  GtkWidget *xs_messagebox_ok;

  xs_messagebox = gtk_dialog_new ();
  gtk_widget_set_name (xs_messagebox, "xs_messagebox");
  gtk_object_set_data (GTK_OBJECT (xs_messagebox), "xs_messagebox", xs_messagebox);
  gtk_widget_set_usize (xs_messagebox, 350, 150);
  gtk_window_set_title (GTK_WINDOW (xs_messagebox), _("Message title"));
  GTK_WINDOW (xs_messagebox)->type = GTK_WINDOW_DIALOG;
  gtk_window_set_position (GTK_WINDOW (xs_messagebox), GTK_WIN_POS_CENTER);
  gtk_window_set_modal (GTK_WINDOW (xs_messagebox), TRUE);
  gtk_window_set_default_size (GTK_WINDOW (xs_messagebox), 350, 150);

  vbox2 = GTK_DIALOG (xs_messagebox)->vbox;
  gtk_widget_set_name (vbox2, "vbox2");
  gtk_object_set_data (GTK_OBJECT (xs_messagebox), "vbox2", vbox2);
  gtk_widget_show (vbox2);

  xs_messagebox_frame = gtk_frame_new (_("Message title"));
  gtk_widget_set_name (xs_messagebox_frame, "xs_messagebox_frame");
  gtk_widget_ref (xs_messagebox_frame);
  gtk_object_set_data_full (GTK_OBJECT (xs_messagebox), "xs_messagebox_frame", xs_messagebox_frame,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_messagebox_frame);
  gtk_box_pack_start (GTK_BOX (vbox2), xs_messagebox_frame, TRUE, TRUE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (xs_messagebox_frame), 6);

  xs_messagebox_msg = gtk_label_new (_("label3"));
  gtk_widget_set_name (xs_messagebox_msg, "xs_messagebox_msg");
  gtk_widget_ref (xs_messagebox_msg);
  gtk_object_set_data_full (GTK_OBJECT (xs_messagebox), "xs_messagebox_msg", xs_messagebox_msg,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_messagebox_msg);
  gtk_container_add (GTK_CONTAINER (xs_messagebox_frame), xs_messagebox_msg);
  gtk_label_set_line_wrap (GTK_LABEL (xs_messagebox_msg), TRUE);

  hbox1 = GTK_DIALOG (xs_messagebox)->action_area;
  gtk_widget_set_name (hbox1, "hbox1");
  gtk_object_set_data (GTK_OBJECT (xs_messagebox), "hbox1", hbox1);
  gtk_widget_show (hbox1);
  gtk_container_set_border_width (GTK_CONTAINER (hbox1), 6);

  hbuttonbox4 = gtk_hbutton_box_new ();
  gtk_widget_set_name (hbuttonbox4, "hbuttonbox4");
  gtk_widget_ref (hbuttonbox4);
  gtk_object_set_data_full (GTK_OBJECT (xs_messagebox), "hbuttonbox4", hbuttonbox4,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (hbuttonbox4);
  gtk_box_pack_start (GTK_BOX (hbox1), hbuttonbox4, TRUE, TRUE, 0);
  gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox4), GTK_BUTTONBOX_END);
  gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox4), 8);
  gtk_button_box_set_child_ipadding (GTK_BUTTON_BOX (hbuttonbox4), 0, 0);

  xs_messagebox_ok = gtk_button_new_with_label (_("Ok"));
  gtk_widget_set_name (xs_messagebox_ok, "xs_messagebox_ok");
  gtk_widget_ref (xs_messagebox_ok);
  gtk_object_set_data_full (GTK_OBJECT (xs_messagebox), "xs_messagebox_ok", xs_messagebox_ok,
                            (GtkDestroyNotify) gtk_widget_unref);
  gtk_widget_show (xs_messagebox_ok);
  gtk_container_add (GTK_CONTAINER (hbuttonbox4), xs_messagebox_ok);
  GTK_WIDGET_SET_FLAGS (xs_messagebox_ok, GTK_CAN_DEFAULT);

  gtk_signal_connect (GTK_OBJECT (xs_messagebox), "delete_event",
                      GTK_SIGNAL_FUNC (xs_confirmwin_delete),
                      NULL);

  return xs_messagebox;
}