|
|
| version 1.6, 2003/11/08 17:06:01 | version 1.15, 2007/11/11 07:11:28 |
|---|---|
| Line 4 | Line 4 |
| #include "strres.h" | #include "strres.h" |
| #include "resource.h" | #include "resource.h" |
| #include "np2.h" | #include "np2.h" |
| #include "oemtext.h" | |
| #include "scrnmng.h" | #include "scrnmng.h" |
| #include "sysmng.h" | #include "sysmng.h" |
| #include "np2class.h" | #include "np2class.h" |
| Line 15 | Line 16 |
| #include "palettes.h" | #include "palettes.h" |
| static const char str_scropt[] = "Screen option"; | static const TCHAR str_scropt[] = _T("Screen option"); |
| static LRESULT CALLBACK Scropt1DlgProc(HWND hWnd, UINT msg, | static LRESULT CALLBACK Scropt1DlgProc(HWND hWnd, UINT msg, |
| WPARAM wp, LPARAM lp) { | WPARAM wp, LPARAM lp) { |
| char work[32]; | TCHAR work[32]; |
| WORD ret; | UINT16 ret; |
| BYTE b; | UINT8 b; |
| int renewal; | int renewal; |
| switch(msg) { | switch(msg) { |
| Line 36 static LRESULT CALLBACK Scropt1DlgProc(H | Line 37 static LRESULT CALLBACK Scropt1DlgProc(H |
| MAKELONG(0, 255)); | MAKELONG(0, 255)); |
| SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, TBM_SETPOS, TRUE, | SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, TBM_SETPOS, TRUE, |
| np2cfg.skiplight); | np2cfg.skiplight); |
| wsprintf(work, str_d, np2cfg.skiplight); | wsprintf(work, tchar_u, np2cfg.skiplight); |
| SetDlgItemText(hWnd, IDC_LIGHTSTR, work); | SetDlgItemText(hWnd, IDC_LIGHTSTR, work); |
| return(TRUE); | return(TRUE); |
| case WM_COMMAND: | case WM_COMMAND: |
| switch (LOWORD(wp)) { | switch(LOWORD(wp)) { |
| case IDC_LCD: | case IDC_LCD: |
| EnableWindow(GetDlgItem(hWnd, IDC_LCDX), | EnableWindow(GetDlgItem(hWnd, IDC_LCDX), |
| GetDlgItemCheck(hWnd, IDC_LCD)); | GetDlgItemCheck(hWnd, IDC_LCD)); |
| Line 52 static LRESULT CALLBACK Scropt1DlgProc(H | Line 53 static LRESULT CALLBACK Scropt1DlgProc(H |
| case WM_HSCROLL: | case WM_HSCROLL: |
| switch(GetDlgCtrlID((HWND)lp)) { | switch(GetDlgCtrlID((HWND)lp)) { |
| case IDC_SKIPLIGHT: | case IDC_SKIPLIGHT: |
| ret = (WORD)SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, | ret = (UINT16)SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, |
| TBM_GETPOS, 0, 0); | TBM_GETPOS, 0, 0); |
| wsprintf(work, str_d, ret); | wsprintf(work, tchar_u, ret); |
| SetDlgItemText(hWnd, IDC_LIGHTSTR, work); | SetDlgItemText(hWnd, IDC_LIGHTSTR, work); |
| break; | break; |
| } | } |
| Line 63 static LRESULT CALLBACK Scropt1DlgProc(H | Line 64 static LRESULT CALLBACK Scropt1DlgProc(H |
| case WM_NOTIFY: | case WM_NOTIFY: |
| if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { | if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { |
| renewal = 0; | renewal = 0; |
| b = GetDlgItemCheck(hWnd, IDC_SKIPLINE); | b = (UINT8)GetDlgItemCheck(hWnd, IDC_SKIPLINE); |
| if (np2cfg.skipline != b) { | if (np2cfg.skipline != b) { |
| np2cfg.skipline = b; | np2cfg.skipline = b; |
| renewal = 1; | renewal = 1; |
| } | } |
| if ((ret = (WORD)SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, | ret = (UINT16)SendDlgItemMessage(hWnd, IDC_SKIPLIGHT, |
| TBM_GETPOS, 0, 0)) > 255) { | TBM_GETPOS, 0, 0); |
| if (ret > 255) { | |
| ret = 255; | ret = 255; |
| } | } |
| if (np2cfg.skiplight != ret) { | if (np2cfg.skiplight != ret) { |
| Line 79 static LRESULT CALLBACK Scropt1DlgProc(H | Line 81 static LRESULT CALLBACK Scropt1DlgProc(H |
| if (renewal) { | if (renewal) { |
| pal_makeskiptable(); | pal_makeskiptable(); |
| } | } |
| b = GetDlgItemCheck(hWnd, IDC_LCD) | | b = (GetDlgItemCheck(hWnd, IDC_LCD)?0x01:0x00) | |
| (GetDlgItemCheck(hWnd, IDC_LCDX) << 1); | (GetDlgItemCheck(hWnd, IDC_LCDX)?0x02:0x00); |
| if (np2cfg.LCD_MODE != b) { | if (np2cfg.LCD_MODE != b) { |
| np2cfg.LCD_MODE = b; | np2cfg.LCD_MODE = b; |
| pal_makelcdpal(); | pal_makelcdpal(); |
| Line 102 static const int gdcchip[4] = {IDC_GRCGN | Line 104 static const int gdcchip[4] = {IDC_GRCGN |
| static LRESULT CALLBACK Scropt2DlgProc(HWND hWnd, UINT msg, | static LRESULT CALLBACK Scropt2DlgProc(HWND hWnd, UINT msg, |
| WPARAM wp, LPARAM lp) { | WPARAM wp, LPARAM lp) { |
| BYTE b; | UINT8 b; |
| UINT update; | UINT update; |
| switch(msg) { | switch(msg) { |
| Line 115 static LRESULT CALLBACK Scropt2DlgProc(H | Line 117 static LRESULT CALLBACK Scropt2DlgProc(H |
| } | } |
| SetDlgItemCheck(hWnd, gdcchip[np2cfg.grcg & 3], TRUE); | SetDlgItemCheck(hWnd, gdcchip[np2cfg.grcg & 3], TRUE); |
| SetDlgItemCheck(hWnd, IDC_PC980124, np2cfg.color16); | SetDlgItemCheck(hWnd, IDC_PC980124, np2cfg.color16); |
| #if defined(SUPPORT_PC9821) | |
| EnableWindow(GetDlgItem(hWnd, IDC_GCBOX), FALSE); | |
| EnableWindow(GetDlgItem(hWnd, IDC_GRCGNON), FALSE); | |
| EnableWindow(GetDlgItem(hWnd, IDC_GRCG), FALSE); | |
| EnableWindow(GetDlgItem(hWnd, IDC_GRCG2), FALSE); | |
| EnableWindow(GetDlgItem(hWnd, IDC_EGC), FALSE); | |
| EnableWindow(GetDlgItem(hWnd, IDC_PC980124), FALSE); | |
| #endif | |
| return(TRUE); | return(TRUE); |
| case WM_NOTIFY: | case WM_NOTIFY: |
| if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { | if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { |
| update = 0; | update = 0; |
| b = GetDlgItemCheck(hWnd, IDC_GDC72020); | b = (UINT8)GetDlgItemCheck(hWnd, IDC_GDC72020); |
| if (np2cfg.uPD72020 != b) { | if (np2cfg.uPD72020 != b) { |
| np2cfg.uPD72020 = b; | np2cfg.uPD72020 = b; |
| update |= SYS_UPDATECFG; | update |= SYS_UPDATECFG; |
| Line 133 static LRESULT CALLBACK Scropt2DlgProc(H | Line 143 static LRESULT CALLBACK Scropt2DlgProc(H |
| update |= SYS_UPDATECFG; | update |= SYS_UPDATECFG; |
| gdcs.grphdisp |= GDCSCRN_ALLDRAW2; | gdcs.grphdisp |= GDCSCRN_ALLDRAW2; |
| } | } |
| b = GetDlgItemCheck(hWnd, IDC_PC980124); | b = (UINT8)GetDlgItemCheck(hWnd, IDC_PC980124); |
| if (np2cfg.color16 != b) { | if (np2cfg.color16 != b) { |
| np2cfg.color16 = b; | np2cfg.color16 = b; |
| update |= SYS_UPDATECFG; | update |= SYS_UPDATECFG; |
| Line 149 static LRESULT CALLBACK Scropt2DlgProc(H | Line 159 static LRESULT CALLBACK Scropt2DlgProc(H |
| static LRESULT CALLBACK Scropt3DlgProc(HWND hWnd, UINT msg, | static LRESULT CALLBACK Scropt3DlgProc(HWND hWnd, UINT msg, |
| WPARAM wp, LPARAM lp) { | WPARAM wp, LPARAM lp) { |
| char work[32]; | TCHAR work[32]; |
| BYTE value[6]; | UINT8 value[6]; |
| BYTE b; | UINT8 b; |
| UINT update; | UINT update; |
| switch(msg) { | switch(msg) { |
| Line 160 static LRESULT CALLBACK Scropt3DlgProc(H | Line 170 static LRESULT CALLBACK Scropt3DlgProc(H |
| MAKELONG(0, 32)); | MAKELONG(0, 32)); |
| SendDlgItemMessage(hWnd, IDC_TRAMWAIT, TBM_SETPOS, TRUE, | SendDlgItemMessage(hWnd, IDC_TRAMWAIT, TBM_SETPOS, TRUE, |
| np2cfg.wait[0]); | np2cfg.wait[0]); |
| wsprintf(work, str_u, np2cfg.wait[0]); | wsprintf(work, tchar_u, np2cfg.wait[0]); |
| SetDlgItemText(hWnd, IDC_TRAMSTR, work); | SetDlgItemText(hWnd, IDC_TRAMSTR, work); |
| SendDlgItemMessage(hWnd, IDC_VRAMWAIT, TBM_SETRANGE, TRUE, | SendDlgItemMessage(hWnd, IDC_VRAMWAIT, TBM_SETRANGE, TRUE, |
| MAKELONG(0, 32)); | MAKELONG(0, 32)); |
| SendDlgItemMessage(hWnd, IDC_VRAMWAIT, TBM_SETPOS, TRUE, | SendDlgItemMessage(hWnd, IDC_VRAMWAIT, TBM_SETPOS, TRUE, |
| np2cfg.wait[2]); | np2cfg.wait[2]); |
| wsprintf(work, str_u, np2cfg.wait[2]); | wsprintf(work, tchar_u, np2cfg.wait[2]); |
| SetDlgItemText(hWnd, IDC_VRAMSTR, work); | SetDlgItemText(hWnd, IDC_VRAMSTR, work); |
| SendDlgItemMessage(hWnd, IDC_GRCGWAIT, TBM_SETRANGE, TRUE, | SendDlgItemMessage(hWnd, IDC_GRCGWAIT, TBM_SETRANGE, TRUE, |
| MAKELONG(0, 32)); | MAKELONG(0, 32)); |
| SendDlgItemMessage(hWnd, IDC_GRCGWAIT, TBM_SETPOS, TRUE, | SendDlgItemMessage(hWnd, IDC_GRCGWAIT, TBM_SETPOS, TRUE, |
| np2cfg.wait[4]); | np2cfg.wait[4]); |
| wsprintf(work, str_u, np2cfg.wait[4]); | wsprintf(work, tchar_u, np2cfg.wait[4]); |
| SetDlgItemText(hWnd, IDC_GRCGSTR, work); | SetDlgItemText(hWnd, IDC_GRCGSTR, work); |
| SendDlgItemMessage(hWnd, IDC_REALPAL, TBM_SETRANGE, TRUE, | SendDlgItemMessage(hWnd, IDC_REALPAL, TBM_SETRANGE, TRUE, |
| MAKELONG(0, 64)); | MAKELONG(0, 64)); |
| SendDlgItemMessage(hWnd, IDC_REALPAL, TBM_SETPOS, TRUE, | SendDlgItemMessage(hWnd, IDC_REALPAL, TBM_SETPOS, TRUE, |
| np2cfg.realpal); | np2cfg.realpal); |
| wsprintf(work, str_d, (int)np2cfg.realpal - 32); | wsprintf(work, tchar_d, (int)np2cfg.realpal - 32); |
| SetDlgItemText(hWnd, IDC_REALPALSTR, work); | SetDlgItemText(hWnd, IDC_REALPALSTR, work); |
| return(TRUE); | return(TRUE); |
| Line 187 static LRESULT CALLBACK Scropt3DlgProc(H | Line 197 static LRESULT CALLBACK Scropt3DlgProc(H |
| case WM_HSCROLL: | case WM_HSCROLL: |
| switch(GetDlgCtrlID((HWND)lp)) { | switch(GetDlgCtrlID((HWND)lp)) { |
| case IDC_TRAMWAIT: | case IDC_TRAMWAIT: |
| b = (BYTE)SendDlgItemMessage(hWnd, IDC_TRAMWAIT, | b = (UINT8)SendDlgItemMessage(hWnd, IDC_TRAMWAIT, |
| TBM_GETPOS, 0, 0); | TBM_GETPOS, 0, 0); |
| wsprintf(work, str_u, b); | wsprintf(work, tchar_u, b); |
| SetDlgItemText(hWnd, IDC_TRAMSTR, work); | SetDlgItemText(hWnd, IDC_TRAMSTR, work); |
| break; | break; |
| case IDC_VRAMWAIT: | case IDC_VRAMWAIT: |
| b = (BYTE)SendDlgItemMessage(hWnd, IDC_VRAMWAIT, | b = (UINT8)SendDlgItemMessage(hWnd, IDC_VRAMWAIT, |
| TBM_GETPOS, 0, 0); | TBM_GETPOS, 0, 0); |
| wsprintf(work, str_u, b); | wsprintf(work, tchar_u, b); |
| SetDlgItemText(hWnd, IDC_VRAMSTR, work); | SetDlgItemText(hWnd, IDC_VRAMSTR, work); |
| break; | break; |
| case IDC_GRCGWAIT: | case IDC_GRCGWAIT: |
| b = (BYTE)SendDlgItemMessage(hWnd, IDC_GRCGWAIT, | b = (UINT8)SendDlgItemMessage(hWnd, IDC_GRCGWAIT, |
| TBM_GETPOS, 0, 0); | TBM_GETPOS, 0, 0); |
| wsprintf(work, str_u, b); | wsprintf(work, tchar_u, b); |
| SetDlgItemText(hWnd, IDC_GRCGSTR, work); | SetDlgItemText(hWnd, IDC_GRCGSTR, work); |
| break; | break; |
| case IDC_REALPAL: | case IDC_REALPAL: |
| b = (BYTE)SendDlgItemMessage(hWnd, IDC_REALPAL, | b = (UINT8)SendDlgItemMessage(hWnd, IDC_REALPAL, |
| TBM_GETPOS, 0, 0); | TBM_GETPOS, 0, 0); |
| wsprintf(work, str_d, (int)b - 32); | wsprintf(work, tchar_d, (int)b - 32); |
| SetDlgItemText(hWnd, IDC_REALPALSTR, work); | SetDlgItemText(hWnd, IDC_REALPALSTR, work); |
| } | } |
| break; | break; |
| Line 216 static LRESULT CALLBACK Scropt3DlgProc(H | Line 229 static LRESULT CALLBACK Scropt3DlgProc(H |
| if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { | if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) { |
| update = 0; | update = 0; |
| ZeroMemory(value, sizeof(value)); | ZeroMemory(value, sizeof(value)); |
| value[0] = (BYTE)SendDlgItemMessage(hWnd, IDC_TRAMWAIT, | value[0] = (UINT8)SendDlgItemMessage(hWnd, IDC_TRAMWAIT, |
| TBM_GETPOS, 0, 0); | TBM_GETPOS, 0, 0); |
| if (value[0]) { | if (value[0]) { |
| value[1] = 1; | value[1] = 1; |
| } | } |
| value[2] = (BYTE)SendDlgItemMessage(hWnd, IDC_VRAMWAIT, | value[2] = (UINT8)SendDlgItemMessage(hWnd, IDC_VRAMWAIT, |
| TBM_GETPOS, 0, 0); | TBM_GETPOS, 0, 0); |
| if (value[2]) { | if (value[2]) { |
| value[3] = 1; | value[3] = 1; |
| } | } |
| value[4] = (BYTE)SendDlgItemMessage(hWnd, IDC_GRCGWAIT, | value[4] = (UINT8)SendDlgItemMessage(hWnd, IDC_GRCGWAIT, |
| TBM_GETPOS, 0, 0); | TBM_GETPOS, 0, 0); |
| if (value[4]) { | if (value[4]) { |
| value[5] = 1; | value[5] = 1; |
| Line 237 static LRESULT CALLBACK Scropt3DlgProc(H | Line 250 static LRESULT CALLBACK Scropt3DlgProc(H |
| update |= SYS_UPDATECFG; | update |= SYS_UPDATECFG; |
| } | } |
| } | } |
| b = (BYTE)SendDlgItemMessage(hWnd, IDC_REALPAL, | b = (UINT8)SendDlgItemMessage(hWnd, IDC_REALPAL, |
| TBM_GETPOS, 0, 0); | TBM_GETPOS, 0, 0); |
| if (np2cfg.realpal != b) { | if (np2cfg.realpal != b) { |
| np2cfg.realpal = b; | np2cfg.realpal = b; |
| Line 251 static LRESULT CALLBACK Scropt3DlgProc(H | Line 264 static LRESULT CALLBACK Scropt3DlgProc(H |
| return(FALSE); | return(FALSE); |
| } | } |
| static const CBPARAM cpZoom[] = | |
| { | |
| {MAKEINTRESOURCE(IDS_ZOOM_NONE), 0}, | |
| {MAKEINTRESOURCE(IDS_ZOOM_FIXEDASPECT), 1}, | |
| {MAKEINTRESOURCE(IDS_ZOOM_ADJUSTASPECT), 2}, | |
| {MAKEINTRESOURCE(IDS_ZOOM_FULL), 3}, | |
| }; | |
| static LRESULT CALLBACK ScroptFullScreenDlgProc(HWND hWnd, UINT uMsg, | |
| WPARAM wParam, LPARAM lParam) | |
| { | |
| UINT8 c; | |
| UINT uUpdate; | |
| switch(uMsg) | |
| { | |
| case WM_INITDIALOG: | |
| c = np2oscfg.fscrnmod; | |
| SetDlgItemCheck(hWnd, IDC_FULLSCREEN_SAMEBPP, | |
| (c & FSCRNMOD_SAMEBPP)); | |
| SetDlgItemCheck(hWnd, IDC_FULLSCREEN_SAMERES, | |
| (c & FSCRNMOD_SAMERES)); | |
| dlgs_setcbitem(hWnd, IDC_FULLSCREEN_ZOOM, | |
| cpZoom, NELEMENTS(cpZoom)); | |
| dlgs_setcbcur(hWnd, IDC_FULLSCREEN_ZOOM, (c & 3)); | |
| EnableWindow(GetDlgItem(hWnd, IDC_FULLSCREEN_ZOOM), | |
| (c & FSCRNMOD_SAMERES) != 0); | |
| return(TRUE); | |
| case WM_COMMAND: | |
| switch(LOWORD(wParam)) | |
| { | |
| case IDC_FULLSCREEN_SAMERES: | |
| dlgs_enablebyautocheck(hWnd, IDC_FULLSCREEN_ZOOM, | |
| IDC_FULLSCREEN_SAMERES); | |
| break; | |
| } | |
| break; | |
| case WM_NOTIFY: | |
| if ((((NMHDR *)lParam)->code) == (UINT)PSN_APPLY) | |
| { | |
| c = 0; | |
| if (GetDlgItemCheck(hWnd, IDC_FULLSCREEN_SAMEBPP)) | |
| { | |
| c |= FSCRNMOD_SAMEBPP; | |
| } | |
| if (GetDlgItemCheck(hWnd, IDC_FULLSCREEN_SAMERES)) | |
| { | |
| c |= FSCRNMOD_SAMERES; | |
| } | |
| c |= dlgs_getcbcur(hWnd, IDC_FULLSCREEN_ZOOM, 0); | |
| if (np2oscfg.fscrnmod != c) | |
| { | |
| np2oscfg.fscrnmod = c; | |
| uUpdate |= SYS_UPDATEOSCFG; | |
| } | |
| sysmng_update(uUpdate); | |
| return(TRUE); | |
| } | |
| break; | |
| } | |
| return(FALSE); | |
| } | |
| void dialog_scropt(HWND hWnd) { | void dialog_scropt(HWND hWnd) { |
| HINSTANCE hinst; | HINSTANCE hInstance; |
| PROPSHEETPAGE psp; | PROPSHEETPAGE psp; |
| PROPSHEETHEADER psh; | PROPSHEETHEADER psh; |
| HPROPSHEETPAGE hpsp[3]; | HPROPSHEETPAGE hpsp[4]; |
| hinst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE); | hInstance = (HINSTANCE)GetWindowLongPtr(hWnd, GWLP_HINSTANCE); |
| ZeroMemory(&psp, sizeof(psp)); | ZeroMemory(&psp, sizeof(psp)); |
| psp.dwSize = sizeof(PROPSHEETPAGE); | psp.dwSize = sizeof(PROPSHEETPAGE); |
| psp.dwFlags = PSP_DEFAULT; | psp.dwFlags = PSP_DEFAULT; |
| psp.hInstance = hinst; | psp.hInstance = hInstance; |
| psp.pszTemplate = MAKEINTRESOURCE(IDD_SCROPT1); | psp.pszTemplate = MAKEINTRESOURCE(IDD_SCROPT1); |
| psp.pfnDlgProc = (DLGPROC)Scropt1DlgProc; | psp.pfnDlgProc = (DLGPROC)Scropt1DlgProc; |
| Line 277 void dialog_scropt(HWND hWnd) { | Line 355 void dialog_scropt(HWND hWnd) { |
| psp.pfnDlgProc = (DLGPROC)Scropt3DlgProc; | psp.pfnDlgProc = (DLGPROC)Scropt3DlgProc; |
| hpsp[2] = CreatePropertySheetPage(&psp); | hpsp[2] = CreatePropertySheetPage(&psp); |
| psp.pszTemplate = MAKEINTRESOURCE(IDD_SCROPT_FULLSCREEN); | |
| psp.pfnDlgProc = (DLGPROC)ScroptFullScreenDlgProc; | |
| hpsp[3] = CreatePropertySheetPage(&psp); | |
| ZeroMemory(&psh, sizeof(psh)); | ZeroMemory(&psh, sizeof(psh)); |
| psh.dwSize = sizeof(PROPSHEETHEADER); | psh.dwSize = sizeof(PROPSHEETHEADER); |
| psh.dwFlags = PSH_NOAPPLYNOW | PSH_USEHICON | PSH_USECALLBACK; | psh.dwFlags = PSH_NOAPPLYNOW | PSH_USEHICON | PSH_USECALLBACK; |
| psh.hwndParent = hWnd; | psh.hwndParent = hWnd; |
| psh.hInstance = hinst; | psh.hInstance = hInstance; |
| psh.hIcon = LoadIcon(hinst, MAKEINTRESOURCE(IDI_ICON2)); | psh.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2)); |
| psh.nPages = 3; | psh.nPages = 4; |
| psh.phpage = hpsp; | psh.phpage = hpsp; |
| psh.pszCaption = str_scropt; | psh.pszCaption = str_scropt; |
| psh.pfnCallback = np2class_propetysheet; | psh.pfnCallback = np2class_propetysheet; |
| PropertySheet(&psh); | PropertySheet(&psh); |
| InvalidateRect(hWndMain, NULL, TRUE); | InvalidateRect(hWnd, NULL, TRUE); |
| } | } |