[idd] config: hook up default refresh configuration
Some checks failed
build / client (Debug, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Debug, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:clang cxx:clang++], xdg-shell) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], libdecor) (push) Has been cancelled
build / client (Release, map[cc:gcc cxx:g++], xdg-shell) (push) Has been cancelled
build / module (push) Has been cancelled
build / host-linux (push) Has been cancelled
build / host-windows-cross (push) Has been cancelled
build / host-windows-native (push) Has been cancelled
build / idd (push) Has been cancelled
build / obs (clang) (push) Has been cancelled
build / obs (gcc) (push) Has been cancelled
build / docs (push) Has been cancelled

This commit is contained in:
Quantum
2025-11-15 04:46:35 -05:00
committed by Geoffrey McRae
parent 06c490ca72
commit 53bfb6547f
2 changed files with 26 additions and 0 deletions

View File

@@ -28,7 +28,10 @@ CConfigWindow::CConfigWindow() : m_scale(1)
if (error != ERROR_SUCCESS) if (error != ERROR_SUCCESS)
DEBUG_ERROR_HR(error, "Failed to load settings"); DEBUG_ERROR_HR(error, "Failed to load settings");
else else
{
m_modes = m_settings.getModes(); m_modes = m_settings.getModes();
m_defaultRefresh = m_settings.getDefaultRefresh();
}
if (!CreateWindowEx(0, MAKEINTATOM(s_atom), L"Looking Glass IDD Configuration", if (!CreateWindowEx(0, MAKEINTATOM(s_atom), L"Looking Glass IDD Configuration",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 400, 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_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)); 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) }; RECT client = { 0, 0, (LONG)(436 * m_scale), (LONG)(300 * m_scale) };
AdjustWindowRect(&client, WS_OVERLAPPEDWINDOW, FALSE); AdjustWindowRect(&client, WS_OVERLAPPEDWINDOW, FALSE);
SetWindowPos(m_hwnd, NULL, 0, 0, client.right - client.left, client.bottom - client.top, SWP_NOMOVE | SWP_NOZORDER); 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(); updateModeList();
onModeListSelectChange(); 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; return 0;
} }

View File

@@ -42,6 +42,7 @@ class CConfigWindow : public CWindow
Microsoft::WRL::Wrappers::HandleT<FontTraits> m_font; Microsoft::WRL::Wrappers::HandleT<FontTraits> m_font;
CRegistrySettings m_settings; CRegistrySettings m_settings;
std::optional<std::vector<DisplayMode>> m_modes; std::optional<std::vector<DisplayMode>> m_modes;
std::optional<DWORD> m_defaultRefresh;
void updateFont(); void updateFont();
void updateModeList(); void updateModeList();