--- np2/macosx/np2.cpp 2004/03/24 17:11:09 1.58 +++ np2/macosx/np2.cpp 2004/04/20 17:28:24 1.61 @@ -39,7 +39,7 @@ #include "toolwin.h" #include "aboutdlg.h" #include "keystat.h" -#include "kdispwin.h" +#include "subwind.h" #define NP2OPENING // #define OPENING_WAIT 1500 @@ -176,6 +176,10 @@ static void MenuBarInit(void) { #ifndef SUPPORT_KEYDISP DisableMenuItem(GetMenuRef(IDM_OTHER), IDM_KEYDISP); #endif +#ifndef SUPPORT_SOFTKBD + SetMenuItemTextWithCFString(GetMenuRef(IDM_OTHER), IDM_SOFTKBD, CFSTR("please wait for 0.80")); + DisableMenuItem(GetMenuRef(IDM_OTHER), IDM_SOFTKBD); +#endif if (np2oscfg.I286SAVE) { AppendMenuItemTextWithCFString(GetMenuRef(IDM_OTHER), CFCopyLocalizedString(CFSTR("i286 save"),"i286"), kMenuItemAttrIconDisabled, NULL,NULL); } @@ -675,6 +679,17 @@ void HandleMenuChoice(long wParam) { } break; #endif +#if defined(SUPPORT_SOFTKBD) + case IDM_SOFTKBD: + menu_setsoftwarekeyboard(np2oscfg.softkey ^ 1); + if (np2oscfg.softkey) { + skbdwin_create(); + } + else { + skbdwin_destroy(); + } + break; +#endif case IDM_I286SAVE: debugsub_status(); @@ -724,6 +739,7 @@ static void framereset(UINT waitcnt) { framecnt = 0; kdispwin_draw((BYTE)waitcnt); toolwin_draw((BYTE)waitcnt); + skbdwin_process(); if (np2oscfg.DISPCLK & 3) { if (sysmng_workclockrenewal()) { sysmng_updatecaption(3); @@ -809,12 +825,14 @@ int main(int argc, char *argv[]) { keystat_initialize(); kdispwin_initialize(); + skbdwin_readini(); toolwin_readini(); kdispwin_readini(); if (!(setupMainWindow())) { return(0); } + skbdwin_initialize(); #ifdef NP2OPENING openingNP2(); @@ -842,6 +860,9 @@ int main(int argc, char *argv[]) { #if defined(SUPPORT_KEYDISP) menu_setkeydisp(np2oscfg.keydisp); #endif +#if defined(SUPPORT_SOFTKBD) + menu_setsoftwarekeyboard(np2oscfg.softkey); +#endif scrnmng_initialize(); if (scrnmng_create(scrnmode) != SUCCESS) { @@ -888,6 +909,11 @@ int main(int argc, char *argv[]) { kdispwin_create(); } #endif +#if defined(SUPPORT_SOFTKBD) + if (np2oscfg.softkey) { + skbdwin_create(); + } +#endif theTarget = GetEventDispatcherTarget(); @@ -995,11 +1021,14 @@ int main(int argc, char *argv[]) { scrnmng_destroy(); kdispwin_destroy(); + skbdwin_destroy(); if (sys_updates & (SYS_UPDATECFG | SYS_UPDATEOSCFG)) { initsave(); // np2.cfg create toolwin_writeini(); // np2.cfg append kdispwin_writeini(); + skbdwin_writeini(); } + skbdwin_deinitialize(); TRACETERM(); macossub_term(); dosio_term();