Readded back Cap's icon display code
This commit is contained in:
parent
24c0fb3eea
commit
46f5d3b181
|
@ -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];
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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]);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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++) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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');
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue