static LRESULT CALLBACK EditDlgBaseProc(EDITDATA *ed, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: SendDlgItemMessage(hWnd, IDC_EDIT_STR, EM_SETLIMITTEXT, MAX_EDIT_STR - 1, NULL); SetDlgItemCheck(hWnd, ed->type, BST_CHECKED); SetDlgItemTextW(hWnd, IDC_EDIT_STR, ed->str); SendDlgItemMessage(hWnd, IDC_EDIT_STR, EM_SETSEL, 0, -1); // needs to be at the bottom because it calls WM_COMMAND, which would clear our previous string SendMessage(hWnd, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hWnd, IDC_EDIT_STR), TRUE); break; case WM_COMMAND: editdata_get_type(ed, hWnd); editdata_str_to_bytes(ed, hWnd, IDC_EDIT_STR); switch (LOWORD(wParam)) { case IDOK: EndDialog(hWnd, (INT_PTR)ed); return TRUE; case IDCANCEL: EndDialog(hWnd, 0); return TRUE; } break; } return FALSE; }
static LRESULT CALLBACK Scropt2DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { UINT8 b; UINT update; switch(msg) { case WM_INITDIALOG: if (!np2cfg.uPD72020) { SetDlgItemCheck(hWnd, IDC_GDC7220, TRUE); } else { SetDlgItemCheck(hWnd, IDC_GDC72020, TRUE); } SetDlgItemCheck(hWnd, gdcchip[np2cfg.grcg & 3], TRUE); SetDlgItemCheck(hWnd, IDC_PC980124, np2cfg.color16); return(TRUE); case WM_NOTIFY: if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { update = 0; b = GetDlgItemCheck(hWnd, IDC_GDC72020); if (np2cfg.uPD72020 != b) { np2cfg.uPD72020 = b; update |= SYS_UPDATECFG; gdc_restorekacmode(); gdcs.grphdisp |= GDCSCRN_ALLDRAW2; } for (b=0; (b<3) && (!GetDlgItemCheck(hWnd, gdcchip[b])); b++); if (np2cfg.grcg != b) { np2cfg.grcg = b; update |= SYS_UPDATECFG; gdcs.grphdisp |= GDCSCRN_ALLDRAW2; } b = GetDlgItemCheck(hWnd, IDC_PC980124); if (np2cfg.color16 != b) { np2cfg.color16 = b; update |= SYS_UPDATECFG; } sysmng_update(update); return(TRUE); } break; } return(FALSE); }
static void snd86cmddipsw(HWND hWnd) { RECT rect1; RECT rect2; POINT p; GetWindowRect(GetDlgItem(hWnd, IDC_SND86DIP), &rect1); GetClientRect(GetDlgItem(hWnd, IDC_SND86DIP), &rect2); GetCursorPos(&p); p.x += rect2.left - rect1.left; p.y += rect2.top - rect1.top; p.x /= 8; p.y /= 8; if ((p.x < 2) || (p.x >= 10) || (p.y < 1) || (p.y >= 3)) { return; } p.x -= 2; snd86 ^= (1 << p.x); switch(p.x) { case 0: setsnd86io(hWnd, IDC_SND86IO, snd86); break; case 1: SetDlgItemCheck(hWnd, IDC_SND86ROM, snd86 & 2); break; case 2: case 3: setsnd86int(hWnd, IDC_SND86INTA, snd86); break; case 4: SetDlgItemCheck(hWnd, IDC_SND86INT, snd86 & 0x10); break; case 5: case 6: case 7: setsnd86id(hWnd, IDC_SND86ID, snd86); break; } InvalidateRect(GetDlgItem(hWnd, IDC_SND86DIP), NULL, TRUE); }
static void cfgcreate(HWND hWnd) { TCHAR work[32]; UINT val; SETLISTSTR(hWnd, IDC_BASECLOCK, basecstr); if (np2cfg.baseclock < AVE(PCBASECLOCK25, PCBASECLOCK20)) { val = 0; } else { val = 1; } SendDlgItemMessage(hWnd, IDC_BASECLOCK, CB_SETCURSEL, val, 0); SETLISTUINT32(hWnd, IDC_MULTIPLE, mulval); wsprintf(work, str_u, np2cfg.multiple); SetDlgItemText(hWnd, IDC_MULTIPLE, work); if (!milstr_cmp(np2cfg.model, str_VM)) { val = IDC_MODELVM; } else if (!milstr_cmp(np2cfg.model, str_EPSON)) { val = IDC_MODELEPSON; } else { val = IDC_MODELVX; } SetDlgItemCheck(hWnd, val, TRUE); if (np2cfg.samplingrate < AVE(11025, 22050)) { val = IDC_RATE11; } else if (np2cfg.samplingrate < AVE(22050, 44100)) { val = IDC_RATE22; } else { val = IDC_RATE44; } SetDlgItemCheck(hWnd, val, TRUE); wsprintf(work, str_u, np2cfg.delayms); SetDlgItemText(hWnd, IDC_SOUNDBUF, work); setclock(hWnd, 0); SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); }
static void mpucreate(HWND hWnd) { UINT i; TCHAR szBuf[8]; int nIndex; HWND sub; mpu = np2cfg.mpuopt; for (i=0; i<16; i++) { wsprintf(szBuf, tchar_4X, 0xC0D0 + (i << 10)); nIndex = (int)SendDlgItemMessage(hWnd, IDC_MPUIO, CB_ADDSTRING, 0, (LPARAM)szBuf); if (nIndex >= 0) { SendDlgItemMessage(hWnd, IDC_MPUIO, CB_SETITEMDATA, (WPARAM)nIndex, (LPARAM)(i << 4)); } } setmpuio(hWnd, mpu); dlgs_setcbitem(hWnd, IDC_MPUINT, cpInt, NELEMENTS(cpInt)); setmpuint(hWnd, mpu); dlgs_setlistmidiout(hWnd, IDC_MPU98MMAP, np2oscfg.mpu.mout); dlgs_setlistmidiin(hWnd, IDC_MPU98MDIN, np2oscfg.mpu.min); SETLISTSTR(hWnd, IDC_MPU98MMDL, cmmidi_mdlname); SetDlgItemText(hWnd, IDC_MPU98MMDL, np2oscfg.mpu.mdl); SetDlgItemCheck(hWnd, IDC_MPU98DEFE, np2oscfg.mpu.def_en); SetDlgItemText(hWnd, IDC_MPU98DEFF, np2oscfg.mpu.def); // SS_OWNERDRAWにすると IDEで不都合が出るので… sub = GetDlgItem(hWnd, IDC_MPUDIP); SetWindowLong(sub, GWL_STYLE, SS_OWNERDRAW + (GetWindowLong(sub, GWL_STYLE) & (~SS_TYPEMASK))); SetFocus(GetDlgItem(hWnd, IDC_MPUIO)); }
static void spbcreate(HWND hWnd) { HWND sub; spb = np2cfg.spbopt; dlgs_setcbitem(hWnd, IDC_SPBIO, cpIO26, NELEMENTS(cpIO26)); setsnd26io(hWnd, IDC_SPBIO, spb); dlgs_setcbitem(hWnd, IDC_SPBINT, cpInt26, NELEMENTS(cpInt26)); setsnd26int(hWnd, IDC_SPBINT, spb); dlgs_setcbitem(hWnd, IDC_SPBROM, cpAddr, NELEMENTS(cpAddr)); setsnd26rom(hWnd, IDC_SPBROM, spb); spbvrc = np2cfg.spb_vrc; // ver0.30 setspbVRch(hWnd); SendDlgItemMessage(hWnd, IDC_SPBVRLEVEL, TBM_SETRANGE, TRUE, MAKELONG(0, 24)); SendDlgItemMessage(hWnd, IDC_SPBVRLEVEL, TBM_SETPOS, TRUE, np2cfg.spb_vrl); SetDlgItemCheck(hWnd, IDC_SPBREVERSE, np2cfg.spb_x); sub = GetDlgItem(hWnd, IDC_SPBJMP); SetWindowLong(sub, GWL_STYLE, SS_OWNERDRAW + (GetWindowLong(sub, GWL_STYLE) & (~SS_TYPEMASK))); }
static void checkbtnres_load(HWND hWnd, const CHECKTBL *item) { SetDlgItemCheck(hWnd, item->res, (*(item->ptr)) & (1 << (item->bit))); }
static void setspbVRch(HWND hWnd) { SetDlgItemCheck(hWnd, IDC_SPBVRL, spbvrc & 1); SetDlgItemCheck(hWnd, IDC_SPBVRR, spbvrc & 2); }
static LRESULT CALLBACK Snd86optDlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { HWND sub; switch(msg) { case WM_INITDIALOG: snd86 = np2cfg.snd86opt; dlgs_setcbitem(hWnd, IDC_SND86IO, cpIO86, NELEMENTS(cpIO86)); setsnd86io(hWnd, IDC_SND86IO, snd86); SetDlgItemCheck(hWnd, IDC_SND86INT, snd86 & 0x10); dlgs_setcbitem(hWnd, IDC_SND86INTA, cpInt86, NELEMENTS(cpInt86)); setsnd86int(hWnd, IDC_SND86INTA, snd86); dlgs_setcbitem(hWnd, IDC_SND86ID, cpID, NELEMENTS(cpID)); setsnd86id(hWnd, IDC_SND86ID, snd86); SetDlgItemCheck(hWnd, IDC_SND86ROM, snd86 & 2); sub = GetDlgItem(hWnd, IDC_SND86DIP); SetWindowLong(sub, GWL_STYLE, SS_OWNERDRAW + (GetWindowLong(sub, GWL_STYLE) & (~SS_TYPEMASK))); return(TRUE); case WM_COMMAND: switch(LOWORD(wp)) { case IDC_SND86IO: set86jmp(hWnd, getsnd86io(hWnd, IDC_SND86IO), 0x01); break; case IDC_SND86INT: set86jmp(hWnd, (GetDlgItemCheck(hWnd, IDC_SND86INT))?0x10:0x00, 0x10); break; case IDC_SND86INTA: set86jmp(hWnd, getsnd86int(hWnd, IDC_SND86INTA), 0x0c); break; case IDC_SND86ROM: set86jmp(hWnd, (GetDlgItemCheck(hWnd, IDC_SND86ROM))?0x02:0x00, 0x02); break; case IDC_SND86ID: set86jmp(hWnd, getsnd86id(hWnd, IDC_SND86ID), 0xe0); break; case IDC_SND86DEF: snd86 = 0x7f; setsnd86io(hWnd, IDC_SND86IO, snd86); SetDlgItemCheck(hWnd, IDC_SND86INT, TRUE); setsnd86int(hWnd, IDC_SND86INTA, snd86); setsnd86id(hWnd, IDC_SND86ID, snd86); SetDlgItemCheck(hWnd, IDC_SND86ROM, TRUE); InvalidateRect(GetDlgItem(hWnd, IDC_SND86DIP), NULL, TRUE); break; case IDC_SND86DIP: snd86cmddipsw(hWnd); break; } break; case WM_NOTIFY: if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { if (np2cfg.snd86opt != snd86) { np2cfg.snd86opt = snd86; sysmng_update(SYS_UPDATECFG); } return(TRUE); } break; case WM_DRAWITEM: if (LOWORD(wp) == IDC_SND86DIP) { dlgs_drawbmp(((LPDRAWITEMSTRUCT)lp)->hDC, dipswbmp_getsnd86(snd86)); } return(FALSE); } return(FALSE); }
static void cfgcreate(HWND hWnd) { TCHAR work[32]; UINT val; dlgs_setcbitem(hWnd, IDC_BASECLOCK, cpBase, NELEMENTS(cpBase)); if (np2cfg.baseclock < AVE(PCBASECLOCK25, PCBASECLOCK20)) { val = PCBASECLOCK20; } else { val = PCBASECLOCK25; } dlgs_setcbcur(hWnd, IDC_BASECLOCK, val); SETLISTUINT32(hWnd, IDC_MULTIPLE, mulval); wsprintf(work, tchar_u, np2cfg.multiple); SetDlgItemText(hWnd, IDC_MULTIPLE, work); if (!milstr_cmp(np2cfg.model, str_VM)) { val = IDC_MODELVM; } else if (!milstr_cmp(np2cfg.model, str_EPSON)) { val = IDC_MODELEPSON; } else { val = IDC_MODELVX; } SetDlgItemCheck(hWnd, val, TRUE); if (np2cfg.samplingrate < AVE(11025, 22050)) { val = IDC_RATE11; } else if (np2cfg.samplingrate < AVE(22050, 44100)) { val = IDC_RATE22; } else { val = IDC_RATE44; } SetDlgItemCheck(hWnd, val, TRUE); wsprintf(work, tchar_u, np2cfg.delayms); SetDlgItemText(hWnd, IDC_SOUNDBUF, work); SetDlgItemCheck(hWnd, IDC_ALLOWRESIZE, np2oscfg.thickframe); #if !defined(_WIN64) if (mmxflag & MMXFLAG_NOTSUPPORT) { EnableWindow(GetDlgItem(hWnd, IDC_DISABLEMMX), FALSE); SetDlgItemCheck(hWnd, IDC_DISABLEMMX, TRUE); } else { SetDlgItemCheck(hWnd, IDC_DISABLEMMX, np2oscfg.disablemmx); } #endif SetDlgItemCheck(hWnd, IDC_COMFIRM, np2oscfg.comfirm); SetDlgItemCheck(hWnd, IDC_RESUME, np2oscfg.resume); setclock(hWnd, 0); SetFocus(GetDlgItem(hWnd, IDC_BASECLOCK)); }
static LRESULT CALLBACK Scropt1DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { TCHAR work[32]; UINT16 ret; UINT8 b; int renewal; switch(msg) { case WM_INITDIALOG: SetDlgItemCheck(hWnd, IDC_LCD, np2cfg.LCD_MODE & 1); EnableWindow(GetDlgItem(hWnd, IDC_LCDX), np2cfg.LCD_MODE & 1); SetDlgItemCheck(hWnd, IDC_LCDX, np2cfg.LCD_MODE & 2); SetDlgItemCheck(hWnd, IDC_SKIPLINE, np2cfg.skipline); SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, TBM_SETRANGE, TRUE, MAKELONG(0, 255)); SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, TBM_SETPOS, TRUE, np2cfg.skiplight); wsprintf(work, str_d, np2cfg.skiplight); SetDlgItemText(hWnd, IDC_LIGHTSTR, work); return(TRUE); case WM_COMMAND: switch(LOWORD(wp)) { case IDC_LCD: EnableWindow(GetDlgItem(hWnd, IDC_LCDX), GetDlgItemCheck(hWnd, IDC_LCD)); break; } break; case WM_HSCROLL: switch(GetDlgCtrlID((HWND)lp)) { case IDC_SKIPLIGHT: ret = (UINT16)SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, TBM_GETPOS, 0, 0); wsprintf(work, str_d, ret); SetDlgItemText(hWnd, IDC_LIGHTSTR, work); break; } break; case WM_NOTIFY: if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { renewal = 0; b = GetDlgItemCheck(hWnd, IDC_SKIPLINE); if (np2cfg.skipline != b) { np2cfg.skipline = b; renewal = 1; } ret = (UINT16)SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, TBM_GETPOS, 0, 0); if (ret > 255) { ret = 255; } if (np2cfg.skiplight != ret) { np2cfg.skiplight = ret; renewal = 1; } if (renewal) { pal_makeskiptable(); } b = GetDlgItemCheck(hWnd, IDC_LCD) | (GetDlgItemCheck(hWnd, IDC_LCDX) << 1); if (np2cfg.LCD_MODE != b) { np2cfg.LCD_MODE = b; pal_makelcdpal(); renewal = 1; } if (renewal) { scrndraw_redraw(); sysmng_update(SYS_UPDATECFG); } return(TRUE); } break; } return(FALSE); }