Diff for /np2/macosx/np2.cpp between versions 1.38 and 1.48

version 1.38, 2003/11/13 18:17:42 version 1.48, 2004/01/11 19:22:01
Line 46 Line 46
 // #define      OPENING_WAIT    1500  // #define      OPENING_WAIT    1500
   
   
                 NP2OSCFG        np2oscfg = {"Neko Project IIx", 0, 2, 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 93  pascal OSErr OpenAppleEventHandler(const Line 93  pascal OSErr OpenAppleEventHandler(const
         DescType        rtype;          DescType        rtype;
         AEKeyword       key;          AEKeyword       key;
         AEDescList      dlist;          AEDescList      dlist;
       OSErr               err = noErr;
                   
         if(!AEGetParamDesc(event,keyDirectObject,typeAEList,&dlist))    {          if(!AEGetParamDesc(event,keyDirectObject,typeAEList,&dlist))    {
                 AECountItems( &dlist,&ct );                  AECountItems( &dlist,&ct );
                 for( i=1;i<=ct;i++ )    {                  for( i=1;i<=ct;i++ )    {
             pp=&fsc;              pp=&fsc;
                         if (!AEGetNthPtr( &dlist,i,typeFSS,&key,&rtype,(Ptr)pp,(long)sizeof(FSSpec),&len))      {                          if (!AEGetNthPtr( &dlist,i,typeFSS,&key,&rtype,(Ptr)pp,(long)sizeof(FSSpec),&len))      {
                 setDropFile(fsc, i-1);                  err = setDropFile(fsc, i-1);
                         }                          }
                 }                  }
                 AEDisposeDesc( &dlist );                  AEDisposeDesc( &dlist );
         }          }
         return( 0 );          return(err);
 }  }
   
   
Line 140  static void MenuBarInit(void) { Line 141  static void MenuBarInit(void) {
         InsertMenu(GetMenu(IDM_MEMORY), -1);          InsertMenu(GetMenu(IDM_MEMORY), -1);
     ChangeMenuAttributes(GetMenuRef(IDM_EDIT), kMenuAttrAutoDisable, 0);      ChangeMenuAttributes(GetMenuRef(IDM_EDIT), kMenuAttrAutoDisable, 0);
     DisableAllMenuItems(GetMenuHandle(IDM_EDIT));      DisableAllMenuItems(GetMenuHandle(IDM_EDIT));
     SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2OPEN, kMenuOptionModifier);      SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2OPEN, kMenuShiftModifier);
     SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2EJECT, kMenuOptionModifier);      SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2EJECT, kMenuShiftModifier);
     SetMenuItemModifiers(GetMenuRef(IDM_SASI2), IDM_SASI2OPEN, kMenuOptionModifier);      SetMenuItemModifiers(GetMenuRef(IDM_SASI2), IDM_SASI2OPEN, kMenuShiftModifier);
         DrawMenuBar();          DrawMenuBar();
 #else  #else
     OSStatus    err;      OSStatus    err;
Line 337  static void HandleMenuChoice(long wParam Line 338  static void HandleMenuChoice(long wParam
                 case IDM_KEY:                  case IDM_KEY:
                         menu_setkey(0);                          menu_setkey(0);
                         keystat_resetjoykey();                          keystat_resetjoykey();
                           update |= SYS_UPDATECFG;
                         break;                          break;
   
                 case IDM_JOY1:                  case IDM_JOY1:
                         menu_setkey(1);                          menu_setkey(1);
                         keystat_resetjoykey();                          keystat_resetjoykey();
                           update |= SYS_UPDATECFG;
                         break;                          break;
   
                 case IDM_JOY2:                  case IDM_JOY2:
                         menu_setkey(2);                          menu_setkey(2);
                         keystat_resetjoykey();                          keystat_resetjoykey();
                           update |= SYS_UPDATECFG;
                         break;                          break;
   
                 case IDM_MOUSEKEY:                  case IDM_MOUSEKEY:
                         menu_setkey(3);                          menu_setkey(3);
                         keystat_resetjoykey();                          keystat_resetjoykey();
                           update |= SYS_UPDATECFG;
                         break;                          break;
   
                 case IDM_XSHIFT:                  case IDM_XSHIFT:
                         menu_setxshift(np2cfg.XSHIFT ^ 1);                          menu_setxshift(np2cfg.XSHIFT ^ 1);
                         keystat_forcerelease(0x70);                          keystat_forcerelease(0x70);
                           update |= SYS_UPDATECFG;
                         break;                          break;
   
                 case IDM_XCTRL:                  case IDM_XCTRL:
                         menu_setxshift(np2cfg.XSHIFT ^ 2);                          menu_setxshift(np2cfg.XSHIFT ^ 2);
                         keystat_forcerelease(0x74);                          keystat_forcerelease(0x74);
                           update |= SYS_UPDATECFG;
                         break;                          break;
   
                 case IDM_XGRPH:                  case IDM_XGRPH:
                         menu_setxshift(np2cfg.XSHIFT ^ 4);                          menu_setxshift(np2cfg.XSHIFT ^ 4);
                         keystat_forcerelease(0x73);                          keystat_forcerelease(0x73);
                           update |= SYS_UPDATECFG;
                         break;                          break;
   
                 case IDM_F12MOUSE:                  case IDM_F11KANA:
                         menu_setf12copy(0);                          menu_setf11key(0);
                         mackbd_resetf12();                          mackbd_resetf11();
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_F12COPY:                  case IDM_F11STOP:
                         menu_setf12copy(1);                          menu_setf11key(1);
                         mackbd_resetf12();                          mackbd_resetf11();
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATEOSCFG;
                           break;
   
                   case IDM_F11EQU:
                           menu_setf11key(2);
                           mackbd_resetf11();
                           update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_F12STOP:                  case IDM_F11NFER:
                         menu_setf12copy(2);                          menu_setf11key(3);
                           mackbd_resetf11();
                           update |= SYS_UPDATEOSCFG;
                           break;
   
                   case IDM_F12MOUSE:
                           menu_setf12key(0);
                         mackbd_resetf12();                          mackbd_resetf12();
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_F12EQU:                  case IDM_F12COPY:
                         menu_setf12copy(3);                          menu_setf12key(1);
                         mackbd_resetf12();                          mackbd_resetf12();
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_F12COMMA:                  case IDM_F12COMMA:
                         menu_setf12copy(4);                          menu_setf12key(2);
                         mackbd_resetf12();                          mackbd_resetf12();
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATEOSCFG;
                           break;
   
                   case IDM_F12XFER:
                           menu_setf12key(3);
                           mackbd_resetf12();
                           update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                 case IDM_BEEPOFF:                  case IDM_BEEPOFF:
Line 473  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 648  int main(int argc, char *argv[]) { Line 679  int main(int argc, char *argv[]) {
   
     EventRef            theEvent;      EventRef            theEvent;
     EventTargetRef      theTarget;      EventTargetRef      theTarget;
       Rect                        bounds;
 #ifdef OPENING_WAIT  #ifdef OPENING_WAIT
         UINT32          tick;          UINT32          tick;
 #endif  #endif
Line 681  int main(int argc, char *argv[]) { Line 713  int main(int argc, char *argv[]) {
         menu_setframe(np2oscfg.DRAW_SKIP);          menu_setframe(np2oscfg.DRAW_SKIP);
         menu_setkey(0);          menu_setkey(0);
         menu_setxshift(0);          menu_setxshift(0);
         menu_setf12copy(np2oscfg.F12COPY);          menu_setf11key(np2oscfg.F11KEY);
           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 798  int main(int argc, char *argv[]) { Line 832  int main(int argc, char *argv[]) {
                         }                          }
                 }                  }
         }          }
       
         np2running = FALSE;          np2running = FALSE;
     menu_setrecording(true);      menu_setrecording(true);
   
Line 805  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 902  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 911  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 931  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 952  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 983  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 1042  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 1054  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 1099  static bool setupMainWindow(void) { Line 1143  static bool setupMainWindow(void) {
         }          }
         SizeWindow(hWndMain, 640, 400, TRUE);          SizeWindow(hWndMain, 640, 400, TRUE);
 #endif  #endif
       if (np2oscfg.winx != -1 && np2oscfg.winy != -1) {
           MoveWindow(hWndMain, np2oscfg.winx, np2oscfg.winy, false);
       }
     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 1124  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);

Removed from v.1.38  
changed lines
  Added in v.1.48


RetroPC.NET-CVS <cvs@retropc.net>