Readded back Cap's icon display code

This commit is contained in:
Barry Harris 2012-01-02 20:34:25 +00:00
parent 24c0fb3eea
commit 46f5d3b181
13 changed files with 268 additions and 38 deletions

View File

@ -174,3 +174,4 @@ extern TCHAR szAppPreviewsPath[MAX_PATH];
extern TCHAR szAppTitlesPath[MAX_PATH];
extern TCHAR szAppCheatsPath[MAX_PATH];
extern TCHAR szAppIpsPath[MAX_PATH];
extern TCHAR szAppIconsPath[MAX_PATH];

View File

@ -495,6 +495,8 @@ BEGIN
PUSHBUTTON "Browse...",IDC_SUPPORTDIR_BR7,177,30,50,14
EDITTEXT IDC_SUPPORTDIR_EDIT8,14,31,154,12,ES_AUTOHSCROLL
PUSHBUTTON "Browse...",IDC_SUPPORTDIR_BR8,177,30,50,14
EDITTEXT IDC_SUPPORTDIR_EDIT9,14,31,154,12,ES_AUTOHSCROLL
PUSHBUTTON "Browse...",IDC_SUPPORTDIR_BR9,177,30,50,14
END
IDD_PALETTEVIEWER DIALOGEX 0, 0, 320, 240
@ -912,6 +914,17 @@ BEGIN
MENUITEM "Select gamelist language...", MENU_LANGUAGE_GL_SELECT
MENUITEM "Export gamelist translation template...", MENU_LANGUAGE_GL_EXPORT
MENUITEM "Reset gamelist default language", MENU_LANGUAGE_GL_RESET
END
MENUITEM SEPARATOR
POPUP "Icons"
BEGIN
MENUITEM "Enable driver icons display", MENU_ENABLEICONS
POPUP "Icon size"
BEGIN
MENUITEM "16 x 16 pixels", MENU_ICONS_SIZE_16
MENUITEM "24 x 24 pixels", MENU_ICONS_SIZE_24
MENUITEM "32 x 32 pixels", MENU_ICONS_SIZE_32
END
END
MENUITEM SEPARATOR
MENUITEM "Save snapshot\tF12", MENU_SAVESNAP

View File

@ -292,6 +292,14 @@ extern HBITMAP hPrevBmp;
extern int nDialogSelect;
void CreateToolTipForRect(HWND hwndParent, PTSTR pszText);
int SelMVSDialog();
void LoadDrvIcons();
void UnloadDrvIcons();
#define ICON_16x16 0
#define ICON_24x24 1
#define ICON_32x32 2
extern bool bEnableIcons;
extern bool bIconsLoaded;
extern int nIconsSize, nIconsSizeXY, nIconsYDiff;
// neocdsel.cpp
extern int NeoCDList_Init();

View File

@ -203,6 +203,7 @@ int ConfigAppLoad()
STR(szAppHiscorePath);
STR(szAppSamplesPath);
STR(szAppIpsPath);
STR(szAppIconsPath);
STR(szNeoCDCoverDir);
VAR(bNoChangeNumLock);
@ -211,6 +212,9 @@ int ConfigAppLoad()
VAR(nIpsSelectedLanguage);
VAR(bEnableIcons);
VAR(nIconsSize);
STR(szPrevGames[0]);
STR(szPrevGames[1]);
STR(szPrevGames[2]);
@ -521,6 +525,7 @@ int ConfigAppSave()
STR(szAppHiscorePath);
STR(szAppSamplesPath);
STR(szAppIpsPath);
STR(szAppIconsPath);
STR(szNeoCDCoverDir);
_ftprintf(h, _T("\n// The cartridges to use for emulation of an MVS system\n"));
@ -547,6 +552,12 @@ int ConfigAppSave()
_ftprintf(h, _T("\n// The language index to use for the IPS Patch Manager dialog.\n"));
VAR(nIpsSelectedLanguage);
_ftprintf(h, _T("\n// If non-zero, display drivers icons.\n"));
VAR(bEnableIcons);
_ftprintf(h, _T("\n// Specify icons display size, 0 = 16x16 , 1 = 24x24, 2 = 32x32.\n"));
VAR(nIconsSize);
_ftprintf(h, _T("\n// Previous games list.\n"));
STR(szPrevGames[0]);
STR(szPrevGames[1]);

View File

@ -547,12 +547,24 @@ static int AppInit()
#endif
bNumlockStatus = SetNumLock(false);
if(bEnableIcons && !bIconsLoaded) {
// load driver icons
LoadDrvIcons();
bIconsLoaded = 1;
}
return 0;
}
static int AppExit()
{
if(bIconsLoaded) {
// unload driver icons
UnloadDrvIcons();
bIconsLoaded = 0;
}
SetNumLock(bNumlockStatus);
DrvExit(); // Make sure any game driver is exitted

View File

@ -1004,6 +1004,15 @@ void MenuUpdate()
CheckMenuItem(hMenu, MENU_ASSEMBLYCORE, MF_UNCHECKED);
EnableMenuItem(hMenu, MENU_ASSEMBLYCORE, MF_GRAYED | MF_BYCOMMAND);
#endif
var = MENU_ICONS_SIZE_16;
switch (nIconsSize) {
case ICON_16x16: var = MENU_ICONS_SIZE_16; break;
case ICON_24x24: var = MENU_ICONS_SIZE_24; break;
case ICON_32x32: var = MENU_ICONS_SIZE_32; break;
}
CheckMenuRadioItem(hMenu, MENU_ICONS_SIZE_16, MENU_ICONS_SIZE_32, var, MF_BYCOMMAND);
CheckMenuItem(hMenu, MENU_ENABLEICONS, bEnableIcons ? MF_CHECKED : MF_UNCHECKED);
// Previous games list
for (int i = 0; i < SHOW_PREV_GAMES; i++) {

View File

@ -1226,7 +1226,7 @@ static INT_PTR CALLBACK NeoCDList_WndProc(HWND hDlg, UINT Msg, WPARAM wParam, LP
NeoCDList_Clean();
SupportDirCreateTab(IDC_SUPPORTDIR_EDIT7, hNeoCDWnd);
SupportDirCreateTab(IDC_SUPPORTDIR_EDIT8, hNeoCDWnd);
hProcessThread = (HANDLE)_beginthreadex(NULL, 0, NeoCDList_DoProc, NULL, 0, &ProcessThreadID);
SetFocus(hListView);
break;

View File

@ -201,6 +201,7 @@
#define IDC_SUPPORTDIR_EDIT6 20155
#define IDC_SUPPORTDIR_EDIT7 20156
#define IDC_SUPPORTDIR_EDIT8 20157
#define IDC_SUPPORTDIR_EDIT9 20158
#define IDC_SUPPORTDIR_BR1 20170
#define IDC_SUPPORTDIR_BR2 20171
@ -210,6 +211,7 @@
#define IDC_SUPPORTDIR_BR6 20175
#define IDC_SUPPORTDIR_BR7 20176
#define IDC_SUPPORTDIR_BR8 20177
#define IDC_SUPPORTDIR_BR9 20178
#define IDC_DRVCOUNT 20200
#define IDC_TREE2 20201
@ -524,6 +526,10 @@
#define MENU_LANGUAGE_GL_SELECT 10673
#define MENU_LANGUAGE_GL_EXPORT 10674
#define MENU_LANGUAGE_GL_RESET 10675
#define MENU_ENABLEICONS 10676
#define MENU_ICONS_SIZE_16 10677
#define MENU_ICONS_SIZE_24 10678
#define MENU_ICONS_SIZE_32 10679
#define MENU_RES_ARCADE_VERTICAL 10700
#define MENU_RES_1_VERTICAL 10701
#define MENU_RES_2_VERTICAL 10702

View File

@ -104,12 +104,13 @@
#define IDS_SPATH_PREVIEW (IDS_STRING + 450)
#define IDS_SPATH_TITLES (IDS_STRING + 452)
#define IDS_SPATH_CHEATS (IDS_STRING + 454)
#define IDS_SPATH_HISCORE (IDS_STRING + 456)
#define IDS_SPATH_SAMPLES (IDS_STRING + 458)
#define IDS_SPATH_IPS (IDS_STRING + 460)
#define IDS_SPATH_NGCD_ISOS (IDS_STRING + 462)
#define IDS_SPATH_NGCD_COVERS (IDS_STRING + 464)
#define IDS_SPATH_ICONS (IDS_STRING + 454)
#define IDS_SPATH_CHEATS (IDS_STRING + 456)
#define IDS_SPATH_HISCORE (IDS_STRING + 458)
#define IDS_SPATH_SAMPLES (IDS_STRING + 460)
#define IDS_SPATH_IPS (IDS_STRING + 462)
#define IDS_SPATH_NGCD_ISOS (IDS_STRING + 464)
#define IDS_SPATH_NGCD_COVERS (IDS_STRING + 466)
#define IDS_ROMPATH_1 (IDS_STRING + 480)
#define IDS_ROMPATH_2 (IDS_STRING + 482)

View File

@ -1781,6 +1781,75 @@ static void OnCommand(HWND /*hDlg*/, int id, HWND /*hwndCtl*/, UINT codeNotify)
szGamelistLocalisationTemplate[0] = _T('\0');
nGamelistLocalisationActive = false;
break;
case MENU_ENABLEICONS: {
bEnableIcons = !bEnableIcons;
if(!bEnableIcons && bIconsLoaded) {
// unload icons
UnloadDrvIcons();
bIconsLoaded = 0;
}
if(bEnableIcons && !bIconsLoaded) {
// load icons
LoadDrvIcons();
bIconsLoaded = 1;
}
break;
}
case MENU_ICONS_SIZE_16: {
nIconsSize = ICON_16x16;
if(bEnableIcons && bIconsLoaded) {
// unload icons
UnloadDrvIcons();
bIconsLoaded = 0;
// load icons
LoadDrvIcons();
bIconsLoaded = 1;
}
if(bEnableIcons && !bIconsLoaded) {
// load icons
LoadDrvIcons();
bIconsLoaded = 1;
}
break;
}
case MENU_ICONS_SIZE_24: {
nIconsSize = ICON_24x24;
if(bEnableIcons && bIconsLoaded) {
// unload icons
UnloadDrvIcons();
bIconsLoaded = 0;
// load icons
LoadDrvIcons();
bIconsLoaded = 1;
}
if(bEnableIcons && !bIconsLoaded) {
// load icons
LoadDrvIcons();
bIconsLoaded = 1;
}
break;
}
case MENU_ICONS_SIZE_32: {
nIconsSize = ICON_32x32;
if(bEnableIcons && bIconsLoaded) {
// unload icons
UnloadDrvIcons();
bIconsLoaded = 0;
// load icons
LoadDrvIcons();
bIconsLoaded = 1;
}
if(bEnableIcons && !bIconsLoaded) {
// load icons
LoadDrvIcons();
bIconsLoaded = 1;
}
break;
}
case MENU_PRIORITY_REALTIME:
nAppThreadPriority = THREAD_PRIORITY_TIME_CRITICAL;

View File

@ -32,6 +32,14 @@ static char TreeBuilding = 0; // if 1, ignore TVN_SELCHANGED messages
static int bImageOrientation;
static int UpdatePreview(bool bReset, TCHAR *szPath, int HorCtrl, int VerCrtl);
int nIconsSize = ICON_16x16;
int nIconsSizeXY = 16;
bool bEnableIcons = 0;
bool bIconsLoaded = 0;
int nIconsXDiff;
int nIconsYDiff;
static HICON hDrvIcon[9999];
static int RomInfoDialog();
// Filter TreeView
@ -929,6 +937,52 @@ static void CreateFilters()
SendMessage(hFilterList , TVM_EXPAND,TVE_EXPAND, (LPARAM)hHardware);
}
void LoadDrvIcons()
{
if(nIconsSize == ICON_16x16) {
nIconsSizeXY = 16;
nIconsYDiff = 4;
}
if(nIconsSize == ICON_24x24) {
nIconsSizeXY = 24;
nIconsYDiff = 8;
}
if(nIconsSize == ICON_32x32) {
nIconsSizeXY = 32;
nIconsYDiff = 12;
}
unsigned int nOldDrvSel = nBurnDrvActive;
for(unsigned int nDrvIndex = 0; nDrvIndex < nBurnDrvCount; nDrvIndex++)
{
nBurnDrvActive = nDrvIndex;
TCHAR szIcon[MAX_PATH];
_stprintf(szIcon, _T("%s%s.ico"), szAppIconsPath, BurnDrvGetText(DRV_NAME));
hDrvIcon[nDrvIndex] = (HICON)LoadImage(hAppInst, szIcon, IMAGE_ICON, nIconsSizeXY, nIconsSizeXY, LR_LOADFROMFILE);
if(!hDrvIcon[nDrvIndex] && BurnDrvGetText(DRV_PARENT)) {
_stprintf(szIcon, _T("%s%s.ico"), szAppIconsPath, BurnDrvGetText(DRV_PARENT));
hDrvIcon[nDrvIndex] = (HICON)LoadImage(hAppInst, szIcon, IMAGE_ICON, nIconsSizeXY, nIconsSizeXY, LR_LOADFROMFILE);
}
}
nBurnDrvActive = nOldDrvSel;
}
void UnloadDrvIcons() {
nIconsSizeXY = 16;
nIconsYDiff = 4;
for(unsigned int nDrvIndex = 0; nDrvIndex < nBurnDrvCount; nDrvIndex++)
{
DestroyIcon(hDrvIcon[nDrvIndex]);
hDrvIcon[nDrvIndex] = NULL;
}
}
#define UM_CHECKSTATECHANGE (WM_USER + 100)
#define UM_CLOSE (WM_USER + 101)
@ -957,11 +1011,11 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
hExpand = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_TV_PLUS), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
hCollapse = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_TV_MINUS), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
hNotWorking = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_TV_NOTWORKING), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
hNotFoundEss = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_TV_NOTFOUND_ESS), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
hNotFoundNonEss = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_TV_NOTFOUND_NON), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
hNotWorking = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_TV_NOTWORKING), IMAGE_ICON, nIconsSizeXY, nIconsSizeXY, LR_DEFAULTCOLOR);
hNotFoundEss = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_TV_NOTFOUND_ESS), IMAGE_ICON, nIconsSizeXY, nIconsSizeXY, LR_DEFAULTCOLOR);
hNotFoundNonEss = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_TV_NOTFOUND_NON), IMAGE_ICON, nIconsSizeXY, nIconsSizeXY, LR_DEFAULTCOLOR);
hDrvIconMiss = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_APP), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
hDrvIconMiss = (HICON)LoadImage(hAppInst, MAKEINTRESOURCE(IDI_APP), IMAGE_ICON, nIconsSizeXY, nIconsSizeXY, LR_DEFAULTCOLOR);
TCHAR szOldTitle[1024] = _T(""), szNewTitle[1024] = _T("");
GetWindowText(hSelDlg, szOldTitle, 1024);
@ -998,11 +1052,15 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
RomsDirCreate(hSelDlg);
}
// Icons size related -----------------------------------------
SHORT cyItem = nIconsSizeXY + 4; // height (in pixels) of each item on the TreeView list
TreeView_SetItemHeight(hSelList, cyItem);
SetFocus(hSelList);
RebuildEverything();
TreeView_SetItemHeight(hSelList, 20);
// TreeView_SetItemHeight(hSelList, 20);
if (nDialogSelect > -1) {
for (unsigned int i = 0; i < nTmpDrvCount; i++) {
@ -1494,10 +1552,10 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
// Draw plus and minus buttons
if (((NODEINFO*)TvItem.lParam)->bIsParent) {
if (TvItem.state & TVIS_EXPANDED) {
DrawIconEx(lplvcd->nmcd.hdc, rect.left + 4, rect.top + 0, hCollapse, 16, 16, 0, NULL, DI_NORMAL);
DrawIconEx(lplvcd->nmcd.hdc, rect.left + 4, rect.top + nIconsYDiff, hCollapse, 16, 16, 0, NULL, DI_NORMAL);
} else {
if (TvItem.cChildren) {
DrawIconEx(lplvcd->nmcd.hdc, rect.left + 4, rect.top + 0, hExpand, 16, 16, 0, NULL, DI_NORMAL);
DrawIconEx(lplvcd->nmcd.hdc, rect.left + 4, rect.top + nIconsYDiff, hExpand, 16, 16, 0, NULL, DI_NORMAL);
}
}
}
@ -1526,20 +1584,32 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
{
// Draw icons if needed
if (!CheckWorkingStatus(((NODEINFO*)TvItem.lParam)->nBurnDrvNo)) {
DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hNotWorking, 16, 16, 0, NULL, DI_NORMAL);
rect.left += 16 + 4;
DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hNotWorking, nIconsSizeXY, nIconsSizeXY, 0, NULL, DI_NORMAL);
rect.left += nIconsSizeXY + 4;
} else {
if (!(gameAv[((NODEINFO*)TvItem.lParam)->nBurnDrvNo])) {
DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hNotFoundEss, 16, 16, 0, NULL, DI_NORMAL);
rect.left += 16 + 4;
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)) {
DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hNotFoundNonEss, 16, 16, 0, NULL, DI_NORMAL);
rect.left += 16 + 4;
DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hNotFoundNonEss, nIconsSizeXY, nIconsSizeXY, 0, NULL, DI_NORMAL);
rect.left += nIconsSizeXY + 4;
}
}
}
}
// Driver Icon drawing code...
if(bEnableIcons && bIconsLoaded) {
if(hDrvIcon[nBurnDrvActive]) {
DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hDrvIcon[nBurnDrvActive], nIconsSizeXY, nIconsSizeXY, 0, NULL, DI_NORMAL);
}
if(!hDrvIcon[nBurnDrvActive]) {
DrawIconEx(lplvcd->nmcd.hdc, rect.left, rect.top, hDrvIconMiss, nIconsSizeXY, nIconsSizeXY, 0, NULL, DI_NORMAL);
}
rect.left += nIconsSizeXY + 4;
}
_tcsncpy(szText, MangleGamename(BurnDrvGetText(nGetTextFlags | DRV_FULLNAME), false), 1024);
szText[1023] = _T('\0');

View File

@ -104,6 +104,7 @@ BEGIN
IDS_SPATH_PREVIEW "Previews"
IDS_SPATH_TITLES "Titles"
IDS_SPATH_ICONS "Icons"
IDS_SPATH_CHEATS "Cheats"
IDS_SPATH_HISCORE "High Scores"
IDS_SPATH_SAMPLES "Samples"

View File

@ -11,6 +11,25 @@ TCHAR szAppCheatsPath[MAX_PATH] = _T("support/cheats/");
TCHAR szAppHiscorePath[MAX_PATH] = _T("support/hiscores/");
TCHAR szAppSamplesPath[MAX_PATH] = _T("support/samples/");
TCHAR szAppIpsPath[MAX_PATH] = _T("support/ips/");
TCHAR szAppIconsPath[MAX_PATH] = _T("support/icons/");
static TCHAR szCheckIconsPath[MAX_PATH];
static void IconsDirPathChanged() {
if(bEnableIcons && bIconsLoaded) {
// unload icons
UnloadDrvIcons();
bIconsLoaded = 0;
// load icons
LoadDrvIcons();
bIconsLoaded = 1;
}
if(bEnableIcons && !bIconsLoaded) {
// load icons
LoadDrvIcons();
bIconsLoaded = 1;
}
}
static INT_PTR CALLBACK DefInpProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
@ -20,12 +39,13 @@ static INT_PTR CALLBACK DefInpProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
case WM_INITDIALOG: {
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT1, szAppPreviewsPath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT2, szAppTitlesPath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT3, szAppCheatsPath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT4, szAppHiscorePath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT5, szAppSamplesPath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT6, szAppIpsPath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT7, szNeoCDGamesDir);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT8, szNeoCDCoverDir);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT3, szAppIconsPath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT4, szAppCheatsPath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT5, szAppHiscorePath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT6, szAppSamplesPath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT7, szAppIpsPath);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT8, szNeoCDGamesDir);
SetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT9, szNeoCDCoverDir);
// Setup the tabs
hTabControl = GetDlgItem(hDlg, IDC_SPATH_TAB);
@ -33,9 +53,9 @@ static INT_PTR CALLBACK DefInpProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
TC_ITEM tcItem;
tcItem.mask = TCIF_TEXT;
UINT idsString[8] = { IDS_SPATH_PREVIEW, IDS_SPATH_TITLES, IDS_SPATH_CHEATS, IDS_SPATH_HISCORE, IDS_SPATH_SAMPLES, IDS_SPATH_IPS, IDS_SPATH_NGCD_ISOS, IDS_SPATH_NGCD_COVERS };
UINT idsString[9] = { IDS_SPATH_PREVIEW, IDS_SPATH_TITLES, IDS_SPATH_ICONS, IDS_SPATH_CHEATS, IDS_SPATH_HISCORE, IDS_SPATH_SAMPLES, IDS_SPATH_IPS, IDS_SPATH_NGCD_ISOS, IDS_SPATH_NGCD_COVERS };
for(int nIndex = 0; nIndex < 8; nIndex++) {
for(int nIndex = 0; nIndex < 9; nIndex++) {
tcItem.pszText = FBALoadStringEx(hAppInst, idsString[nIndex], true);
TabCtrl_InsertItem(hTabControl, nIndex, &tcItem);
}
@ -43,7 +63,7 @@ static INT_PTR CALLBACK DefInpProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
int TabPage = TabCtrl_GetCurSel(hTabControl);
// hide all controls excluding the selected controls
for(int x = 0; x < 8; x++) {
for(int x = 0; x < 9; x++) {
if(x != TabPage) {
ShowWindow(GetDlgItem(hDlg, IDC_SUPPORTDIR_BR1 + x), SW_HIDE); // browse buttons
ShowWindow(GetDlgItem(hDlg, IDC_SUPPORTDIR_EDIT1 + x), SW_HIDE); // edit controls
@ -60,7 +80,7 @@ static INT_PTR CALLBACK DefInpProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
if (nInitTabSelect) {
SendMessage(hTabControl, TCM_SETCURSEL, nInitTabSelect, 0);
// hide all controls excluding the selected controls
for(int x = 0; x < 8; x++) {
for(int x = 0; x < 9; x++) {
if(x != nInitTabSelect) {
ShowWindow(GetDlgItem(hDlg, IDC_SUPPORTDIR_BR1 + x), SW_HIDE); // browse buttons
ShowWindow(GetDlgItem(hDlg, IDC_SUPPORTDIR_EDIT1 + x), SW_HIDE); // edit controls
@ -83,7 +103,7 @@ static INT_PTR CALLBACK DefInpProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
int TabPage = TabCtrl_GetCurSel(hTabControl);
// hide all controls excluding the selected controls
for(int x = 0; x < 8; x++) {
for(int x = 0; x < 9; x++) {
if(x != TabPage) {
ShowWindow(GetDlgItem(hDlg, IDC_SUPPORTDIR_BR1 + x), SW_HIDE); // browse buttons
ShowWindow(GetDlgItem(hDlg, IDC_SUPPORTDIR_EDIT1 + x), SW_HIDE); // edit controls
@ -110,17 +130,18 @@ static INT_PTR CALLBACK DefInpProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
if (LOWORD(wParam) == IDOK) {
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT1, szAppPreviewsPath, sizeof(szAppPreviewsPath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT2, szAppTitlesPath, sizeof(szAppTitlesPath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT3, szAppCheatsPath, sizeof(szAppCheatsPath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT4, szAppHiscorePath, sizeof(szAppHiscorePath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT5, szAppSamplesPath, sizeof(szAppSamplesPath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT6, szAppIpsPath, sizeof(szAppIpsPath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT7, szNeoCDGamesDir, sizeof(szNeoCDGamesDir));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT8, szNeoCDCoverDir, sizeof(szNeoCDCoverDir));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT3, szAppIconsPath, sizeof(szAppIconsPath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT4, szAppCheatsPath, sizeof(szAppCheatsPath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT5, szAppHiscorePath, sizeof(szAppHiscorePath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT6, szAppSamplesPath, sizeof(szAppSamplesPath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT7, szAppIpsPath, sizeof(szAppIpsPath));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT8, szNeoCDGamesDir, sizeof(szNeoCDGamesDir));
GetDlgItemText(hDlg, IDC_SUPPORTDIR_EDIT9, szNeoCDCoverDir, sizeof(szNeoCDCoverDir));
SendMessage(hDlg, WM_CLOSE, 0, 0);
break;
} else {
if (LOWORD(wParam) >= IDC_SUPPORTDIR_BR1 && LOWORD(wParam) <= IDC_SUPPORTDIR_BR8) {
if (LOWORD(wParam) >= IDC_SUPPORTDIR_BR1 && LOWORD(wParam) <= IDC_SUPPORTDIR_BR9) {
var = IDC_SUPPORTDIR_EDIT1 + LOWORD(wParam) - IDC_SUPPORTDIR_BR1;
} else {
if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDCANCEL) {
@ -160,6 +181,10 @@ static INT_PTR CALLBACK DefInpProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP
case WM_CLOSE: {
EndDialog(hDlg, 0);
// If Icons directory path has been changed do the proper action
if(_tcscmp(szCheckIconsPath, szAppIconsPath)) {
IconsDirPathChanged();
}
break;
}
}
@ -171,6 +196,8 @@ int SupportDirCreate(HWND hParentWND)
{
hParent = hParentWND;
_stprintf(szCheckIconsPath, szAppIconsPath);
return FBADialogBox(hAppInst, MAKEINTRESOURCE(IDD_SUPPORTDIR), hParentWND, (DLGPROC)DefInpProc);
}
@ -180,5 +207,7 @@ int SupportDirCreateTab(int nTab, HWND hParentWND)
hParent = hParentWND;
_stprintf(szCheckIconsPath, szAppIconsPath);
return FBADialogBox(hAppInst, MAKEINTRESOURCE(IDD_SUPPORTDIR), hParentWND, (DLGPROC)DefInpProc);
}