impr: Allow views to opt out of having their open state saved

This commit is contained in:
WerWolv
2024-05-19 21:51:55 +02:00
parent bad37d0940
commit bfdb9b4019
2 changed files with 10 additions and 1 deletions

View File

@@ -50,6 +50,9 @@ namespace hex::plugin::builtin {
LayoutManager::registerLoadCallback([](std::string_view line) {
for (auto &[name, view] : ContentRegistry::Views::impl::getEntries()) {
if (!view->shouldStoreWindowState())
continue;
std::string format = hex::format("{}=%d", view->getUnlocalizedName().get());
sscanf(line.data(), format.c_str(), &view->getWindowOpenState());
}
@@ -57,6 +60,9 @@ namespace hex::plugin::builtin {
LayoutManager::registerStoreCallback([](ImGuiTextBuffer *buffer) {
for (auto &[name, view] : ContentRegistry::Views::impl::getEntries()) {
if (!view->shouldStoreWindowState())
continue;
buffer->appendf("%s=%d\n", name.c_str(), view->getWindowOpenState());
}
});