mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-12-02 14:18:13 +00:00
[idd] helper: implement adding new modes
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
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:
@@ -96,6 +96,8 @@ LRESULT CConfigWindow::onCreate()
|
|||||||
m_modeBox.reset(new CListBox(WS_CHILD | WS_VISIBLE | LBS_NOTIFY, m_hwnd));
|
m_modeBox.reset(new CListBox(WS_CHILD | WS_VISIBLE | LBS_NOTIFY, m_hwnd));
|
||||||
if (m_modes)
|
if (m_modes)
|
||||||
{
|
{
|
||||||
|
m_modeBox->addItem(L"<add new>", -1);
|
||||||
|
|
||||||
auto &modes = *m_modes;
|
auto &modes = *m_modes;
|
||||||
for (size_t i = 0; i < modes.size(); ++i)
|
for (size_t i = 0; i < modes.size(); ++i)
|
||||||
m_modeBox->addItem(modes[i].toString(), i);
|
m_modeBox->addItem(modes[i].toString(), i);
|
||||||
@@ -151,10 +153,21 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto &mode = (*m_modes)[m_modeBox->getData(sel)];
|
int index = m_modeBox->getData(sel);
|
||||||
m_modeWidth->setNumericValue(mode.width);
|
|
||||||
m_modeHeight->setNumericValue(mode.height);
|
if (index >= 0)
|
||||||
m_modeRefresh->setNumericValue(mode.refresh);
|
{
|
||||||
|
auto &mode = (*m_modes)[index];
|
||||||
|
m_modeWidth->setNumericValue(mode.width);
|
||||||
|
m_modeHeight->setNumericValue(mode.height);
|
||||||
|
m_modeRefresh->setNumericValue(mode.refresh);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_modeWidth->setValue(L"");
|
||||||
|
m_modeHeight->setValue(L"");
|
||||||
|
m_modeRefresh->setValue(L"");
|
||||||
|
}
|
||||||
EnableWindow(*m_modeUpdate, TRUE);
|
EnableWindow(*m_modeUpdate, TRUE);
|
||||||
}
|
}
|
||||||
else if (hwnd == *m_modeUpdate && code == BN_CLICKED && m_modes)
|
else if (hwnd == *m_modeUpdate && code == BN_CLICKED && m_modes)
|
||||||
@@ -164,11 +177,14 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
int index = m_modeBox->getData(sel);
|
int index = m_modeBox->getData(sel);
|
||||||
auto &mode = (*m_modes)[index];
|
auto &mode = index >= 0 ? (*m_modes)[index] : m_modes->emplace_back();
|
||||||
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();
|
||||||
m_modeBox->delItem(sel);
|
|
||||||
|
if (index >= 0)
|
||||||
|
m_modeBox->delItem(sel);
|
||||||
|
|
||||||
m_modeBox->setSel(m_modeBox->addItem(mode.toString().c_str(), index));
|
m_modeBox->setSel(m_modeBox->addItem(mode.toString().c_str(), index));
|
||||||
|
|
||||||
LRESULT result = m_settings.setModes(*m_modes);
|
LRESULT result = m_settings.setModes(*m_modes);
|
||||||
|
|||||||
Reference in New Issue
Block a user