--- np2/macosx/dialog/dialog.cpp 2003/11/21 16:01:41 1.6 +++ np2/macosx/dialog/dialog.cpp 2005/05/20 17:25:03 1.10 @@ -96,7 +96,7 @@ static pascal Boolean NavLaunchServicesF FSSpec fsSpec; int ret; char name[MAX_PATH]; - AEDesc coerceDesc = { NULL, NULL }; + AEDesc coerceDesc = { 0, 0 }; if ( filterMode == kNavFilteringBrowserList ) { if ( theItem->descriptorType != typeFSS ) { @@ -117,16 +117,21 @@ static pascal Boolean NavLaunchServicesF ret = file_getftype(name); switch (*(int*)ioUserData) { case OPEN_FDD: - if (ret == FTYPE_D88 || ret == FTYPE_BETA) { + if (ret == FTYPE_D88 || ret == FTYPE_BETA || ret == FTYPE_FDI) { showItem = true; } break; - case OPEN_HDD: - if (ret == FTYPE_THD || ret == FTYPE_HDI) { + case OPEN_SASI: + if (ret == FTYPE_THD || ret == FTYPE_HDI || ret == FTYPE_NHD) { showItem = true; } break; - case OPEN_FONT: + case OPEN_SCSI: + if (ret == FTYPE_HDD) { + showItem = true; + } + break; + case OPEN_FONT: if (ret == FTYPE_BMP || ret == FTYPE_SMIL) { showItem = true; } @@ -136,6 +141,9 @@ static pascal Boolean NavLaunchServicesF showItem = true; } break; + case OPEN_MIMPI: + showItem = true; + break; } } } @@ -158,9 +166,14 @@ BOOL dialog_fileselect(char *name, int s ret = FALSE; NavGetDefaultDialogCreationOptions(&optNav); optNav.clientName = CFSTR("Neko Project IIx"); - optNav.modality=kWindowModalityWindowModal; - optNav.parentWindow=parent; + if (parent) { + optNav.modality=kWindowModalityWindowModal; + optNav.parentWindow=parent; + } switch (opentype) { + case OPEN_MIMPI: + optNav.message = CFCopyLocalizedString(CFSTR("Choose MIMPI file."),"MIMPI Message"); + break; case OPEN_FONT: optNav.message = CFCopyLocalizedString(CFSTR("Choose font file."),"FontSelect Message"); break; @@ -270,7 +283,7 @@ void dialog_changefdd(BYTE drv) { if (drv < 4) { if (dialog_fileselect(fname, sizeof(fname), hWndMain, OPEN_FDD)) { - if (file_getftype(fname)==FTYPE_D88 || file_getftype(fname)==FTYPE_BETA) { + if (file_getftype(fname)==FTYPE_D88 || file_getftype(fname)==FTYPE_BETA || file_getftype(fname)==FTYPE_FDI) { diskdrv_setfdd(drv, fname, 0); toolwin_setfdd(drv, fname); } @@ -282,11 +295,24 @@ void dialog_changehdd(BYTE drv) { char fname[MAX_PATH]; - if (drv < 2) { - if (dialog_fileselect(fname, sizeof(fname), hWndMain, OPEN_HDD)) { - if (file_getftype(fname)==FTYPE_HDI || file_getftype(fname)==FTYPE_THD) { - diskdrv_sethdd(drv, fname); - } + if (!(drv & 0x20)) { // SASI/IDE + if (drv < 2) { + if (dialog_fileselect(fname, sizeof(fname), hWndMain, OPEN_SASI)) { + if (file_getftype(fname)==FTYPE_HDI || file_getftype(fname)==FTYPE_THD || file_getftype(fname)==FTYPE_NHD) { + sysmng_update(SYS_UPDATEOSCFG); + diskdrv_sethdd(drv, fname); + } + } + } + } + else { // SCSI + if ((drv & 0x0f) < 4) { + if (dialog_fileselect(fname, sizeof(fname), hWndMain, OPEN_SCSI)) { + if (file_getftype(fname)==FTYPE_HDD) { + sysmng_update(SYS_UPDATEOSCFG); + diskdrv_sethdd(drv, fname); + } + } } } }