# HG changeset patch # User Matti Hamalainen # Date 1352286634 -7200 # Node ID 9d0dee765a8eaad4f0333c55400364c9bc327884 # Parent b8b9da405e8cfeb7da6f88248e4eca8be399e265 Add Glade-generated files, as Glade for Gtk+1 is somewhat troublesome to get compiled and working nowadays due to bitrot. diff -r b8b9da405e8c -r 9d0dee765a8e src/xs_glade.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/xs_glade.c Wed Nov 07 13:10:34 2012 +0200 @@ -0,0 +1,162 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include + +#include + +#include "xs_glade.h" + +/* This is an internally used function to check if a pixmap file exists. */ +static gchar* check_file_exists (const gchar *directory, + const gchar *filename); + +/* This is an internally used function to create pixmaps. */ +static GtkWidget* create_dummy_pixmap (GtkWidget *widget); + +GtkWidget* +lookup_widget (GtkWidget *widget, + const gchar *widget_name) +{ + GtkWidget *parent, *found_widget; + + for (;;) + { + if (GTK_IS_MENU (widget)) + parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); + else + parent = widget->parent; + if (parent == NULL) + break; + widget = parent; + } + + found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget), + widget_name); + if (!found_widget) + g_warning ("Widget not found: %s", widget_name); + return found_widget; +} + +/* This is a dummy pixmap we use when a pixmap can't be found. */ +static char *dummy_pixmap_xpm[] = { +/* columns rows colors chars-per-pixel */ +"1 1 1 1", +" c None", +/* pixels */ +" " +}; + +/* This is an internally used function to create pixmaps. */ +static GtkWidget* +create_dummy_pixmap (GtkWidget *widget) +{ + GdkColormap *colormap; + GdkPixmap *gdkpixmap; + GdkBitmap *mask; + GtkWidget *pixmap; + + colormap = gtk_widget_get_colormap (widget); + gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, + NULL, dummy_pixmap_xpm); + if (gdkpixmap == NULL) + g_error ("Couldn't create replacement pixmap."); + pixmap = gtk_pixmap_new (gdkpixmap, mask); + gdk_pixmap_unref (gdkpixmap); + gdk_bitmap_unref (mask); + return pixmap; +} + +static GList *pixmaps_directories = NULL; + +/* Use this function to set the directory containing installed pixmaps. */ +void +add_pixmap_directory (const gchar *directory) +{ + pixmaps_directories = g_list_prepend (pixmaps_directories, + g_strdup (directory)); +} + +/* This is an internally used function to create pixmaps. */ +GtkWidget* +create_pixmap (GtkWidget *widget, + const gchar *filename) +{ + gchar *found_filename = NULL; + GdkColormap *colormap; + GdkPixmap *gdkpixmap; + GdkBitmap *mask; + GtkWidget *pixmap; + GList *elem; + + if (!filename || !filename[0]) + return create_dummy_pixmap (widget); + + /* We first try any pixmaps directories set by the application. */ + elem = pixmaps_directories; + while (elem) + { + found_filename = check_file_exists ((gchar*)elem->data, filename); + if (found_filename) + break; + elem = elem->next; + } + + /* If we haven't found the pixmap, try the source directory. */ + if (!found_filename) + { + found_filename = check_file_exists ("../pixmaps", filename); + } + + if (!found_filename) + { + g_warning (_("Couldn't find pixmap file: %s"), filename); + return create_dummy_pixmap (widget); + } + + colormap = gtk_widget_get_colormap (widget); + gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask, + NULL, found_filename); + if (gdkpixmap == NULL) + { + g_warning (_("Error loading pixmap file: %s"), found_filename); + g_free (found_filename); + return create_dummy_pixmap (widget); + } + g_free (found_filename); + pixmap = gtk_pixmap_new (gdkpixmap, mask); + gdk_pixmap_unref (gdkpixmap); + gdk_bitmap_unref (mask); + return pixmap; +} + +/* This is an internally used function to check if a pixmap file exists. */ +static gchar* +check_file_exists (const gchar *directory, + const gchar *filename) +{ + gchar *full_filename; + struct stat s; + gint status; + + full_filename = (gchar*) g_malloc (strlen (directory) + 1 + + strlen (filename) + 1); + strcpy (full_filename, directory); + strcat (full_filename, G_DIR_SEPARATOR_S); + strcat (full_filename, filename); + + status = stat (full_filename, &s); + if (status == 0 && S_ISREG (s.st_mode)) + return full_filename; + g_free (full_filename); + return NULL; +} + diff -r b8b9da405e8c -r 9d0dee765a8e src/xs_glade.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/xs_glade.h Wed Nov 07 13:10:34 2012 +0200 @@ -0,0 +1,61 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +/* + * Standard gettext macros. + */ +#ifdef ENABLE_NLS +# include +# undef _ +# define _(String) dgettext (PACKAGE, String) +# ifdef gettext_noop +# define N_(String) gettext_noop (String) +# else +# define N_(String) (String) +# endif +#else +# define textdomain(String) (String) +# define gettext(String) (String) +# define dgettext(Domain,Message) (Message) +# define dcgettext(Domain,Message,Type) (Message) +# define bindtextdomain(Domain,Directory) (Domain) +# define _(String) (String) +# define N_(String) (String) +#endif + + +/* + * Public Functions. + */ + +/* + * This function returns a widget in a component created by Glade. + * Call it with the toplevel widget in the component (i.e. a window/dialog), + * or alternatively any widget in the component, and the name of the widget + * you want returned. + */ +GtkWidget* lookup_widget (GtkWidget *widget, + const gchar *widget_name); + +/* get_widget() is deprecated. Use lookup_widget instead. */ +#define get_widget lookup_widget + +/* Use this function to set the directory containing installed pixmaps. */ +void add_pixmap_directory (const gchar *directory); + + +/* + * Private Functions. + */ + +/* This is used to create the pixmaps in the interface. */ +GtkWidget* create_pixmap (GtkWidget *widget, + const gchar *filename); + diff -r b8b9da405e8c -r 9d0dee765a8e src/xs_interface.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/xs_interface.c Wed Nov 07 13:10:34 2012 +0200 @@ -0,0 +1,2447 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include + +#include +#include + +#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_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 *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)")); + 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/FP (cycle-based)")); + 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 more exact 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); + + 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); + + 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_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; +} + diff -r b8b9da405e8c -r 9d0dee765a8e src/xs_interface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/xs_interface.h Wed Nov 07 13:10:34 2012 +0200 @@ -0,0 +1,13 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +GtkWidget* create_xs_configwin (void); +GtkWidget* create_xs_fileinfowin (void); +GtkWidget* create_xs_sldb_fs (void); +GtkWidget* create_xs_stil_fs (void); +GtkWidget* create_xs_hvsc_fs (void); +GtkWidget* create_xs_filter_import_fs (void); +GtkWidget* create_xs_filter_export_fs (void); +GtkWidget* create_xs_confirmwin (void); +GtkWidget* create_xs_filter_newwin (void);