fix child on_attach

This commit is contained in:
2025-02-28 14:58:04 +03:00
parent 4ec64aaa28
commit a27266d9a1
4 changed files with 7 additions and 14 deletions

View File

@@ -35,7 +35,6 @@ namespace sandbox
ImGui::Text("\xef\x87\xbc"); ImGui::Text("\xef\x87\xbc");
VE_POP_FONT(); VE_POP_FONT();
} }
void local_panel::on_event(VE::event e) void local_panel::on_event(VE::event e)

View File

@@ -6,6 +6,9 @@ namespace sandbox
void test_panel_2::on_attach() void test_panel_2::on_attach()
{ {
VE_CONNECT(test_panel_2); VE_CONNECT(test_panel_2);
// ATTENTION: активировать сигнальную систему в детях-компонентах
m_local_panel.on_attach();
hack::log()("on_attach"); hack::log()("on_attach");
} }

View File

@@ -1,7 +1,6 @@
#include "layers/test_panel/test_panel.hpp" #include "layers/test_panel/test_panel.hpp"
#include "layers/test_panel_2/test_panel_2.hpp" #include "layers/test_panel_2/test_panel_2.hpp"
#include "layers/opengl_panel/opengl_panel.hpp" #include "layers/opengl_panel/opengl_panel.hpp"
#include "layers/local_panel/local_panel.hpp"
namespace sandbox namespace sandbox
{ {
@@ -19,19 +18,16 @@ namespace VE
{ {
static sandbox::test_app app{ "vertex_engine_sandbox" }; static sandbox::test_app app{ "vertex_engine_sandbox" };
// ATTENTEION: это слои для отрисовки.
// если делается компонент, который является составляющей этих компонентов, то
// нужно вызывать метод on_attach внутри хозяев для работы сигнальной системы.
// см. пример в test_panel_2
app.push_layer( app.push_layer(
new sandbox::test_panel{}, new sandbox::test_panel{},
new sandbox::test_panel_2{}, new sandbox::test_panel_2{},
new sandbox::opengl_panel{} 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; return app;
} }
} }

View File

@@ -28,11 +28,6 @@ namespace VE
void push_layer(Args*... args) void push_layer(Args*... args)
{ {
(m_layers_stack.push_back(args), ...); (m_layers_stack.push_back(args), ...);
}
template<typename... Args>
void on_attach(Args*... args)
{
(args->on_attach(), ...); (args->on_attach(), ...);
} }