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
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
CAPTION "Select Game"
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_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
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
CONTROL "Rom Info",IDROMINFO,"Button",WS_TABSTOP,262,274,68,14
GROUPBOX "Options",IDC_STATIC_OPT,4,294,330,35
CONTROL "Show available only",IDC_CHECKAVAILABLEONLY,"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 "Use zipnames",IDC_SEL_SHORTNAME,"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 "ROMs Dirs...",IDROM,"Button",WS_TABSTOP,189,309,68,14
CONTROL "Scan ROMs",IDRESCAN,"Button",WS_TABSTOP,262,309,68,14
CONTROL "Cancel",IDCANCEL,"Button",WS_TABSTOP,372,340,58,14
CONTROL "Play",IDOK,"Button",WS_TABSTOP,435,340,58,14
GROUPBOX "IPS",IDC_SEL_IPSGROUP,4,331,174,27
CONTROL "Apply Patches",IDC_SEL_APPLYIPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,343,90,8
CONTROL "IPS Manager",IDC_SEL_IPSMANAGER,"Button",WS_TABSTOP,95,340,78,14
GROUPBOX "Search",IDC_SEL_SEARCHGROUP,180,331,154,27
EDITTEXT IDC_SEL_SEARCH,185,340,140,12,ES_AUTOHSCROLL | WS_TABSTOP
GROUPBOX "Options",IDC_STATIC_OPT,4,294,330,39
CONTROL "Show available",IDC_CHECKAVAILABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,306,80,8
CONTROL "Show unavailable",IDC_CHECKUNAVAILABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,316,80,8
CONTROL "Always show clones",IDC_CHECKAUTOEXPAND,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,306,80,8
CONTROL "Use zipnames",IDC_SEL_SHORTNAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,95,316,80,8
CONTROL "Latin text only",IDC_SEL_ASCIIONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,181,306,80,8
CONTROL "ROMs Dirs...",IDROM,"Button",WS_TABSTOP,262,301,68,14
CONTROL "Scan ROMs",IDRESCAN,"Button",WS_TABSTOP,262,316,68,14
CONTROL "Cancel",IDCANCEL,"Button",WS_TABSTOP,372,342,58,14
CONTROL "Play",IDOK,"Button",WS_TABSTOP,435,342,58,14
GROUPBOX "IPS",IDC_SEL_IPSGROUP,4,333,174,27
CONTROL "Apply Patches",IDC_SEL_APPLYIPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,345,90,8
CONTROL "IPS Manager",IDC_SEL_IPSMANAGER,"Button",WS_TABSTOP,95,342,78,14
GROUPBOX "Search",IDC_SEL_SEARCHGROUP,180,333,154,27
EDITTEXT IDC_SEL_SEARCH,185,342,142,12,ES_AUTOHSCROLL | WS_TABSTOP
END
IDD_CAPTURE DIALOGEX 0, 0, 270, 90

View File

@ -97,7 +97,7 @@
#define IDC_SCREENSHOT_V 20057
#define IDC_SCREENSHOT2_H 20058
#define IDC_SCREENSHOT2_V 20059
#define IDC_CHECKAVAILABLEONLY 20060
#define IDC_CHECKAVAILABLE 20060
#define IDCAPTURE 20061
#define IDC_ADVANCE 20062
#define IDC_LABELROMNAME 20063
@ -174,6 +174,7 @@
#define IDC_SEL_SEARCH 20134
#define IDC_SEL_SEARCHGROUP 20135
#define IDC_RESOLUTION 20136
#define IDC_CHECKUNAVAILABLE 20137
#define IDC_SUPPORTDIR_EDIT1 20150
#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 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 SHOWSHORT (1 << 30)
#define ASCIIONLY (1 << 31)
@ -349,9 +350,12 @@ static int SelListMake()
if (BurnDrvGetFlags() & BDF_BOARDROM) {
continue;
}
if (BurnDrvGetText(DRV_PARENT) != NULL && (BurnDrvGetFlags() & BDF_CLONE)) { // Skip clones
continue;
}
if(!gameAv[i]) nMissingDrvCount++;
int nHardware = 1 << (BurnDrvGetHardwareCode() >> 24);
if ((nHardware & MASKALL) && ((nHardware & nLoadMenuShowX) || (nHardware & MASKALL) == 0)) {
@ -376,9 +380,11 @@ static int SelListMake()
if (!StringFound && !StringFound2) continue;
}
if(!gameAv[i]) nMissingDrvCount++;
if (avOk && (nLoadMenuShowX & AVAILONLY) && !gameAv[i]) { // Skip non-available games if needed
if (avOk && (!(nLoadMenuShowX & UNAVAILABLE)) && !gameAv[i]) { // Skip non-available games if needed
continue;
}
if (avOk && (!(nLoadMenuShowX & AVAILABLE)) && gameAv[i]) { // Skip available games if needed
continue;
}
@ -403,10 +409,12 @@ static int SelListMake()
if (BurnDrvGetFlags() & BDF_BOARDROM) {
continue;
}
if (BurnDrvGetTextA(DRV_PARENT) == NULL || !(BurnDrvGetFlags() & BDF_CLONE)) { // Skip parents
continue;
}
if(!gameAv[i]) nMissingDrvCount++;
int nHardware = 1 << (BurnDrvGetHardwareCode() >> 24);
if ((nHardware & MASKALL) && ((nHardware & nLoadMenuShowX) || ((nHardware & MASKALL) == 0))) {
@ -431,9 +439,11 @@ static int SelListMake()
if (!StringFound && !StringFound2) continue;
}
if(!gameAv[i]) nMissingDrvCount++;
if (avOk && (nLoadMenuShowX & AVAILONLY) && !gameAv[i]) { // Skip non-available games if needed
if (avOk && (!(nLoadMenuShowX & UNAVAILABLE)) && !gameAv[i]) { // Skip non-available games if needed
continue;
}
if (avOk && (!(nLoadMenuShowX & AVAILABLE)) && gameAv[i]) { // Skip available games if needed
continue;
}
@ -635,7 +645,8 @@ static void RefreshPanel()
}
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_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();
hSelDlg = hDlg;
SendDlgItemMessage(hDlg, IDC_SCREENSHOT_H, 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;
SendMessage(hDlg, WM_CLOSE, 0, 0);
return 0;
case IDC_CHECKAVAILABLEONLY:
nLoadMenuShowX ^= AVAILONLY;
case IDC_CHECKAVAILABLE:
nLoadMenuShowX ^= AVAILABLE;
RebuildEverything();
break;
case IDC_CHECKUNAVAILABLE:
nLoadMenuShowX ^= UNAVAILABLE;
RebuildEverything();
break;
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);
rect.left += nIconsSizeXY + 4;
} 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);
rect.left += nIconsSizeXY + 4;
}