Merge pull request #1607 from oddMLan/ux-improvements

Minor UI improvements
This commit is contained in:
zilmar 2019-04-20 10:07:30 +09:30 committed by GitHub
commit 34aeb0ab8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
40 changed files with 197 additions and 120 deletions

View File

@ -656,8 +656,9 @@ public:
// Settable only attributes
void SetColumnWidth(int cxWidth)
{
float DPIScale = CClientDC(m_hWnd).GetDeviceCaps(LOGPIXELSX) / 96.0f;
ATLASSERT(::IsWindow(m_hWnd));
::SendMessage(m_hWnd, LB_SETCOLUMNWIDTH, cxWidth, 0L);
::SendMessage(m_hWnd, LB_SETCOLUMNWIDTH, int (cxWidth * DPIScale), 0L);
}
BOOL SetTabStops(int nTabStops, LPINT rgTabStops)
@ -3068,8 +3069,9 @@ public:
BOOL SetColumnWidth(int nCol, int cx)
{
float DPIScale = CClientDC(m_hWnd).GetDeviceCaps(LOGPIXELSX) / 96.0f;
ATLASSERT(::IsWindow(m_hWnd));
return (BOOL)::SendMessage(m_hWnd, LVM_SETCOLUMNWIDTH, nCol, MAKELPARAM(cx, 0));
return (BOOL)::SendMessage(m_hWnd, LVM_SETCOLUMNWIDTH, nCol, MAKELPARAM(int(cx * DPIScale), 0));
}
BOOL GetViewRect(LPRECT lpRect) const

View File

@ -523,7 +523,7 @@ enum LanguageStringID
MSG_UNHANDLED_OP = 2022,
MSG_NONMAPPED_SPACE = 2023,
MSG_SAVE_STATE_HEADER = 2024,
MSG_MSGBOX_TITLE = 2025,
MSG_MSGBOX_ERROR_TITLE = 2025,
MSG_PIF2_ERROR = 2026,
MSG_PIF2_TITLE = 2027,
MSG_PLUGIN_CHANGE = 2028,
@ -558,6 +558,7 @@ enum LanguageStringID
MSG_SET_HLE_AUD_MSG = 2057,
MSG_FAIL_IMAGE_IPL = 2058,
MSG_IPL_REQUIRED = 2059,
MSG_MSGBOX_WARNING_TITLE = 2060,
/*********************************************************************************
* Android *

View File

@ -489,7 +489,8 @@ void CLanguage::LoadDefaultStrings(void)
DEF_STR(MSG_UNHANDLED_OP, "Unhandled R4300i opcode at");
DEF_STR(MSG_NONMAPPED_SPACE, "Executing from non-mapped space.\n\nVerify ROM and its settings.");
DEF_STR(MSG_SAVE_STATE_HEADER, "This saved state does not appear to match the running ROM.\n\nStates must be saved & loaded between 100% identical ROMs.\nIn particular, the REGION and VERSION need to be the same.\nLoading this state is likely to cause the game and/or emulator to crash.\n\nAre you sure you want to continue loading?");
DEF_STR(MSG_MSGBOX_TITLE, "Error");
DEF_STR(MSG_MSGBOX_WARNING_TITLE, "Warning");
DEF_STR(MSG_MSGBOX_ERROR_TITLE, "Error");
DEF_STR(MSG_PIF2_ERROR, "Copyright sequence not found in LUT. Game will no longer function.");
DEF_STR(MSG_PIF2_TITLE, "Copy Protection Failure");
DEF_STR(MSG_PLUGIN_CHANGE, "Changing a plugin requires Project64 to reset a running ROM.\nIf you don't want to lose your place, answer No and save the current state first.\n\nChange plugins and reset ROM now?");

View File

@ -3006,7 +3006,7 @@ void R4300iOp::UnknownOpcode()
strcat(Message, "\n\nDo you wish to enter the debugger ?");
response = MessageBox(NULL, Message, GS(MSG_MSGBOX_TITLE), MB_YESNO | MB_ICONERROR);
response = MessageBox(NULL, Message, GS(MSG_MSGBOX_ERROR_TITLE), MB_YESNO | MB_ICONERROR);
if (response == IDYES)
{
Enter_R4300i_Commands_Window();

View File

@ -17,6 +17,9 @@ public:
virtual void FatalError(LanguageStringID StringID) const = 0;
//User Feedback
virtual void DisplayWarning(const char * Message) const = 0;
virtual void DisplayWarning(LanguageStringID StringID) const = 0;
virtual void DisplayMessage(int DisplayTime, const char * Message) const = 0;
virtual void DisplayMessage(int DisplayTime, LanguageStringID StringID) const = 0;
virtual void DisplayMessage2(const char * Message) const = 0;

View File

@ -52,8 +52,11 @@ LRESULT CALLBACK CLanguageSelector::LangSelectProc(HWND hDlg, UINT uMsg, WPARAM
SendMessage(GetDlgItem(hDlg, IDC_LANG_SEL), CB_SETCURSEL, 0, 0);
}
//Get Windows DPI Scale
float DPIScale = CClientDC(hDlg).GetDeviceCaps(LOGPIXELSX) / 96.0f;
// Use the size of the image
hbmpBackgroundTop = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_ABOUT_LOGO));
hbmpBackgroundTop = LoadBitmap(GetModuleHandle(NULL), DPIScale <= 1.0f ? MAKEINTRESOURCE(IDB_ABOUT_LOGO) : MAKEINTRESOURCE(IDB_ABOUT_LOGO_HDPI));
BITMAP bmTL;
GetObject(hbmpBackgroundTop, sizeof(BITMAP), &bmTL);
@ -99,7 +102,8 @@ LRESULT CALLBACK CLanguageSelector::LangSelectProc(HWND hDlg, UINT uMsg, WPARAM
HDC memdc = CreateCompatibleDC(ps.hdc);
HGDIOBJ save = SelectObject(memdc, hbmpBackgroundTop);
BitBlt(ps.hdc, 0, 0, bmTL_top.bmWidth, bmTL_top.bmHeight, memdc, 0, 0, SRCCOPY);
SetStretchBltMode(ps.hdc, HALFTONE);
StretchBlt(ps.hdc, 0, 0, rcClient.right, (int)(bmTL_top.bmHeight * rcClient.right / bmTL_top.bmWidth), memdc, 0, 0, bmTL_top.bmWidth, bmTL_top.bmHeight, SRCCOPY);
SelectObject(memdc, save);
DeleteDC(memdc);

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<!-- Fallback for Windows XP, Vista, 7 and 8 -->
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness>
<!-- Win10 Only: Falls back to per-monitor if per-monitor v2 is not supported -->
</asmv3:windowsSettings>
</asmv3:application>
</assembly>

View File

@ -32,7 +32,7 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<PropertyGroup>
<GenerateManifest>true</GenerateManifest>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
@ -247,6 +247,9 @@
<ItemGroup>
<ResourceCompile Include="UserInterface\UIResources.rc" />
</ItemGroup>
<ItemGroup>
<Manifest Include="Project64.exe.manifest" />
</ItemGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties RESOURCE_FILE="UserInterface\UIResources.rc" />

View File

@ -499,4 +499,7 @@
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Manifest Include="Project64.exe.manifest" />
</ItemGroup>
</Project>

View File

@ -48,8 +48,8 @@ void RegisterUISettings (void)
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_ColoumnsChanged), new CSettingTypeTempBool(false));
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Top), new CSettingTypeApplication("Rom Browser", "Top", Default_None));
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Left), new CSettingTypeApplication("Rom Browser", "Left", Default_None));
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Width), new CSettingTypeApplication("Rom Browser", "Width", (uint32_t)640));
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Height), new CSettingTypeApplication("Rom Browser", "Height", (uint32_t)480));
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Width), new CSettingTypeApplication("Rom Browser", "Width", (uint32_t)(640 * DPIScale())));
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_Height), new CSettingTypeApplication("Rom Browser", "Height", (uint32_t)(480 * DPIScale())));
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_PosIndex), new CSettingTypeApplicationIndex("Rom Browser\\Field Pos", "Field", Default_None));
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_WidthIndex), new CSettingTypeApplicationIndex("Rom Browser\\Field Width", "Field", Default_None));
g_Settings->AddHandler((SettingID)(FirstUISettings + RomBrowser_SortFieldIndex), new CSettingTypeApplicationIndex("Rom Browser", "Sort Field", Default_None));
@ -80,6 +80,10 @@ void RegisterUISettings (void)
g_Settings->AddHandler((SettingID)(FirstUISettings + DebuggerUI_ExceptionBPPos), new CSettingTypeApplication("Debugger UI", "Exception BP Pos", Default_None));
}
float DPIScale(void) {
return CClientDC(0).GetDeviceCaps(LOGPIXELSX) / 96.0f;
}
void UISettingsSaveBool(UISettingID Type, bool Value)
{
g_Settings->SaveBool((SettingID)(FirstUISettings + Type), Value);

View File

@ -77,6 +77,7 @@ enum UISettingID
DebuggerUI_ExceptionBPPos
};
float DPIScale(void);
void RegisterUISettings (void);
void UISettingsSaveBool(UISettingID Type, bool Value);
void UISettingsSaveBoolIndex(UISettingID Type, int32_t index, bool Value);

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 KiB

View File

@ -188,7 +188,6 @@ int CALLBACK CCheatsUI::CheatAddProc(HWND hDlg, uint32_t uMsg, uint32_t wParam,
CCheatsUI * _this = (CCheatsUI *)lParam;
SetProp(hDlg, "Class", _this);
SetWindowTextW(hDlg, wGS(CHEAT_ADDCHEAT_FRAME).c_str());
SetWindowTextW(GetDlgItem(hDlg, IDC_NAME), wGS(CHEAT_ADDCHEAT_NAME).c_str());
SetWindowTextW(GetDlgItem(hDlg, IDC_CODE), wGS(CHEAT_ADDCHEAT_CODE).c_str());
SetWindowTextW(GetDlgItem(hDlg, IDC_LABEL_OPTIONS), wGS(CHEAT_ADDCHEAT_OPT).c_str());
@ -301,7 +300,7 @@ int CALLBACK CCheatsUI::CheatAddProc(HWND hDlg, uint32_t uMsg, uint32_t wParam,
}
if (_stricmp(CheatName.c_str(), NewCheatName.c_str()) == 0)
{
g_Notify->DisplayError(GS(MSG_CHEAT_NAME_IN_USE));
g_Notify->DisplayWarning(GS(MSG_CHEAT_NAME_IN_USE));
SetFocus(GetDlgItem(hDlg, IDC_CODE_NAME));
return true;
}
@ -452,18 +451,17 @@ int CALLBACK CCheatsUI::CheatListProc(HWND hDlg, uint32_t uMsg, uint32_t wParam,
RECT rcList;
RECT rcButton;
SetWindowTextW(GetDlgItem(hDlg, IDC_CHEATSFRAME), wGS(CHEAT_LIST_FRAME).c_str());
SetWindowTextW(GetDlgItem(hDlg, IDC_NOTESFRAME), wGS(CHEAT_NOTES_FRAME).c_str());
SetWindowTextW(GetDlgItem(hDlg, IDC_UNMARK), wGS(CHEAT_MARK_NONE).c_str());
GetWindowRect(GetDlgItem(hDlg, IDC_CHEATSFRAME), &rcList);
GetWindowRect(hDlg, &rcList);
GetWindowRect(GetDlgItem(hDlg, IDC_UNMARK), &rcButton);
_this->m_hCheatTree = CreateWindowEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, "",
WS_CHILD | WS_VISIBLE | WS_VSCROLL | TVS_HASLINES |
TVS_HASBUTTONS | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | WS_TABSTOP |
TVS_FULLROWSELECT, 8, 15, rcList.right - rcList.left - 16,
rcButton.top - rcList.top - 22, hDlg, (HMENU)IDC_MYTREE, GetModuleHandle(NULL), NULL);
TVS_FULLROWSELECT, 6, 4, rcList.right - rcList.left - 13,
rcButton.top - rcList.top - 8, hDlg, (HMENU)IDC_MYTREE, GetModuleHandle(NULL), NULL);
Style = GetWindowLong(_this->m_hCheatTree, GWL_STYLE);
SetWindowLong(_this->m_hCheatTree, GWL_STYLE, TVS_CHECKBOXES | TVS_SHOWSELALWAYS | Style);
@ -944,7 +942,7 @@ int CALLBACK CCheatsUI::ManageCheatsProc(HWND hDlg, uint32_t uMsg, uint32_t wPar
if (g_Settings->LoadDword(UserInterface_BasicMode))
{
RECT * rcList = (RECT *)_this->m_rcList;
GetWindowRect(GetDlgItem(_this->m_hSelectCheat, IDC_CHEATSFRAME), rcList);
GetWindowRect(_this->m_hSelectCheat, rcList);
_this->m_MinSizeDlg = rcList->right - rcList->left + 16;
_this->m_MaxSizeDlg = _this->m_MinSizeDlg;
@ -961,8 +959,8 @@ int CALLBACK CCheatsUI::ManageCheatsProc(HWND hDlg, uint32_t uMsg, uint32_t wPar
ShowWindow(_this->m_AddCheat, SW_HIDE);
RECT * rcAdd = (RECT *)_this->m_rcAdd, *rcList = (RECT *)_this->m_rcList;
GetWindowRect(GetDlgItem(_this->m_hSelectCheat, IDC_CHEATSFRAME), rcList);
GetWindowRect(GetDlgItem(_this->m_AddCheat, IDC_ADDCHEATSFRAME), rcAdd);
GetWindowRect(_this->m_hSelectCheat, rcList);
GetWindowRect(_this->m_AddCheat, rcAdd);
_this->m_MinSizeDlg = rcList->right - rcList->left + 32;
_this->m_MaxSizeDlg = rcAdd->right - rcList->left + 32;

View File

@ -47,18 +47,28 @@ protected:
pT->SetWindowPos(NULL, left, top, width, height, 0);
pT->RedrawWindow();
}
if (nParams == 2) {
pT->SetWindowPos(NULL, left, top, width, height, 1);
pT->RedrawWindow();
}
}
void SaveWindowPos()
void SaveWindowPos(bool bSaveSize)
{
if (!m_bInitialized)
{
return;
}
T* pT = static_cast<T*>(this);
CRect rect;
pT->GetWindowRect(&rect);
UISettingsSaveString(m_UISettingID, stdstr_f("%d,%d,%d,%d", rect.left, rect.top, rect.Width(), rect.Height()).c_str());
if (!bSaveSize) {
UISettingsSaveString(m_UISettingID, stdstr_f("%d,%d", rect.left, rect.top).c_str());
}
else {
UISettingsSaveString(m_UISettingID, stdstr_f("%d,%d,%d,%d", rect.left, rect.top, rect.Width(), rect.Height()).c_str());
}
}
public:
@ -122,4 +132,4 @@ private:
bool m_SaveWnd;
LONG m_SaveWndTop;
LONG m_SaveWndLeft;
};
};

View File

@ -243,7 +243,7 @@ void CDebugCPULogView::InterceptMouseWheel(WPARAM wParam, LPARAM /*lParam*/)
void CDebugCPULogView::OnExitSizeMove(void)
{
RefreshList(false);
SaveWindowPos();
SaveWindowPos(true);
}
void CDebugCPULogView::ToggleLoggingEnabled(void)

View File

@ -30,16 +30,16 @@ void CCommandList::Attach(HWND hWndNew)
SetColumnWidth(COL_ARROWS, 30);
AddColumn("Address", COL_ADDRESS);
SetColumnWidth(COL_ADDRESS, 65);
SetColumnWidth(COL_ADDRESS, 70);
AddColumn("Command", COL_COMMAND);
SetColumnWidth(COL_COMMAND, 60);
SetColumnWidth(COL_COMMAND, 65);
AddColumn("Parameters", COL_PARAMETERS);
SetColumnWidth(COL_PARAMETERS, 120);
SetColumnWidth(COL_PARAMETERS, 130);
AddColumn("Symbol", COL_SYMBOL);
SetColumnWidth(COL_SYMBOL, 140);
SetColumnWidth(COL_SYMBOL, 180);
}
CDebugCommandsView* CDebugCommandsView::_this = NULL;
@ -150,7 +150,7 @@ LRESULT CDebugCommandsView::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARA
void CDebugCommandsView::OnExitSizeMove(void)
{
SaveWindowPos();
SaveWindowPos(true);
}
LRESULT CDebugCommandsView::OnDestroy(void)

View File

@ -206,7 +206,7 @@ LRESULT CDebugDMALogView::OnRefresh(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lPara
void CDebugDMALogView::OnExitSizeMove(void)
{
SaveWindowPos();
SaveWindowPos(true);
}
LRESULT CDebugDMALogView::OnDestroy(void)

View File

@ -96,5 +96,5 @@ LRESULT CDebugExcBreakpoints::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND, BO
void CDebugExcBreakpoints::OnExitSizeMove(void)
{
SaveWindowPos();
SaveWindowPos(0);
}

View File

@ -59,7 +59,7 @@ LRESULT CDumpMemory::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPa
void CDumpMemory::OnExitSizeMove(void)
{
SaveWindowPos();
SaveWindowPos(0);
}
LRESULT CDumpMemory::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
@ -112,7 +112,7 @@ LRESULT CDumpMemory::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/,
GetDlgItemText(IDC_FILENAME, FileName, sizeof(FileName));
if (strlen(FileName) == 0)
{
g_Notify->DisplayError("Please Choose target file");
g_Notify->DisplayWarning("Please Choose target file");
::SetFocus(GetDlgItem(IDC_FILENAME));
return false;
}

View File

@ -216,7 +216,7 @@ LRESULT CALLBACK CDebugMemorySearch::HookProc(int nCode, WPARAM wParam, LPARAM l
void CDebugMemorySearch::OnExitSizeMove(void)
{
UpdateWatchList(true);
SaveWindowPos();
SaveWindowPos(true);
}
void CDebugMemorySearch::OnSizing(UINT /*fwSide*/, LPRECT /*pRect*/)

View File

@ -64,7 +64,7 @@ LRESULT CDebugScripts::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*l
void CDebugScripts::OnExitSizeMove(void)
{
SaveWindowPos();
SaveWindowPos(true);
}
void CDebugScripts::ConsolePrint(const char* text)

View File

@ -70,7 +70,7 @@ LRESULT CDebugStackTrace::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM
void CDebugStackTrace::OnExitSizeMove(void)
{
SaveWindowPos();
SaveWindowPos(true);
}
LRESULT CDebugStackTrace::OnActivate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)

View File

@ -51,7 +51,7 @@ LRESULT CDebugStackView::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /
void CDebugStackView::OnExitSizeMove(void)
{
SaveWindowPos();
SaveWindowPos(true);
}
LRESULT CDebugStackView::OnDestroy(void)

View File

@ -53,7 +53,7 @@ LRESULT CDebugSymbols::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*l
void CDebugSymbols::OnExitSizeMove(void)
{
SaveWindowPos();
SaveWindowPos(true);
}
LRESULT CDebugSymbols::OnDestroy(void)

View File

@ -85,7 +85,7 @@ LRESULT CDebugTlb::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lPara
void CDebugTlb::OnExitSizeMove(void)
{
SaveWindowPos();
SaveWindowPos(0);
}
LRESULT CDebugTlb::OnClicked(WORD /*wNotifyCode*/, WORD wID, HWND, BOOL& /*bHandled*/)

View File

@ -152,7 +152,7 @@ DWORD WINAPI CDebugMemoryView::AutoRefreshProc(void* _self)
void CDebugMemoryView::OnExitSizeMove()
{
SaveWindowPos();
SaveWindowPos(0);
}
void CDebugMemoryView::InterceptMouseWheel(WPARAM wParam, LPARAM /*lParam*/)

View File

@ -577,7 +577,7 @@ LRESULT CEditEnhancement::OnOkCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl
}
if (_stricmp(Name.c_str(), NewName.c_str()) == 0)
{
g_Notify->DisplayError(GS(MSG_CHEAT_NAME_IN_USE));
g_Notify->DisplayWarning(GS(MSG_CHEAT_NAME_IN_USE));
GetDlgItem(IDC_CODE_NAME).SetFocus();
return true;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

@ -128,7 +128,7 @@ void CMainMenu::OnOpenRom(HWND hWnd)
// Open Disk
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(File.c_str()))
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
CPath FileNameIPL;
const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
if (FileNameIPL.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
@ -553,7 +553,7 @@ bool CMainMenu::ProcessMessage(HWND hWnd, DWORD /*FromAccelerator*/, DWORD MenuI
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(FileName.c_str()))
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
CPath FileNameIPL;
const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
if (FileNameIPL.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
@ -1152,7 +1152,7 @@ void CMainMenu::FillOutMenu(HMENU hMenu)
/* Debug - Exception breakpoints
*******************/
Item.Reset(ID_DEBUGGER_EXCBREAKPOINTS, EMPTY_STRING, EMPTY_STDSTR, NULL, L"CPU Exception breakpoints...");
Item.Reset(ID_DEBUGGER_EXCBREAKPOINTS, EMPTY_STRING, EMPTY_STDSTR, NULL, L"CPU Exception Breakpoints...");
//Item.SetItemEnabled(CPURunning);
DebugMenu.push_back(Item);

View File

@ -526,7 +526,7 @@ void CMainGui::Resize(DWORD /*fwSizeType*/, WORD nWidth, WORD nHeight)
GetClientRect((HWND)m_hStatusWnd, &swrect);
int Parts[2];
Parts[0] = (nWidth - (int)(clrect.right * 0.25));
Parts[0] = (int) (nWidth - 140 * DPIScale(m_hStatusWnd));
Parts[1] = nWidth;
SendMessage((HWND)m_hStatusWnd, SB_SETPARTS, 2, (LPARAM)&Parts[0]);
@ -573,6 +573,10 @@ int CMainGui::Width(void)
return rect.right - rect.left;
}
float CMainGui::DPIScale(HWND hWnd) {
return CClientDC(hWnd).GetDeviceCaps(LOGPIXELSX) / 96.0f;
}
void CMainGui::SetPos(int X, int Y)
{
SetWindowPos(m_hMainWindow, NULL, X, Y, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
@ -678,7 +682,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
_this->SetPos(X, Y);
_this->ChangeWinSize(640, 480);
_this->ChangeWinSize(int (640 * _this->DPIScale(hWnd)), int (480 * _this->DPIScale(hWnd)));
}
break;
case WM_SYSCOMMAND:
@ -991,7 +995,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(_this->CurrentedSelectedRom()))
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
CPath FileName;
const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
if (FileName.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
@ -1011,7 +1015,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskComboImage(_this->CurrentedSelectedRom(), FileName))
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
CPath FileNameIPL;
const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
if (FileNameIPL.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
@ -1179,7 +1183,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
// Open Disk
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(filename))
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
CPath FileName;
const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
if (FileName.SelectFile(hWnd, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))
@ -1222,6 +1226,7 @@ LRESULT CALLBACK CMainGui::MainGui_Proc(HWND hWnd, DWORD uMsg, DWORD wParam, DWO
DWORD CALLBACK AboutBoxProc(HWND hWnd, DWORD uMsg, DWORD wParam, DWORD /*lParam*/)
{
CMainGui * Gui = NULL;
static HBITMAP hbmpBackgroundTop = NULL;
static HFONT hPageHeadingFont = NULL;
static HFONT hTextFont = NULL;
@ -1233,16 +1238,18 @@ DWORD CALLBACK AboutBoxProc(HWND hWnd, DWORD uMsg, DWORD wParam, DWORD /*lParam*
//Title
SetWindowTextW(hWnd, wGS(PLUG_ABOUT).c_str());
// Use the size of the image
hbmpBackgroundTop = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_ABOUT_LOGO));
// Get Windows DPI Scale
float DPIScale = Gui->DPIScale(hWnd);
// Use the size of the image
hbmpBackgroundTop = LoadBitmap(GetModuleHandle(NULL), DPIScale <= 1.0f ? MAKEINTRESOURCE(IDB_ABOUT_LOGO) : MAKEINTRESOURCE(IDB_ABOUT_LOGO_HDPI));
BITMAP bmTL;
GetObject(hbmpBackgroundTop, sizeof(BITMAP), &bmTL);
hTextFont = ::CreateFont(18, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
hAuthorFont = ::CreateFont(18, 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
hTextFont = ::CreateFont((int)(18 * DPIScale), 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
hAuthorFont = ::CreateFont((int)(18 * DPIScale), 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial");
hPageHeadingFont = ::CreateFont(24, 0, 0, 0, FW_BOLD, 0, FALSE, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Bold");
hPageHeadingFont = ::CreateFont((int)(24 * DPIScale), 0, 0, 0, FW_BOLD, 0, FALSE, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Bold");
SendDlgItemMessage(hWnd, IDC_VERSION, WM_SETFONT, (WPARAM)hTextFont, TRUE);
SendDlgItemMessage(hWnd, IDC_TEAM, WM_SETFONT, (WPARAM)hPageHeadingFont, TRUE);
@ -1302,7 +1309,8 @@ DWORD CALLBACK AboutBoxProc(HWND hWnd, DWORD uMsg, DWORD wParam, DWORD /*lParam*
HDC memdc = CreateCompatibleDC(ps.hdc);
HGDIOBJ save = SelectObject(memdc, hbmpBackgroundTop);
BitBlt(ps.hdc, 0, 0, bmTL_top.bmWidth, bmTL_top.bmHeight, memdc, 0, 0, SRCCOPY);
SetStretchBltMode(ps.hdc, HALFTONE);
StretchBlt(ps.hdc, 0, 0, rcClient.right, (int)(bmTL_top.bmHeight * rcClient.right/bmTL_top.bmWidth), memdc, 0, 0, bmTL_top.bmWidth, bmTL_top.bmHeight, SRCCOPY);
SelectObject(memdc, save);
DeleteDC(memdc);

View File

@ -60,6 +60,7 @@ public:
//Get Information about the window
int Height(void); //Get the Height of the window
int Width(void); //Get the Width of the window
float DPIScale(HWND hWnd);
//Manipulate the state of the window
void SetPos(int X, int Y); //Move the window to this screen location

View File

@ -49,6 +49,21 @@ void CNotificationImp::WindowMode(void) const
InsideFunc = false;
}
void CNotificationImp::DisplayWarning(const char * Message) const
{
HWND Parent = NULL;
if (m_hWnd)
{
Parent = reinterpret_cast<HWND>(m_hWnd->GetWindowHandle());
}
MessageBoxW(Parent, stdstr(Message).ToUTF16().c_str(), wGS(MSG_MSGBOX_WARNING_TITLE).c_str(), MB_OK | MB_ICONWARNING | MB_SETFOREGROUND);
}
void CNotificationImp::DisplayWarning(LanguageStringID StringID) const
{
DisplayWarning(g_Lang->GetString(StringID).c_str());
}
void CNotificationImp::DisplayError(LanguageStringID StringID) const
{
DisplayError(g_Lang->GetString(StringID).c_str());
@ -64,7 +79,7 @@ void CNotificationImp::DisplayError(const char * Message) const
{
Parent = reinterpret_cast<HWND>(m_hWnd->GetWindowHandle());
}
MessageBoxW(Parent, stdstr(Message).ToUTF16().c_str(), wGS(MSG_MSGBOX_TITLE).c_str(), MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
MessageBoxW(Parent, stdstr(Message).ToUTF16().c_str(), wGS(MSG_MSGBOX_ERROR_TITLE).c_str(), MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
}
void CNotificationImp::DisplayMessage(int DisplayTime, LanguageStringID StringID) const
@ -125,7 +140,7 @@ bool CNotificationImp::AskYesNoQuestion(const char * Question) const
{
Parent = reinterpret_cast<HWND>(m_hWnd->GetWindowHandle());
}
int result = MessageBoxW(Parent, stdstr(Question).ToUTF16().c_str(), wGS(MSG_MSGBOX_TITLE).c_str(), MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2 | MB_SETFOREGROUND);
int result = MessageBoxW(Parent, stdstr(Question).ToUTF16().c_str(), wGS(MSG_MSGBOX_WARNING_TITLE).c_str(), MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2 | MB_SETFOREGROUND);
return result == IDYES;
}

View File

@ -35,6 +35,9 @@ public:
virtual void FatalError(LanguageStringID StringID) const;
//User Feedback
virtual void DisplayWarning(const char * Message) const;
virtual void DisplayWarning(LanguageStringID StringID) const;
virtual void DisplayMessage(int DisplayTime, const char * Message) const;
virtual void DisplayMessage(int DisplayTime, LanguageStringID StringID) const;

View File

@ -40,7 +40,7 @@ CRomBrowser::~CRomBrowser(void)
void CRomBrowser::AddField(ROMBROWSER_FIELDS_LIST & Fields, LPCSTR Name, int32_t Pos, int32_t ID, int32_t Width, LanguageStringID LangID, bool UseDefault)
{
Fields.push_back(ROMBROWSER_FIELDS(Name, Pos, ID, Width, LangID, UseDefault));
Fields.push_back(ROMBROWSER_FIELDS(Name, Pos, ID, Width * DPIScale(), LangID, UseDefault));
}
void CRomBrowser::GetFieldInfo(ROMBROWSER_FIELDS_LIST & Fields, bool UseDefault /* = false */)
@ -813,7 +813,7 @@ void CRomBrowser::RomList_OpenRom(uint32_t /*pnmh*/)
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(pRomInfo->szFullFileName))
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
CPath FileName;
const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
if (FileName.SelectFile(m_MainWindow, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))

View File

@ -312,8 +312,7 @@ void CGamePluginPage::HleGfxChanged(UINT /*Code*/, int id, HWND /*ctl*/)
}
if ((Button->GetCheck() & BST_CHECKED) == 0)
{
int res = MessageBoxW(m_hWnd, wGS(MSG_SET_LLE_GFX_MSG).c_str(), wGS(MSG_SET_LLE_GFX_TITLE).c_str(), MB_YESNO | MB_ICONWARNING);
if (res != IDYES)
if (!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SET_LLE_GFX_MSG).c_str()))
{
Button->SetCheck(BST_CHECKED);
return;
@ -335,9 +334,8 @@ void CGamePluginPage::HleAudioChanged(UINT /*Code*/, int id, HWND /*ctl*/)
continue;
}
if ((Button->GetCheck() & BST_CHECKED) != 0)
{
int res = MessageBoxW(m_hWnd, wGS(MSG_SET_HLE_AUD_MSG).c_str(), wGS(MSG_SET_HLE_AUD_TITLE).c_str(), MB_ICONWARNING | MB_YESNO);
if (res != IDYES)
{
if (!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SET_HLE_AUD_MSG).c_str()))
{
Button->SetCheck(BST_UNCHECKED);
return;

View File

@ -137,13 +137,13 @@ void COptionsShortCutsPage::OnRemoveClicked(UINT /*Code*/, int /*id*/, HWND /*ct
HTREEITEM hSelectedItem = m_MenuItems.GetSelectedItem();
if (hSelectedItem == NULL)
{
g_Notify->DisplayError(GS(MSG_NO_SEL_SHORTCUT));
g_Notify->DisplayWarning(GS(MSG_NO_SEL_SHORTCUT));
return;
}
HTREEITEM hParent = m_MenuItems.GetParentItem(hSelectedItem);
if (hParent == NULL)
{
g_Notify->DisplayError(GS(MSG_NO_SEL_SHORTCUT));
g_Notify->DisplayWarning(GS(MSG_NO_SEL_SHORTCUT));
return;
}
@ -153,7 +153,7 @@ void COptionsShortCutsPage::OnRemoveClicked(UINT /*Code*/, int /*id*/, HWND /*ct
int index = m_CurrentKeys.GetCurSel();
if (index < 0)
{
g_Notify->DisplayError(GS(MSG_NO_SEL_SHORTCUT));
g_Notify->DisplayWarning(GS(MSG_NO_SEL_SHORTCUT));
return;
}
ShortCut->RemoveItem((CMenuShortCutKey *)m_CurrentKeys.GetItemData(index));
@ -176,7 +176,7 @@ void COptionsShortCutsPage::OnAssignClicked(UINT /*Code*/, int /*id*/, HWND /*ct
int index = m_VirtualKeyList.GetCurSel();
if (index < 0)
{
g_Notify->DisplayError(GS(MSG_NO_SHORTCUT_SEL));
g_Notify->DisplayWarning(GS(MSG_NO_SHORTCUT_SEL));
return;
}
@ -190,13 +190,13 @@ void COptionsShortCutsPage::OnAssignClicked(UINT /*Code*/, int /*id*/, HWND /*ct
HTREEITEM hSelectedItem = m_MenuItems.GetSelectedItem();
if (hSelectedItem == NULL)
{
g_Notify->DisplayError(GS(MSG_NO_MENUITEM_SEL));
g_Notify->DisplayWarning(GS(MSG_NO_MENUITEM_SEL));
return;
}
HTREEITEM hParent = m_MenuItems.GetParentItem(hSelectedItem);
if (hParent == NULL)
{
g_Notify->DisplayError(GS(MSG_NO_MENUITEM_SEL));
g_Notify->DisplayWarning(GS(MSG_NO_MENUITEM_SEL));
return;
}
@ -204,7 +204,7 @@ void COptionsShortCutsPage::OnAssignClicked(UINT /*Code*/, int /*id*/, HWND /*ct
LanguageStringID strid = m_ShortCuts.GetMenuItemName(key, bCtrl, bAlt, bShift, RunningState);
if (strid != EMPTY_STRING)
{
g_Notify->DisplayError(GS(MSG_MENUITEM_ASSIGNED));
g_Notify->DisplayWarning(GS(MSG_MENUITEM_ASSIGNED));
return;
}

View File

@ -296,8 +296,7 @@ void COptionPluginPage::HleGfxChanged(UINT /*Code*/, int id, HWND /*ctl*/)
}
if ((Button->GetCheck() & BST_CHECKED) == 0)
{
int res = MessageBoxW(m_hWnd, wGS(MSG_SET_LLE_GFX_MSG).c_str(), wGS(MSG_SET_LLE_GFX_TITLE).c_str(), MB_YESNO | MB_ICONWARNING);
if (res != IDYES)
if (!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SET_LLE_GFX_MSG).c_str()))
{
Button->SetCheck(BST_CHECKED);
return;
@ -320,8 +319,7 @@ void COptionPluginPage::HleAudioChanged(UINT /*Code*/, int id, HWND /*ctl*/)
}
if ((Button->GetCheck() & BST_CHECKED) != 0)
{
int res = MessageBoxW(m_hWnd, wGS(MSG_SET_HLE_AUD_MSG).c_str(), wGS(MSG_SET_HLE_AUD_TITLE).c_str(), MB_ICONWARNING | MB_YESNO);
if (res != IDYES)
if (!g_Notify->AskYesNoQuestion(g_Lang->GetString(MSG_SET_HLE_AUD_MSG).c_str()))
{
Button->SetCheck(BST_UNCHECKED);
return;

View File

@ -176,27 +176,27 @@ BEGIN
DEFPUSHBUTTON "&Close",IDC_CLOSE_BUTTON,169,186,64,14
GROUPBOX "",IDC_STATIC,6,5,228,177
LTEXT "ROM Name:",IDC_ROM_NAME,11,16,64,10
EDITTEXT IDC_INFO_ROMNAME,77,15,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_ROMNAME,77,15,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "File Name:",IDC_FILE_NAME,11,31,64,10
EDITTEXT IDC_INFO_FILENAME,77,30,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_FILENAME,77,30,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "Rom Size:",IDC_ROM_SIZE,11,74,64,10
EDITTEXT IDC_INFO_ROMSIZE,77,74,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_ROMSIZE,77,74,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "Cartridge ID:",IDC_CART_ID,11,90,64,10
EDITTEXT IDC_INFO_CARTID,77,89,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_CARTID,77,89,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "Manufacturer:",IDC_MANUFACTURER,11,106,64,10
EDITTEXT IDC_INFO_MANUFACTURER,77,104,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_MANUFACTURER,77,104,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "Country:",IDC_COUNTRY,11,122,64,10
EDITTEXT IDC_INFO_COUNTRY,77,119,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_COUNTRY,77,119,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "CRC1:",IDC_CRC1,11,135,64,10
EDITTEXT IDC_INFO_CRC1,77,134,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_CRC1,77,134,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "CRC2:",IDC_CRC2,11,151,64,10
EDITTEXT IDC_INFO_CRC2,77,149,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_CRC2,77,149,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "CIC Chip:",IDC_CIC_CHIP,11,167,64,10
EDITTEXT IDC_INFO_CIC,77,164,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_CIC,77,164,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "Location:",IDC_LOCATION,11,45,64,10
EDITTEXT IDC_INFO_LOCATION,77,45,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_LOCATION,77,45,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
LTEXT "MD5:",IDC_ROM_MD5,11,60,64,10
EDITTEXT IDC_INFO_MD5,77,59,153,13,ES_AUTOHSCROLL | ES_READONLY,WS_EX_CLIENTEDGE | WS_EX_STATICEDGE
EDITTEXT IDC_INFO_MD5,77,59,153,13,ES_AUTOHSCROLL | ES_READONLY | WS_GROUP
END
IDD_Settings_GameGeneral DIALOGEX 0, 0, 218, 169
@ -264,7 +264,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER |
CAPTION "Cheats"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
PUSHBUTTON "Button1",IDC_STATE,195,5,20,20,BS_ICON | BS_FLAT,WS_EX_TRANSPARENT
PUSHBUTTON "Button1",IDC_STATE,195,5,20,20,BS_LEFTTEXT | BS_ICON
END
IDD_Cheats_List DIALOGEX 0, 0, 201, 221
@ -272,9 +272,8 @@ STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "Cheats",IDC_CHEATSFRAME,0,0,199,160
PUSHBUTTON "Unmark All",IDC_UNMARK,145,145,49,11
GROUPBOX " Notes: ",IDC_NOTESFRAME,0,165,199,51
PUSHBUTTON "Unmark All",IDC_UNMARK,148,152,49,11
GROUPBOX " Notes: ",IDC_NOTESFRAME,3,165,194,48
EDITTEXT IDC_NOTES,5,175,188,36,ES_MULTILINE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL
END
@ -283,19 +282,18 @@ STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD | WS_VISIBLE
EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "",IDC_ADDCHEATSFRAME,2,0,188,145
LTEXT "Name:",IDC_NAME,7,13,25,10
EDITTEXT IDC_CODE_NAME,37,12,146,12,ES_AUTOHSCROLL
LTEXT "Code:",IDC_CODE,7,30,25,10
LTEXT "<address> <value>",IDC_CODE_DES,7,40,60,10
LTEXT "Options:",IDC_LABEL_OPTIONS,82,30,30,10,WS_DISABLED
LTEXT "<value> <label>",IDC_LABEL_OPTIONS_FORMAT,82,40,80,10,WS_DISABLED
EDITTEXT IDC_CHEAT_CODES,7,50,70,90,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL
EDITTEXT IDC_CHEAT_OPTIONS,82,50,101,90,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_DISABLED | WS_VSCROLL | WS_HSCROLL
GROUPBOX "Cheat Notes",IDC_CHEATNOTES,2,150,188,45
EDITTEXT IDC_NOTES,7,160,176,30,ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "New Cheat",IDC_NEWCHEAT,21,198,70,15,0,WS_EX_CLIENTEDGE
PUSHBUTTON "Add Cheat",IDC_ADD,98,198,70,15,WS_DISABLED,WS_EX_CLIENTEDGE
LTEXT "Name:",IDC_NAME,4,6,25,10
EDITTEXT IDC_CODE_NAME,38,4,146,12,ES_AUTOHSCROLL
LTEXT "Code:",IDC_CODE,4,24,31,10
LTEXT "<address> <value>",IDC_CODE_DES,4,34,74,10
LTEXT "Options:",IDC_LABEL_OPTIONS,86,24,38,10,WS_DISABLED
LTEXT "<value> <label>",IDC_LABEL_OPTIONS_FORMAT,86,34,80,10,WS_DISABLED
EDITTEXT IDC_CHEAT_CODES,4,44,75,96,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL
EDITTEXT IDC_CHEAT_OPTIONS,86,44,98,96,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_DISABLED | WS_VSCROLL | WS_HSCROLL
LTEXT "Cheat Notes",IDC_CHEATNOTES,3,149,60,10
EDITTEXT IDC_NOTES,4,160,180,32,ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "New Cheat",IDC_NEWCHEAT,16,198,75,15
PUSHBUTTON "Add Cheat",IDC_ADD,98,198,75,15,WS_DISABLED
END
IDD_Cheats_CodeEx DIALOGEX 0, 0, 186, 153
@ -677,7 +675,7 @@ END
IDD_Debugger_Commands DIALOGEX 0, 0, 489, 327
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "Commands"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
EDITTEXT IDC_ADDR_EDIT,311,2,45,14,ES_UPPERCASE | ES_AUTOHSCROLL
PUSHBUTTON "",IDC_BACK_BTN,286,1,11,15,WS_DISABLED
@ -703,7 +701,7 @@ END
IDD_Debugger_RegGPR DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "R0",IDC_R0_LBL,3,15,10,8,SS_NOTIFY
LTEXT "AT",IDC_R1_LBL,3,26,10,8,SS_NOTIFY
@ -792,7 +790,7 @@ END
IDD_Debugger_RegFPR DIALOGEX 0, 0, 125, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "F0",IDC_STATIC,3,15,14,8
LTEXT "F1",IDC_STATIC,3,26,14,8
@ -879,7 +877,7 @@ END
IDD_Debugger_RegPI DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 PI_DRAM_ADDR_REG",IDC_STATIC,3,29,94,8
LTEXT "04 PI_CART_ADDR_REG",IDC_STATIC,3,39,94,8
@ -965,7 +963,7 @@ END
IDD_Debugger_RegCOP0 DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "Index",-1,3,15,33,8
LTEXT "Random",-1,3,26,33,8
@ -1021,7 +1019,7 @@ END
IDD_Debugger_RegSP DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 SP_MEM_ADDR_REG",IDC_STATIC,3,29,94,8
LTEXT "04 SP_DRAM_ADDR_REG",IDC_STATIC,3,39,94,8
@ -1048,7 +1046,7 @@ END
IDD_Debugger_RegMI DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 MI_INIT_MODE/MODE_REG",-1,3,29,102,8
LTEXT "04 MI_VERSION/NOOP_REG",-1,3,39,92,8
@ -1064,7 +1062,7 @@ END
IDD_Debugger_RegAI DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 AI_DRAM_ADDR_REG",IDC_STATIC,3,29,94,8
LTEXT "04 AI_LEN_REG",IDC_STATIC,3,39,94,8
@ -1084,7 +1082,7 @@ END
IDD_Debugger_RegSI DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 SI_DRAM_ADDR_REG",-1,3,29,94,8
LTEXT "04 SI_PIF_ADDR_RD64B_REG",-1,3,39,98,8
@ -1100,7 +1098,7 @@ END
IDD_Debugger_RegRI DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 RI_MODE_REG",-1,3,29,94,8
LTEXT "04 RI_CONFIG_REG",-1,3,39,94,8
@ -1124,7 +1122,7 @@ END
IDD_Debugger_RegDPC DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 DPC_START_REG",-1,3,29,94,8
LTEXT "04 DPC_END_REG",-1,3,39,94,8
@ -1148,7 +1146,7 @@ END
IDD_Debugger_RegRDRAM DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 RDRAM_CONFIG/DEVICE_TYPE_REG",-1,3,29,128,8
LTEXT "04 RDRAM_DEVICE_ID_REG",-1,3,39,94,8
@ -1176,7 +1174,7 @@ END
IDD_Debugger_RegVI DIALOGEX 0, 0, 190, 210
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 VI_STATUS/CONTROL_REG",IDC_STATIC,3,29,103,8
LTEXT "04 VI_ORIGIN/DRAM_ADDR_REG",IDC_STATIC,3,39,117,8
@ -1212,7 +1210,7 @@ END
IDD_Debugger_RegDD DIALOGEX 0, 0, 190, 238
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 9, "Lucida Console", 400, 0, 0x1
BEGIN
LTEXT "00 ASIC_DATA",IDC_STATIC,3,29,103,8
LTEXT "04 ASIC_MISC_REG",IDC_STATIC,3,39,68,8
@ -1333,7 +1331,7 @@ BEGIN
END
IDD_Debugger_ExceptionBP DIALOGEX 0, 0, 213, 107
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "CPU Exception Breakpoints"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
@ -1457,9 +1455,9 @@ BEGIN
IDD_Cheats_Add, DIALOG
BEGIN
LEFTMARGIN, 7
LEFTMARGIN, 4
RIGHTMARGIN, 184
TOPMARGIN, 7
TOPMARGIN, 4
END
IDD_Cheats_CodeEx, DIALOG
@ -1849,6 +1847,8 @@ IDB_LISTITEMS BITMAP "Bitmaps\\ListItems.bmp"
IDB_ABOUT_LOGO BITMAP "Bitmaps\\AboutScreenLogo.bmp"
IDB_ABOUT_LOGO_HDPI BITMAP "Bitmaps\\AboutScreenLogoHDPI.bmp"
/////////////////////////////////////////////////////////////////////////////
//

View File

@ -35,6 +35,7 @@
#define IDD_About_UserInfo 141
#define IDD_About_Ini 143
#define IDB_ABOUT_LOGO 143
#define IDB_ABOUT_LOGO_HDPI 144
#define IDD_Settings_General 144
#define IDD_Settings_Accelerator 145
#define IDD_Settings_Config 149

View File

@ -39,7 +39,7 @@ int WINAPI WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPSTR /
//Ext is *.ndd, so it should be a disk file.
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists() || !g_BaseSystem->RunDiskImage(g_Settings->LoadStringVal(Cmd_RomFile).c_str()))
{
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayError(MSG_IPL_REQUIRED); }
if (!CPath(g_Settings->LoadStringVal(File_DiskIPLPath)).Exists()) { g_Notify->DisplayWarning(MSG_IPL_REQUIRED); }
CPath FileNameIPL;
const char * Filter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0";
if (FileNameIPL.SelectFile(NULL, g_Settings->LoadStringVal(RomList_GameDir).c_str(), Filter, true))