From a27266d9a16c1bcf27e73cd6046e00821088e867 Mon Sep 17 00:00:00 2001 From: chatlanin Date: Fri, 28 Feb 2025 14:58:04 +0300 Subject: [PATCH] fix child on_attach --- bin/layers/local_panel/local_panel.cpp | 1 - bin/layers/test_panel_2/test_panel_2.cpp | 3 +++ bin/main.cpp | 12 ++++-------- src/application/application.hpp | 5 ----- 4 files changed, 7 insertions(+), 14 deletions(-) diff --git a/bin/layers/local_panel/local_panel.cpp b/bin/layers/local_panel/local_panel.cpp index beae37d..4255d1b 100755 --- a/bin/layers/local_panel/local_panel.cpp +++ b/bin/layers/local_panel/local_panel.cpp @@ -35,7 +35,6 @@ namespace sandbox ImGui::Text("\xef\x87\xbc"); VE_POP_FONT(); - } void local_panel::on_event(VE::event e) diff --git a/bin/layers/test_panel_2/test_panel_2.cpp b/bin/layers/test_panel_2/test_panel_2.cpp index d60613c..cd52c23 100755 --- a/bin/layers/test_panel_2/test_panel_2.cpp +++ b/bin/layers/test_panel_2/test_panel_2.cpp @@ -6,6 +6,9 @@ namespace sandbox void test_panel_2::on_attach() { VE_CONNECT(test_panel_2); + + // ATTENTION: активировать сигнальную систему в детях-компонентах + m_local_panel.on_attach(); hack::log()("on_attach"); } diff --git a/bin/main.cpp b/bin/main.cpp index ef48d1f..320b877 100755 --- a/bin/main.cpp +++ b/bin/main.cpp @@ -1,7 +1,6 @@ #include "layers/test_panel/test_panel.hpp" #include "layers/test_panel_2/test_panel_2.hpp" #include "layers/opengl_panel/opengl_panel.hpp" -#include "layers/local_panel/local_panel.hpp" namespace sandbox { @@ -19,19 +18,16 @@ namespace VE { static sandbox::test_app app{ "vertex_engine_sandbox" }; + // ATTENTEION: это слои для отрисовки. + // если делается компонент, который является составляющей этих компонентов, то + // нужно вызывать метод on_attach внутри хозяев для работы сигнальной системы. + // см. пример в test_panel_2 app.push_layer( new sandbox::test_panel{}, new sandbox::test_panel_2{}, new sandbox::opengl_panel{} ); - app.on_attach( - new sandbox::test_panel{}, - new sandbox::test_panel_2{}, - new sandbox::opengl_panel{}, - new sandbox::local_panel{} - ); - return app; } } diff --git a/src/application/application.hpp b/src/application/application.hpp index 66719b3..b45e347 100755 --- a/src/application/application.hpp +++ b/src/application/application.hpp @@ -28,11 +28,6 @@ namespace VE void push_layer(Args*... args) { (m_layers_stack.push_back(args), ...); - } - - template - void on_attach(Args*... args) - { (args->on_attach(), ...); }