Diff for /xmil/MacOSX/dialog/d_disk.cpp between versions 1.1 and 1.4

version 1.1, 2004/08/10 14:38:57 version 1.4, 2004/08/15 11:48:32
Line 8 Line 8
 #include        "fddfile.h"  #include        "fddfile.h"
 #include        "diskdrv.h"  #include        "diskdrv.h"
 #include        "newdisk.h"  #include        "newdisk.h"
   #include        "xmil.h"
   #include        "fdefine.h"
   
 void dialog_changefdd(BYTE drv) {  void dialog_changefdd(BYTE drv) {
   
         char    fname[MAX_PATH];          char    fname[MAX_PATH];
   
         if (drv < 4) {          if (drv < 4) {
                 if (dlgs_selectfile(fname, sizeof(fname))) {                  if (dlgs_selectfile(fname, sizeof(fname), hWndMain, OPEN_FDD)) {
                         diskdrv_setfdd(drv, fname, 0);                          diskdrv_setfddex(drv, fname, file_getftype(fname), 0);
   
                           switch (drv) {
                                   case 0:
                                           EnableMenuItem(GetMenuHandle(IDM_FDD0), IDM_FDD0EJECT);
                                           break;
                                   case 1:
                                           EnableMenuItem(GetMenuHandle(IDM_FDD1), IDM_FDD1EJECT);
                                           break;
                                   case 2:
                                           EnableMenuItem(GetMenuHandle(IDM_FDD2), IDM_FDD2EJECT);
                                           break;
                                   case 3:
                                           EnableMenuItem(GetMenuHandle(IDM_FDD3), IDM_FDD3EJECT);
                                           break;
                                   default:
                                           break;
                           }
   
                 }                  }
         }          }
 }  }
Line 31  typedef struct { Line 50  typedef struct {
         char    label[16+1];          char    label[16+1];
 } NEWDISK;  } NEWDISK;
   
 static int NewdiskDlgProc(NEWDISK *newdisk) {  static const EventTypeSpec      hicommandEvents[]={ { kEventClassCommand, kEventCommandProcess },};
   
         DialogPtr               hDlg;  static pascal OSStatus cfWinproc(EventHandlerCallRef myHandler, EventRef event, void* userData) {
         int                             media;      OSStatus    err = eventNotHandledErr;
         int                             done;      HICommand   cmd;
         short                   item;          NEWDISK         disk;
         Str255                  disklabel;          char            disklabel[256];
         ControlHandle   btn[2];          char            path[MAX_PATH];
           int                     media;
         hDlg = GetNewDialog(IDD_NEWFDDDISK, NULL, (WindowPtr)-1);          WindowRef       win;
         if (!hDlg) {          
                 return(IDCANCEL);          win = (WindowRef)userData;
         }      if (GetEventClass(event)==kEventClassCommand && GetEventKind(event)==kEventCommandProcess ) {
           GetEventParameter(event, kEventParamDirectObject, typeHICommand, NULL, sizeof(HICommand), NULL, &cmd);
         SelectDialogItemText(hDlg, IDC_DISKLABEL, 0x0000, 0x7fff);          switch (cmd.commandID)
         btn[0] = (ControlHandle)GetDlgItem(hDlg, IDC_MAKE2DD);          {
         btn[1] = (ControlHandle)GetDlgItem(hDlg, IDC_MAKE2HD);              case kHICommandOK:
         SetControlValue(btn[0], 0);                  getFieldText(getControlRefByID('name', 0, win), disklabel);
         SetControlValue(btn[1], 1);                  media = GetControl32BitValue(getControlRefByID('mode', 0, win));
         media = 1;  
         SetDialogDefaultItem(hDlg, IDOK);  
         SetDialogCancelItem(hDlg, IDCANCEL);  
   
         done = 0;  
         while(!done) {  
                 ModalDialog(NULL, &item);  
                 switch(item) {  
                         case IDOK:  
                                 if (media == 0) {                                  if (media == 0) {
                                         newdisk->fdtype = (DISKTYPE_2DD << 4);                                          disk.fdtype = (DISKTYPE_2DD << 4);
                                 }                                  }
                                 else {                                  else {
                                         newdisk->fdtype = (DISKTYPE_2HD << 4);                                          disk.fdtype = (DISKTYPE_2HD << 4);
                                 }                                  }
                                 GetDialogItemText(GetDlgItem(hDlg, IDC_DISKLABEL), disklabel);                                  strncpy(disk.label, disklabel, sizeof(disk.label));
                                 mkcstr(newdisk->label, sizeof(newdisk->label), disklabel);                                  if (dlgs_selectwritefile(path, sizeof(path), str_newdisk, '.D88', win)) {
                                 done = IDOK;                                          newdisk_fdd(path, disk.fdtype, disk.label);
                                 break;                                  }
                   QuitAppModalLoopForWindow(win);
                         case IDCANCEL:                  err=noErr;
                                 done = IDCANCEL;                  break;
                                 break;                  
               case kHICommandCancel:
                         case IDC_DISKLABEL:                  QuitAppModalLoopForWindow(win);
                                 break;                  err=noErr;
                   break;
                         case IDC_MAKE2DD:                  
                                 SetControlValue(btn[0], 1);              default:
                                 SetControlValue(btn[1], 0);                  break;
                                 media = 0;          }
                                 break;      }
   
                         case IDC_MAKE2HD:          (void)myHandler;
                                 SetControlValue(btn[0], 0);          (void)userData;
                                 SetControlValue(btn[1], 1);      return err;
                                 media = 1;  
                                 break;  
                 }  
         }  
         DisposeDialog(hDlg);  
         return(done);  
 }  }
   
 void dialog_newdisk(void) {  static void makeNibWindow (IBNibRef nibRef) {
       OSStatus            err;
         char    path[MAX_PATH];      EventHandlerRef     ref;
 const char      *ext;          WindowRef               diskWin = NULL;
         NEWDISK disk;      
       err = CreateWindowFromNib(nibRef, CFSTR("NewDiskWindow"), &diskWin);
         if (!dlgs_selectwritefile(path, sizeof(path), str_newdisk)) {      if (err == noErr) {
                 return;          InstallWindowEventHandler (diskWin, NewEventHandlerUPP(cfWinproc), GetEventTypeCount(hicommandEvents), hicommandEvents, (void *)diskWin, &ref);
         }                  ShowWindow(diskWin);
         ext = file_getext(path);          SetKeyboardFocus(diskWin, getControlRefByID('name', 0, diskWin), kControlFocusPrevPart);
         if ((!file_cmpname(ext, str_d88)) || (!file_cmpname(ext, str_88d))) {          RunAppModalLoopForWindow(diskWin);
                 if (NewdiskDlgProc(&disk) == IDOK) {                  HideWindow(diskWin);
                         newdisk_fdd(path, disk.fdtype, disk.label);                  DisposeWindow(diskWin);
                 }      }
         }      return;
 }  }
   
   void dialog_newdisk( void ) {
       OSStatus    err;
       IBNibRef    nibRef;
   
       err = CreateNibReference(CFSTR("main"), &nibRef);
       if (err ==noErr ) {
           makeNibWindow (nibRef);
           DisposeNibReference ( nibRef);
       }
       return;
   }

Removed from v.1.1  
changed lines
  Added in v.1.4


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