[DEV] remove periodic call

This commit is contained in:
Edouard DUPIN 2016-10-22 23:07:52 +02:00
parent 3cc6e1577e
commit 6778140a1d
14 changed files with 56 additions and 55 deletions

View File

@ -7,6 +7,7 @@
#include <ewol/ewol.hpp>
#include <ewol/widget/Button.hpp>
#include <ewol/object/Manager.hpp>
// DEFINE for the shader display system:
const static int32_t STATUS_UP(0);
@ -189,7 +190,7 @@ void ewol::widget::Button::CheckStatus() {
void ewol::widget::Button::changeStatusIn(int32_t _newStatusId) {
if (m_shaper.changeStatusIn(_newStatusId) == true) {
periodicCallEnable();
m_PCH = getObjectManager().periodicCall.connect(this, &ewol::widget::Button::periodicCall);
markToRedraw();
}
}
@ -197,7 +198,7 @@ void ewol::widget::Button::changeStatusIn(int32_t _newStatusId) {
void ewol::widget::Button::periodicCall(const ewol::event::Time& _event) {
if (m_shaper.periodicCall(_event) == false) {
periodicCallDisable();
m_PCH.disconnect();
}
markToRedraw();
}

View File

@ -89,7 +89,12 @@ namespace ewol {
propertyToggleMode.set(true);
}
protected:
void periodicCall(const ewol::event::Time& _event) override;
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);
void onLostFocus() override;
protected:
virtual void onChangePropertyShape();

View File

@ -12,6 +12,7 @@
#include <ewol/widget/meta/ColorChooser.hpp>
#include <ewol/widget/Windows.hpp>
#include <ewol/ewol.hpp>
#include <ewol/object/Manager.hpp>
// DEFINE for the shader display system :
#define STATUS_UP (0)
@ -202,14 +203,14 @@ void ewol::widget::ButtonColor::onCallbackColorChange(const etk::Color<>& _color
void ewol::widget::ButtonColor::changeStatusIn(int32_t _newStatusId) {
if (m_shaper.changeStatusIn(_newStatusId) == true) {
periodicCallEnable();
m_PCH = getObjectManager().periodicCall.connect(this, &ewol::widget::ButtonColor::periodicCall);
markToRedraw();
}
}
void ewol::widget::ButtonColor::periodicCall(const ewol::event::Time& _event) {
if (m_shaper.periodicCall(_event) == false) {
periodicCallDisable();
m_PCH.disconnect();
}
markToRedraw();
}

View File

@ -61,7 +61,12 @@ namespace ewol {
* @param[in] _newStatusId new state
*/
void changeStatusIn(int32_t _newStatusId);
void periodicCall(const ewol::event::Time& _event) override;
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);
// Callback function:
void onCallbackColorChange(const etk::Color<>& _color);
protected:

View File

@ -6,6 +6,7 @@
#include <ewol/widget/CheckBox.hpp>
#include <ewol/widget/Manager.hpp>
#include <ewol/object/Manager.hpp>
// DEFINE for the shader display system :
#define STATUS_UP (0)
@ -181,7 +182,7 @@ void ewol::widget::CheckBox::CheckStatus() {
void ewol::widget::CheckBox::changeStatusIn(int32_t _newStatusId) {
if (m_shaper.changeStatusIn(_newStatusId) == true) {
periodicCallEnable();
m_PCH = getObjectManager().periodicCall.connect(this, &ewol::widget::CheckBox::periodicCall);
markToRedraw();
}
}
@ -189,7 +190,7 @@ void ewol::widget::CheckBox::changeStatusIn(int32_t _newStatusId) {
void ewol::widget::CheckBox::periodicCall(const ewol::event::Time& _event) {
if (m_shaper.periodicCall(_event) == false) {
periodicCallDisable();
m_PCH.disconnect();
}
markToRedraw();
}

View File

@ -69,7 +69,13 @@ namespace ewol {
void onRegenerateDisplay() override;
bool onEventInput(const ewol::event::Input& _event) override;
bool onEventEntry(const ewol::event::Entry& _event) override;
void periodicCall(const ewol::event::Time& _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);
protected:
virtual void onChangePropertyShape();
virtual void onChangePropertyValue();

View File

@ -538,14 +538,14 @@ void ewol::widget::Entry::onLostFocus() {
void ewol::widget::Entry::changeStatusIn(int32_t _newStatusId) {
if (m_shaper.changeStatusIn(_newStatusId) == true) {
periodicCallEnable();
m_PCH = getObjectManager().periodicCall.connect(this, &ewol::widget::Entry::periodicCall);
markToRedraw();
}
}
void ewol::widget::Entry::periodicCall(const ewol::event::Time& _event) {
if (m_shaper.periodicCall(_event) == false) {
periodicCallDisable();
m_PCH.disconnect();
}
markToRedraw();
}

View File

@ -114,7 +114,13 @@ namespace ewol {
void onGetFocus() override;
void onLostFocus() override;
virtual void changeStatusIn(int32_t _newStatusId);
void periodicCall(const ewol::event::Time& _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);
private: // callback functions
void onCallbackShortCut(const std::string& _value);
void onCallbackEntryClean();

View File

@ -8,6 +8,7 @@
#include <ewol/widget/Manager.hpp>
#include <ewol/compositing/Drawing.hpp>
#include <ewol/widget/Manager.hpp>
#include <ewol/object/Manager.hpp>
#include <ewol/ewol.hpp>
static const char* annimationIncrease = "increase";
@ -192,14 +193,14 @@ bool ewol::widget::PopUp::onStartAnnimation(enum ewol::Widget::annimationMode _m
}
return false;
if (m_shaper.changeStatusIn(1) == true) {
periodicCallEnable();
m_PCH = getObjectManager().periodicCall.connect(this, &ewol::widget::PopUp::periodicCall);
return true;
}
return false;
}
void ewol::widget::PopUp::onStopAnnimation() {
periodicCallDisable();
m_PCH.disconnect();
}
void ewol::widget::PopUp::periodicCall(const ewol::event::Time& _event) {

View File

@ -43,8 +43,13 @@ namespace ewol {
ewol::compositing::Shaper m_shaper; //!< Compositing theme.
protected:
void onDraw() override;
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:
void periodicCall(const ewol::event::Time& _event) override;
void systemDraw(const ewol::DrawProperty& _displayProp) override;
void onRegenerateDisplay() override;
void onChangeSize() override;

View File

@ -6,6 +6,7 @@
#include <ewol/widget/WSlider.hpp>
#include <ewol/ewol.hpp>
#include <ewol/object/Manager.hpp>
static const char* l_listsladingMode[ewol::widget::WSlider::sladingTransition_count] = {
@ -106,7 +107,7 @@ void ewol::widget::WSlider::subWidgetSelectSetVectorId(int32_t _id) {
if (_id != m_windowsDestination) {
m_windowsRequested = _id;
signalStartSlide.emit();
periodicCallEnable();
m_PCH = getObjectManager().periodicCall.connect(this, &ewol::widget::WSlider::periodicCall);
markToRedraw();
}
}
@ -190,7 +191,7 @@ void ewol::widget::WSlider::periodicCall(const ewol::event::Time& _event) {
m_slidingProgress = 0.0;
} else {
// end of periodic :
periodicCallDisable();
m_PCH.disconnect();
signalStopSlide.emit();
}
m_windowsRequested = -1;

View File

@ -70,7 +70,13 @@ namespace ewol {
void systemDraw(const ewol::DrawProperty& _displayProp) override;
void onRegenerateDisplay() override;
ewol::WidgetShared getWidgetAtPos(const vec2& _pos) override;
void periodicCall(const ewol::event::Time& _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);
protected:
virtual void onChangePropertySelectWidget();
virtual void onChangePropertyTransitionMode();

View File

@ -250,21 +250,6 @@ void ewol::Widget::systemDraw(const ewol::DrawProperty& _displayProp) {
return;
}
void ewol::Widget::periodicCallDisable() {
EWOL_VERBOSE("Perodic call disable " << propertyName);
m_periodicCallHandle.disconnect();
}
void ewol::Widget::periodicCallEnable() {
if (m_periodicCallHandle.isConnected() == true) {
EWOL_VERBOSE("Perodic call enable " << propertyName << " ==> rejected");
return;
} else {
EWOL_VERBOSE("Perodic call enable " << propertyName);
}
m_periodicCallHandle = getObjectManager().periodicCall.connect(this, &ewol::Widget::periodicCall);
}
void ewol::Widget::markToRedraw() {
if (m_needRegenerateDisplay == true) {
return;

View File

@ -318,28 +318,6 @@ namespace ewol {
* @brief Hide the virtual keyboard (if needed)
*/
virtual void hideKeyboard();
// ----------------------------------------------------------------------------------------------------------------
// -- periodic call Area
// ----------------------------------------------------------------------------------------------------------------
protected:
// TODO : Remove this API ==> deprecated since 28/10/2014
esignal::Connection m_periodicCallHandle;
/**
* @brief disable the periodic call.
*/
void periodicCallDisable();
/**
* @brief disable the periodic call.
*/
void periodicCallEnable();
public:
/**
* @brief periodic call of this widget
* @param _event Current time property
*/
virtual void periodicCall(const ewol::event::Time& _event) {
};
public:
/**
* @brief get the widget at the specific windows absolute position