--- BasiliskII/src/Unix/prefs_editor_gtk.cpp 2000/07/13 17:26:17 1.13 +++ BasiliskII/src/Unix/prefs_editor_gtk.cpp 2001/07/12 19:48:27 1.18 @@ -1,7 +1,7 @@ /* * prefs_editor_gtk.cpp - Preferences editor, Unix implementation using GTK+ * - * Basilisk II (C) 1997-2000 Christian Bauer + * Basilisk II (C) 1997-2001 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 @@ -227,13 +227,21 @@ static void mn_about(...) { GtkWidget *dialog, *label, *button; - char str[256]; - sprintf(str, GetString(STR_ABOUT_TEXT1), VERSION_MAJOR, VERSION_MINOR); - strncat(str, "\n", 255); - strncat(str, GetString(STR_ABOUT_TEXT2), 255); + char str[512]; + sprintf(str, + "Basilisk II\nVersion %d.%d\n\n" + "Copyright (C) 1997-2001 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" + "WARRANTY. This is free software, and\n" + "you are welcome to redistribute it\n" + "under the terms of the GNU General\n" + "Public License.\n", + VERSION_MAJOR, VERSION_MINOR + ); dialog = gtk_dialog_new(); - gtk_widget_set_usize(GTK_WIDGET(dialog), strlen(GetString(STR_ABOUT_TEXT2)) + 200, 120); gtk_window_set_title(GTK_WINDOW(dialog), GetString(STR_ABOUT_TITLE)); gtk_container_border_width(GTK_CONTAINER(dialog), 5); gtk_widget_set_uposition(GTK_WIDGET(dialog), 100, 150); @@ -402,8 +410,8 @@ static void cb_remove_volume(...) } // "Boot From" selected -static void mn_boot_any(...) {PrefsReplaceInt16("bootdriver", 0);} -static void mn_boot_cdrom(...) {PrefsReplaceInt16("bootdriver", CDROMRefNum);} +static void mn_boot_any(...) {PrefsReplaceInt32("bootdriver", 0);} +static void mn_boot_cdrom(...) {PrefsReplaceInt32("bootdriver", CDROMRefNum);} // "No CD-ROM Driver" button toggled static void tb_nocdrom(GtkWidget *widget) @@ -466,7 +474,7 @@ static void create_volumes_pane(GtkWidge {STR_BOOT_CDROM_LAB, GTK_SIGNAL_FUNC(mn_boot_cdrom)}, {0, NULL} }; - int bootdriver = PrefsFindInt16("bootdriver"), active = 0; + int bootdriver = PrefsFindInt32("bootdriver"), active = 0; switch (bootdriver) { case 0: active = 0; break; case CDROMRefNum: active = 1; break; @@ -773,7 +781,7 @@ static GtkWidget *w_mouse_wheel_lines; static void set_input_sensitive(void) { gtk_widget_set_sensitive(w_keycode_file, PrefsFindBool("keycodes")); - gtk_widget_set_sensitive(w_mouse_wheel_lines, PrefsFindInt16("mousewheelmode") == 1); + gtk_widget_set_sensitive(w_mouse_wheel_lines, PrefsFindInt32("mousewheelmode") == 1); } // "Use Raw Keycodes" button toggled @@ -784,8 +792,8 @@ static void tb_keycodes(GtkWidget *widge } // "Mouse Wheel Mode" selected -static void mn_wheel_page(...) {PrefsReplaceInt16("mousewheelmode", 0); set_input_sensitive();} -static void mn_wheel_cursor(...) {PrefsReplaceInt16("mousewheelmode", 1); set_input_sensitive();} +static void mn_wheel_page(...) {PrefsReplaceInt32("mousewheelmode", 0); set_input_sensitive();} +static void mn_wheel_cursor(...) {PrefsReplaceInt32("mousewheelmode", 1); set_input_sensitive();} // Read settings from widgets and set preferences static void read_input_settings(void) @@ -796,7 +804,7 @@ static void read_input_settings(void) else PrefsRemoveItem("keycodefile"); - PrefsReplaceInt16("mousewheellines", gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w_mouse_wheel_lines))); + PrefsReplaceInt32("mousewheellines", gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w_mouse_wheel_lines))); } // Create "Input" pane @@ -817,7 +825,7 @@ static void create_input_pane(GtkWidget {STR_MOUSEWHEELMODE_CURSOR_LAB, GTK_SIGNAL_FUNC(mn_wheel_cursor)}, {0, NULL} }; - int wheelmode = PrefsFindInt16("mousewheelmode"), active = 0; + int wheelmode = PrefsFindInt32("mousewheelmode"), active = 0; switch (wheelmode) { case 0: active = 0; break; case 1: active = 1; break; @@ -832,7 +840,7 @@ static void create_input_pane(GtkWidget gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); - adj = gtk_adjustment_new(PrefsFindInt16("mousewheellines"), 1, 1000, 1, 5, 0); + adj = gtk_adjustment_new(PrefsFindInt32("mousewheellines"), 1, 1000, 1, 5, 0); w_mouse_wheel_lines = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 0.0, 0); gtk_widget_show(w_mouse_wheel_lines); gtk_box_pack_start(GTK_BOX(hbox), w_mouse_wheel_lines, FALSE, FALSE, 0); @@ -845,7 +853,23 @@ static void create_input_pane(GtkWidget * "Serial/Network" pane */ -static GtkWidget *w_seriala, *w_serialb, *w_ether; +static GtkWidget *w_seriala, *w_serialb, *w_ether, *w_udp_port; + +// Set sensitivity of widgets +static void set_serial_sensitive(void) +{ +#if SUPPORTS_UDP_TUNNEL + gtk_widget_set_sensitive(w_ether, !PrefsFindBool("udptunnel")); + gtk_widget_set_sensitive(w_udp_port, PrefsFindBool("udptunnel")); +#endif +} + +// "Tunnel AppleTalk over IP" button toggled +static void tb_udptunnel(GtkWidget *widget) +{ + PrefsReplaceBool("udptunnel", GTK_TOGGLE_BUTTON(widget)->active); + set_serial_sensitive(); +} // Read settings from widgets and set preferences static void read_serial_settings(void) @@ -863,6 +887,10 @@ static void read_serial_settings(void) PrefsReplaceString("ether", str); else PrefsRemoveItem("ether"); + +#if SUPPORTS_UDP_TUNNEL + PrefsReplaceInt32("udpport", gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w_udp_port))); +#endif } // Add names of serial devices @@ -946,8 +974,8 @@ static GList *add_ether_names(void) // Create "Serial/Network" pane static void create_serial_pane(GtkWidget *top) { - GtkWidget *box, *table, *label, *combo, *sep; - GList *glist = add_serial_names(); + GtkWidget *box, *hbox, *table, *label, *combo, *sep; + GtkObject *adj; box = make_pane(top, STR_SERIAL_NETWORK_PANE_TITLE); table = make_table(box, 2, 4); @@ -956,6 +984,7 @@ static void create_serial_pane(GtkWidget gtk_widget_show(label); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, (GtkAttachOptions)0, (GtkAttachOptions)0, 4, 4); + GList *glist = add_serial_names(); combo = gtk_combo_new(); gtk_widget_show(combo); gtk_combo_set_popdown_strings(GTK_COMBO(combo), glist); @@ -998,6 +1027,25 @@ static void create_serial_pane(GtkWidget gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(combo)->entry), str); gtk_table_attach(GTK_TABLE(table), combo, 1, 2, 3, 4, (GtkAttachOptions)(GTK_FILL | GTK_EXPAND), (GtkAttachOptions)0, 4, 4); w_ether = GTK_COMBO(combo)->entry; + +#if SUPPORTS_UDP_TUNNEL + make_checkbox(box, STR_UDPTUNNEL_CTRL, "udptunnel", GTK_SIGNAL_FUNC(tb_udptunnel)); + + hbox = gtk_hbox_new(FALSE, 4); + gtk_widget_show(hbox); + gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); + + label = gtk_label_new(GetString(STR_UDPPORT_CTRL)); + gtk_widget_show(label); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); + + adj = gtk_adjustment_new(PrefsFindInt32("udpport"), 1, 65535, 1, 5, 0); + w_udp_port = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 0.0, 0); + gtk_widget_show(w_udp_port); + gtk_box_pack_start(GTK_BOX(hbox), w_udp_port, FALSE, FALSE, 0); +#endif + + set_serial_sensitive(); } @@ -1035,7 +1083,7 @@ static void read_memory_settings(void) // Create "Memory/Misc" pane static void create_memory_pane(GtkWidget *top) { - GtkWidget *box, *hbox, *vbox, *hbox2, *label, *scale, *menu; + GtkWidget *box, *hbox, *vbox, *hbox2, *label, *scale; box = make_pane(top, STR_MEMORY_MISC_PANE_TITLE);