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

version 1.30, 2003/11/05 17:58:01 version 1.38, 2003/11/13 18:17:42
Line 38 Line 38
 #include        "macalert.h"  #include        "macalert.h"
 #include        "np2opening.h"  #include        "np2opening.h"
 #include        "toolwin.h"  #include        "toolwin.h"
   #include        "aboutdlg.h"
   
 #include        <QuickTime/QuickTime.h>  #include        <QuickTime/QuickTime.h>
 #define USE_RESUME  #define USE_RESUME
Line 45 Line 46
 // #define      OPENING_WAIT    1500  // #define      OPENING_WAIT    1500
   
   
                 NP2OSCFG        np2oscfg = {0, 2, 0, 0, 0, 0, 1, 0};                  NP2OSCFG        np2oscfg = {"Neko Project IIx", 0, 2, 0, 0, 0, 0, 1, 0};
   
                 WindowPtr       hWndMain;                  WindowPtr       hWndMain;
                 BOOL            np2running;                  BOOL            np2running;
 static  UINT            framecnt = 0;  static  UINT            framecnt = 0;
 static  UINT            waitcnt = 0;  static  UINT            waitcnt = 0;
 static  UINT            framemax = 1;  static  UINT            framemax = 1;
         BYTE            scrnmode;          BYTE            scrnmode = 0;
   
   
 #define DRAG_THRESHOLD          5  #define DRAG_THRESHOLD          5
Line 137  static void MenuBarInit(void) { Line 138  static void MenuBarInit(void) {
         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);
       DisableAllMenuItems(GetMenuHandle(IDM_EDIT));
     SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2OPEN, kMenuOptionModifier);      SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2OPEN, kMenuOptionModifier);
     SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2EJECT, kMenuOptionModifier);      SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2EJECT, kMenuOptionModifier);
     SetMenuItemModifiers(GetMenuRef(IDM_SASI2), IDM_SASI2OPEN, kMenuOptionModifier);      SetMenuItemModifiers(GetMenuRef(IDM_SASI2), IDM_SASI2OPEN, kMenuOptionModifier);
Line 166  static void changescreen(BYTE mode) { Line 169  static void changescreen(BYTE mode) {
         }          }
         if (renewal) {          if (renewal) {
                 soundmng_stop();                  soundmng_stop();
                 mouse_running(MOUSE_STOP);  
                 scrnmng_destroy();                  scrnmng_destroy();
                 if (scrnmng_create(mode) == SUCCESS) {                  if (scrnmng_create(mode) == SUCCESS) {
                         scrnmode = mode;                          scrnmode = mode;
                 }                  }
                 scrndraw_redraw();                  scrndraw_redraw();
                 mouse_running(MOUSE_CONT);  
                 soundmng_play();                  soundmng_play();
         }          }
         else {          else {
Line 205  static void HandleMenuChoice(long wParam Line 206  static void HandleMenuChoice(long wParam
                 case IDM_NEWDISK:                  case IDM_NEWDISK:
             newdisk();              newdisk();
                         break;                          break;
 #if 0  
                 case IDM_NEWHDD:  
                         newhdddisk();  
                         break;  
 #endif  
         case IDM_FONT:          case IDM_FONT:
             dialog_font();              dialog_font();
             break;              break;
                           
                 case IDM_EXIT:                  case IDM_EXIT:
                         np2running = FALSE;                          taskmng_exit();
                         break;                          break;
   
                 case IDM_FDD1OPEN:                  case IDM_FDD1OPEN:
Line 318  static void HandleMenuChoice(long wParam Line 315  static void HandleMenuChoice(long wParam
                         break;                          break;
   
         case IDM_MOUSE:          case IDM_MOUSE:
             mouse_running(MOUSE_XOR);                          mousemng_toggle(MOUSEPROC_SYSTEM);
             menu_setmouse(np2oscfg.MOUSE_SW ^ 1);              menu_setmouse(np2oscfg.MOUSE_SW ^ 1);
             sysmng_update(SYS_UPDATECFG);              sysmng_update(SYS_UPDATECFG);
                         break;                          break;
Line 374  static void HandleMenuChoice(long wParam Line 371  static void HandleMenuChoice(long wParam
   
                 case IDM_F12MOUSE:                  case IDM_F12MOUSE:
                         menu_setf12copy(0);                          menu_setf12copy(0);
                         keystat_resetcopyhelp();                          mackbd_resetf12();
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATECFG;
                         break;                          break;
   
                 case IDM_F12COPY:                  case IDM_F12COPY:
                         menu_setf12copy(1);                          menu_setf12copy(1);
                         keystat_resetcopyhelp();                          mackbd_resetf12();
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATECFG;
                         break;                          break;
   
                 case IDM_F12STOP:                  case IDM_F12STOP:
                         menu_setf12copy(2);                          menu_setf12copy(2);
                         keystat_resetcopyhelp();                          mackbd_resetf12();
                           update |= SYS_UPDATECFG;
                           break;
   
                   case IDM_F12EQU:
                           menu_setf12copy(3);
                           mackbd_resetf12();
                           update |= SYS_UPDATECFG;
                           break;
   
                   case IDM_F12COMMA:
                           menu_setf12copy(4);
                           mackbd_resetf12();
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATECFG;
                         break;                          break;
   
Line 459  static void HandleMenuChoice(long wParam Line 468  static void HandleMenuChoice(long wParam
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATECFG;
                         break;                          break;
   
                   case IDM_AMD98:
                           menu_setsound(0x80);
                           update |= SYS_UPDATECFG;
                           break;
   
                 case IDM_SEEKSND:                  case IDM_SEEKSND:
                         menu_setmotorflg(np2cfg.MOTOR ^ 1);                          menu_setmotorflg(np2cfg.MOTOR ^ 1);
                         update |= SYS_UPDATECFG;                          update |= SYS_UPDATECFG;
Line 516  static void HandleMenuChoice(long wParam Line 530  static void HandleMenuChoice(long wParam
             menu_setmsrapid(np2cfg.MOUSERAPID ^ 1);              menu_setmsrapid(np2cfg.MOUSERAPID ^ 1);
             update |= SYS_UPDATECFG;              update |= SYS_UPDATECFG;
             break;              break;
           case IDM_RECORDING:
               menu_setrecording(false);
               break;
   
   
                 case IDM_I286SAVE:                  case IDM_I286SAVE:
                         debugsub_status();                          debugsub_status();
                         break;                          break;
               
         case IDM_RECORDING:          case IDM_NP2HELP:
             menu_setrecording(false);              {
                   ICInstance inst;
                   long start, fin;
                   const char      urlStr[] = "http://retropc.net/tk800/np2x/help/help.html";
   
                   ICStart(&inst, 'SMil');
                   start = 0;
                   fin = strlen(urlStr);
                   ICLaunchURL(inst, "\p", urlStr, strlen(urlStr), &start, &fin);
                   ICStop(inst);
               }
             break;              break;
   
                 default:                  default:
Line 536  static void HandleMouseDown(EventRecord  Line 564  static void HandleMouseDown(EventRecord 
   
         WindowPtr       hWnd;          WindowPtr       hWnd;
   
     soundmng_stop();          if (FindWindow(pevent->where, &hWnd) == inMenuBar) {
         switch(FindWindow(pevent->where, &hWnd)) {          soundmng_stop();
                 case inMenuBar:          mousemng_disable(MOUSEPROC_MACUI);
                         HandleMenuChoice(MenuSelect(pevent->where));          HandleMenuChoice(MenuSelect(pevent->where));
                         break;          mousemng_enable(MOUSEPROC_MACUI);
         }      }
       else {
           mousemng_buttonevent(MOUSEMNG_LEFTDOWN);
       }
 }  }
   
   
 // ----  // ----
   
   static void framereset(UINT waitcnt) {
   
           framecnt = 0;
           toolwin_draw((BYTE)waitcnt);
           if (np2oscfg.DISPCLK & 3) {
                   if (sysmng_workclockrenewal()) {
                           sysmng_updatecaption(3);
                   }
           }
   }
   
 static void processwait(UINT waitcnt) {  static void processwait(UINT waitcnt) {
   
         if (timing_getcount() >= waitcnt) {          if (timing_getcount() >= waitcnt) {
                 framecnt = 0;  
                 timing_setcount(0);                  timing_setcount(0);
                 toolwin_draw((BYTE)waitcnt);                  framereset(waitcnt);
                 if (np2oscfg.DISPCLK & 3) {  
                         if (sysmng_workclockrenewal()) {  
                                 sysmng_updatecaption(3);  
                         }  
                 }  
         }          }
 }  }
   
Line 615  int main(int argc, char *argv[]) { Line 651  int main(int argc, char *argv[]) {
 #ifdef OPENING_WAIT  #ifdef OPENING_WAIT
         UINT32          tick;          UINT32          tick;
 #endif  #endif
     
         dosio_init();          dosio_init();
         file_setcd(target);          file_setcd(target);
   
Line 653  int main(int argc, char *argv[]) { Line 689  int main(int argc, char *argv[]) {
         menu_setdispclk(np2oscfg.DISPCLK);          menu_setdispclk(np2oscfg.DISPCLK);
         menu_setbtnrapid(np2cfg.BTN_RAPID);          menu_setbtnrapid(np2cfg.BTN_RAPID);
         menu_setbtnmode(np2cfg.BTN_MODE);          menu_setbtnmode(np2cfg.BTN_MODE);
       if (np2oscfg.I286SAVE) {
           AppendMenuItemTextWithCFString(GetMenuRef(IDM_OTHER), CFCopyLocalizedString(CFSTR("i286 save"),"i286"), kMenuItemAttrIconDisabled, NULL,NULL);
       }
   
         scrnmode = 0;          scrnmng_initialize();
         if (scrnmng_create(scrnmode) != SUCCESS) {          if (scrnmng_create(scrnmode) != SUCCESS) {
                 TRACETERM();                  TRACETERM();
                 macossub_term();                  macossub_term();
Line 676  int main(int argc, char *argv[]) { Line 715  int main(int argc, char *argv[]) {
         }          }
   
 #if defined(NP2GCC)  #if defined(NP2GCC)
           mousemng_initialize();
         if (np2oscfg.MOUSE_SW) {                                                                                // ver0.30          if (np2oscfg.MOUSE_SW) {                                                                                // ver0.30
                 mouse_running(MOUSE_ON);                  mousemng_enable(MOUSEPROC_SYSTEM);
         }          }
 #endif  #endif
 #ifdef OPENING_WAIT  #ifdef OPENING_WAIT
Line 748  int main(int argc, char *argv[]) { Line 788  int main(int argc, char *argv[]) {
                                                 else {                                                  else {
                                                         timing_setcount(cnt - framecnt);                                                          timing_setcount(cnt - framecnt);
                                                 }                                                  }
                                                 processwait(0);                                                  framereset(0);
                                         }                                          }
                                 }                                  }
                                 else {                                  else {
Line 781  int main(int argc, char *argv[]) { Line 821  int main(int argc, char *argv[]) {
   
     hid_clear();      hid_clear();
 #if defined(NP2GCC)  #if defined(NP2GCC)
         mouse_running(MOUSE_OFF);          mousemng_disable(MOUSEPROC_SYSTEM);
 #endif  #endif
   
         soundmng_deinitialize();          soundmng_deinitialize();
Line 806  int main(int argc, char *argv[]) { Line 846  int main(int argc, char *argv[]) {
 //以下、ごっそりIIxからマージ  //以下、ごっそりIIxからマージ
 static pascal OSStatus np2appevent (EventHandlerCallRef myHandlerChain, EventRef event, void* userData)  static pascal OSStatus np2appevent (EventHandlerCallRef myHandlerChain, EventRef event, void* userData)
 {  {
     UInt32          whatHappened;      OSStatus    result = eventNotHandledErr;
     OSStatus        result = eventNotHandledErr;  
           
     long                eventClass;      long                eventClass;
           UInt32              whatHappened;
     eventClass = GetEventClass(event);      eventClass = GetEventClass(event);
     whatHappened = GetEventKind(event);      whatHappened = GetEventKind(event);
   
     EventRecord         eve;      EventRecord eve;
     ConvertEventRefToEventRecord( event,&eve );      ConvertEventRefToEventRecord( event,&eve );
   
     if (IsDialogEvent(&eve)) return result;      if (IsDialogEvent(&eve)) return result;
   
     UInt32 modif;      UInt32              modif;
     GetEventParameter (event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modif);      GetEventParameter (event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modif);
   
 #if defined(NP2GCC)  #if defined(NP2GCC)
     HIPoint delta;      HIPoint             delta;
     EventMouseButton buttonKind;      EventMouseButton buttonKind;
     GetEventParameter (event, kEventParamMouseButton, typeMouseButton, NULL, sizeof(EventMouseButton), NULL, &buttonKind);      GetEventParameter (event, kEventParamMouseButton, typeMouseButton, NULL, sizeof(EventMouseButton), NULL, &buttonKind);
   
         BYTE ret;  
 #endif  #endif
                   
     switch (eventClass)      switch (eventClass)
         {      {
                 case kEventClassAppleEvent:            case kEventClassCommand:
                     if (whatHappened == kEventAppleEvent) {              if (GetEventKind(event)==kEventCommandProcess) {
                         AEProcessAppleEvent(&eve);                  HICommand       cmd;
                     }                  GetEventParameter(event, kEventParamDirectObject, typeHICommand, NULL, sizeof(HICommand), NULL, &cmd);
                     break;                  if (cmd.commandID == kHICommandAppHelp) {
                       ICInstance inst;
                       long start, fin;
                       const char  urlStr[] = "http://retropc.net/tk800/np2x/help/help.html";
   
                       ICStart(&inst, 'SMil');
                       start = 0;
                       fin = strlen(urlStr);
                       ICLaunchURL(inst, "\p", urlStr, strlen(urlStr), &start, &fin);
                       ICStop(inst);
                   }
               }
               break;
   
           case kEventClassAppleEvent:  
               if (whatHappened == kEventAppleEvent) {
                   AEProcessAppleEvent(&eve);
               }
               break;
   
                 case kEventClassMouse:           case kEventClassMouse: 
 #if defined(NP2GCC)  #if defined(NP2GCC)
                     switch (whatHappened)              switch (whatHappened)
                         {              {
                         case kEventMouseMoved:                  case kEventMouseMoved:
                             GetEventParameter (event, kEventParamMouseDelta, typeHIPoint, NULL, sizeof(HIPoint), NULL, &delta);                      GetEventParameter (event, kEventParamMouseDelta, typeHIPoint, NULL, sizeof(HIPoint), NULL, &delta);
                             mouse_callback(delta);                      mousemng_callback(delta);
                             result = noErr;                      result = noErr;
                             break;                      break;
                        case kEventMouseDown:                  case kEventMouseDown:
                             if (buttonKind == kEventMouseButtonSecondary | modif & controlKey) {                      if (buttonKind == kEventMouseButtonSecondary | modif & controlKey) {
                                 ret=mouse_btn(MOUSE_RIGHTDOWN);                          mousemng_buttonevent(MOUSEMNG_RIGHTDOWN);
                             }                      }
                             else {                      else {
                                 HandleMouseDown(&eve);                          HandleMouseDown(&eve);
                             }                      }
                             result=noErr;                      result=noErr;
                             break;                      break;
                         case kEventMouseUp:                  case kEventMouseUp:
                             if (buttonKind == kEventMouseButtonSecondary | modif & controlKey) {                      if (buttonKind == kEventMouseButtonSecondary | modif & controlKey) {
                                 ret=mouse_btn(MOUSE_RIGHTUP);                          mousemng_buttonevent(MOUSEMNG_RIGHTUP);
                             }                      }
                             else if (buttonKind == kEventMouseButtonTertiary) {                      else if (buttonKind == kEventMouseButtonTertiary) {
                                 mouse_running(MOUSE_XOR);                          mousemng_toggle(MOUSEPROC_SYSTEM);
                                 menu_setmouse(np2oscfg.MOUSE_SW ^ 1);                          menu_setmouse(np2oscfg.MOUSE_SW ^ 1);
                                 sysmng_update(SYS_UPDATECFG);                          sysmng_update(SYS_UPDATECFG);
                             }                      }
                             else {                      else {
                                 ret=mouse_btn(MOUSE_LEFTUP);                          mousemng_buttonevent(MOUSEMNG_LEFTUP);
                             }                      }
                             result=noErr;                      result=noErr;
                             break;                          break;    
                         }                  }
 #else  #else
                                                 if (whatHappened == kEventMouseDown) {                  if (whatHappened == kEventMouseDown) {
                                                         HandleMouseDown(&eve);                      HandleMouseDown(&eve);
                                                 }                  }
 #endif  #endif
                         break;                  break;
             default:          default:
                     break;               break; 
         }      }
   
         (void)myHandlerChain;          (void)myHandlerChain;
         (void)userData;          (void)userData;
Line 892  static pascal OSStatus np2windowevent(Ev Line 946  static pascal OSStatus np2windowevent(Ev
     UInt32              whatHappened;      UInt32              whatHappened;
     OSStatus    result = eventNotHandledErr;          OSStatus    result = eventNotHandledErr;    
     long                eventClass;      long                eventClass;
     static UInt32 backup = 0;  
           
     GetEventParameter(event, kEventParamDirectObject, typeWindowRef, NULL,      GetEventParameter(event, kEventParamDirectObject, typeWindowRef, NULL,
                          sizeof(window), NULL, &window);                           sizeof(window), NULL, &window);
     eventClass = GetEventClass(event);      eventClass = GetEventClass(event);
     whatHappened = GetEventKind(event);      whatHappened = GetEventKind(event);
                   
       static UInt32 backup = 0;
     switch (eventClass)      switch (eventClass)
         {              {        
             case kEventClassWindow:          case kEventClassKeyboard:
                 switch (whatHappened)              UInt32 key;
                 {              GetEventParameter (event, kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &key);
                     case kEventWindowClose:              UInt32 modif;
                         np2running = FALSE;              GetEventParameter (event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modif);
                         result = noErr;              switch (whatHappened)
                         break;              {
                     case kEventWindowActivated:                  case kEventRawKeyUp:
                         DisableAllMenuItems(GetMenuHandle(IDM_EDIT));                      mackbd_keyup(key);
                         break;                      result = noErr;
                     case kEventWindowToolbarSwitchMode:                      break;
                         toolwin_open();                  case kEventRawKeyRepeat:
                         break;                      mackbd_keydown(key);
                     case kEventWindowDragStarted:                      result = noErr;
                         soundmng_stop();                      break;
                         break;                  case kEventRawKeyDown:
                     case kEventWindowDragCompleted:                      if (modif & cmdKey) {
                         soundmng_play();                          EventRecord     eve;
                         break;                          ConvertEventRefToEventRecord( event,&eve );
                     case kEventWindowShown:                          mousemng_disable(MOUSEPROC_MACUI);
                         scrndraw_redraw();                          HandleMenuChoice(MenuEvent(&eve));
                         break;                          mousemng_enable(MOUSEPROC_MACUI);
                 }                      }
                 break;                      else {
             case kEventClassKeyboard:                          mackbd_keydown(key);
                 UInt32 key;                      }
                 GetEventParameter (event, kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &key);                      result = noErr;
                 UInt32 modif;                      break;
                 GetEventParameter (event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modif);                  case kEventRawKeyModifiersChanged:
                 switch (whatHappened)                      if (modif & shiftKey) keystat_senddata(0x70);
                 {                      else keystat_senddata(0x70 | 0x80);
                     case kEventRawKeyUp:                      if (modif & optionKey) keystat_senddata(0x73);
                         mackbd_f12up(key);                      else keystat_senddata(0x73 | 0x80);
                         result = noErr;                      if (modif & controlKey) keystat_senddata(0x74);
                         break;                      else keystat_senddata(0x74 | 0x80);
                     case kEventRawKeyRepeat:                      if ((modif & alphaLock) != (backup & alphaLock)) {
                         mackbd_f12down(key);                          keystat_senddata(0x71);
                         result = noErr;                          backup = modif;
                         break;                      }
                     case kEventRawKeyDown:                      result = noErr;
                         if (modif & cmdKey) {                      break;
                             EventRecord eve;                  default: 
                             ConvertEventRefToEventRecord( event,&eve );                      break;             
                             HandleMenuChoice(MenuEvent(&eve));              }
                         }              break;
                         else {              
                             mackbd_f12down(key);          case kEventClassWindow:
                         }              switch (whatHappened)
                         result = noErr;              {
                         break;                  case kEventWindowClose:
                     case kEventRawKeyModifiersChanged:                      taskmng_exit();
                         if (modif & shiftKey) keystat_senddata(0x70);                      result = noErr;
                         else keystat_senddata(0x70 | 0x80);                      break;
                         if (modif & optionKey) keystat_senddata(0x73);                  case kEventWindowActivated:
                         else keystat_senddata(0x73 | 0x80);                      DisableAllMenuItems(GetMenuHandle(IDM_EDIT));
                         if (modif & controlKey) keystat_senddata(0x74);                      break;
                         else keystat_senddata(0x74 | 0x80);                  case kEventWindowToolbarSwitchMode:
                         if ((modif & alphaLock) != (backup & alphaLock)) {                      toolwin_open();
                             keystat_senddata(0x71);                      break;
                             backup = modif;                  case kEventWindowDragStarted:
                         }                      soundmng_stop();
                         result = noErr;                      break;
                         break;                  case kEventWindowDragCompleted:
                     default:                       soundmng_play();
                         break;                                   break;
                 }                  case kEventWindowShown:
             default:                       scrndraw_redraw();
                 break;                                      break;
         }              }
               break;
           default: 
               break;                
       }
   
         (void)myHandler;          (void)myHandler;
         (void)userData;          (void)userData;
Line 977  static pascal OSStatus np2windowevent(Ev Line 1035  static pascal OSStatus np2windowevent(Ev
 }  }
   
 static const EventTypeSpec appEventList[] = {  static const EventTypeSpec appEventList[] = {
                   {kEventClassCommand,    kEventCommandProcess },
                                 {kEventClassAppleEvent, kEventAppleEvent},                                  {kEventClassAppleEvent, kEventAppleEvent},
                                 {kEventClassMouse,              kEventMouseDown},                                  {kEventClassMouse,              kEventMouseDown},
 #if defined(NP2GCC)  #if defined(NP2GCC)
Line 1008  static void setUpCarbonEvent(void) { Line 1067  static void setUpCarbonEvent(void) {
         InstallWindowEventHandler(hWndMain, NewEventHandlerUPP(np2windowevent),          InstallWindowEventHandler(hWndMain, NewEventHandlerUPP(np2windowevent),
                                                                 GetEventTypeCount(windEventList),                                                                  GetEventTypeCount(windEventList),
                                                                 windEventList, 0, NULL);                                                                  windEventList, 0, NULL);
     InstallStandardEventHandler(GetWindowEventTarget(hWndMain));  
 }  }
   
   static short    backupwidth=0, backupheight=0;
   
 static bool setupMainWindow(void) {  static bool setupMainWindow(void) {
 #if defined(NP2GCC)  #if defined(NP2GCC)
     OSStatus    err;      OSStatus    err;
Line 1039  static bool setupMainWindow(void) { Line 1099  static bool setupMainWindow(void) {
         }          }
         SizeWindow(hWndMain, 640, 400, TRUE);          SizeWindow(hWndMain, 640, 400, TRUE);
 #endif  #endif
         scrnmng_initialize();  
     setUpCarbonEvent();      setUpCarbonEvent();
       if (backupwidth) scrnmng_setwidth(0, backupwidth);
       if (backupheight) scrnmng_setheight(0, backupheight);
       SetWindowTitleWithCFString(hWndMain, CFStringCreateWithCString(NULL, np2oscfg.titles, kCFStringEncodingUTF8));
         ShowWindow(hWndMain);          ShowWindow(hWndMain);
     return(true);      return(true);
 }  }
Line 1048  static bool setupMainWindow(void) { Line 1111  static bool setupMainWindow(void) {
 static void toggleFullscreen(void) {  static void toggleFullscreen(void) {
     static Ptr  bkfullscreen;      static Ptr  bkfullscreen;
     static BYTE mouse = 0;      static BYTE mouse = 0;
       static bool toolwin = false;
       MenuRef     menu = GetMenuRef(IDM_SCREEN);
       Rect        bounds;
       short       w = 640, h = 480;
   
     soundmng_stop();      soundmng_stop();
     if (!scrnmode & SCRNMODE_FULLSCREEN) {      if (!(scrnmode & SCRNMODE_FULLSCREEN)) {
         RGBColor col = {0, 0, 0};          HandleMenuChoice(IDM_ROLNORMAL);
         short   w=640, h=480;          GetWindowBounds(hWndMain, kWindowContentRgn, &bounds);
           backupwidth = bounds.right - bounds.left;
           backupheight = bounds.bottom - bounds.top;
           toolwin = np2oscfg.toolwin;
           toolwin_close();
         DisposeWindow(hWndMain);          DisposeWindow(hWndMain);
         BeginFullScreen(&bkfullscreen,0,&w,&h,&hWndMain,&col,(fullScreenAllowEvents | fullScreenDontChangeMenuBar));              BeginFullScreen(&bkfullscreen, 0, &w, &h, &hWndMain, NULL, fullScreenAllowEvents);      
           DisableMenuItem(menu, IDM_ROLNORMAL);
           DisableMenuItem(menu, IDM_ROLLEFT);
           DisableMenuItem(menu, IDM_ROLRIGHT);
         HideMenuBar();          HideMenuBar();
         setUpCarbonEvent();          setUpCarbonEvent();
         if (!np2oscfg.MOUSE_SW) {          if (!np2oscfg.MOUSE_SW) {
             mouse = np2oscfg.MOUSE_SW;              mouse = np2oscfg.MOUSE_SW;
             mouse_running(MOUSE_ON);              mousemng_enable(MOUSEPROC_SYSTEM);
             menu_setmouse(1);              menu_setmouse(1);
         }          }
         changescreen(scrnmode | SCRNMODE_FULLSCREEN);          changescreen(scrnmode | SCRNMODE_FULLSCREEN);
Line 1070  static void toggleFullscreen(void) { Line 1144  static void toggleFullscreen(void) {
         setupMainWindow();          setupMainWindow();
         changescreen(scrnmode & (~SCRNMODE_FULLSCREEN));          changescreen(scrnmode & (~SCRNMODE_FULLSCREEN));
         if (!mouse) {          if (!mouse) {
             mouse_running(MOUSE_OFF);              mousemng_disable(MOUSEPROC_SYSTEM);
             menu_setmouse(0);              menu_setmouse(0);
         }          }
           EnableMenuItem(menu, IDM_ROLNORMAL);
           EnableMenuItem(menu, IDM_ROLLEFT);
           EnableMenuItem(menu, IDM_ROLRIGHT);
         ShowMenuBar();          ShowMenuBar();
           if (toolwin) {
               toolwin_open();
           }
     }      }
     CheckMenuItem(GetMenuHandle(IDM_SCREEN), LoWord(IDM_FULLSCREEN), scrnmode & SCRNMODE_FULLSCREEN);      CheckMenuItem(GetMenuHandle(IDM_SCREEN), LoWord(IDM_FULLSCREEN), scrnmode & SCRNMODE_FULLSCREEN);
     soundmng_play();      soundmng_play();

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


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