--- BasiliskII/src/Unix/prefs_editor_gtk.cpp 2002/10/15 16:25:04 1.24 +++ BasiliskII/src/Unix/prefs_editor_gtk.cpp 2005/06/19 15:52:09 1.28 @@ -1,7 +1,7 @@ /* * prefs_editor_gtk.cpp - Preferences editor, Unix implementation using GTK+ * - * Basilisk II (C) 1997-2002 Christian Bauer + * Basilisk II (C) 1997-2005 Christian Bauer * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -189,7 +189,7 @@ static GtkWidget *make_file_entry(GtkWid return entry; } -static char *get_file_entry_path(GtkWidget *entry) +static const gchar *get_file_entry_path(GtkWidget *entry) { #ifdef HAVE_GNOMEUI return gnome_file_entry_get_full_path(GNOME_FILE_ENTRY(entry), false); @@ -306,7 +306,7 @@ static void mn_about(...) dialog = gnome_about_new( "Basilisk II", version, - "Copyright (C) 1997-2002 Christian Bauer", + "Copyright (C) 1997-2004 Christian Bauer", authors, "Basilisk II comes with ABSOLUTELY NO WARRANTY." "This is free software, and you are welcome to redistribute it" @@ -322,7 +322,7 @@ static void mn_about(...) char str[512]; sprintf(str, "Basilisk II\nVersion %d.%d\n\n" - "Copyright (C) 1997-2002 Christian Bauer et al.\n" + "Copyright (C) 1997-2004 Christian Bauer et al.\n" "E-mail: Christian.Bauer@uni-mainz.de\n" "http://www.uni-mainz.de/~bauec002/B2Main.html\n\n" "Basilisk II comes with ABSOLUTELY NO\n" @@ -387,7 +387,11 @@ bool PrefsEditor(void) GtkAccelGroup *accel_group = gtk_accel_group_new(); GtkItemFactory *item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "
", accel_group); gtk_item_factory_create_items(item_factory, sizeof(menu_items) / sizeof(menu_items[0]), menu_items, NULL); +#if GTK_CHECK_VERSION(1,3,15) + gtk_window_add_accel_group(GTK_WINDOW(win), accel_group); +#else gtk_accel_group_attach(accel_group, GTK_OBJECT(win)); +#endif GtkWidget *menu_bar = gtk_item_factory_get_widget(item_factory, "
"); gtk_widget_show(menu_bar); gtk_box_pack_start(GTK_BOX(box), menu_bar, FALSE, TRUE, 0); @@ -442,7 +446,7 @@ struct file_req_assoc { // Volume selected for addition static void add_volume_ok(GtkWidget *button, file_req_assoc *assoc) { - char *file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(assoc->req)); + gchar *file = (gchar *)gtk_file_selection_get_filename(GTK_FILE_SELECTION(assoc->req)); gtk_clist_append(GTK_CLIST(volume_list), &file); gtk_widget_destroy(assoc->req); delete assoc; @@ -451,9 +455,9 @@ static void add_volume_ok(GtkWidget *but // Volume selected for creation static void create_volume_ok(GtkWidget *button, file_req_assoc *assoc) { - char *file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(assoc->req)); + gchar *file = (gchar *)gtk_file_selection_get_filename(GTK_FILE_SELECTION(assoc->req)); - char *str = gtk_entry_get_text(GTK_ENTRY(assoc->entry)); + const gchar *str = gtk_entry_get_text(GTK_ENTRY(assoc->entry)); int size = atoi(str); char cmd[1024]; @@ -589,6 +593,7 @@ static GtkWidget *w_jit_fpu; static GtkWidget *w_jit_atraps; static GtkWidget *w_jit_cache_size; static GtkWidget *w_jit_lazy_flush; +static GtkWidget *w_jit_follow_const_jumps; // Set sensitivity of widgets static void set_jit_sensitive(void) @@ -597,6 +602,7 @@ static void set_jit_sensitive(void) gtk_widget_set_sensitive(w_jit_fpu, jit_enabled); gtk_widget_set_sensitive(w_jit_cache_size, jit_enabled); gtk_widget_set_sensitive(w_jit_lazy_flush, jit_enabled); + gtk_widget_set_sensitive(w_jit_follow_const_jumps, jit_enabled); } // "Use JIT Compiler" button toggled @@ -618,6 +624,12 @@ static void tb_jit_lazy_flush(GtkWidget PrefsReplaceBool("jitlazyflush", GTK_TOGGLE_BUTTON(widget)->active); } +// "Translate through constant jumps (inline blocks)" button toggled +static void tb_jit_follow_const_jumps(GtkWidget *widget) +{ + PrefsReplaceBool("jitinline", GTK_TOGGLE_BUTTON(widget)->active); +} + // Read settings from widgets and set preferences static void read_jit_settings(void) { @@ -654,7 +666,10 @@ static void create_jit_pane(GtkWidget *t // Lazy translation cache invalidation w_jit_lazy_flush = make_checkbox(box, STR_JIT_LAZY_CINV_CTRL, "jitlazyflush", GTK_SIGNAL_FUNC(tb_jit_lazy_flush)); - + + // Follow constant jumps (inline basic blocks) + w_jit_follow_const_jumps = make_checkbox(box, STR_JIT_FOLLOW_CONST_JUMPS, "jitinline", GTK_SIGNAL_FUNC(tb_jit_follow_const_jumps)); + set_jit_sensitive(); #endif } @@ -1163,6 +1178,10 @@ static GList *add_ether_names(void) } close(s); } +#ifdef HAVE_SLIRP + static char s_slirp[] = "slirp"; + glist = g_list_append(glist, s_slirp); +#endif if (glist) g_list_sort(glist, gl_str_cmp); else