diff --git a/ewol/object/Object.cpp b/ewol/object/Object.cpp index d75c38bd..49091b69 100644 --- a/ewol/object/Object.cpp +++ b/ewol/object/Object.cpp @@ -159,6 +159,7 @@ std::shared_ptr ewol::Object::getObjectNamed(const std::string& _o } std::shared_ptr ewol::Object::getSubObjectNamed(const std::string& _objectName) { + EWOL_VERBOSE("check if name : " << _objectName << " ?= " << propertyName.get()); if (_objectName == propertyName.get()) { return shared_from_this(); } @@ -166,7 +167,7 @@ std::shared_ptr ewol::Object::getSubObjectNamed(const std::string& } -bool epropertySetOnObjectNamed(const std::string& _objectName, const std::string& _config, const std::string& _value) { +bool ewol::propertySetOnObjectNamed(const std::string& _objectName, const std::string& _config, const std::string& _value) { std::shared_ptr object = ewol::getContext().getEObjectManager().get(_objectName); if (object == nullptr) { return false; diff --git a/ewol/resource/Colored3DObject.cpp b/ewol/resource/Colored3DObject.cpp index 61467d4c..572b5ca6 100644 --- a/ewol/resource/Colored3DObject.cpp +++ b/ewol/resource/Colored3DObject.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #undef __class__ #define __class__ "resource::Colored3DObject" @@ -229,4 +230,11 @@ void ewol::resource::Colored3DObject::drawSquare(const vec3& _size, } draw(tmpVertices, _tmpColor, _transformationMatrix); } +template<> std::string etk::to_string(ewol::resource::Colored3DObject const&) { + return "!!ewol::resource::Colored3DObject!ERROR!CAN_NOT_BE_CONVERT!!"; +} + +// declare for signal event +template class esignal::Signal; +template class esignal::Signal>; diff --git a/ewol/widget/CheckBox.cpp b/ewol/widget/CheckBox.cpp index 93399247..9efb879c 100644 --- a/ewol/widget/CheckBox.cpp +++ b/ewol/widget/CheckBox.cpp @@ -171,16 +171,13 @@ void ewol::widget::CheckBox::CheckStatus() { markToRedraw(); } if (m_buttonPressed == true) { - EWOL_WARNING("SET state : PRESSED"); changeStatusIn(STATUS_PRESSED); return; } if (true == m_mouseHover) { - EWOL_WARNING("SET state : HOVER"); changeStatusIn(STATUS_HOVER); return; } - EWOL_WARNING("SET state : UP"); changeStatusIn(STATUS_UP); } diff --git a/ewol/widget/Container.cpp b/ewol/widget/Container.cpp index 1b344ae0..4a278555 100644 --- a/ewol/widget/Container.cpp +++ b/ewol/widget/Container.cpp @@ -82,10 +82,10 @@ void ewol::widget::Container::subWidgetUnLink() { std::shared_ptr ewol::widget::Container::getSubObjectNamed(const std::string& _objectName) { std::shared_ptr tmpObject = ewol::Widget::getSubObjectNamed(_objectName); - if (nullptr!=tmpObject) { + if (tmpObject != nullptr) { return tmpObject; } - if (nullptr != m_subWidget) { + if (m_subWidget != nullptr) { return m_subWidget->getSubObjectNamed(_objectName); } return nullptr; diff --git a/ewol/widget/ContainerN.cpp b/ewol/widget/ContainerN.cpp index 0174f5a8..2aa6c4ec 100644 --- a/ewol/widget/ContainerN.cpp +++ b/ewol/widget/ContainerN.cpp @@ -62,12 +62,9 @@ void ewol::widget::ContainerN::subWidgetReplace(const std::shared_ptrremoveParent(); it.reset(); - EWOL_WARNING("Set New"); if (_newWidget != nullptr) { - EWOL_WARNING("set parrent"); _newWidget->setParent(shared_from_this()); } it = _newWidget; diff --git a/ewol/widget/meta/SpinBase.cpp b/ewol/widget/meta/SpinBase.cpp index c5942212..85e77792 100644 --- a/ewol/widget/meta/SpinBase.cpp +++ b/ewol/widget/meta/SpinBase.cpp @@ -69,7 +69,6 @@ void ewol::widget::SpinBase::onPropertyChangeValue(const eproperty::Ref& _paramP void ewol::widget::SpinBase::updateGui() { - EWOL_WARNING("updateGui [START]"); subWidgetRemoveAll(); markToRedraw(); requestUpdateSize(); @@ -77,7 +76,7 @@ void ewol::widget::SpinBase::updateGui() { std::string shaper; if (m_config != nullptr) { shaper = m_config->getString(m_confIdEntryShaper); - EWOL_INFO("shaper entry : " << shaper); + EWOL_VERBOSE("shaper entry : " << shaper); } m_widgetEntry = ewol::widget::Entry::create("", shaper); if (m_widgetEntry != nullptr) { @@ -89,7 +88,7 @@ void ewol::widget::SpinBase::updateGui() { std::string shaper; if (m_config != nullptr) { shaper = m_config->getString(m_confIdDownShaper); - EWOL_INFO("shaper button DOWN : " << shaper); + EWOL_VERBOSE("shaper button DOWN : " << shaper); } m_widgetButtonDown = ewol::widget::Button::create(shaper); if (m_widgetButtonDown != nullptr) { @@ -104,7 +103,7 @@ void ewol::widget::SpinBase::updateGui() { std::string shaper; if (m_config != nullptr) { shaper = m_config->getString(m_confIdUpShaper); - EWOL_INFO("shaper button UP : " << shaper); + EWOL_VERBOSE("shaper button UP : " << shaper); } m_widgetButtonUp = ewol::widget::Button::create(shaper); if (m_widgetButtonUp != nullptr) { @@ -115,50 +114,34 @@ void ewol::widget::SpinBase::updateGui() { m_widgetButtonUp->setSubWidget(widget); } } - EWOL_INFO("add ...."); switch (propertySpinMode) { case ewol::widget::spinPosition_noneNone: - EWOL_INFO("add Entry"); subWidgetAdd(m_widgetEntry); break; case ewol::widget::spinPosition_noneRight: - EWOL_INFO("add Entry"); subWidgetAdd(m_widgetEntry); - EWOL_INFO("add Up"); subWidgetAdd(m_widgetButtonUp); break; case ewol::widget::spinPosition_leftNone: - EWOL_INFO("add Down"); subWidgetAdd(m_widgetButtonDown); - EWOL_INFO("add Entry"); subWidgetAdd(m_widgetEntry); break; case ewol::widget::spinPosition_leftRight: - EWOL_INFO("add Down"); subWidgetAdd(m_widgetButtonDown); - EWOL_INFO("add Entry"); subWidgetAdd(m_widgetEntry); - EWOL_INFO("add Up"); subWidgetAdd(m_widgetButtonUp); break; case ewol::widget::spinPosition_leftLeft: - EWOL_INFO("add Down"); subWidgetAdd(m_widgetButtonDown); - EWOL_INFO("add Up"); subWidgetAdd(m_widgetButtonUp); - EWOL_INFO("add Entry"); subWidgetAdd(m_widgetEntry); break; case ewol::widget::spinPosition_RightRight: - EWOL_INFO("add Entry"); subWidgetAdd(m_widgetEntry); - EWOL_INFO("add Down"); subWidgetAdd(m_widgetButtonDown); - EWOL_INFO("add Up"); subWidgetAdd(m_widgetButtonUp); break; } - EWOL_WARNING("updateGui [STOP]"); } bool ewol::widget::SpinBase::loadXML(const std::shared_ptr& _node) { diff --git a/lutin_ewol-tools-visual-test.py b/lutin_ewol-tools-visual-test.py index abec301e..ebaf1c32 100755 --- a/lutin_ewol-tools-visual-test.py +++ b/lutin_ewol-tools-visual-test.py @@ -31,7 +31,8 @@ def create(target, module_name): 'tools/visual_test/appl/debug.cpp', 'tools/visual_test/appl/init.cpp', 'tools/visual_test/appl/MainWindows.cpp', - 'tools/visual_test/appl/TestDistanceField.cpp' + 'tools/visual_test/appl/TestDistanceField.cpp', + 'tools/visual_test/appl/widget/SizerColor.cpp' ]) my_module.add_module_depend(['ewol']) diff --git a/tools/visual_test/appl/MainWindows.cpp b/tools/visual_test/appl/MainWindows.cpp index d43ccae9..96a9c5c4 100644 --- a/tools/visual_test/appl/MainWindows.cpp +++ b/tools/visual_test/appl/MainWindows.cpp @@ -56,8 +56,17 @@ void appl::MainWindows::init() { externSubBind(m_composer, ewol::widget::Button, "appl-next-gravity", signalPressed, shared_from_this(), &appl::MainWindows::onCallbackGravityChange); m_sizerVert = std::dynamic_pointer_cast(m_composer->getSubObjectNamed("appl-upper-test-widget")); + if (m_sizerVert == nullptr) { + APPL_CRITICAL("Can not get vertical pointer"); + } m_sizerDynamic = std::dynamic_pointer_cast(m_composer->getSubObjectNamed("appl-dynamic-config")); + if (m_sizerDynamic == nullptr) { + APPL_CRITICAL("Can not get dynamic pointer"); + } m_subWidget = std::dynamic_pointer_cast(m_composer->getSubObjectNamed("[TEST]TO-TEST")); + if (m_subWidget == nullptr) { + APPL_CRITICAL("Can not get subWidget pointer"); + } } void appl::MainWindows::onCallbackThemeChange(const bool& _value) { diff --git a/tools/visual_test/appl/init.cpp b/tools/visual_test/appl/init.cpp index 611ce5e9..12325f2f 100644 --- a/tools/visual_test/appl/init.cpp +++ b/tools/visual_test/appl/init.cpp @@ -16,6 +16,7 @@ #include #include +#include class MainApplication : public ewol::context::Application { public: @@ -48,6 +49,8 @@ class MainApplication : public ewol::context::Application { // set the application icon ... _context.setIcon("DATA:icon.png"); + appl::widget::SizerColor::createManagerWidget(_context.getWidgetManager()); + APPL_INFO("==> CREATE ... (END)"); } diff --git a/tools/visual_test/appl/widget/SizerColor.cpp b/tools/visual_test/appl/widget/SizerColor.cpp new file mode 100644 index 00000000..6c00b455 --- /dev/null +++ b/tools/visual_test/appl/widget/SizerColor.cpp @@ -0,0 +1,149 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license APACHE v2.0 (see license file) + */ + +#include +#include + +#undef __class__ +#define __class__ "SizerColor" + +appl::widget::SizerColor::SizerColor() : + m_borderColor(*this, "border-color", etk::color::none, "Color of the border"), + m_leftColor(*this, "color-left", etk::color::purple), + m_rightColor(*this, "color-right", etk::color::orange), + m_topColor(*this, "color-top", etk::color::cyan), + m_buttomColor(*this, "color-buttom", etk::color::brown) { + addObjectType("appl::widget::SizerColor"); +} + +void appl::widget::SizerColor::init(enum displayMode _mode) { + ewol::widget::Sizer::init(); +} + +appl::widget::SizerColor::~SizerColor() { + +} + +void appl::widget::SizerColor::onRegenerateDisplay() { + ewol::widget::Sizer::onRegenerateDisplay(); + m_draw.clear(); + vec2 tmpBorderSize = propertyBorderSize->getPixel(); + if (tmpBorderSize == vec2(0.0f, 0.0f)) { + return; + } + if (m_borderColor->a() == 0) { + return; + } + m_draw.setColor(m_borderColor); + m_draw.setPos(vec3(0, 0, 0) ); + m_draw.rectangleWidth(vec3(tmpBorderSize.x(), m_size.y(),0) ); + m_draw.setPos(vec3(m_size.x() - tmpBorderSize.x(), 0, 0) ); + m_draw.rectangleWidth(vec3(tmpBorderSize.x(), m_size.y(),0) ); + m_draw.setPos(vec3(tmpBorderSize.x(), 0, 0) ); + m_draw.rectangleWidth(vec3(m_size.x()-tmpBorderSize.x()*2.0f, tmpBorderSize.y(),0) ); + m_draw.setPos(vec3(tmpBorderSize.x(), m_size.y()-tmpBorderSize.y(), 0) ); + m_draw.rectangleWidth(vec3(m_size.x()-tmpBorderSize.x()*2.0f, tmpBorderSize.y(),0) ); + vec2 underSize(0,0); + vec2 underOrigin(999999999999.0,999999999999.0); + for (auto &it : m_subWidget) { + if (it == nullptr) { + continue; + } + vec2 size = it->getSize(); + if (propertyMode == ewol::widget::Sizer::modeVert) { + underSize += vec2(0.0f, size.y()); + underSize.setX(std::max(underSize.x(), size.x())); + } else { + underSize += vec2(size.x(), 0.0f); + underSize.setY(std::max(underSize.y(), size.y())); + } + underOrigin.setX(std::min(it->getOrigin().x(), underOrigin.x())); + underOrigin.setY(std::min(it->getOrigin().y(), underOrigin.y())); + } + vec2 localWidgetSize = m_size - tmpBorderSize*2.0f; + vec2 localWidgetOrigin = m_origin + tmpBorderSize; + for (auto &it : m_subWidget) { + if (it == nullptr) { + continue; + } + vec2 origin = it->getOrigin(); + vec2 size = it->getSize(); + // now we display around the widget every element needed + if (propertyMode == ewol::widget::Sizer::modeHori) { + if (size.y() < localWidgetSize.y()) { + // under + if ((uint32_t(propertyGravity) & uint32_t(ewol::gravity_buttom)) == 0) { + m_draw.setColor(m_buttomColor); + m_draw.setPos(vec2(origin.x(), localWidgetOrigin.y()) - m_origin); + m_draw.rectangleWidth(vec2(it->getSize().x(), origin.y()-localWidgetOrigin.y()) ); + } + // upper + if ((uint32_t(propertyGravity) & uint32_t(ewol::gravity_top)) == 0) { + m_draw.setColor(m_topColor); + float startDraw = origin.y()+it->getSize().y() - m_origin.y(); + m_draw.setPos(vec2(origin.x()-m_origin.x(), startDraw)); + m_draw.rectangleWidth(vec2(it->getSize().x(), localWidgetSize.y()-startDraw+tmpBorderSize.y()) ); + } + } + } else { + if (size.x() < localWidgetSize.x()) { + // left + if ((uint32_t(propertyGravity) & uint32_t(ewol::gravity_left)) == 0) { + m_draw.setColor(m_leftColor); + m_draw.setPos(vec2(localWidgetOrigin.x(), origin.y()) - m_origin); + m_draw.rectangleWidth(vec2(origin.x()-localWidgetOrigin.x(), it->getSize().y()) ); + } + // right + if ((uint32_t(propertyGravity) & uint32_t(ewol::gravity_right)) == 0) { + m_draw.setColor(m_rightColor); + float startDraw = origin.x()+it->getSize().x() - m_origin.x(); + m_draw.setPos(vec2(startDraw, origin.y()-m_origin.y())); + m_draw.rectangleWidth(vec2(localWidgetSize.x()-startDraw+tmpBorderSize.x(), it->getSize().y()) ); + } + } + } + } + // now we do the rest of the sizer: + if (propertyMode == ewol::widget::Sizer::modeHori) { + if (underSize.x() < localWidgetSize.x()) { + // left + if ((uint32_t(propertyGravity) & uint32_t(ewol::gravity_left)) == 0) { + m_draw.setColor(m_leftColor); + m_draw.setPos(localWidgetOrigin - m_origin); + m_draw.rectangleWidth(vec2(underOrigin.x()-localWidgetOrigin.x(), localWidgetSize.y()) ); + } + // right + if ((uint32_t(propertyGravity) & uint32_t(ewol::gravity_right)) == 0) { + m_draw.setColor(m_rightColor); + float startDraw = underOrigin.x() + underSize.x() - m_origin.x(); + m_draw.setPos(vec2(startDraw, localWidgetOrigin.y()-m_origin.y())); + m_draw.rectangleWidth(vec2(localWidgetSize.x()-startDraw+tmpBorderSize.x(), localWidgetSize.y()) ); + } + } + } else { + if (underSize.y() < localWidgetSize.y()) { + // under + if ((uint32_t(propertyGravity) & uint32_t(ewol::gravity_buttom)) == 0) { + m_draw.setColor(m_buttomColor); + m_draw.setPos(localWidgetOrigin - m_origin); + m_draw.rectangleWidth(vec2(localWidgetSize.x(), underOrigin.y()-localWidgetOrigin.y()) ); + } + // upper + if ((uint32_t(propertyGravity) & uint32_t(ewol::gravity_top)) == 0) { + m_draw.setColor(m_topColor); + float startDraw = underOrigin.y() + underSize.y() - m_origin.y(); + m_draw.setPos(vec2(localWidgetOrigin.x()-m_origin.x(), startDraw)); + m_draw.rectangleWidth(vec2(localWidgetSize.x(), localWidgetSize.y()-startDraw+tmpBorderSize.y()) ); + } + } + } +} +void appl::widget::SizerColor::onDraw() { + m_draw.draw(); + ewol::widget::Sizer::onDraw(); +} diff --git a/tools/visual_test/appl/widget/SizerColor.h b/tools/visual_test/appl/widget/SizerColor.h new file mode 100644 index 00000000..bebb439f --- /dev/null +++ b/tools/visual_test/appl/widget/SizerColor.h @@ -0,0 +1,50 @@ +/** + * @author Edouard DUPIN + * + * @copyright 2011, Edouard DUPIN, all right reserved + * + * @license APACHE v2.0 (see license file) + */ +#pragma once + +#include +#include +#include +#include + +namespace appl { + namespace widget { + class SizerColor : public ewol::widget::Sizer { + public: + /** + * @brief Main call of recording the widget on the List of "widget named creator" + */ + static void init(ewol::widget::Manager& _widgetManager); + protected: + /** + * @brief Constructor + * @param[in] _mode The mode to display the elements + */ + SizerColor(); + void init(enum displayMode _mode=ewol::widget::Sizer::modeHori); + public: + DECLARE_WIDGET_FACTORY(SizerColor, "SizerColor"); + /** + * @brief Desstructor + */ + virtual ~SizerColor(); + private: + eproperty::Value> m_borderColor; //!< Border color. + eproperty::Value> m_leftColor; //!< Left color. + eproperty::Value> m_rightColor; //!< Right color. + eproperty::Value> m_topColor; //!< Top color. + eproperty::Value> m_buttomColor; //!< Buttom color. + private: + ewol::compositing::Drawing m_draw; //!< Compositing drawing element for display the border. + public: + virtual void onRegenerateDisplay(); + virtual void onDraw(); + }; + } +} +