| version 1.42, 2003/12/04 17:12:09 | version 1.47, 2004/01/11 16:58:47 | 
| Line 46 | Line 46 | 
 | // #define      OPENING_WAIT    1500 | // #define      OPENING_WAIT    1500 | 
 |  |  | 
 |  |  | 
| NP2OSCFG        np2oscfg = {"Neko Project IIx", -1, -1, 0, 2, 0, 0, 0, 0, 0, 1, 0}; | NP2OSCFG        np2oscfg = {"Neko Project IIx", -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0}; | 
 |  |  | 
 | WindowPtr       hWndMain; | WindowPtr       hWndMain; | 
 | BOOL            np2running; | BOOL            np2running; | 
| Line 379  static void HandleMenuChoice(long wParam | Line 379  static void HandleMenuChoice(long wParam | 
 |  |  | 
 | case IDM_F11KANA: | case IDM_F11KANA: | 
 | menu_setf11key(0); | menu_setf11key(0); | 
| mackbd_resetf11f12(); | mackbd_resetf11(); | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_F11STOP: | case IDM_F11STOP: | 
 | menu_setf11key(1); | menu_setf11key(1); | 
| mackbd_resetf11f12(); | mackbd_resetf11(); | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_F11EQU: | case IDM_F11EQU: | 
 | menu_setf11key(2); | menu_setf11key(2); | 
| mackbd_resetf11f12(); | mackbd_resetf11(); | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_F11NFER: | case IDM_F11NFER: | 
 | menu_setf11key(3); | menu_setf11key(3); | 
| mackbd_resetf11f12(); | mackbd_resetf11(); | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_F12MOUSE: | case IDM_F12MOUSE: | 
 | menu_setf12key(0); | menu_setf12key(0); | 
| mackbd_resetf11f12(); | mackbd_resetf12(); | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_F12COPY: | case IDM_F12COPY: | 
 | menu_setf12key(1); | menu_setf12key(1); | 
| mackbd_resetf11f12(); | mackbd_resetf12(); | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_F12COMMA: | case IDM_F12COMMA: | 
 | menu_setf12key(2); | menu_setf12key(2); | 
| mackbd_resetf11f12(); | mackbd_resetf12(); | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
 | case IDM_F12XFER: | case IDM_F12XFER: | 
 | menu_setf12key(3); | menu_setf12key(3); | 
| mackbd_resetf11f12(); | mackbd_resetf12(); | 
 | update |= SYS_UPDATEOSCFG; | update |= SYS_UPDATEOSCFG; | 
 | break; | break; | 
 |  |  | 
| Line 499  static void HandleMenuChoice(long wParam | Line 499  static void HandleMenuChoice(long wParam | 
 | update |= SYS_UPDATECFG; | update |= SYS_UPDATECFG; | 
 | break; | break; | 
 |  |  | 
 |  | case IDM_JASTSOUND: | 
 |  | menu_setjastsound(np2oscfg.jastsnd ^ 1); | 
 |  | update |= SYS_UPDATEOSCFG; | 
 |  | break; | 
 |  |  | 
 | case IDM_SEEKSND: | case IDM_SEEKSND: | 
 | menu_setmotorflg(np2cfg.MOTOR ^ 1); | menu_setmotorflg(np2cfg.MOTOR ^ 1); | 
 | update |= SYS_UPDATECFG; | update |= SYS_UPDATECFG; | 
| Line 712  int main(int argc, char *argv[]) { | Line 717  int main(int argc, char *argv[]) { | 
 | menu_setf12key(np2oscfg.F12KEY); | menu_setf12key(np2oscfg.F12KEY); | 
 | menu_setbeepvol(np2cfg.BEEP_VOL); | menu_setbeepvol(np2cfg.BEEP_VOL); | 
 | menu_setsound(np2cfg.SOUND_SW); | menu_setsound(np2cfg.SOUND_SW); | 
 |  | menu_setjastsound(np2oscfg.jastsnd); | 
 | menu_setmotorflg(np2cfg.MOTOR); | menu_setmotorflg(np2cfg.MOTOR); | 
 | menu_setextmem(np2cfg.EXTMEM); | menu_setextmem(np2cfg.EXTMEM); | 
 | menu_setdispclk(np2oscfg.DISPCLK); | menu_setdispclk(np2oscfg.DISPCLK); | 
| Line 827  int main(int argc, char *argv[]) { | Line 833  int main(int argc, char *argv[]) { | 
 | } | } | 
 | } | } | 
 |  |  | 
 | GetWindowBounds(hWndMain, kWindowGlobalPortRgn, &bounds); |  | 
 | if ((np2oscfg.winx != bounds.left) || (np2oscfg.winy != bounds.top)) { |  | 
 | np2oscfg.winx = bounds.left; |  | 
 | np2oscfg.winy = bounds.top; |  | 
 | sysmng_update(SYS_UPDATEOSCFG); |  | 
 | } |  | 
 |  |  | 
 | np2running = FALSE; | np2running = FALSE; | 
 | menu_setrecording(true); | menu_setrecording(true); | 
 |  |  | 
| Line 841  int main(int argc, char *argv[]) { | Line 840  int main(int argc, char *argv[]) { | 
 | toggleFullscreen(); | toggleFullscreen(); | 
 | } | } | 
 |  |  | 
 |  | GetWindowBounds(hWndMain, kWindowGlobalPortRgn, &bounds); | 
 |  | if ((np2oscfg.winx != bounds.left) || (np2oscfg.winy != bounds.top)) { | 
 |  | np2oscfg.winx = bounds.left; | 
 |  | np2oscfg.winy = bounds.top; | 
 |  | sysmng_update(SYS_UPDATEOSCFG); | 
 |  | } | 
 |  |  | 
 | pccore_cfgupdate(); | pccore_cfgupdate(); | 
 |  |  | 
 | #if defined(USE_RESUME) | #if defined(USE_RESUME) | 
| Line 938  static pascal OSStatus np2appevent (Even | Line 944  static pascal OSStatus np2appevent (Even | 
 | result = noErr; | result = noErr; | 
 | break; | break; | 
 | case kEventMouseDown: | case kEventMouseDown: | 
| if (buttonKind == kEventMouseButtonSecondary | modif & controlKey) { | if (buttonKind == kEventMouseButtonSecondary || modif & cmdKey) { | 
 | mousemng_buttonevent(MOUSEMNG_RIGHTDOWN); | mousemng_buttonevent(MOUSEMNG_RIGHTDOWN); | 
 | } | } | 
 | else { | else { | 
| Line 947  static pascal OSStatus np2appevent (Even | Line 953  static pascal OSStatus np2appevent (Even | 
 | result=noErr; | result=noErr; | 
 | break; | break; | 
 | case kEventMouseUp: | case kEventMouseUp: | 
| if (buttonKind == kEventMouseButtonSecondary | modif & controlKey) { | if (buttonKind == kEventMouseButtonSecondary || modif & cmdKey) { | 
 | mousemng_buttonevent(MOUSEMNG_RIGHTUP); | mousemng_buttonevent(MOUSEMNG_RIGHTUP); | 
 | } | } | 
 | else if (buttonKind == kEventMouseButtonTertiary) { | else if (buttonKind == kEventMouseButtonTertiary) { | 
| Line 967  static pascal OSStatus np2appevent (Even | Line 973  static pascal OSStatus np2appevent (Even | 
 | } | } | 
 | #endif | #endif | 
 | break; | break; | 
 |  | case kEventClassKeyboard: | 
 |  | if (GetEventKind(event)==kEventRawKeyModifiersChanged) { | 
 |  | static UInt32 backup = 0; | 
 |  | if (modif & shiftKey) keystat_senddata(0x70); | 
 |  | else keystat_senddata(0x70 | 0x80); | 
 |  | if (modif & optionKey) keystat_senddata(0x73); | 
 |  | else keystat_senddata(0x73 | 0x80); | 
 |  | if (modif & controlKey) keystat_senddata(0x74); | 
 |  | else keystat_senddata(0x74 | 0x80); | 
 |  | if ((modif & alphaLock) != (backup & alphaLock)) { | 
 |  | keystat_senddata(0x71); | 
 |  | backup = modif; | 
 |  | } | 
 |  | result = noErr; | 
 |  | } | 
 |  | break; | 
 | default: | default: | 
 | break; | break; | 
 | } | } | 
| Line 988  static pascal OSStatus np2windowevent(Ev | Line 1010  static pascal OSStatus np2windowevent(Ev | 
 | eventClass = GetEventClass(event); | eventClass = GetEventClass(event); | 
 | whatHappened = GetEventKind(event); | whatHappened = GetEventKind(event); | 
 |  |  | 
 | static UInt32 backup = 0; |  | 
 | switch (eventClass) | switch (eventClass) | 
 | { | { | 
 | case kEventClassKeyboard: | case kEventClassKeyboard: | 
| Line 1019  static pascal OSStatus np2windowevent(Ev | Line 1040  static pascal OSStatus np2windowevent(Ev | 
 | } | } | 
 | result = noErr; | result = noErr; | 
 | break; | break; | 
 | case kEventRawKeyModifiersChanged: |  | 
 | if (modif & shiftKey) keystat_senddata(0x70); |  | 
 | else keystat_senddata(0x70 | 0x80); |  | 
 | if (modif & optionKey) keystat_senddata(0x73); |  | 
 | else keystat_senddata(0x73 | 0x80); |  | 
 | if (modif & controlKey) keystat_senddata(0x74); |  | 
 | else keystat_senddata(0x74 | 0x80); |  | 
 | if ((modif & alphaLock) != (backup & alphaLock)) { |  | 
 | keystat_senddata(0x71); |  | 
 | backup = modif; |  | 
 | } |  | 
 | result = noErr; |  | 
 | break; |  | 
 | default: | default: | 
 | break; | break; | 
 | } | } | 
| Line 1078  static const EventTypeSpec appEventList[ | Line 1086  static const EventTypeSpec appEventList[ | 
 | {kEventClassMouse,              kEventMouseMoved}, | {kEventClassMouse,              kEventMouseMoved}, | 
 | {kEventClassMouse,              kEventMouseUp}, | {kEventClassMouse,              kEventMouseUp}, | 
 | #endif | #endif | 
 |  | {kEventClassKeyboard,   kEventRawKeyModifiersChanged}, | 
 | }; | }; | 
 |  |  | 
 | static const EventTypeSpec windEventList[] = { | static const EventTypeSpec windEventList[] = { | 
| Line 1090  static const EventTypeSpec windEventList | Line 1099  static const EventTypeSpec windEventList | 
 | {kEventClassKeyboard,   kEventRawKeyDown}, | {kEventClassKeyboard,   kEventRawKeyDown}, | 
 | {kEventClassKeyboard,   kEventRawKeyUp}, | {kEventClassKeyboard,   kEventRawKeyUp}, | 
 | {kEventClassKeyboard,   kEventRawKeyRepeat}, | {kEventClassKeyboard,   kEventRawKeyRepeat}, | 
 | {kEventClassKeyboard,   kEventRawKeyModifiersChanged}, |  | 
 | }; | }; | 
 |  |  | 
 |  |  | 
| Line 1141  static bool setupMainWindow(void) { | Line 1149  static bool setupMainWindow(void) { | 
 | setUpCarbonEvent(); | setUpCarbonEvent(); | 
 | if (backupwidth) scrnmng_setwidth(0, backupwidth); | if (backupwidth) scrnmng_setwidth(0, backupwidth); | 
 | if (backupheight) scrnmng_setheight(0, backupheight); | if (backupheight) scrnmng_setheight(0, backupheight); | 
| SetWindowTitleWithCFString(hWndMain, CFStringCreateWithCString(NULL, np2oscfg.titles, kCFStringEncodingUTF8)); | CFStringRef title = CFStringCreateWithCString(NULL, np2oscfg.titles, kCFStringEncodingUTF8); | 
|  | if (title) { | 
|  | SetWindowTitleWithCFString(hWndMain, title); | 
|  | CFRelease(title); | 
|  | } | 
 | ShowWindow(hWndMain); | ShowWindow(hWndMain); | 
 | return(true); | return(true); | 
 | } | } | 
| Line 1162  static void toggleFullscreen(void) { | Line 1174  static void toggleFullscreen(void) { | 
 | backupheight = bounds.bottom - bounds.top; | backupheight = bounds.bottom - bounds.top; | 
 | toolwin = np2oscfg.toolwin; | toolwin = np2oscfg.toolwin; | 
 | toolwin_close(); | toolwin_close(); | 
 |  | np2oscfg.winx = bounds.left; | 
 |  | np2oscfg.winy = bounds.top; | 
 | DisposeWindow(hWndMain); | DisposeWindow(hWndMain); | 
 | BeginFullScreen(&bkfullscreen, 0, &w, &h, &hWndMain, NULL, fullScreenAllowEvents); | BeginFullScreen(&bkfullscreen, 0, &w, &h, &hWndMain, NULL, fullScreenAllowEvents); | 
 | DisableMenuItem(menu, IDM_ROLNORMAL); | DisableMenuItem(menu, IDM_ROLNORMAL); |