| version 1.4, 2004/03/27 10:52:56 | version 1.9, 2007/11/11 07:11:27 | 
| Line 2 | Line 2 | 
 | #include        "strres.h" | #include        "strres.h" | 
 | #include        "resource.h" | #include        "resource.h" | 
 | #include        "np2.h" | #include        "np2.h" | 
 |  | #include        "oemtext.h" | 
 | #include        "dosio.h" | #include        "dosio.h" | 
 | #include        "sysmng.h" | #include        "sysmng.h" | 
 | #include        "dialog.h" | #include        "dialog.h" | 
 | #include        "dialogs.h" | #include        "dialogs.h" | 
 | #include        "pccore.h" | #include        "pccore.h" | 
 | #include        "iocore.h" | #include        "iocore.h" | 
| #include        "scrnbmp.h" | #include        "scrnsave.h" | 
 | #include        "font.h" | #include        "font.h" | 
 |  |  | 
 |  |  | 
| static const char fontui_title[] = "Select font file"; | static const FSPARAM fpFont = | 
| static const char fontui_filter[] =                                                                             \ | { | 
| "PC-98 BMP font (*.bmp)\0"                                              \ | MAKEINTRESOURCE(IDS_FONTTITLE), | 
| "*.bmp\0"                                                                       \ | MAKEINTRESOURCE(IDS_FONTEXT), | 
| "Virtual98 font\0"                                                              \ | MAKEINTRESOURCE(IDS_FONTFILTER), | 
| "font.rom\0"                                                            \ | 3 | 
| "All supported files\0"                                                 \ | }; | 
| "*.bmp;"                                                                        \ |  | 
| "pc88.fnt;kanji1.rom;kanji2.rom;"                       \ | static const LPTSTR lpszBmpFilter[] = | 
| "font.rom;"                                                                     \ | { | 
| "subsys_c.rom;kanji.rom;"                                       \ | MAKEINTRESOURCE(IDS_BMPFILTER1), | 
| "fnt0808.x1;fnt0816.x1;fnt1616.x1;"                     \ | MAKEINTRESOURCE(IDS_BMPFILTER4), | 
| "cgrom.dat\0"; | MAKEINTRESOURCE(IDS_BMPFILTER8), | 
| static const FILESEL fontui = {fontui_title, str_bmp, fontui_filter, 3}; | MAKEINTRESOURCE(IDS_BMPFILTER24) | 
|  | }; | 
| static const char bmpui_file[] = "NP2_%04d.BMP"; | static const OEMCHAR szBmpFile[] = OEMTEXT("NP2_####.BMP"); | 
| static const char bmpui_title[] = "Save as bitmap file"; |  | 
| static const char bmpui_filter1[] = "1bit-bitmap (*.bmp)\0*.bmp\0"; | void dialog_font(HWND hWnd) | 
| static const char bmpui_filter4[] = "4bit-bitmap (*.bmp)\0*.bmp\0"; | { | 
| static const char bmpui_filter8[] = "8bit-bitmap (*.bmp)\0*.bmp\0"; | OEMCHAR szPath[MAX_PATH]; | 
| static const char bmpui_filter24[] = "24bit-bitmap (*.bmp)\0*.bmp\0"; |  | 
| static const char *bmpui_filter[4] = { | file_cpyname(szPath, np2cfg.fontfile, NELEMENTS(szPath)); | 
| bmpui_filter1, bmpui_filter4, bmpui_filter8, bmpui_filter24}; | if ((dlgs_openfile(hWnd, &fpFont, szPath, NELEMENTS(szPath), NULL)) && | 
|  | (font_load(szPath, FALSE))) | 
|  | { | 
| void dialog_font(HWND hWnd) { |  | 
|  |  | 
| char    path[MAX_PATH]; |  | 
|  |  | 
| file_cpyname(path, np2cfg.fontfile, sizeof(path)); |  | 
| if ((dlgs_selectfile(hWnd, &fontui, path, sizeof(path), NULL)) && |  | 
| (font_load(path, FALSE))) { |  | 
 | gdcs.textdisp |= GDCSCRN_ALLDRAW2; | gdcs.textdisp |= GDCSCRN_ALLDRAW2; | 
| milstr_ncpy(np2cfg.fontfile, path, sizeof(np2cfg.fontfile)); | milstr_ncpy(np2cfg.fontfile, szPath, NELEMENTS(np2cfg.fontfile)); | 
 | sysmng_update(SYS_UPDATECFG); | sysmng_update(SYS_UPDATECFG); | 
 | } | } | 
 | } | } | 
 |  |  | 
 | void dialog_writebmp(HWND hWnd) { | void dialog_writebmp(HWND hWnd) { | 
 |  |  | 
| SCRNBMP bmp; | SCRNSAVE        ss; | 
| FILESEL bmpui; | FSPARAM         fp; | 
| char    path[MAX_PATH]; | OEMCHAR         szPath[MAX_PATH]; | 
| FILEH   fh; | const OEMCHAR   *pszExt; | 
|  |  | 
| bmp = scrnbmp(); | ss = scrnsave_get(); | 
| if (bmp) { | if (ss == NULL) | 
| bmpui.title = bmpui_title; | { | 
| bmpui.ext = str_bmp; | return; | 
| bmpui.filter = bmpui_filter[bmp->type]; | } | 
| bmpui.defindex = 1; | fp.lpszTitle = MAKEINTRESOURCE(IDS_BMPTITLE); | 
| file_cpyname(path, bmpfilefolder, sizeof(path)); | fp.lpszDefExt = MAKEINTRESOURCE(IDS_BMPEXT); | 
| file_cutname(path); | fp.lpszFilter = lpszBmpFilter[ss->type]; | 
| file_catname(path, bmpui_file, sizeof(path)); | fp.nFilterIndex = 1; | 
| if (dlgs_selectwritenum(hWnd, &bmpui, path, sizeof(path))) { | file_cpyname(szPath, bmpfilefolder, NELEMENTS(szPath)); | 
| file_cpyname(bmpfilefolder, path, sizeof(bmpfilefolder)); | file_cutname(szPath); | 
| sysmng_update(SYS_UPDATEOSCFG); | file_catname(szPath, szBmpFile, NELEMENTS(szPath)); | 
| fh = file_create(path); | if (dlgs_createfilenum(hWnd, &fp, szPath, NELEMENTS(szPath))) | 
| if (fh != FILEH_INVALID) { | { | 
| file_write(fh, bmp->ptr, bmp->size); | file_cpyname(bmpfilefolder, szPath, NELEMENTS(bmpfilefolder)); | 
| file_close(fh); | sysmng_update(SYS_UPDATEOSCFG); | 
| } | pszExt = file_getext(szPath); | 
|  | if ((ss->type <= SCRNSAVE_8BIT) && | 
|  | (!file_cmpname(pszExt, OEMTEXT("gif")))) | 
|  | { | 
|  | scrnsave_writegif(ss, szPath, SCRNSAVE_AUTO); | 
|  | } | 
|  | else if (!file_cmpname(pszExt, str_bmp)) | 
|  | { | 
|  | scrnsave_writebmp(ss, szPath, SCRNSAVE_AUTO); | 
 | } | } | 
 | _MFREE(bmp); |  | 
 | } | } | 
 |  | scrnsave_trash(ss); | 
 | } | } | 
 |  |  |