From eecbd990721e771ff0b9b8d97818abc9a4988055 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Thu, 20 Oct 2016 21:35:32 +0200 Subject: [PATCH] [DEBUG] correct periodic call --- ege/widget/Mesh.cpp | 5 +++-- ege/widget/Mesh.hpp | 18 ++++++++++++------ ege/widget/Scene.cpp | 3 ++- ege/widget/Scene.hpp | 17 +++++++++++------ 4 files changed, 28 insertions(+), 15 deletions(-) diff --git a/ege/widget/Mesh.cpp b/ege/widget/Mesh.cpp index b83a5ce..9a674d8 100644 --- a/ege/widget/Mesh.cpp +++ b/ege/widget/Mesh.cpp @@ -5,6 +5,7 @@ */ #include +#include #include #include #include @@ -108,9 +109,9 @@ void ege::widget::Mesh::setAngle(const vec3& _angle) { void ege::widget::Mesh::setAngleSpeed(const vec3& _speed) { if (_speed != vec3(0,0,0)) { - periodicCallEnable(); + m_PCH = getObjectManager().periodicCall.connect(this, &ege::widget::Mesh::periodicCall); } else { - periodicCallDisable(); + m_PCH.disconnect(); } m_angleSpeed = _speed; markToRedraw(); diff --git a/ege/widget/Mesh.hpp b/ege/widget/Mesh.hpp index 798ece2..5a32369 100644 --- a/ege/widget/Mesh.hpp +++ b/ege/widget/Mesh.hpp @@ -31,12 +31,18 @@ namespace ege { void init(); // automatic considering in the appl Data older public: virtual ~Mesh(); - public: // Derived function - virtual void onRegenerateDisplay(); - virtual void systemDraw(const ewol::DrawProperty& _displayProp); - virtual void onDraw(); - virtual bool onEventInput(const ewol::event::Input& _event); - virtual void periodicCall(const ewol::event::Time& _event); + public: + void onRegenerateDisplay() override; + void systemDraw(const ewol::DrawProperty& _displayProp) override; + void onDraw() override; + bool onEventInput(const ewol::event::Input& _event) override; + protected: + esignal::Connection m_PCH; //!< Periodic call handle to remove it when needed + /** + * @brief Periodic call to update grapgic display + * @param[in] _event Time generic event + */ + void periodicCall(const ewol::event::Time& _event); public: /** * @brief set a mesh name file diff --git a/ege/widget/Scene.cpp b/ege/widget/Scene.cpp index 957727b..583f889 100644 --- a/ege/widget/Scene.cpp +++ b/ege/widget/Scene.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -47,7 +48,7 @@ void ege::widget::Scene::init() { ewol::Widget::init(); setKeyboardRepeate(false); propertyCanFocus.set(true); - periodicCallEnable(); + m_PCH = getObjectManager().periodicCall.connect(this, &ege::widget::Scene::periodicCall); m_debugDrawProperty = ewol::resource::Colored3DObject::create(); } diff --git a/ege/widget/Scene.hpp b/ege/widget/Scene.hpp index aced1ac..da87ccd 100644 --- a/ege/widget/Scene.hpp +++ b/ege/widget/Scene.hpp @@ -78,13 +78,18 @@ namespace ege { protected: // Note : This is only for temporary elements : on the display std::vector m_displayElementOrdered; - protected: // Derived function - virtual void onDraw(); - public: // Derived function - virtual void systemDraw(const ewol::DrawProperty& _displayProp); - virtual void onRegenerateDisplay(); + protected: + esignal::Connection m_PCH; //!< Periodic call handle to remove it when needed + /** + * @brief Periodic call to update grapgic display + * @param[in] _event Time generic event + */ virtual void periodicCall(const ewol::event::Time& _event); - virtual void calculateSize(); + protected: + void onDraw() override; + void systemDraw(const ewol::DrawProperty& _displayProp) override; + void onRegenerateDisplay() override; + void calculateSize() override; }; } }