Compare commits

..

3 Commits

Author SHA1 Message Date
Quantum
41678e856f [idd] helper: fallback to default mode list 2025-11-10 00:51:13 -05:00
Quantum
4269b5598a [idd] helper: implement keyboard navigation in config window
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
2025-11-10 14:37:25 +11:00
Quantum
af207a2fe1 [idd] helper: remove compiler warnings 2025-11-10 14:35:02 +11:00
7 changed files with 44 additions and 22 deletions

View File

@@ -0,0 +1,17 @@
#pragma once
static const DWORD DefaultDisplayModes[][3] =
{
{7680, 4800, 120}, {7680, 4320, 120}, {6016, 3384, 120}, {5760, 3600, 120},
{5760, 3240, 120}, {5120, 2800, 120}, {4096, 2560, 120}, {4096, 2304, 120},
{3840, 2400, 120}, {3840, 2160, 120}, {3200, 2400, 120}, {3200, 1800, 120},
{3008, 1692, 120}, {2880, 1800, 120}, {2880, 1620, 120}, {2560, 1600, 120},
{2560, 1440, 120}, {1920, 1440, 120}, {1920, 1200, 120}, {1920, 1080, 120},
{1600, 1200, 120}, {1600, 1024, 120}, {1600, 1050, 120}, {1600, 900 , 120},
{1440, 900 , 120}, {1400, 1050, 120}, {1366, 768 , 120}, {1360, 768 , 120},
{1280, 1024, 120}, {1280, 960 , 120}, {1280, 800 , 120}, {1280, 768 , 120},
{1280, 720 , 120}, {1280, 600 , 120}, {1152, 864 , 120}, {1024, 768 , 120},
{800 , 600 , 120}, {640 , 480 , 120}
};
static const DWORD DefaultPreferredDisplayMode = 19;

View File

@@ -17,6 +17,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "LGCommon", "LGCommon", "{AC
ProjectSection(SolutionItems) = preProject
LGCommon\CDebug.cpp = LGCommon\CDebug.cpp
LGCommon\CDebug.h = LGCommon\CDebug.h
LGCommon\DefaultDisplayModes.h = LGCommon\DefaultDisplayModes.h
LGCommon\PipeMsg.h = LGCommon\PipeMsg.h
EndProjectSection
EndProject

View File

@@ -1,5 +1,6 @@
#include "CSettings.h"
#include "CSettings.h"
#include "CDebug.h"
#include "DefaultDisplayModes.h"
#include <wdf.h>
@@ -7,22 +8,6 @@ CSettings g_settings;
#define LGIDD_REGKEY L"SOFTWARE\\LookingGlass\\IDD"
static const DWORD DefaultDisplayModes[][3] =
{
{7680, 4800, 120}, {7680, 4320, 120}, {6016, 3384, 120}, {5760, 3600, 120},
{5760, 3240, 120}, {5120, 2800, 120}, {4096, 2560, 120}, {4096, 2304, 120},
{3840, 2400, 120}, {3840, 2160, 120}, {3200, 2400, 120}, {3200, 1800, 120},
{3008, 1692, 120}, {2880, 1800, 120}, {2880, 1620, 120}, {2560, 1600, 120},
{2560, 1440, 120}, {1920, 1440, 120}, {1920, 1200, 120}, {1920, 1080, 120},
{1600, 1200, 120}, {1600, 1024, 120}, {1600, 1050, 120}, {1600, 900 , 120},
{1440, 900 , 120}, {1400, 1050, 120}, {1366, 768 , 120}, {1360, 768 , 120},
{1280, 1024, 120}, {1280, 960 , 120}, {1280, 800 , 120}, {1280, 768 , 120},
{1280, 720 , 120}, {1280, 600 , 120}, {1152, 864 , 120}, {1024, 768 , 120},
{800 , 600 , 120}, {640 , 480 , 120}
};
static const DWORD DefaultPreferredDisplayMode = 19;
CSettings::CSettings()
{
}

View File

@@ -220,7 +220,7 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd)
LRESULT result = m_settings.setModes(*m_modes);
if (result != ERROR_SUCCESS)
DEBUG_ERROR_HR(result, "Failed to save modes");
DEBUG_ERROR_HR((HRESULT) result, "Failed to save modes");
}
else if (hwnd == *m_modeDelete && code == BN_CLICKED && m_modes)
{
@@ -234,7 +234,7 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd)
LRESULT result = m_settings.setModes(*m_modes);
if (result != ERROR_SUCCESS)
DEBUG_ERROR_HR(result, "Failed to save modes");
DEBUG_ERROR_HR((HRESULT) result, "Failed to save modes");
updateModeList();
onModeListSelectChange();

View File

@@ -15,7 +15,7 @@ std::wstring CEditWidget::getValue()
{
std::wstring result;
result.resize(Edit_GetTextLength(m_hwnd));
Edit_GetText(m_hwnd, result.data(), result.size() + 1);
Edit_GetText(m_hwnd, result.data(), (int) (result.size() + 1));
return result;
}

View File

@@ -42,7 +42,7 @@ int CListBox::getSel()
int CListBox::getData(int index)
{
return ListBox_GetItemData(m_hwnd, index);
return (int) ListBox_GetItemData(m_hwnd, index);
}
void CListBox::setSel(int index)

View File

@@ -4,6 +4,8 @@
#include <regex>
#include <CDebug.h>
#include "DefaultDisplayModes.h"
#define LGIDD_REGKEY L"SOFTWARE\\LookingGlass\\IDD"
CRegistrySettings::CRegistrySettings() : hKey(nullptr) {}
@@ -60,8 +62,25 @@ std::optional<std::vector<DisplayMode>> CRegistrySettings::getModes()
DWORD type = 0, cb = 0;
status = RegGetValue(hKey, nullptr, L"Modes", RRF_RT_REG_MULTI_SZ, &type, nullptr, &cb);
if (status != ERROR_SUCCESS)
switch (status)
{
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;
}
default:
DEBUG_ERROR_HR(status, "RegGetValue(Modes) length computation");
return {};
}