From ce98d39d3419a31a1fa97e3f99da713bd218885e Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Thu, 4 Aug 2016 22:23:19 +0200 Subject: [PATCH] [DEV/DEBUG] update esignal removing ISignal and correct pop-up auto exit and widget slider callback --- ewol/event/Time.cpp | 5 ++--- ewol/object/Manager.cpp | 1 + ewol/object/Manager.h | 4 ++-- ewol/resource/Colored3DObject.cpp | 10 ++++------ ewol/widget/Button.h | 14 +++++++------- ewol/widget/ButtonColor.h | 4 ++-- ewol/widget/CheckBox.h | 12 ++++++------ ewol/widget/ColorBar.h | 4 ++-- ewol/widget/Entry.h | 8 ++++---- ewol/widget/Image.h | 4 ++-- ewol/widget/Joystick.h | 8 ++++---- ewol/widget/Label.h | 4 ++-- ewol/widget/ListFileSystem.h | 10 +++++----- ewol/widget/Menu.h | 2 +- ewol/widget/PopUp.cpp | 3 +++ ewol/widget/Select.h | 2 +- ewol/widget/Slider.h | 4 ++-- ewol/widget/Spin.h | 4 ++-- ewol/widget/WSlider.cpp | 10 +++++++--- ewol/widget/WSlider.h | 6 +++--- ewol/widget/Widget.h | 10 +++++----- ewol/widget/meta/ColorChooser.h | 4 ++-- ewol/widget/meta/FileChooser.h | 6 +++--- ewol/widget/meta/Parameter.h | 2 +- ewol/widget/meta/ParameterList.h | 2 +- 25 files changed, 74 insertions(+), 69 deletions(-) diff --git a/ewol/event/Time.cpp b/ewol/event/Time.cpp index 23527946..ed9855e8 100644 --- a/ewol/event/Time.cpp +++ b/ewol/event/Time.cpp @@ -28,7 +28,6 @@ namespace etk { } // declare for signal event -#include -template class esignal::Signal; -template class esignal::ISignal; +#include +ESIGNAL_DECLARE_SIGNAL(ewol::event::Time); diff --git a/ewol/object/Manager.cpp b/ewol/object/Manager.cpp index a2773f54..966539ae 100644 --- a/ewol/object/Manager.cpp +++ b/ewol/object/Manager.cpp @@ -16,6 +16,7 @@ ewol::object::Manager::Manager(ewol::Context& _context) : m_applWakeUpTime(0), m_lastPeriodicCallTime(0) { EWOL_DEBUG(" == > init Object-Manager"); + periodicCall.setPeriodic(true); // set the basic time properties : m_applWakeUpTime = ewol::getTime(); m_lastPeriodicCallTime = ewol::getTime(); diff --git a/ewol/object/Manager.h b/ewol/object/Manager.h index b0e1805b..33602aa3 100644 --- a/ewol/object/Manager.h +++ b/ewol/object/Manager.h @@ -7,7 +7,7 @@ #include #include -#include +#include #include namespace ewol { @@ -74,7 +74,7 @@ namespace ewol { */ void workerRemove(const ewol::ObjectShared& _worker); public: - esignal::ISignal periodicCall; + esignal::Signal periodicCall; private: int64_t m_applWakeUpTime; //!< Time of the application initialize int64_t m_lastPeriodicCallTime; //!< last call time ... diff --git a/ewol/resource/Colored3DObject.cpp b/ewol/resource/Colored3DObject.cpp index defc10bc..816c26cb 100644 --- a/ewol/resource/Colored3DObject.cpp +++ b/ewol/resource/Colored3DObject.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include ewol::resource::Colored3DObject::Colored3DObject() : m_GLprogram(nullptr) { @@ -229,11 +229,9 @@ namespace etk { return "!!ewol::resource::Colored3DObject!ERROR!CAN_NOT_BE_CONVERT!!"; } } -#include +#include // declare for signal event -template class esignal::ISignal; -template class esignal::ISignal>; -template class esignal::Signal; -template class esignal::Signal>; +ESIGNAL_DECLARE_SIGNAL(ewol::resource::Colored3DObject); +ESIGNAL_DECLARE_SIGNAL(ememory::SharedPtr); diff --git a/ewol/widget/Button.h b/ewol/widget/Button.h index 6b45cd75..516af867 100644 --- a/ewol/widget/Button.h +++ b/ewol/widget/Button.h @@ -12,7 +12,7 @@ #include #include #include -#include +#include @@ -34,12 +34,12 @@ namespace ewol { lockAccess, //!< all event are trashed == > acctivity of the button is disable }; public: // Event list - esignal::ISignal<> signalPressed; - esignal::ISignal<> signalDown; - esignal::ISignal<> signalUp; - esignal::ISignal<> signalEnter; - esignal::ISignal<> signalLeave; - esignal::ISignal signalValue; + esignal::Signal<> signalPressed; + esignal::Signal<> signalDown; + esignal::Signal<> signalUp; + esignal::Signal<> signalEnter; + esignal::Signal<> signalLeave; + esignal::Signal signalValue; public: // propertie list eproperty::Value propertyShape; //!< shaper name property eproperty::Value propertyValue; //!< Current state of the button. diff --git a/ewol/widget/ButtonColor.h b/ewol/widget/ButtonColor.h index 34dc6b57..2733783f 100644 --- a/ewol/widget/ButtonColor.h +++ b/ewol/widget/ButtonColor.h @@ -13,7 +13,7 @@ #include #include #include -#include +#include namespace ewol { namespace widget { @@ -22,7 +22,7 @@ namespace ewol { using ButtonColorWeak = ememory::WeakPtr; class ButtonColor : public ewol::Widget { public: // signals - esignal::ISignal> signalChange; + esignal::Signal> signalChange; public: // properties eproperty::Value> propertyValue; //!< Current color. eproperty::Value propertyShape; //!< Current color. diff --git a/ewol/widget/CheckBox.h b/ewol/widget/CheckBox.h index 376f4fd3..24bda14b 100644 --- a/ewol/widget/CheckBox.h +++ b/ewol/widget/CheckBox.h @@ -10,7 +10,7 @@ #include #include #include -#include +#include namespace ewol { @@ -20,11 +20,11 @@ namespace ewol { using CheckBoxWeak = ememory::WeakPtr; class CheckBox : public ewol::widget::Container2 { public: // Event list - esignal::ISignal<> signalPressed; - esignal::ISignal<> signalDown; - esignal::ISignal<> signalUp; - esignal::ISignal<> signalEnter; - esignal::ISignal signalValue; + esignal::Signal<> signalPressed; + esignal::Signal<> signalDown; + esignal::Signal<> signalUp; + esignal::Signal<> signalEnter; + esignal::Signal signalValue; public: // propertie list eproperty::Value propertyValue; //!< Current state of the checkbox. eproperty::Value propertyShape; //!< shape of the widget diff --git a/ewol/widget/ColorBar.h b/ewol/widget/ColorBar.h index 3088c460..2ffdacd4 100644 --- a/ewol/widget/ColorBar.h +++ b/ewol/widget/ColorBar.h @@ -10,7 +10,7 @@ #include #include #include -#include +#include namespace ewol { @@ -20,7 +20,7 @@ namespace ewol { using ColorBarWeak = ememory::WeakPtr; class ColorBar : public ewol::Widget { public: // signals - esignal::ISignal> signalChange; + esignal::Signal> signalChange; public: eproperty::Value> propertyValue; protected: diff --git a/ewol/widget/Entry.h b/ewol/widget/Entry.h index 28c19179..937183d1 100644 --- a/ewol/widget/Entry.h +++ b/ewol/widget/Entry.h @@ -14,7 +14,7 @@ #include #include #include -#include +#include namespace ewol { namespace widget { @@ -33,9 +33,9 @@ namespace ewol { */ class Entry : public ewol::Widget { public: // Event list - esignal::ISignal<> signalClick; //!< bang on click the entry box - esignal::ISignal signalEnter; //!< Enter key is pressed - esignal::ISignal signalModify; //!< data change + esignal::Signal<> signalClick; //!< bang on click the entry box + esignal::Signal signalEnter; //!< Enter key is pressed + esignal::Signal signalModify; //!< data change public: // propertie list eproperty::Value propertyShape; eproperty::Value propertyValue; //!< string that must be displayed diff --git a/ewol/widget/Image.h b/ewol/widget/Image.h index c107f12a..c4f52b3d 100644 --- a/ewol/widget/Image.h +++ b/ewol/widget/Image.h @@ -11,7 +11,7 @@ #include #include #include -#include +#include namespace ewol { namespace widget { @@ -23,7 +23,7 @@ namespace ewol { */ class Image :public ewol::Widget { public: // signals - esignal::ISignal<> signalPressed; + esignal::Signal<> signalPressed; public: // properties eproperty::Value propertySource; //!< file name of the image. eproperty::Value propertyBorder; //!< border to add at the image. diff --git a/ewol/widget/Joystick.h b/ewol/widget/Joystick.h index bb1ff28d..1dce7043 100644 --- a/ewol/widget/Joystick.h +++ b/ewol/widget/Joystick.h @@ -9,7 +9,7 @@ #include #include #include -#include +#include // TODO : Rework ==> use property and shaper ... @@ -24,9 +24,9 @@ namespace ewol { class Joystick :public ewol::Widget { public: // Event list of properties - esignal::ISignal<> signalEnable; - esignal::ISignal<> signalDisable; - esignal::ISignal signalMove; + esignal::Signal<> signalEnable; + esignal::Signal<> signalDisable; + esignal::Signal signalMove; public: enum joystickMode { modeNormal, diff --git a/ewol/widget/Label.h b/ewol/widget/Label.h index 8479c279..c16e7d44 100644 --- a/ewol/widget/Label.h +++ b/ewol/widget/Label.h @@ -11,7 +11,7 @@ #include #include #include -#include +#include namespace ewol { namespace widget { @@ -23,7 +23,7 @@ namespace ewol { */ class Label : public ewol::Widget { public: // signals - esignal::ISignal<> signalPressed; + esignal::Signal<> signalPressed; public: // properties eproperty::Value propertyAutoTranslate; //!< if at true the data is translate automaticaly translate. eproperty::Value propertyValue; //!< decorated text to display. diff --git a/ewol/widget/ListFileSystem.h b/ewol/widget/ListFileSystem.h index 5389977c..679c5c77 100644 --- a/ewol/widget/ListFileSystem.h +++ b/ewol/widget/ListFileSystem.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include namespace ewol { namespace widget { @@ -20,10 +20,10 @@ namespace ewol { */ class ListFileSystem : public ewol::widget::List { public: // signals - esignal::ISignal signalFileSelect; //!< @event "file-select" Generated when a file is selected. - esignal::ISignal signalFileValidate; //!< @event "file-validate" Generate when the user validate (return) or double click on the element - esignal::ISignal signalFolderSelect; - esignal::ISignal signalFolderValidate; + esignal::Signal signalFileSelect; //!< @event "file-select" Generated when a file is selected. + esignal::Signal signalFileValidate; //!< @event "file-validate" Generate when the user validate (return) or double click on the element + esignal::Signal signalFolderSelect; + esignal::Signal signalFolderValidate; public: // properties eproperty::Value propertyPath; //!< Current folder that display point on. eproperty::Value propertyFile; //!< current selected file diff --git a/ewol/widget/Menu.h b/ewol/widget/Menu.h index cea62b53..f36d5547 100644 --- a/ewol/widget/Menu.h +++ b/ewol/widget/Menu.h @@ -33,7 +33,7 @@ namespace ewol { */ class Menu :public ewol::widget::Sizer { public: - esignal::ISignal signalSelect; // event on a menu button or ... + esignal::Signal signalSelect; // event on a menu button or ... protected: Menu(); public: diff --git a/ewol/widget/PopUp.cpp b/ewol/widget/PopUp.cpp index 25901e1c..d3c4c246 100644 --- a/ewol/widget/PopUp.cpp +++ b/ewol/widget/PopUp.cpp @@ -148,6 +148,9 @@ bool ewol::widget::PopUp::onEventInput(const ewol::event::Input& _event) { if (_event.getId() == 0) { return false; } + if (_event.getStatus() == gale::key::status::move) { + return false; + } if (*propertyCloseOutEvent == true) { return false; } diff --git a/ewol/widget/Select.h b/ewol/widget/Select.h index 39f08c82..2792ed7d 100644 --- a/ewol/widget/Select.h +++ b/ewol/widget/Select.h @@ -20,7 +20,7 @@ namespace ewol { */ class Select : public ewol::widget::SpinBase { public: // signals - esignal::ISignal signalValue; + esignal::Signal signalValue; public: // properties eproperty::Value propertyValue; //!< Current state of the Select. protected: diff --git a/ewol/widget/Slider.h b/ewol/widget/Slider.h index 9d847617..ed4b93f9 100644 --- a/ewol/widget/Slider.h +++ b/ewol/widget/Slider.h @@ -10,7 +10,7 @@ #include #include #include -#include +#include namespace ewol { namespace widget { @@ -22,7 +22,7 @@ namespace ewol { */ class Slider : public ewol::Widget { public: // signals - esignal::ISignal signalChange; + esignal::Signal signalChange; public: //eproperty::Value propertyShape; //!< name of the shape used eproperty::Value propertyValue; //!< current value of the Slider diff --git a/ewol/widget/Spin.h b/ewol/widget/Spin.h index 47ca3c2a..39f3aca6 100644 --- a/ewol/widget/Spin.h +++ b/ewol/widget/Spin.h @@ -21,8 +21,8 @@ namespace ewol { class Spin : public ewol::widget::SpinBase { public: // Event list of properties - esignal::ISignal signalValue; - esignal::ISignal signalValueDouble; + esignal::Signal signalValue; + esignal::Signal signalValueDouble; public: eproperty::Value propertyValue; //!< Current value of the Spin. eproperty::Value propertyMin; //!< Minimum value diff --git a/ewol/widget/WSlider.cpp b/ewol/widget/WSlider.cpp index 0cdad0ea..37d37880 100644 --- a/ewol/widget/WSlider.cpp +++ b/ewol/widget/WSlider.cpp @@ -23,13 +23,15 @@ ewol::widget::WSlider::WSlider() : signalStopSlide(this, "stop", ""), propertyTransitionSpeed(this, "speed", 1.0f, 0.0f, 200.0f, - "Transition speed of the slider", - &ewol::widget::WSlider::onChangePropertySelectWidget), + "Transition speed of the slider"), propertyTransitionMode(this, "mode", sladingTransitionHori, "Transition mode of the slider", &ewol::widget::WSlider::onChangePropertyTransitionMode), - propertySelectWidget(this, "select", "", "Select the requested widget to display"), + propertySelectWidget(this, "select", + "", + "Select the requested widget to display", + &ewol::widget::WSlider::onChangePropertySelectWidget), m_windowsSources(0), m_windowsDestination(0), m_windowsRequested(-1), @@ -163,6 +165,7 @@ void ewol::widget::WSlider::subWidgetSelectSet(const std::string& _widgetName) { EWOL_ERROR("Can not change to a widget with no name (input)"); return; } + EWOL_VERBOSE("Select a new sub-widget to dosplay : '" << _widgetName << "'"); int32_t iii = 0; for (auto &it : m_subWidget) { if ( it != nullptr @@ -178,6 +181,7 @@ void ewol::widget::WSlider::subWidgetSelectSet(const std::string& _widgetName) { } void ewol::widget::WSlider::periodicCall(const ewol::event::Time& _event) { + EWOL_VERBOSE("Periodic: " << m_slidingProgress << "/1.0 " << m_windowsSources << " ==> " << m_windowsDestination); if (m_slidingProgress >= 1.0) { m_windowsSources = m_windowsDestination; if( m_windowsRequested != -1 diff --git a/ewol/widget/WSlider.h b/ewol/widget/WSlider.h index 2620d88a..cae0237b 100644 --- a/ewol/widget/WSlider.h +++ b/ewol/widget/WSlider.h @@ -9,7 +9,7 @@ #include #include #include -#include +#include namespace ewol { namespace widget { @@ -27,8 +27,8 @@ namespace ewol { sladingTransition_count, }; public: // signals: - esignal::ISignal<> signalStartSlide; - esignal::ISignal<> signalStopSlide; + esignal::Signal<> signalStartSlide; + esignal::Signal<> signalStopSlide; public: // properties: eproperty::Range propertyTransitionSpeed; //!< speed of the transition (default 1 == > 1s) eproperty::List propertyTransitionMode; //!< mode to slide the widgets diff --git a/ewol/widget/Widget.h b/ewol/widget/Widget.h index 8d29fad6..646350aa 100644 --- a/ewol/widget/Widget.h +++ b/ewol/widget/Widget.h @@ -30,7 +30,7 @@ namespace ewol { #include #include #include -#include +#include #include #include @@ -408,7 +408,7 @@ namespace ewol { // -- Shortcut : management of the shortcut // ---------------------------------------------------------------------------------------------------------------- public: - esignal::ISignal signalShortcut; //!< signal handle of the message + esignal::Signal signalShortcut; //!< signal handle of the message private: std::vector m_localShortcut; //!< list of all shortcut in the widget protected: @@ -532,9 +532,9 @@ namespace ewol { */ public: // event generated : - esignal::ISignal<> signalAnnimationStart; //!< event when start annimation - esignal::ISignal signalAnnimationRatio; //!< event when % of annimation change (integer) - esignal::ISignal<> signalAnnimationStop; //!< event when stop annimation + esignal::Signal<> signalAnnimationStart; //!< event when start annimation + esignal::Signal signalAnnimationRatio; //!< event when % of annimation change (integer) + esignal::Signal<> signalAnnimationStop; //!< event when stop annimation protected: enum annimationMode { annimationModeEnableAdd, diff --git a/ewol/widget/meta/ColorChooser.h b/ewol/widget/meta/ColorChooser.h index a5aa4822..90f4e430 100644 --- a/ewol/widget/meta/ColorChooser.h +++ b/ewol/widget/meta/ColorChooser.h @@ -14,7 +14,7 @@ #include #include #include -#include +#include namespace ewol { namespace widget { @@ -26,7 +26,7 @@ namespace ewol { */ class ColorChooser : public ewol::widget::Sizer { public: // signals - esignal::ISignal> signalChange; + esignal::Signal> signalChange; public: eproperty::Value> propertyValue; protected: diff --git a/ewol/widget/meta/FileChooser.h b/ewol/widget/meta/FileChooser.h index 46f09f02..a92f3d10 100644 --- a/ewol/widget/meta/FileChooser.h +++ b/ewol/widget/meta/FileChooser.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include namespace ewol { namespace widget { @@ -65,8 +65,8 @@ namespace ewol { */ class FileChooser : public ewol::widget::Composer { public: // signals - esignal::ISignal<> signalCancel; //!< abort the display of the pop-up or press cancel button - esignal::ISignal signalValidate; //!< select file(s) + esignal::Signal<> signalCancel; //!< abort the display of the pop-up or press cancel button + esignal::Signal signalValidate; //!< select file(s) public: // properties eproperty::Value propertyPath; //!< Current path to explore eproperty::Value propertyFile; //!< Selected file diff --git a/ewol/widget/meta/Parameter.h b/ewol/widget/meta/Parameter.h index 29b396ed..7aaa18ac 100644 --- a/ewol/widget/meta/Parameter.h +++ b/ewol/widget/meta/Parameter.h @@ -27,7 +27,7 @@ namespace ewol { */ class Parameter : public ewol::widget::PopUp { public: // signals - esignal::ISignal<> signalClose; + esignal::Signal<> signalClose; public: // properties eproperty::Value propertyLabelTitle; protected: diff --git a/ewol/widget/meta/ParameterList.h b/ewol/widget/meta/ParameterList.h index 1df5378b..53be10d7 100644 --- a/ewol/widget/meta/ParameterList.h +++ b/ewol/widget/meta/ParameterList.h @@ -35,7 +35,7 @@ namespace ewol { */ class ParameterList :public ewol::widget::WidgetScrolled { public: //signals - esignal::ISignal signalSelect; + esignal::Signal signalSelect; public: // properties private: