--- np2/x11/gtk/Attic/gtk_menu.c 2003/12/19 16:08:02 1.2 +++ np2/x11/gtk/Attic/gtk_menu.c 2004/07/02 15:00:42 1.7 @@ -48,6 +48,8 @@ #include "kdispwin.h" #include "toolwin.h" #include "viewer.h" +#include "debugwin.h" +#include "skbdwin.h" #include "mousemng.h" #include "scrnmng.h" @@ -57,7 +59,6 @@ #include "gtk/gtk_menu.h" #include "gtk/gtk_keyboard.h" -#include #include @@ -109,15 +110,17 @@ enum { static void sound_board(gpointer, guint, GtkWidget *); enum { - NOSOUNDBOARD = 0, - PC9801_14 = 1, - PC9801_26K = 2, - PC9801_86 = 4, - PC9801_118 = 8, - CHIBI_OTO = 0x14, - SPEAK_BOARD = 0x20, - SPARK_BOARD = 0x40, - AMD98_BOARD = 0x80 + PC9801_14 = 0x01, + PC9801_26K = 0x02, + PC9801_86 = 0x04, + PC9801_118 = 0x08, + CHIBI_OTO = 0x10, + SPEAK_BOARD = 0x20, + SPARK_BOARD = 0x40, + AMD98_BOARD = 0x80, + PC9801_26K_86 = (PC9801_26K|PC9801_86), + PC9801_86_CB = (PC9801_86|CHIBI_OTO), + NOSOUNDBOARD = 0x00 }; static void memory(gpointer, guint, GtkWidget *); @@ -132,6 +135,9 @@ static void memory_dump(GtkWidget *w, Gd #if defined(SUPPORT_VIEWER) static void debug_utility(GtkWidget *w, GdkEvent *e); #endif +#if defined(CPUCORE_IA32) && defined(SUPPORT_MEMDBG32) +static void memory_debug(GtkWidget *w, GdkEvent *e); +#endif static void toggle(gpointer, guint, GtkWidget *); @@ -231,8 +237,6 @@ static GtkItemFactoryEntry menu_items[] { "/HardDisk/SASI-_2", NULL, NULL, 0, "" }, { "/HardDisk/SASI-2/_Open...", NULL, f(sasiopen), 1, NULL }, { "/HardDisk/SASI-2/_Remove", NULL, f(sasiremove), 1, NULL }, -{ "/HardDisk/sep1", NULL, NULL, 0, "" }, -{ "/HardDisk/_Remove All", NULL, f(sasiremove), ~0, NULL }, { "/Screen", NULL, NULL, 0, "" }, { "/Screen/_Window", NULL, NULL, 0, "" }, { "/Screen/_FullScreen", NULL, NULL, 0, "/Screen/Window" }, @@ -264,8 +268,8 @@ static GtkItemFactoryEntry menu_items[] { "/Device/Keyboard/F12 = _Mouse", NULL, f(f12), 0, "" }, { "/Device/Keyboard/F12 = Co_py",NULL, f(f12),1,"/Device/Keyboard/F12 = Mouse"}, { "/Device/Keyboard/F12 = S_top",NULL, f(f12),2,"/Device/Keyboard/F12 = Copy" }, -{ "/Device/Keyboard/F12 = tenkey [=]", NULL, f(f12),3,"/Device/Keyboard/F12 = Stop" }, -{ "/Device/Keyboard/F12 = tenkey [,]", NULL, f(f12),4,"/Device/Keyboard/F12 = tenkey [=]" }, +{ "/Device/Keyboard/F12 = tenkey [=]", NULL, f(f12),4,"/Device/Keyboard/F12 = Stop" }, +{ "/Device/Keyboard/F12 = tenkey [,]", NULL, f(f12),3,"/Device/Keyboard/F12 = tenkey [=]" }, { "/Device/_Sound", NULL, NULL, 0, "" }, { "/Device/Sound/Beep _off", NULL, f(beepvol), BEEP_OFF, "" }, { "/Device/Sound/Beep _low", NULL, f(beepvol), BEEP_LOW, "/Device/Sound/Beep off" }, @@ -276,13 +280,15 @@ static GtkItemFactoryEntry menu_items[] { "/Device/Sound/PC-9801-_14", NULL, f(sound_board), PC9801_14, "/Device/Sound/Disable board" }, { "/Device/Sound/PC-9801-_26K", NULL, f(sound_board), PC9801_26K, "/Device/Sound/PC-9801-14" }, { "/Device/Sound/PC-9801-8_6", NULL, f(sound_board), PC9801_86, "/Device/Sound/PC-9801-26K" }, -{ "/Device/Sound/PC-9801-11_8", NULL, f(sound_board), PC9801_118, "/Device/Sound/PC-9801-86" }, -{ "/Device/Sound/_Chibi-oto", NULL, f(sound_board), CHIBI_OTO, "/Device/Sound/PC-9801-118" }, -{ "/Device/Sound/S_peak board", NULL, f(sound_board), SPEAK_BOARD, "/Device/Sound/Chibi-oto" }, +{ "/Device/Sound/PC-9801-26_K+86", NULL, f(sound_board), PC9801_26K_86, "/Device/Sound/PC-9801-86" }, +{ "/Device/Sound/PC-9801-86+_Chibi-oto", NULL, f(sound_board), PC9801_86_CB, "/Device/Sound/PC-9801-26K+86" }, +{ "/Device/Sound/PC-9801-11_8", NULL, f(sound_board), PC9801_118, "/Device/Sound/PC-9801-86+Chibi-oto" }, +{ "/Device/Sound/S_peak board", NULL, f(sound_board), SPEAK_BOARD, "/Device/Sound/PC-9801-118" }, { "/Device/Sound/Sp_ark board", NULL, f(sound_board), SPARK_BOARD, "/Device/Sound/Speak board" }, -{ "/Device/Sound/_AMD98", NULL, f(sound_board), SPARK_BOARD, "/Device/Sound/Spark board" }, +{ "/Device/Sound/_AMD98", NULL, f(sound_board), AMD98_BOARD, "/Device/Sound/Spark board" }, +{ "/Device/Sound/_Jast Sound", NULL, f(toggle), JAST_SOUND, "" }, { "/Device/Sound/sep2", NULL, NULL, 0, "" }, -{ "/Device/Sound/_Seek Sound", NULL, NULL, 0, "" }, +{ "/Device/Sound/_Seek Sound", NULL, f(toggle), SEEK_SOUND, "" }, { "/Device/M_emory", NULL, NULL, 0, "" }, { "/Device/Memory/64_0KB", NULL, f(memory), 0, "" }, { "/Device/Memory/_1.6MB", NULL, f(memory), 1, "/Device/Memory/640KB" }, @@ -318,6 +324,7 @@ static GtkItemFactoryEntry menu_items[] { "/Other/sep1", NULL, NULL, 0, "" }, { "/Other/_Tool Window", NULL, f(toggle), TOOL_WINDOW, "" }, { "/Other/_Key Display", NULL, f(toggle), KEY_DISPLAY, "" }, +{ "/Other/S_oftware Keyboard", NULL, f(toggle), SOFT_KBD, "" }, { "/Other/sep2", NULL, NULL, 0, "" }, { "/Other/_About...", NULL, f(_create_about_dialog), 0, NULL }, }; @@ -347,6 +354,8 @@ static struct { { "/Other/S98 logging...", 0, 0 }, { "/Other/Tool Window", 0, SYS_UPDATEOSCFG }, { "/Other/Key Display", 0, SYS_UPDATEOSCFG }, + { "/Other/Software Keyboard", 0, SYS_UPDATEOSCFG }, + { "/Device/Sound/Jast Sound", 0, SYS_UPDATEOSCFG }, }; static _MENU_HDL menu_hdl; @@ -356,15 +365,18 @@ static BOOL inited = FALSE; * menu initialize */ GtkWidget * -create_menu(GtkWidget *w) +create_menu(GtkWidget *parent) { GtkAccelGroup *accel_group; GtkWidget *menubar; + (void)parent; + accel_group = gtk_accel_group_new(); menu_hdl.item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "
", accel_group); gtk_item_factory_create_items(menu_hdl.item_factory, NELEMENTS(menu_items), menu_items, NULL); - gtk_accel_group_attach(accel_group, GTK_OBJECT(w)); + + menubar = gtk_item_factory_get_widget(menu_hdl.item_factory, "
"); disable_unused_items(); @@ -383,6 +395,8 @@ create_menu(GtkWidget *w) xmenu_toggle_item(MOUSE_RAPID, np2cfg.MOUSERAPID, TRUE); xmenu_toggle_item(TOOL_WINDOW, np2oscfg.toolwin, TRUE); xmenu_toggle_item(KEY_DISPLAY, np2oscfg.keydisp, TRUE); + xmenu_toggle_item(SOFT_KBD, np2oscfg.softkbd, TRUE); + xmenu_toggle_item(JAST_SOUND, np2oscfg.jastsnd, TRUE); xmenu_select_framerate(np2oscfg.DRAW_SKIP); xmenu_select_f12key(np2oscfg.F12KEY); @@ -393,8 +407,6 @@ create_menu(GtkWidget *w) inited = 1; - menubar = gtk_item_factory_get_widget(menu_hdl.item_factory, "
"); - if (np2oscfg.I286SAVE) { GtkWidget *debug_menu; GtkWidget *debug_item; @@ -403,6 +415,9 @@ create_menu(GtkWidget *w) #if defined(SUPPORT_VIEWER) GtkWidget *dbgutil_item; #endif +#if defined(CPUCORE_IA32) && defined(SUPPORT_MEMDBG32) + GtkWidget *memdbg_item; +#endif debug_menu = gtk_menu_new(); @@ -426,6 +441,14 @@ create_menu(GtkWidget *w) GTK_SIGNAL_FUNC(debug_utility), (gpointer)0); #endif +#if defined(CPUCORE_IA32) && defined(SUPPORT_MEMDBG32) + memdbg_item = gtk_menu_item_new_with_label("Memory Map"); + gtk_widget_show(memdbg_item); + gtk_menu_append(GTK_MENU(debug_menu), memdbg_item); + gtk_signal_connect_object(GTK_OBJECT(memdbg_item), "activate", + GTK_SIGNAL_FUNC(memory_debug), (gpointer)0); +#endif + debug_item = gtk_menu_item_new_with_label("Debug"); gtk_menu_item_right_justify(GTK_MENU_ITEM(debug_item)); gtk_widget_show(debug_item); @@ -450,12 +473,19 @@ disable_unused_items(void) "/Device/Sound/PC-9801-14", "/Device/Sound/PC-9801-26K", "/Device/Sound/PC-9801-86", + "/Device/Sound/PC-9801-26K+86", + "/Device/Sound/PC-9801-86+Chibi-oto", "/Device/Sound/PC-9801-118", - "/Device/Sound/Chibi-oto", "/Device/Sound/Speak board", "/Device/Sound/Spark board", "/Device/Sound/AMD98", - "/Device/Sound/Seek Sound" + "/Device/Sound/Seek Sound", +#endif +#if !defined(SUPPORT_KEYDISP) + "/Other/Key Display", +#endif +#if !defined(SUPPORT_SOFTKBD) + "/Other/Software Keyboard", #endif }; int i; @@ -492,8 +522,9 @@ xmenu_toggle_item(int arg, int onoff, in if (arg < NELEMENTS(toggle_items)) { if (onoff != toggle_items[arg].stat) { toggle_items[arg].stat = onoff; - if (emitp) + if (emitp) { xmenu_select_item(&menu_hdl, toggle_items[arg].name); + } if (inited && arg != MOUSE_MODE) { sysmng_update(toggle_items[arg].flag); } @@ -570,8 +601,9 @@ xmenu_select_soundboard(int kind) { "/Device/Sound/PC-9801-14", PC9801_14 }, { "/Device/Sound/PC-9801-26K", PC9801_26K }, { "/Device/Sound/PC-9801-86", PC9801_86 }, + { "/Device/Sound/PC-9801-26K+86", PC9801_26K_86 }, + { "/Device/Sound/PC-9801-86+Chibi-oto", PC9801_86_CB }, { "/Device/Sound/PC-9801-118", PC9801_118 }, - { "/Device/Sound/Chibi-oto", CHIBI_OTO }, { "/Device/Sound/Speak board", SPEAK_BOARD }, { "/Device/Sound/Spark board", SPARK_BOARD }, { "/Device/Sound/AMD98", AMD98_BOARD }, @@ -588,7 +620,7 @@ xmenu_select_soundboard(int kind) #else UNUSED(kind); - np2cfg.SOUND_SW = 0; + np2cfg.SOUND_SW = NOSOUNDBOARD; xmenu_select_item(&menu_hdl, "/Device/Sound/Disable board"); #endif } @@ -725,9 +757,10 @@ fddeject(gpointer data, guint action, Gt UNUSED(w); if (action == (guint)~0) { - for (i = 0; i < 4; i++) + for (i = 0; i < 4; i++) { diskdrv_setfdd(i, NULL, FALSE); toolwin_setfdd(i, NULL); + } } else { diskdrv_setfdd(action, NULL, FALSE); toolwin_setfdd(action, NULL); @@ -775,8 +808,9 @@ sasiremove(gpointer data, guint action, UNUSED(w); if (action == (guint)~0) { - for (i = 0; i < 2; i++) + for (i = 0; i < 2; i++) { diskdrv_sethdd(i, ""); + } } else { diskdrv_sethdd(action, ""); } @@ -944,15 +978,15 @@ sound_board(gpointer data, guint action, switch (action) { case NOSOUNDBOARD: - case PC9801_86: case PC9801_14: case PC9801_26K: + case PC9801_86: + case PC9801_26K_86: + case PC9801_86_CB: case PC9801_118: - case CHIBI_OTO: case SPEAK_BOARD: case SPARK_BOARD: case AMD98_BOARD: - /* XXX: ÆóË纹¤· */ if (np2cfg.SOUND_SW != action) { np2cfg.SOUND_SW = action; sysmng_update(SYS_UPDATECFG); @@ -1109,6 +1143,18 @@ debug_utility(GtkWidget *w, GdkEvent *e) } #endif +#if defined(CPUCORE_IA32) && defined(SUPPORT_MEMDBG32) +static void +memory_debug(GtkWidget *w, GdkEvent *e) +{ + + UNUSED(w); + UNUSED(e); + + debugwin_create(); +} +#endif + /* ----- toggle item */ static void toggle(gpointer data, guint action, GtkWidget *w) @@ -1140,7 +1186,7 @@ toggle(gpointer data, guint action, GtkW case SEEK_SOUND: np2cfg.MOTOR = !np2cfg.MOTOR; - xmenu_toggle_item(SEEK_SOUND, np2cfg.MOTOR, TRUE); + xmenu_toggle_item(SEEK_SOUND, np2cfg.MOTOR, FALSE); break; case MOUSE_MODE: @@ -1236,6 +1282,21 @@ toggle(gpointer data, guint action, GtkW } break; + case SOFT_KBD: + np2oscfg.softkbd = !np2oscfg.softkbd; + xmenu_toggle_item(SOFT_KBD, np2oscfg.softkbd, FALSE); + if (np2oscfg.softkbd) { + skbdwin_create(); + } else { + skbdwin_destroy(); + } + break; + + case JAST_SOUND: + np2oscfg.jastsnd = !np2oscfg.jastsnd; + xmenu_toggle_item(JAST_SOUND, np2oscfg.jastsnd, FALSE); + break; + case NUM_TOGGLE_ITEMS: default: break;