diff src/xs_interface.c @ 871:d183ac29b879

Add ROM image path configuration.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 09 Nov 2012 04:24:48 +0200
parents 29f3c3f29c0d
children 350f755549dd
line wrap: on
line diff
--- a/src/xs_interface.c	Fri Nov 09 04:01:03 2012 +0200
+++ b/src/xs_interface.c	Fri Nov 09 04:24:48 2012 +0200
@@ -87,6 +87,11 @@
   GtkWidget *cfg_emu_resid_int;
   GtkWidget *cfg_emu_resid_res_fast;
   GtkWidget *cfg_emu_resid_res_int;
+  GtkWidget *cfg_rom_frame;
+  GtkWidget *w_rom_hbox;
+  GtkWidget *cfg_rom_label1;
+  GtkWidget *cfg_rom_path;
+  GtkWidget *cfg_rom_browse;
   GtkWidget *w_label48;
   GtkWidget *w_vbox25;
   GtkWidget *cfg_emu_filters;
@@ -712,6 +717,48 @@
   gtk_widget_show (cfg_emu_resid_res_int);
   gtk_box_pack_start (GTK_BOX (w_vbox37), cfg_emu_resid_res_int, FALSE, FALSE, 0);
 
+  cfg_rom_frame = gtk_frame_new (_("C64 Kernal/Basic/Chargen ROMs:"));
+  gtk_widget_set_name (cfg_rom_frame, "cfg_rom_frame");
+  gtk_widget_ref (cfg_rom_frame);
+  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_frame", cfg_rom_frame,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (cfg_rom_frame);
+  gtk_box_pack_start (GTK_BOX (w_vbox29), cfg_rom_frame, FALSE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (cfg_rom_frame), 4);
+
+  w_rom_hbox = gtk_hbox_new (FALSE, 4);
+  gtk_widget_set_name (w_rom_hbox, "w_rom_hbox");
+  gtk_widget_ref (w_rom_hbox);
+  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "w_rom_hbox", w_rom_hbox,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (w_rom_hbox);
+  gtk_container_add (GTK_CONTAINER (cfg_rom_frame), w_rom_hbox);
+  gtk_container_set_border_width (GTK_CONTAINER (w_rom_hbox), 2);
+
+  cfg_rom_label1 = gtk_label_new (_("Path:"));
+  gtk_widget_set_name (cfg_rom_label1, "cfg_rom_label1");
+  gtk_widget_ref (cfg_rom_label1);
+  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_label1", cfg_rom_label1,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (cfg_rom_label1);
+  gtk_box_pack_start (GTK_BOX (w_rom_hbox), cfg_rom_label1, FALSE, FALSE, 0);
+
+  cfg_rom_path = gtk_entry_new ();
+  gtk_widget_set_name (cfg_rom_path, "cfg_rom_path");
+  gtk_widget_ref (cfg_rom_path);
+  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_path", cfg_rom_path,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (cfg_rom_path);
+  gtk_box_pack_start (GTK_BOX (w_rom_hbox), cfg_rom_path, TRUE, TRUE, 0);
+
+  cfg_rom_browse = gtk_button_new_with_label (_("Browse"));
+  gtk_widget_set_name (cfg_rom_browse, "cfg_rom_browse");
+  gtk_widget_ref (cfg_rom_browse);
+  gtk_object_set_data_full (GTK_OBJECT (xs_configwin), "cfg_rom_browse", cfg_rom_browse,
+                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_show (cfg_rom_browse);
+  gtk_box_pack_start (GTK_BOX (w_rom_hbox), cfg_rom_browse, FALSE, FALSE, 0);
+
   w_label48 = gtk_label_new (_("Emu#2"));
   gtk_widget_set_name (w_label48, "w_label48");
   gtk_widget_ref (w_label48);
@@ -1150,6 +1197,7 @@
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (cfg_sld_box);
   gtk_box_pack_start (GTK_BOX (w_vbox18), cfg_sld_box, FALSE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (cfg_sld_box), 2);
 
   cfg_sld_label1 = gtk_label_new (_("DB-file:"));
   gtk_widget_set_name (cfg_sld_label1, "cfg_sld_label1");
@@ -1617,6 +1665,9 @@
   gtk_signal_connect (GTK_OBJECT (cfg_emu_sidplayfp), "toggled",
                       GTK_SIGNAL_FUNC (xs_cfg_emu_sidplay2_toggled),
                       NULL);
+  gtk_signal_connect (GTK_OBJECT (cfg_rom_browse), "clicked",
+                      GTK_SIGNAL_FUNC (xs_cfg_rom_browse),
+                      NULL);
   gtk_signal_connect (GTK_OBJECT (cfg_emu_filters), "toggled",
                       GTK_SIGNAL_FUNC (xs_cfg_emu_filters_toggled),
                       NULL);
@@ -2459,3 +2510,36 @@
   return xs_filter_newwin;
 }
 
+GtkWidget*
+create_xs_rom_fs (void)
+{
+  GtkWidget *xs_rom_fs;
+  GtkWidget *ok_button65;
+  GtkWidget *cancel_button65;
+
+  xs_rom_fs = gtk_file_selection_new (_("Select path to C64 ROM images"));
+  gtk_widget_set_name (xs_rom_fs, "xs_rom_fs");
+  gtk_object_set_data (GTK_OBJECT (xs_rom_fs), "xs_rom_fs", xs_rom_fs);
+  gtk_container_set_border_width (GTK_CONTAINER (xs_rom_fs), 10);
+  gtk_window_set_modal (GTK_WINDOW (xs_rom_fs), TRUE);
+  gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (xs_rom_fs));
+
+  ok_button65 = GTK_FILE_SELECTION (xs_rom_fs)->ok_button;
+  gtk_widget_set_name (ok_button65, "ok_button65");
+  gtk_object_set_data (GTK_OBJECT (xs_rom_fs), "ok_button65", ok_button65);
+  gtk_widget_show (ok_button65);
+  GTK_WIDGET_SET_FLAGS (ok_button65, GTK_CAN_DEFAULT);
+
+  cancel_button65 = GTK_FILE_SELECTION (xs_rom_fs)->cancel_button;
+  gtk_widget_set_name (cancel_button65, "cancel_button65");
+  gtk_object_set_data (GTK_OBJECT (xs_rom_fs), "cancel_button65", cancel_button65);
+  gtk_widget_show (cancel_button65);
+  GTK_WIDGET_SET_FLAGS (cancel_button65, GTK_CAN_DEFAULT);
+
+  gtk_signal_connect (GTK_OBJECT (xs_rom_fs), "delete_event",
+                      GTK_SIGNAL_FUNC (xs_rom_fs_delete),
+                      NULL);
+
+  return xs_rom_fs;
+}
+