--- np2/macos9/np2.cpp 2003/11/09 23:42:06 1.12 +++ np2/macos9/np2.cpp 2004/01/12 08:01:00 1.24 @@ -34,7 +34,7 @@ #define USE_RESUME - NP2OSCFG np2oscfg = {0, 2, 0, 0, 0, 0, 0}; + NP2OSCFG np2oscfg = {100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0}; WindowPtr hWndMain; BOOL np2running; @@ -119,12 +119,12 @@ static void MenuBarInit(void) { #if TARGET_API_MAC_CARBON hmenu = GetMenuHandle(IDM_FDD2); SetItemCmd(hmenu, LoWord(IDM_FDD2OPEN), 'D'); - SetMenuItemModifiers(hmenu, LoWord(IDM_FDD2OPEN), kMenuOptionModifier); + SetMenuItemModifiers(hmenu, LoWord(IDM_FDD2OPEN), kMenuShiftModifier); SetItemCmd(hmenu, LoWord(IDM_FDD2EJECT), 'E'); - SetMenuItemModifiers(hmenu, LoWord(IDM_FDD2EJECT), kMenuOptionModifier); + SetMenuItemModifiers(hmenu, LoWord(IDM_FDD2EJECT), kMenuShiftModifier); hmenu = GetMenuHandle(IDM_SASI2); - SetItemCmd(hmenu, LoWord(IDM_FDD2OPEN), 'O'); - SetMenuItemModifiers(hmenu, LoWord(IDM_SASI2OPEN), kMenuOptionModifier); + SetItemCmd(hmenu, LoWord(IDM_SASI2OPEN), 'O'); + SetMenuItemModifiers(hmenu, LoWord(IDM_SASI2OPEN), kMenuShiftModifier); #else EnableItem(GetMenuHandle(IDM_DEVICE), LoWord(IDM_MOUSE)); EnableItem(GetMenuHandle(IDM_KEYBOARD), LoWord(IDM_F12MOUSE)); @@ -262,10 +262,10 @@ static void HandleMenuChoice(long wParam dialog_scropt(); break; - case IDM_MOUSE: + case IDM_MOUSE: mousemng_toggle(MOUSEPROC_SYSTEM); - menu_setmouse(np2oscfg.MOUSE_SW ^ 1); - sysmng_update(SYS_UPDATECFG); + menu_setmouse(np2oscfg.MOUSE_SW ^ 1); + update |= SYS_UPDATECFG; break; case IDM_MIDIPANIC: @@ -277,54 +277,79 @@ static void HandleMenuChoice(long wParam case IDM_KEY: menu_setkey(0); keystat_resetjoykey(); + update |= SYS_UPDATECFG; break; case IDM_JOY1: menu_setkey(1); keystat_resetjoykey(); + update |= SYS_UPDATECFG; break; case IDM_JOY2: menu_setkey(2); keystat_resetjoykey(); + update |= SYS_UPDATECFG; break; case IDM_MOUSEKEY: menu_setkey(3); keystat_resetjoykey(); + update |= SYS_UPDATECFG; break; case IDM_XSHIFT: menu_setxshift(np2cfg.XSHIFT ^ 1); keystat_forcerelease(0x70); + update |= SYS_UPDATECFG; break; case IDM_XCTRL: menu_setxshift(np2cfg.XSHIFT ^ 2); keystat_forcerelease(0x74); + update |= SYS_UPDATECFG; break; case IDM_XGRPH: menu_setxshift(np2cfg.XSHIFT ^ 4); keystat_forcerelease(0x73); + update |= SYS_UPDATECFG; + break; + + case IDM_F11KANA: + menu_setf11key(0); + mackbd_resetf11(); + update |= SYS_UPDATEOSCFG; + break; + + case IDM_F11STOP: + menu_setf11key(1); + mackbd_resetf11(); + update |= SYS_UPDATEOSCFG; + break; + + case IDM_F11NFER: + menu_setf11key(3); + mackbd_resetf11(); + update |= SYS_UPDATEOSCFG; break; case IDM_F12MOUSE: - menu_setf12copy(0); - keystat_resetcopyhelp(); - update |= SYS_UPDATECFG; + menu_setf12key(0); + mackbd_resetf12(); + update |= SYS_UPDATEOSCFG; break; case IDM_F12COPY: - menu_setf12copy(1); - keystat_resetcopyhelp(); - update |= SYS_UPDATECFG; + menu_setf12key(1); + mackbd_resetf12(); + update |= SYS_UPDATEOSCFG; break; - case IDM_F12STOP: - menu_setf12copy(2); - keystat_resetcopyhelp(); - update |= SYS_UPDATECFG; + case IDM_F12XFER: + menu_setf12key(3); + mackbd_resetf12(); + update |= SYS_UPDATEOSCFG; break; case IDM_BEEPOFF: @@ -396,6 +421,16 @@ static void HandleMenuChoice(long wParam update |= SYS_UPDATECFG; break; + case IDM_AMD98: + menu_setsound(0x80); + update |= SYS_UPDATECFG; + break; + + case IDM_JASTSND: + menu_setjastsnd(np2oscfg.jastsnd ^ 1); + update |= SYS_UPDATEOSCFG; + break; + case IDM_SEEKSND: menu_setmotorflg(np2cfg.MOTOR ^ 1); update |= SYS_UPDATECFG; @@ -542,20 +577,29 @@ static void eventproc(EventRecord *event break; } #if !TARGET_API_MAC_CARBON - if ((keycode == 0x6f) && (np2oscfg.F12COPY == 0)) { + if ((keycode == 0x6f) && (np2oscfg.F12KEY == 0)) { HandleMenuChoice(IDM_MOUSE); break; } #endif if (event->modifiers & cmdKey) { +#if !TARGET_API_MAC_CARBON + if (mackbd_keydown(keycode, TRUE)) { + break; + } +#endif soundmng_stop(); mousemng_disable(MOUSEPROC_MACUI); +#if TARGET_API_MAC_CARBON + HandleMenuChoice(MenuEvent(event)); +#else HandleMenuChoice(MenuKey(event->message & charCodeMask)); +#endif mousemng_enable(MOUSEPROC_MACUI); soundmng_play(); } else { - mackbd_keydown(keycode); + mackbd_keydown(keycode, FALSE); } break; @@ -567,6 +611,10 @@ static void eventproc(EventRecord *event mousemng_buttonevent(MOUSEMNG_LEFTUP); mousemng_buttonevent(MOUSEMNG_RIGHTUP); break; + + case activateEvt: + mackbd_activate((event->modifiers & activeFlag)?TRUE:FALSE); + break; } } @@ -642,6 +690,8 @@ int main(int argc, char *argv[]) { Rect wRect; EventRecord event; UINT t; + GrafPtr saveport; + Point pt; dosio_init(); file_setcd(target); @@ -654,7 +704,7 @@ int main(int argc, char *argv[]) { TRACEINIT(); - SetRect(&wRect, 100, 100, 100, 100); + SetRect(&wRect, np2oscfg.posx, np2oscfg.posy, 100, 100); hWndMain = NewWindow(0, &wRect, "\pNeko Project II", FALSE, noGrowDocProc, (WindowPtr)-1, TRUE, 0); if (!hWndMain) { @@ -673,9 +723,11 @@ int main(int argc, char *argv[]) { menu_setframe(np2oscfg.DRAW_SKIP); menu_setkey(0); menu_setxshift(0); - menu_setf12copy(np2oscfg.F12COPY); + menu_setf11key(np2oscfg.F11KEY); + menu_setf12key(np2oscfg.F12KEY); menu_setbeepvol(np2cfg.BEEP_VOL); menu_setsound(np2cfg.SOUND_SW); + menu_setjastsnd(np2oscfg.jastsnd); menu_setmotorflg(np2cfg.MOTOR); menu_setextmem(np2cfg.EXTMEM); menu_setdispclk(np2oscfg.DISPCLK); @@ -786,6 +838,23 @@ int main(int argc, char *argv[]) { } } } + + GetPort(&saveport); +#if TARGET_API_MAC_CARBON + SetPortWindowPort(hWndMain); +#else + SetPort(hWndMain); +#endif + pt.h = 0; + pt.v = 0; + LocalToGlobal(&pt); + SetPort(saveport); + if ((np2oscfg.posx != pt.h) || (np2oscfg.posy != pt.v)) { + np2oscfg.posx = pt.h; + np2oscfg.posy = pt.v; + sysmng_update(SYS_UPDATEOSCFG); + } + np2running = FALSE; pccore_cfgupdate();