add returned event field

This commit is contained in:
2025-06-09 13:54:56 +03:00
parent 1d0bb54fae
commit 677ead1195
10 changed files with 63 additions and 39 deletions

View File

@@ -47,14 +47,25 @@ namespace example
if (!ImGui::Begin(VE_NAME("Test signal"), nullptr, m_win_flags)) ImGui::End();
if (ImGui::Button("Test signal", ImVec2(128, 130)))
EMIT(test_event::TEST_EVEN, std::string("test event message"), "asdf-asdf-asdf", "test event log msg");
{
VE::event e { test_event::TEST_EVEN_1, std::string("test event 1 message"), "asdf-asdf-asdf" };
EMIT(e);
auto r = std::any_cast<std::string>(e.m_result);
hack::log()(r);
e = { test_event::TEST_EVEN_2, std::string("test event 2 message") };
EMIT(e);
r = std::any_cast<std::string>(e.m_result);
hack::log()(r);
}
VE_POP_FONT();
ImGui::End();
}
void ui_layer::on_event(VE::event e)
void ui_layer::on_event(VE::event& e)
{
// для событий от перефирии
// if (e.m_type.type() == typeid(VE::event_type))
@@ -67,8 +78,11 @@ namespace example
if (e.m_type.type() == typeid(test_event))
{
auto t = std::any_cast<test_event>(e.m_type);
if (t == test_event::TEST_EVEN)
if (t == test_event::TEST_EVEN_1)
{
hack::log()(std::any_cast<std::string>(e.m_data));
e.m_result = std::string("test_event_1");
}
}
}

View File

@@ -26,7 +26,10 @@ namespace example
VE_PUSH_FONT(REGULAR, 20);
if (ImGui::Button("Test signal_double", ImVec2(128, 130)))
EMIT(test_event::TEST_EVEN, std::string("test event message ui_layer_double"));
{
VE::event e { test_event::TEST_EVEN_2, std::string("test event message ui_layer_double") };
EMIT(e);
}
if (ImGui::Button("Test on_detach", ImVec2(128, 130))) on_detach();
if (ImGui::Button("Test on_attach", ImVec2(128, 130))) on_attach();
@@ -39,7 +42,7 @@ namespace example
ImGui::End();
}
void ui_layer_double::on_event(VE::event e)
void ui_layer_double::on_event(VE::event& e)
{
// для событий от перефирии
// if (e.m_type.type() == typeid(VE::event_type))
@@ -52,8 +55,11 @@ namespace example
if (e.m_type.type() == typeid(test_event))
{
auto t = std::any_cast<test_event>(e.m_type);
if (t == test_event::TEST_EVEN)
if (t == test_event::TEST_EVEN_2)
{
hack::log()(std::any_cast<std::string>(e.m_data));
e.m_result = std::string("test_event_2");
}
}
}

View File

@@ -4,6 +4,7 @@ namespace example
{
enum class test_event
{
TEST_EVEN
TEST_EVEN_1,
TEST_EVEN_2
};
}