Diff for /np2/macosx/np2.cpp between versions 1.46 and 1.54

version 1.46, 2004/01/05 07:22:02 version 1.54, 2004/02/25 19:30:40
Line 26 Line 26
 #include        "s98.h"  #include        "s98.h"
 #include        "diskdrv.h"  #include        "diskdrv.h"
 #include        "fddfile.h"  #include        "fddfile.h"
 #include        "statsave.h"  
 #include        "mousemng.h"  #include        "mousemng.h"
 #include        "configure.h"  #include        "configure.h"
 #include        "screenopt.h"  #include        "screenopt.h"
Line 39 Line 38
 #include        "np2opening.h"  #include        "np2opening.h"
 #include        "toolwin.h"  #include        "toolwin.h"
 #include        "aboutdlg.h"  #include        "aboutdlg.h"
   #include        "keystat.h"
   
 #include        <QuickTime/QuickTime.h>  #include        <QuickTime/QuickTime.h>
 #define USE_RESUME  #define USE_RESUME
Line 136  static void MenuBarInit(void) { Line 136  static void MenuBarInit(void) {
         }          }
         InsertMenu(GetMenu(IDM_SASI1), -1);          InsertMenu(GetMenu(IDM_SASI1), -1);
         InsertMenu(GetMenu(IDM_SASI2), -1);          InsertMenu(GetMenu(IDM_SASI2), -1);
           InsertMenu(GetMenu(IDM_SCSI0), -1);
           InsertMenu(GetMenu(IDM_SCSI1), -1);
           InsertMenu(GetMenu(IDM_SCSI2), -1);
           InsertMenu(GetMenu(IDM_SCSI3), -1);
         InsertMenu(GetMenu(IDM_KEYBOARD), -1);          InsertMenu(GetMenu(IDM_KEYBOARD), -1);
         InsertMenu(GetMenu(IDM_SOUND), -1);          InsertMenu(GetMenu(IDM_SOUND), -1);
         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 250  static void HandleMenuChoice(long wParam Line 254  static void HandleMenuChoice(long wParam
                         diskdrv_sethdd(1, NULL);                          diskdrv_sethdd(1, NULL);
                         break;                          break;
   
                   case IDM_SCSI0OPEN:
                           dialog_changehdd(0x20);
                           break;
   
                   case IDM_SCSI0REMOVE:
                           diskdrv_sethdd(0x20, NULL);
                           break;
   
                   case IDM_SCSI1OPEN:
                           dialog_changehdd(0x21);
                           break;
   
                   case IDM_SCSI1REMOVE:
                           diskdrv_sethdd(0x21, NULL);
                           break;
   
                   case IDM_SCSI2OPEN:
                           dialog_changehdd(0x22);
                           break;
   
                   case IDM_SCSI2REMOVE:
                           diskdrv_sethdd(0x22, NULL);
                           break;
   
                   case IDM_SCSI3OPEN:
                           dialog_changehdd(0x23);
                           break;
   
                   case IDM_SCSI3REMOVE:
                           diskdrv_sethdd(0x23, NULL);
                           break;
   
                 case IDM_FULLSCREEN:                  case IDM_FULLSCREEN:
             toggleFullscreen();              toggleFullscreen();
             break;              break;
Line 401  static void HandleMenuChoice(long wParam Line 437  static void HandleMenuChoice(long wParam
                         update |= SYS_UPDATEOSCFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                   case IDM_F11USER:
                           menu_setf11key(4);
                           mackbd_resetf11();
                           update |= SYS_UPDATEOSCFG;
                           break;
   
                 case IDM_F12MOUSE:                  case IDM_F12MOUSE:
                         menu_setf12key(0);                          menu_setf12key(0);
                         mackbd_resetf12();                          mackbd_resetf12();
Line 425  static void HandleMenuChoice(long wParam Line 467  static void HandleMenuChoice(long wParam
                         update |= SYS_UPDATEOSCFG;                          update |= SYS_UPDATEOSCFG;
                         break;                          break;
   
                   case IDM_F12USER:
                           menu_setf12key(4);
                           mackbd_resetf12();
                           update |= SYS_UPDATEOSCFG;
                           break;
   
                 case IDM_BEEPOFF:                  case IDM_BEEPOFF:
                         menu_setbeepvol(0);                          menu_setbeepvol(0);
                         beep_setvol(0);                          beep_setvol(0);
Line 660  static void flagload(const char *ext) { Line 708  static void flagload(const char *ext) {
     ret = IDOK;      ret = IDOK;
         getstatfilename(path, ext, sizeof(path));          getstatfilename(path, ext, sizeof(path));
         r = statsave_check(path, buf, sizeof(buf));          r = statsave_check(path, buf, sizeof(buf));
         if (r & (~NP2FLAG_DISKCHG)) {          if (r & (~STATFLAG_DISKCHG)) {
                 ResumeErrorDialogProc();                  ResumeErrorDialogProc();
                 ret = IDCANCEL;                  ret = IDCANCEL;
         }          }
         else if (r & NP2FLAG_DISKCHG) {          else if (r & STATFLAG_DISKCHG) {
                 ret = ResumeWarningDialogProc(buf);                  ret = ResumeWarningDialogProc(buf);
         }          }
         if (ret == IDOK) {          if (ret == IDOK) {
Line 695  int main(int argc, char *argv[]) { Line 743  int main(int argc, char *argv[]) {
   
         TRACEINIT();          TRACEINIT();
           
     toolwin_readini();          keystat_initialize();
           
           toolwin_readini();
     if (!(setupMainWindow())) {      if (!(setupMainWindow())) {
         return(0);          return(0);
     }      }
Line 743  int main(int argc, char *argv[]) { Line 793  int main(int argc, char *argv[]) {
         S98_init();          S98_init();
   
     hid_init();      hid_init();
   #ifndef SUPPORT_SWSEEKSND
         if (soundmng_initialize() == SUCCESS) {          if (soundmng_initialize() == SUCCESS) {
                 soundmng_pcmvolume(SOUND_PCMSEEK, np2cfg.MOTORVOL);                  soundmng_pcmvolume(SOUND_PCMSEEK, np2cfg.MOTORVOL);
                 soundmng_pcmvolume(SOUND_PCMSEEK1, np2cfg.MOTORVOL);                  soundmng_pcmvolume(SOUND_PCMSEEK1, np2cfg.MOTORVOL);
         }          }
   #endif
   
 #if defined(NP2GCC)  #if defined(NP2GCC)
         mousemng_initialize();          mousemng_initialize();
Line 865  int main(int argc, char *argv[]) { Line 917  int main(int argc, char *argv[]) {
 #if defined(NP2GCC)  #if defined(NP2GCC)
         mousemng_disable(MOUSEPROC_SYSTEM);          mousemng_disable(MOUSEPROC_SYSTEM);
 #endif  #endif
   #ifndef SUPPORT_SWSEEKSND
         soundmng_deinitialize();          soundmng_deinitialize();
   #endif
         scrnmng_destroy();          scrnmng_destroy();
   
         if (sys_updates & (SYS_UPDATECFG | SYS_UPDATEOSCFG)) {          if (sys_updates & (SYS_UPDATECFG | SYS_UPDATEOSCFG)) {
Line 939  static pascal OSStatus np2appevent (Even Line 992  static pascal OSStatus np2appevent (Even
             switch (whatHappened)              switch (whatHappened)
             {              {
                 case kEventMouseMoved:                  case kEventMouseMoved:
                   case kEventMouseDragged:
                     GetEventParameter (event, kEventParamMouseDelta, typeHIPoint, NULL, sizeof(HIPoint), NULL, &delta);                      GetEventParameter (event, kEventParamMouseDelta, typeHIPoint, NULL, sizeof(HIPoint), NULL, &delta);
                     mousemng_callback(delta);                      mousemng_callback(delta);
                     result = noErr;                      result = noErr;
Line 973  static pascal OSStatus np2appevent (Even Line 1027  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 994  static pascal OSStatus np2windowevent(Ev Line 1064  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 1025  static pascal OSStatus np2windowevent(Ev Line 1094  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 1082  static const EventTypeSpec appEventList[ Line 1138  static const EventTypeSpec appEventList[
                                 {kEventClassMouse,              kEventMouseDown},                                  {kEventClassMouse,              kEventMouseDown},
 #if defined(NP2GCC)  #if defined(NP2GCC)
                                 {kEventClassMouse,              kEventMouseMoved},                                  {kEventClassMouse,              kEventMouseMoved},
                                   {kEventClassMouse,              kEventMouseDragged},
                                 {kEventClassMouse,              kEventMouseUp},                                  {kEventClassMouse,              kEventMouseUp},
 #endif  #endif
                                   {kEventClassKeyboard,   kEventRawKeyModifiersChanged},
                         };                          };
   
 static const EventTypeSpec windEventList[] = {  static const EventTypeSpec windEventList[] = {
Line 1096  static const EventTypeSpec windEventList Line 1154  static const EventTypeSpec windEventList
                                 {kEventClassKeyboard,   kEventRawKeyDown},                                  {kEventClassKeyboard,   kEventRawKeyDown},
                                 {kEventClassKeyboard,   kEventRawKeyUp},                                  {kEventClassKeyboard,   kEventRawKeyUp},
                                 {kEventClassKeyboard,   kEventRawKeyRepeat},                                  {kEventClassKeyboard,   kEventRawKeyRepeat},
                                 {kEventClassKeyboard,   kEventRawKeyModifiersChanged},  
                         };                          };
   
   
Line 1147  static bool setupMainWindow(void) { Line 1204  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 1158  static void toggleFullscreen(void) { Line 1219  static void toggleFullscreen(void) {
     static bool toolwin = false;      static bool toolwin = false;
     MenuRef     menu = GetMenuRef(IDM_SCREEN);      MenuRef     menu = GetMenuRef(IDM_SCREEN);
     Rect        bounds;      Rect        bounds;
     short       w = 640, h = 480;      short       w, h;
   
     soundmng_stop();      soundmng_stop();
     if (!(scrnmode & SCRNMODE_FULLSCREEN)) {      if (!(scrnmode & SCRNMODE_FULLSCREEN)) {
Line 1166  static void toggleFullscreen(void) { Line 1227  static void toggleFullscreen(void) {
         GetWindowBounds(hWndMain, kWindowContentRgn, &bounds);          GetWindowBounds(hWndMain, kWindowContentRgn, &bounds);
         backupwidth = bounds.right - bounds.left;          backupwidth = bounds.right - bounds.left;
         backupheight = bounds.bottom - bounds.top;          backupheight = bounds.bottom - bounds.top;
                   w = backupwidth;
                   h = backupheight;
         toolwin = np2oscfg.toolwin;          toolwin = np2oscfg.toolwin;
         toolwin_close();          toolwin_close();
         np2oscfg.winx = bounds.left;          np2oscfg.winx = bounds.left;

Removed from v.1.46  
changed lines
  Added in v.1.54


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