Centralize retained UI overlay insertion

This commit is contained in:
2026-06-06 09:55:02 +02:00
parent 3101e65dd3
commit 59c9b05d6c
9 changed files with 118 additions and 83 deletions

View File

@@ -2,6 +2,7 @@
#include "legacy_app_dialog_services.h"
#include "app.h"
#include "legacy_ui_overlay_services.h"
#include "node_input_box.h"
#include "node_message_box.h"
#include "node_progress_bar.h"
@@ -12,16 +13,12 @@ std::shared_ptr<NodeProgressBar> create_legacy_app_progress_dialog(
App& app,
const pp::app::AppProgressDialogPlan& plan)
{
auto progress = std::make_shared<NodeProgressBar>();
progress->set_manager(&app.layout);
progress->init();
progress->create();
progress->loaded();
auto progress = make_legacy_overlay_node<NodeProgressBar>(app);
progress->m_progress->SetWidthP(plan.progress_fraction);
progress->m_title->set_text(plan.title.c_str());
progress->m_total = plan.total;
progress->m_count = plan.count;
app.layout[app.main_id]->add_child(progress);
(void)attach_legacy_overlay_node(app, progress);
return progress;
}
@@ -29,11 +26,7 @@ std::shared_ptr<NodeMessageBox> create_legacy_app_message_dialog(
App& app,
const pp::app::AppMessageDialogPlan& plan)
{
auto message = std::make_shared<NodeMessageBox>();
message->set_manager(&app.layout);
message->init();
message->create();
message->loaded();
auto message = make_legacy_overlay_node<NodeMessageBox>(app);
message->m_title->set_text(plan.title.c_str());
message->m_message->set_text(plan.message.c_str());
message->btn_ok->m_text->set_text(plan.ok_caption.c_str());
@@ -41,7 +34,7 @@ std::shared_ptr<NodeMessageBox> create_legacy_app_message_dialog(
message->btn_cancel->m_text->set_text(plan.cancel_caption.c_str());
else
message->btn_cancel->destroy();
app.layout[app.main_id]->add_child(message);
(void)attach_legacy_overlay_node(app, message);
return message;
}
@@ -49,15 +42,11 @@ std::shared_ptr<NodeInputBox> create_legacy_app_input_dialog(
App& app,
const pp::app::AppInputDialogPlan& plan)
{
auto input = std::make_shared<NodeInputBox>();
input->set_manager(&app.layout);
input->init();
input->create();
input->loaded();
auto input = make_legacy_overlay_node<NodeInputBox>(app);
input->m_title->set_text(plan.title.c_str());
input->m_field_name->set_text(plan.field_name.c_str());
input->btn_ok->m_text->set_text(plan.ok_caption.c_str());
app.layout[app.main_id]->add_child(input);
(void)attach_legacy_overlay_node(app, input);
return input;
}