diff --git a/bin/layers/local_panel/local_panel.cpp b/bin/layers/local_panel/local_panel.cpp index c68ea6f..78316b8 100755 --- a/bin/layers/local_panel/local_panel.cpp +++ b/bin/layers/local_panel/local_panel.cpp @@ -5,7 +5,7 @@ namespace sandbox { void local_panel::on_attach() { - VE_CONNECT("local_panel", local_panel); + VE_CONNECT(local_panel); } void local_panel::render() diff --git a/bin/layers/opengl_panel/opengl_panel.cpp b/bin/layers/opengl_panel/opengl_panel.cpp index 4385d9c..361e21e 100755 --- a/bin/layers/opengl_panel/opengl_panel.cpp +++ b/bin/layers/opengl_panel/opengl_panel.cpp @@ -47,7 +47,7 @@ namespace sandbox void opengl_panel::on_attach() { - VE_CONNECT("opengl_panel", opengl_panel); + VE_CONNECT(opengl_panel); hack::log()("on_attach"); } diff --git a/bin/layers/test_panel/test_panel.cpp b/bin/layers/test_panel/test_panel.cpp index 60600ac..e7e894b 100755 --- a/bin/layers/test_panel/test_panel.cpp +++ b/bin/layers/test_panel/test_panel.cpp @@ -5,7 +5,7 @@ namespace sandbox { void test_panel::on_attach() { - VE_CONNECT("test_panel", test_panel); + VE_CONNECT(test_panel); hack::log()("on_attach", VE::application::get()->get_glfw()->width()); } diff --git a/bin/layers/test_panel_2/test_panel_2.cpp b/bin/layers/test_panel_2/test_panel_2.cpp index b252882..7a9a19d 100755 --- a/bin/layers/test_panel_2/test_panel_2.cpp +++ b/bin/layers/test_panel_2/test_panel_2.cpp @@ -5,7 +5,7 @@ namespace sandbox { void test_panel_2::on_attach() { - VE_CONNECT("test_panel_2", test_panel_2); + VE_CONNECT(test_panel_2); // ATTENTION: активировать сигнальную систему в детях-компонентах m_local_panel.on_attach(); diff --git a/src/event/event.hpp b/src/event/event.hpp index 095e0aa..2cd4cf4 100755 --- a/src/event/event.hpp +++ b/src/event/event.hpp @@ -39,21 +39,18 @@ namespace VE struct event_manager : public hack::patterns::singleton { std::vector> m_funcs; - std::vector m_name; template - void connect(std::string name, T* obj, void (T::*method)(event)) + void connect(T* obj, void (T::*method)(event)) { m_funcs.push_back(std::bind(method, obj, std::placeholders::_1)); - m_name.push_back(name); } void emit(event e) { - int i = 0; try { - for (; i < m_funcs.size(); ++i) + for (std::size_t i = 0; i < m_funcs.size(); ++i) { m_funcs[i](e); } @@ -62,29 +59,11 @@ namespace VE { hack::error()(e.what()); hack::log()("size funcs", m_funcs.size()); - hack::log()("key", m_name[i]); } catch(...) { hack::error()("ooops..."); } - - // for(auto& func : m_funcs) - // { - // try - // { - // func(e); - // } - // catch(std::exception& e) - // { - // hack::error()(e.what()); - // hack::log()("size funcs", m_funcs.size()); - // } - // catch(...) - // { - // hack::error()("ooops..."); - // } - // } } }; } diff --git a/src/utils/define.hpp b/src/utils/define.hpp index a03a74e..8d99d85 100755 --- a/src/utils/define.hpp +++ b/src/utils/define.hpp @@ -10,9 +10,7 @@ void update() override;\ void on_event(VE::event e) override -// #define VE_CONNECT(DEF_NAME, DEF_CLASS) VE::event_manager::instance().connect(DEF_NAME, std::bind(&DEF_CLASS::on_event, this, std::placeholders::_1)); - -#define VE_CONNECT(DEF_NAME, DEF_CLASS) VE::event_manager::instance().connect(DEF_NAME, this, &DEF_CLASS::on_event); +#define VE_CONNECT(DEF_CLASS) VE::event_manager::instance().connect(this, &DEF_CLASS::on_event); #define VE_EMIT(e) VE::event_manager::instance().emit(e)