Tidy game selection dialog slightly, rename checkbox for "Show available only" to "Show available" and change behaviour to match. Add checkbox for "Show unavailable". Make unavailable driver count independent of hardware filter.

This commit is contained in:
Barry Harris 2012-02-23 21:15:47 +00:00
parent c4d6aad336
commit cfc368bd8a
3 changed files with 47 additions and 30 deletions

View File

@ -229,7 +229,7 @@ BEGIN
CONTROL " I understand and agree to be bound by the terms of the above license agreement",IDC_ACCEPTLICENSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,170,282,14 CONTROL " I understand and agree to be bound by the terms of the above license agreement",IDC_ACCEPTLICENSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,170,282,14
END END
IDD_SELNEW DIALOGEX 0, 0, 499, 360 IDD_SELNEW DIALOGEX 0, 0, 499, 362
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Select Game" CAPTION "Select Game"
FONT 8, "MS Shell Dlg", 0, 0, 0x1 FONT 8, "MS Shell Dlg", 0, 0, 0x1
@ -256,23 +256,24 @@ BEGIN
EDITTEXT IDC_TEXTSYSTEM,60,238,268,8,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP EDITTEXT IDC_TEXTSYSTEM,60,238,268,8,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_TEXTGENRE,60,248,268,8,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP EDITTEXT IDC_TEXTGENRE,60,248,268,8,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_TEXTNOTES,60,258,268,8,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP EDITTEXT IDC_TEXTNOTES,60,258,268,8,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP
GROUPBOX "Filters",IDC_STATIC_SYS,336,238,157,99 GROUPBOX "Filters",IDC_STATIC_SYS,336,238,157,95
LTEXT "",IDC_DRVCOUNT,10,276,230,8 LTEXT "",IDC_DRVCOUNT,10,276,230,8
CONTROL "Rom Info",IDROMINFO,"Button",WS_TABSTOP,262,274,68,14 CONTROL "Rom Info",IDROMINFO,"Button",WS_TABSTOP,262,274,68,14
GROUPBOX "Options",IDC_STATIC_OPT,4,294,330,35 GROUPBOX "Options",IDC_STATIC_OPT,4,294,330,39
CONTROL "Show available only",IDC_CHECKAVAILABLEONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,306,80,8 CONTROL "Show available",IDC_CHECKAVAILABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,306,80,8
CONTROL "Always show clones",IDC_CHECKAUTOEXPAND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,316,80,8 CONTROL "Show unavailable",IDC_CHECKUNAVAILABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,316,80,8
CONTROL "Use zipnames",IDC_SEL_SHORTNAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,306,80,8 CONTROL "Always show clones",IDC_CHECKAUTOEXPAND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,306,80,8
CONTROL "Latin text only",IDC_SEL_ASCIIONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,316,80,8 CONTROL "Use zipnames",IDC_SEL_SHORTNAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,316,80,8
CONTROL "ROMs Dirs...",IDROM,"Button",WS_TABSTOP,189,309,68,14 CONTROL "Latin text only",IDC_SEL_ASCIIONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,181,306,80,8
CONTROL "Scan ROMs",IDRESCAN,"Button",WS_TABSTOP,262,309,68,14 CONTROL "ROMs Dirs...",IDROM,"Button",WS_TABSTOP,262,301,68,14
CONTROL "Cancel",IDCANCEL,"Button",WS_TABSTOP,372,340,58,14 CONTROL "Scan ROMs",IDRESCAN,"Button",WS_TABSTOP,262,316,68,14
CONTROL "Play",IDOK,"Button",WS_TABSTOP,435,340,58,14 CONTROL "Cancel",IDCANCEL,"Button",WS_TABSTOP,372,342,58,14
GROUPBOX "IPS",IDC_SEL_IPSGROUP,4,331,174,27 CONTROL "Play",IDOK,"Button",WS_TABSTOP,435,342,58,14
CONTROL "Apply Patches",IDC_SEL_APPLYIPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,343,90,8 GROUPBOX "IPS",IDC_SEL_IPSGROUP,4,333,174,27
CONTROL "IPS Manager",IDC_SEL_IPSMANAGER,"Button",WS_TABSTOP,95,340,78,14 CONTROL "Apply Patches",IDC_SEL_APPLYIPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,345,90,8
GROUPBOX "Search",IDC_SEL_SEARCHGROUP,180,331,154,27 CONTROL "IPS Manager",IDC_SEL_IPSMANAGER,"Button",WS_TABSTOP,95,342,78,14
EDITTEXT IDC_SEL_SEARCH,185,340,140,12,ES_AUTOHSCROLL | WS_TABSTOP GROUPBOX "Search",IDC_SEL_SEARCHGROUP,180,333,154,27
EDITTEXT IDC_SEL_SEARCH,185,342,142,12,ES_AUTOHSCROLL | WS_TABSTOP
END END
IDD_CAPTURE DIALOGEX 0, 0, 270, 90 IDD_CAPTURE DIALOGEX 0, 0, 270, 90

View File

@ -97,7 +97,7 @@
#define IDC_SCREENSHOT_V 20057 #define IDC_SCREENSHOT_V 20057
#define IDC_SCREENSHOT2_H 20058 #define IDC_SCREENSHOT2_H 20058
#define IDC_SCREENSHOT2_V 20059 #define IDC_SCREENSHOT2_V 20059
#define IDC_CHECKAVAILABLEONLY 20060 #define IDC_CHECKAVAILABLE 20060
#define IDCAPTURE 20061 #define IDCAPTURE 20061
#define IDC_ADVANCE 20062 #define IDC_ADVANCE 20062
#define IDC_LABELROMNAME 20063 #define IDC_LABELROMNAME 20063
@ -174,6 +174,7 @@
#define IDC_SEL_SEARCH 20134 #define IDC_SEL_SEARCH 20134
#define IDC_SEL_SEARCHGROUP 20135 #define IDC_SEL_SEARCHGROUP 20135
#define IDC_RESOLUTION 20136 #define IDC_RESOLUTION 20136
#define IDC_CHECKUNAVAILABLE 20137
#define IDC_SUPPORTDIR_EDIT1 20150 #define IDC_SUPPORTDIR_EDIT1 20150
#define IDC_SUPPORTDIR_EDIT2 20151 #define IDC_SUPPORTDIR_EDIT2 20151

View File

@ -179,7 +179,8 @@ static int SnesValue = HARDWARE_PREFIX_NINTENDO_SNES >> 24;
static int MASKSNES = 1 << SnesValue; static int MASKSNES = 1 << SnesValue;
static int MASKALL = MASKCAPMISC | MASKCAVE | MASKCPS | MASKCPS2 | MASKCPS3 | MASKDATAEAST | MASKGALAXIAN | MASKIREM | MASKKANEKO | MASKKONAMI | MASKNEOGEO | MASKPACMAN | MASKPGM | MASKPSIKYO | MASKSEGA | MASKSETA | MASKTAITO | MASKTECHNOS | MASKTOAPLAN | MASKMISCPRE90S | MASKMISCPOST90S | MASKMEGADRIVE | MASKPCENGINE | MASKSNES; static int MASKALL = MASKCAPMISC | MASKCAVE | MASKCPS | MASKCPS2 | MASKCPS3 | MASKDATAEAST | MASKGALAXIAN | MASKIREM | MASKKANEKO | MASKKONAMI | MASKNEOGEO | MASKPACMAN | MASKPGM | MASKPSIKYO | MASKSEGA | MASKSETA | MASKTAITO | MASKTECHNOS | MASKTOAPLAN | MASKMISCPRE90S | MASKMISCPOST90S | MASKMEGADRIVE | MASKPCENGINE | MASKSNES;
#define AVAILONLY (1 << 28) #define UNAVAILABLE (1 << 27)
#define AVAILABLE (1 << 28)
#define AUTOEXPAND (1 << 29) #define AUTOEXPAND (1 << 29)
#define SHOWSHORT (1 << 30) #define SHOWSHORT (1 << 30)
#define ASCIIONLY (1 << 31) #define ASCIIONLY (1 << 31)
@ -349,9 +350,12 @@ static int SelListMake()
if (BurnDrvGetFlags() & BDF_BOARDROM) { if (BurnDrvGetFlags() & BDF_BOARDROM) {
continue; continue;
} }
if (BurnDrvGetText(DRV_PARENT) != NULL && (BurnDrvGetFlags() & BDF_CLONE)) { // Skip clones if (BurnDrvGetText(DRV_PARENT) != NULL && (BurnDrvGetFlags() & BDF_CLONE)) { // Skip clones
continue; continue;
} }
if(!gameAv[i]) nMissingDrvCount++;
int nHardware = 1 << (BurnDrvGetHardwareCode() >> 24); int nHardware = 1 << (BurnDrvGetHardwareCode() >> 24);
if ((nHardware & MASKALL) && ((nHardware & nLoadMenuShowX) || (nHardware & MASKALL) == 0)) { if ((nHardware & MASKALL) && ((nHardware & nLoadMenuShowX) || (nHardware & MASKALL) == 0)) {
@ -376,9 +380,11 @@ static int SelListMake()
if (!StringFound && !StringFound2) continue; if (!StringFound && !StringFound2) continue;
} }
if(!gameAv[i]) nMissingDrvCount++; if (avOk && (!(nLoadMenuShowX & UNAVAILABLE)) && !gameAv[i]) { // Skip non-available games if needed
continue;
if (avOk && (nLoadMenuShowX & AVAILONLY) && !gameAv[i]) { // Skip non-available games if needed }
if (avOk && (!(nLoadMenuShowX & AVAILABLE)) && gameAv[i]) { // Skip available games if needed
continue; continue;
} }
@ -403,10 +409,12 @@ static int SelListMake()
if (BurnDrvGetFlags() & BDF_BOARDROM) { if (BurnDrvGetFlags() & BDF_BOARDROM) {
continue; continue;
} }
if (BurnDrvGetTextA(DRV_PARENT) == NULL || !(BurnDrvGetFlags() & BDF_CLONE)) { // Skip parents if (BurnDrvGetTextA(DRV_PARENT) == NULL || !(BurnDrvGetFlags() & BDF_CLONE)) { // Skip parents
continue; continue;
} }
if(!gameAv[i]) nMissingDrvCount++;
int nHardware = 1 << (BurnDrvGetHardwareCode() >> 24); int nHardware = 1 << (BurnDrvGetHardwareCode() >> 24);
if ((nHardware & MASKALL) && ((nHardware & nLoadMenuShowX) || ((nHardware & MASKALL) == 0))) { if ((nHardware & MASKALL) && ((nHardware & nLoadMenuShowX) || ((nHardware & MASKALL) == 0))) {
@ -431,9 +439,11 @@ static int SelListMake()
if (!StringFound && !StringFound2) continue; if (!StringFound && !StringFound2) continue;
} }
if(!gameAv[i]) nMissingDrvCount++; if (avOk && (!(nLoadMenuShowX & UNAVAILABLE)) && !gameAv[i]) { // Skip non-available games if needed
continue;
if (avOk && (nLoadMenuShowX & AVAILONLY) && !gameAv[i]) { // Skip non-available games if needed }
if (avOk && (!(nLoadMenuShowX & AVAILABLE)) && gameAv[i]) { // Skip available games if needed
continue; continue;
} }
@ -635,7 +645,8 @@ static void RefreshPanel()
} }
CheckDlgButton(hSelDlg, IDC_CHECKAUTOEXPAND, (nLoadMenuShowX & AUTOEXPAND) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hSelDlg, IDC_CHECKAUTOEXPAND, (nLoadMenuShowX & AUTOEXPAND) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hSelDlg, IDC_CHECKAVAILABLEONLY, (nLoadMenuShowX & AVAILONLY) ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hSelDlg, IDC_CHECKAVAILABLE, (nLoadMenuShowX & AVAILABLE) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hSelDlg, IDC_CHECKUNAVAILABLE, (nLoadMenuShowX & UNAVAILABLE) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hSelDlg, IDC_SEL_SHORTNAME, nLoadMenuShowX & SHOWSHORT ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hSelDlg, IDC_SEL_SHORTNAME, nLoadMenuShowX & SHOWSHORT ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hSelDlg, IDC_SEL_ASCIIONLY, nLoadMenuShowX & ASCIIONLY ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(hSelDlg, IDC_SEL_ASCIIONLY, nLoadMenuShowX & ASCIIONLY ? BST_CHECKED : BST_UNCHECKED);
@ -1003,7 +1014,7 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
InitCommonControls(); InitCommonControls();
hSelDlg = hDlg; hSelDlg = hDlg;
SendDlgItemMessage(hDlg, IDC_SCREENSHOT_H, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)NULL); SendDlgItemMessage(hDlg, IDC_SCREENSHOT_H, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)NULL);
SendDlgItemMessage(hDlg, IDC_SCREENSHOT_V, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)NULL); SendDlgItemMessage(hDlg, IDC_SCREENSHOT_V, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)NULL);
@ -1371,8 +1382,12 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
bDialogCancel = true; bDialogCancel = true;
SendMessage(hDlg, WM_CLOSE, 0, 0); SendMessage(hDlg, WM_CLOSE, 0, 0);
return 0; return 0;
case IDC_CHECKAVAILABLEONLY: case IDC_CHECKAVAILABLE:
nLoadMenuShowX ^= AVAILONLY; nLoadMenuShowX ^= AVAILABLE;
RebuildEverything();
break;
case IDC_CHECKUNAVAILABLE:
nLoadMenuShowX ^= UNAVAILABLE;
RebuildEverything(); RebuildEverything();
break; break;
case IDC_CHECKAUTOEXPAND: case IDC_CHECKAUTOEXPAND:
@ -1598,7 +1613,7 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hNotFoundEss, nIconsSizeXY, nIconsSizeXY, 0, NULL, DI_NORMAL); DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hNotFoundEss, nIconsSizeXY, nIconsSizeXY, 0, NULL, DI_NORMAL);
rect.left += nIconsSizeXY + 4; rect.left += nIconsSizeXY + 4;
} else { } else {
if (!(nLoadMenuShowX & AVAILONLY) && !(gameAv[((NODEINFO*)TvItem.lParam)->nBurnDrvNo] & 2)) { if (!(nLoadMenuShowX & AVAILABLE) && !(gameAv[((NODEINFO*)TvItem.lParam)->nBurnDrvNo] & 2)) {
DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hNotFoundNonEss, nIconsSizeXY, nIconsSizeXY, 0, NULL, DI_NORMAL); DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hNotFoundNonEss, nIconsSizeXY, nIconsSizeXY, 0, NULL, DI_NORMAL);
rect.left += nIconsSizeXY + 4; rect.left += nIconsSizeXY + 4;
} }