From 53bfb6547f2b7abd6c183192e13a57068c1677ea Mon Sep 17 00:00:00 2001 From: Quantum Date: Sat, 15 Nov 2025 04:46:35 -0500 Subject: [PATCH] [idd] config: hook up default refresh configuration --- idd/LGIddHelper/CConfigWindow.cpp | 25 +++++++++++++++++++++++++ idd/LGIddHelper/CConfigWindow.h | 1 + 2 files changed, 26 insertions(+) diff --git a/idd/LGIddHelper/CConfigWindow.cpp b/idd/LGIddHelper/CConfigWindow.cpp index 540b1260..95f52f04 100644 --- a/idd/LGIddHelper/CConfigWindow.cpp +++ b/idd/LGIddHelper/CConfigWindow.cpp @@ -28,7 +28,10 @@ CConfigWindow::CConfigWindow() : m_scale(1) if (error != ERROR_SUCCESS) DEBUG_ERROR_HR(error, "Failed to load settings"); else + { m_modes = m_settings.getModes(); + m_defaultRefresh = m_settings.getDefaultRefresh(); + } if (!CreateWindowEx(0, MAKEINTATOM(s_atom), L"Looking Glass IDD Configuration", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 400, @@ -125,6 +128,11 @@ LRESULT CConfigWindow::onCreate() m_defRefresh.reset(new CEditWidget(WS_CHILD | WS_VISIBLE | ES_LEFT | ES_NUMBER | WS_TABSTOP, m_hwnd)); m_defRefreshHz.reset(new CStaticWidget(L"Hz", WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE, m_hwnd)); + if (m_defaultRefresh) + m_defRefresh->setNumericValue(*m_defaultRefresh); + else + m_defRefresh->disable(); + RECT client = { 0, 0, (LONG)(436 * m_scale), (LONG)(300 * m_scale) }; AdjustWindowRect(&client, WS_OVERLAPPEDWINDOW, FALSE); SetWindowPos(m_hwnd, NULL, 0, 0, client.right - client.left, client.bottom - client.top, SWP_NOMOVE | SWP_NOZORDER); @@ -239,5 +247,22 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd) updateModeList(); onModeListSelectChange(); } + else if (hwnd == *m_defRefresh && code == EN_CHANGE && m_defaultRefresh) + { + int value; + try + { + value = m_defRefresh->getNumericValue(); + } + catch (std::logic_error &) + { + return 0; + } + + m_defaultRefresh = value; + LRESULT result = m_settings.setDefaultRefresh(value); + if (result != ERROR_SUCCESS) + DEBUG_ERROR_HR((HRESULT)result, "Failed to default refresh"); + } return 0; } diff --git a/idd/LGIddHelper/CConfigWindow.h b/idd/LGIddHelper/CConfigWindow.h index 7b189022..6b361f49 100644 --- a/idd/LGIddHelper/CConfigWindow.h +++ b/idd/LGIddHelper/CConfigWindow.h @@ -42,6 +42,7 @@ class CConfigWindow : public CWindow Microsoft::WRL::Wrappers::HandleT m_font; CRegistrySettings m_settings; std::optional> m_modes; + std::optional m_defaultRefresh; void updateFont(); void updateModeList();