From c7a6e51d6221629b6dfefdc31cbd17c539fd88f8 Mon Sep 17 00:00:00 2001 From: oddMLan Date: Fri, 19 Apr 2019 16:49:25 -0700 Subject: [PATCH] Make Rom Browser DPI Aware --- Source/Project64/Settings/UISettings.cpp | 8 ++++++-- Source/Project64/Settings/UISettings.h | 1 + Source/Project64/UserInterface/MainWindow.cpp | 2 +- Source/Project64/UserInterface/RomBrowserClass.cpp | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Source/Project64/Settings/UISettings.cpp b/Source/Project64/Settings/UISettings.cpp index 68c6e7eb4..c7ffeb106 100644 --- a/Source/Project64/Settings/UISettings.cpp +++ b/Source/Project64/Settings/UISettings.cpp @@ -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); diff --git a/Source/Project64/Settings/UISettings.h b/Source/Project64/Settings/UISettings.h index 304757206..45d3c4d97 100644 --- a/Source/Project64/Settings/UISettings.h +++ b/Source/Project64/Settings/UISettings.h @@ -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); diff --git a/Source/Project64/UserInterface/MainWindow.cpp b/Source/Project64/UserInterface/MainWindow.cpp index 2e795455f..99ca83989 100644 --- a/Source/Project64/UserInterface/MainWindow.cpp +++ b/Source/Project64/UserInterface/MainWindow.cpp @@ -682,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: diff --git a/Source/Project64/UserInterface/RomBrowserClass.cpp b/Source/Project64/UserInterface/RomBrowserClass.cpp index 0bfd6713e..d5da717c5 100644 --- a/Source/Project64/UserInterface/RomBrowserClass.cpp +++ b/Source/Project64/UserInterface/RomBrowserClass.cpp @@ -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 */)