mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-12-02 22:28:14 +00:00
[idd] helper: save mode changes into registry and update listview
This commit is contained in:
@@ -150,11 +150,18 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd)
|
|||||||
}
|
}
|
||||||
else if (hwnd == *m_modeUpdate && code == BN_CLICKED && m_modes)
|
else if (hwnd == *m_modeUpdate && code == BN_CLICKED && m_modes)
|
||||||
{
|
{
|
||||||
auto &mode = (*m_modes)[m_modeBox->getSelData()];
|
int sel = m_modeBox->getSel();
|
||||||
|
int index = m_modeBox->getData(sel);
|
||||||
|
auto &mode = (*m_modes)[index];
|
||||||
mode.width = m_modeWidth->getNumericValue();
|
mode.width = m_modeWidth->getNumericValue();
|
||||||
mode.height = m_modeHeight->getNumericValue();
|
mode.height = m_modeHeight->getNumericValue();
|
||||||
mode.refresh = m_modeRefresh->getNumericValue();
|
mode.refresh = m_modeRefresh->getNumericValue();
|
||||||
DEBUG_INFO(L"Updated mode to %s", mode.toString().c_str());
|
m_modeBox->delItem(sel);
|
||||||
|
m_modeBox->setSel(m_modeBox->addItem(mode.toString().c_str(), index));
|
||||||
|
|
||||||
|
LRESULT result = m_settings.setModes(*m_modes);
|
||||||
|
if (result != ERROR_SUCCESS)
|
||||||
|
DEBUG_ERROR_HR(result, "Failed to save modes");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,12 @@ int CListBox::addItem(const std::wstring &display, LPARAM data)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CListBox::delItem(int index)
|
||||||
|
{
|
||||||
|
if (!ListBox_DeleteString(m_hwnd, index))
|
||||||
|
DEBUG_ERROR("listbox: failed to delete string at %d", index);
|
||||||
|
}
|
||||||
|
|
||||||
int CListBox::getSel()
|
int CListBox::getSel()
|
||||||
{
|
{
|
||||||
return ListBox_GetCurSel(m_hwnd);
|
return ListBox_GetCurSel(m_hwnd);
|
||||||
@@ -36,5 +42,16 @@ int CListBox::getSel()
|
|||||||
|
|
||||||
int CListBox::getSelData()
|
int CListBox::getSelData()
|
||||||
{
|
{
|
||||||
return ListBox_GetItemData(m_hwnd, getSel());
|
return getData(getSel());
|
||||||
|
}
|
||||||
|
|
||||||
|
int CListBox::getData(int index)
|
||||||
|
{
|
||||||
|
return ListBox_GetItemData(m_hwnd, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CListBox::setSel(int index)
|
||||||
|
{
|
||||||
|
if (!ListBox_SetCurSel(m_hwnd, index))
|
||||||
|
DEBUG_ERROR("listbox: failed to set selection to %d", index);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ public:
|
|||||||
CListBox(DWORD style, HWND parent);
|
CListBox(DWORD style, HWND parent);
|
||||||
void initStorage(DWORD count, size_t perItem);
|
void initStorage(DWORD count, size_t perItem);
|
||||||
int addItem(const std::wstring &display, LPARAM data);
|
int addItem(const std::wstring &display, LPARAM data);
|
||||||
|
void delItem(int index);
|
||||||
int getSel();
|
int getSel();
|
||||||
int getSelData();
|
int getSelData();
|
||||||
|
int getData(int index);
|
||||||
|
void setSel(int index);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ CRegistrySettings::~CRegistrySettings()
|
|||||||
LSTATUS CRegistrySettings::open()
|
LSTATUS CRegistrySettings::open()
|
||||||
{
|
{
|
||||||
HKEY key;
|
HKEY key;
|
||||||
LSTATUS result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, LGIDD_REGKEY, 0, KEY_QUERY_VALUE, &key);
|
LSTATUS result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, LGIDD_REGKEY, 0, KEY_QUERY_VALUE | KEY_SET_VALUE, &key);
|
||||||
|
|
||||||
if (result == ERROR_SUCCESS)
|
if (result == ERROR_SUCCESS)
|
||||||
hKey = key;
|
hKey = key;
|
||||||
|
|||||||
Reference in New Issue
Block a user