mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-06-05 14:24:26 +00:00
Merge branch 'master' into idd-no-gpu-warn
This commit is contained in:
@@ -90,7 +90,7 @@ void CConfigWindow::updateFont()
|
||||
|
||||
for (HWND child : std::initializer_list<HWND>({
|
||||
*m_version, *m_modeGroup, *m_modeBox, *m_widthLabel, *m_heightLabel, *m_refreshLabel,
|
||||
*m_modeWidth, *m_modeHeight, *m_modeRefresh, *m_modeUpdate, *m_modeDelete,
|
||||
*m_modeWidth, *m_modeHeight, *m_modeRefresh, *m_modeUpdate, *m_modeDelete, *m_modeReset,
|
||||
*m_autosizeGroup, *m_defRefreshLabel, *m_defRefresh, *m_defRefreshHz,
|
||||
*m_prefGroup, *m_prefNoGPU,
|
||||
}))
|
||||
@@ -157,6 +157,7 @@ LRESULT CConfigWindow::onCreate()
|
||||
|
||||
m_modeUpdate.reset(new CButton(L"Save", WS_CHILD | WS_VISIBLE | WS_TABSTOP, m_hwnd));
|
||||
m_modeDelete.reset(new CButton(L"Delete", WS_CHILD | WS_VISIBLE | WS_TABSTOP, m_hwnd));
|
||||
m_modeReset.reset(new CButton(L"Reset", WS_CHILD | WS_VISIBLE | WS_TABSTOP, m_hwnd));
|
||||
EnableWindow(*m_modeUpdate, FALSE);
|
||||
EnableWindow(*m_modeDelete, FALSE);
|
||||
|
||||
@@ -207,6 +208,7 @@ LRESULT CConfigWindow::onResize(DWORD width, DWORD height)
|
||||
pos.pinBottomLeft(*m_modeRefresh, 75, 48, 50, 20);
|
||||
pos.pinBottomLeft(*m_modeUpdate, 24, 20, 50, 24);
|
||||
pos.pinBottomLeft(*m_modeDelete, 75, 20, 50, 24);
|
||||
pos.pinBottomLeft(*m_modeReset, 126, 20, 50, 24);
|
||||
|
||||
pos.pinTopLeft(*m_autosizeGroup, 224, 40, 200, 52);
|
||||
pos.pinTopLeft(*m_defRefreshLabel, 236, 64, 95, 20);
|
||||
@@ -293,6 +295,14 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd)
|
||||
updateModeList();
|
||||
onModeListSelectChange();
|
||||
}
|
||||
else if (m_modeReset && hwnd == *m_modeReset && code == BN_CLICKED && m_modes)
|
||||
{
|
||||
*m_modes = m_settings.getDefaultModes();
|
||||
m_settings.setModes(*m_modes);
|
||||
m_modeBox->clear();
|
||||
updateModeList();
|
||||
onModeListSelectChange();
|
||||
}
|
||||
else if (m_defRefresh && hwnd == *m_defRefresh && code == EN_CHANGE && m_defaultRefresh)
|
||||
{
|
||||
int value;
|
||||
|
||||
@@ -52,6 +52,7 @@ class CConfigWindow : public CWindow
|
||||
|
||||
std::unique_ptr<CButton> m_modeUpdate;
|
||||
std::unique_ptr<CButton> m_modeDelete;
|
||||
std::unique_ptr<CButton> m_modeReset;
|
||||
|
||||
std::unique_ptr<CGroupBox> m_autosizeGroup;
|
||||
std::unique_ptr<CStaticWidget> m_defRefreshLabel;
|
||||
|
||||
@@ -264,6 +264,10 @@ void CPipeClient::Thread()
|
||||
HandleSetDisplayMode(msg);
|
||||
break;
|
||||
|
||||
case LGPipeMsg::GPUSTATUS:
|
||||
HandleGPUStatus(msg);
|
||||
break;
|
||||
|
||||
default:
|
||||
DEBUG_ERROR("Unknown message type %d", msg.type);
|
||||
break;
|
||||
@@ -300,3 +304,8 @@ void CPipeClient::HandleSetDisplayMode(const LGPipeMsg& msg)
|
||||
if (result != DISP_CHANGE_SUCCESSFUL)
|
||||
DEBUG_ERROR("ChangeDisplaySettingsEx Failed (0x%08x)", result);
|
||||
}
|
||||
|
||||
void CPipeClient::HandleGPUStatus(const LGPipeMsg& msg)
|
||||
{
|
||||
// TODO: implement me
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@ private:
|
||||
|
||||
void HandleSetCursorPos(const LGPipeMsg& msg);
|
||||
void HandleSetDisplayMode(const LGPipeMsg& msg);
|
||||
void HandleGPUStatus(const LGPipeMsg& msg);
|
||||
|
||||
public:
|
||||
~CPipeClient() { DeInit(); }
|
||||
|
||||
@@ -78,6 +78,24 @@ static std::optional<DisplayMode> parseDisplayMode(const std::wstring &str)
|
||||
return mode;
|
||||
}
|
||||
|
||||
std::vector<DisplayMode> CRegistrySettings::getDefaultModes()
|
||||
{
|
||||
auto defaultRefresh = getDefaultRefresh();
|
||||
int refresh = defaultRefresh ? *defaultRefresh : DEFAULT_REFRESH;
|
||||
|
||||
std::vector<DisplayMode> result;
|
||||
for (int i = 0; i < ARRAYSIZE(DefaultDisplayModes); ++i)
|
||||
{
|
||||
DisplayMode mode;
|
||||
mode.width = DefaultDisplayModes[i][0];
|
||||
mode.height = DefaultDisplayModes[i][1];
|
||||
mode.refresh = refresh;
|
||||
mode.preferred = i == DefaultPreferredDisplayMode;
|
||||
result.emplace_back(mode);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
std::optional<std::vector<DisplayMode>> CRegistrySettings::getModes()
|
||||
{
|
||||
LSTATUS status;
|
||||
@@ -89,19 +107,7 @@ std::optional<std::vector<DisplayMode>> CRegistrySettings::getModes()
|
||||
case ERROR_SUCCESS:
|
||||
break;
|
||||
case ERROR_FILE_NOT_FOUND:
|
||||
{
|
||||
std::vector<DisplayMode> result;
|
||||
for (int i = 0; i < ARRAYSIZE(DefaultDisplayModes); ++i)
|
||||
{
|
||||
DisplayMode mode;
|
||||
mode.width = DefaultDisplayModes[i][0];
|
||||
mode.height = DefaultDisplayModes[i][1];
|
||||
mode.refresh = DefaultDisplayModes[i][2];
|
||||
mode.preferred = i == DefaultPreferredDisplayMode;
|
||||
result.emplace_back(mode);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
return getDefaultModes();
|
||||
default:
|
||||
DEBUG_ERROR_HR(status, "RegGetValue(Modes) length computation");
|
||||
return {};
|
||||
|
||||
@@ -44,6 +44,7 @@ public:
|
||||
LSTATUS open();
|
||||
bool isOpen() { return !!hKey; }
|
||||
|
||||
std::vector<DisplayMode> getDefaultModes();
|
||||
std::optional<std::vector<DisplayMode>> getModes();
|
||||
LSTATUS setModes(const std::vector<DisplayMode> &modes);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user