--- np2/macosx/Attic/dialog.cpp 2003/10/16 17:59:40 1.1.1.1 +++ np2/macosx/Attic/dialog.cpp 2003/10/28 19:17:29 1.4 @@ -5,12 +5,32 @@ #include "pccore.h" #include "fddfile.h" #include "diskdrv.h" +#if 0 #include "newdisk.h" +#endif +#include "font.h" +#include "iocore.h" +#include "np2.h" +#include "macnewdisk.h" +#include "scrnbmp.h" +#include "dosio.h" +#include "menu.h" +#include "s98.h" + +static Handle GetDlgItem(DialogPtr hWnd, short pos) { + + Handle ret; + Rect rct; + short s; + GetDialogItem(hWnd, pos, &s, &ret, &rct); + return(ret); +} void AboutDialogProc(void) { DialogPtr hDlg; + Str255 verstr; int done; short item; @@ -18,6 +38,8 @@ void AboutDialogProc(void) { if (!hDlg) { return; } + mkstr255(verstr, np2version); + SetDialogItemText(GetDlgItem(hDlg, IDD_VERSION), verstr); SetDialogDefaultItem(hDlg, IDOK); done = 0; @@ -63,7 +85,7 @@ static void backpalcalcat(char *dst, int CopyMemory(dst, (char *)src + 1, slen); } -static void fsspec2path(FSSpec *fs, char *dst, int leng) { +void fsspec2path(FSSpec *fs, char *dst, int leng) { CInfoPBRec cipbr; Str255 dname; @@ -88,8 +110,18 @@ static void fsspec2path(FSSpec *fs, char } #if 1 +static NavDialogRef navWin; static pascal void dummyproc(NavEventCallbackMessage sel, NavCBRecPtr prm, NavCallBackUserData ud) { + switch( sel ) + { + case kNavCBCancel: + case kNavCBAccept: + QuitAppModalLoopForWindow(NavDialogGetWindow(navWin)); + break; + default: + break; + } (void)sel; (void)prm; @@ -100,7 +132,7 @@ static BOOL dialog_fileselect(char *name BOOL ret; OSErr err; - NavDialogOptions opt; + NavDialogCreationOptions optNav; NavReplyRecord reply; NavEventUPP proc; long count; @@ -108,15 +140,19 @@ static BOOL dialog_fileselect(char *name FSSpec fss; ret = FALSE; - err = NavGetDefaultDialogOptions(&opt); - if (err != noErr) { - goto fsel_exit; - } - opt.dialogOptionFlags &= ~kNavAllowPreviews; - opt.dialogOptionFlags &= ~kNavAllowMultipleFiles; + NavGetDefaultDialogCreationOptions(&optNav); + optNav.modality=kWindowModalityWindowModal; + optNav.parentWindow=hWndMain; + optNav.optionFlags+=kNavNoTypePopup; proc = NewNavEventUPP(dummyproc); - err = NavGetFile(NULL, &reply, &opt, proc, NULL, NULL, NULL, NULL); + ret=NavCreateChooseFileDialog(&optNav,NULL,proc,NULL,NULL,NULL,&navWin); + NavDialogRun(navWin); + RunAppModalLoopForWindow(NavDialogGetWindow(navWin)); + NavDialogGetReply(navWin, &reply); + NavDialogDispose(navWin); DisposeNavEventUPP(proc); + + DisableAllMenuItems(GetMenuHandle(IDM_EDIT)); if ((!reply.validRecord) && (ret != noErr)) { goto fsel_exit; } @@ -176,3 +212,57 @@ void dialog_changehdd(BYTE drv) { } } + +void dialog_font(void) { + + char name[1024]; + + if (dialog_fileselect(name, 1024)) { + if ((name != NULL) && (font_load(name, FALSE))) { + gdcs.textdisp |= GDCSCRN_ALLDRAW2; + milstr_ncpy(np2cfg.fontfile, name, sizeof(np2cfg.fontfile)); + sysmng_update(SYS_UPDATECFG); + } + } +} + +void dialog_writebmp(void) { + + SCRNBMP bmp; + char path[MAX_PATH]; + FILEH fh; + FSSpec fss; + + bmp = scrnbmp(); + if (bmp) { + if (saveFile('BMP ', "np2.bmp", &fss)) { + fsspec2path(&fss, path, MAX_PATH); + fh = file_create(path); + if (fh != FILEH_INVALID) { + file_write(fh, bmp->ptr, bmp->size); + file_close(fh); + } + } + _MFREE(bmp); + } +} + +void dialog_s98(void) { + + static BOOL check = FALSE; + char fname[MAX_PATH]; + FSSpec fsc; + + S98_close(); + + if (check) { + check = FALSE; + } + else if (saveFile('.S98', "S98 log.s98", &fsc)) { + fsspec2path(&fsc, fname, MAX_PATH); + if (S98_open(fname) == SUCCESS) { + check = TRUE; + } + } + menu_sets98logging(check); +}