From fa0ef8e26cfcccd40a24249b814f98482ce0ae03 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Wed, 3 Feb 2016 21:15:07 +0100 Subject: [PATCH] [DEV] try to correct sizer error --- ewol/context/Context.cpp | 2 +- ewol/widget/Button.cpp | 4 ++-- ewol/widget/Button.h | 2 +- ewol/widget/CheckBox.cpp | 4 ++-- ewol/widget/CheckBox.h | 2 +- ewol/widget/Container.cpp | 8 ++++---- ewol/widget/Container.h | 2 +- ewol/widget/Container2.cpp | 6 +++--- ewol/widget/Container2.h | 6 +++--- ewol/widget/ContainerN.cpp | 6 +++--- ewol/widget/ContainerN.h | 2 +- ewol/widget/ContextMenu.cpp | 4 ++-- ewol/widget/ContextMenu.h | 2 +- ewol/widget/Gird.cpp | 4 ++-- ewol/widget/Gird.h | 2 +- ewol/widget/PopUp.cpp | 4 ++-- ewol/widget/PopUp.h | 2 +- ewol/widget/Sizer.cpp | 10 +++++----- ewol/widget/Sizer.h | 2 +- ewol/widget/WSlider.cpp | 12 ++++++------ ewol/widget/WSlider.h | 2 +- ewol/widget/Widget.cpp | 3 ++- ewol/widget/Widget.h | 2 +- ewol/widget/Windows.cpp | 12 ++++++------ ewol/widget/Windows.h | 2 +- tools/visual_test/data/gui.xml | 8 ++++++-- 26 files changed, 60 insertions(+), 55 deletions(-) diff --git a/ewol/context/Context.cpp b/ewol/context/Context.cpp index fc2755e3..9cd827f4 100644 --- a/ewol/context/Context.cpp +++ b/ewol/context/Context.cpp @@ -461,7 +461,7 @@ void ewol::Context::forceRedrawAll() { } ivec2 size = getSize(); m_windowsCurrent->setSize(vec2(size.x(), size.y())); - m_windowsCurrent->onSizeChange(); + m_windowsCurrent->onChangeSize(); } /* void ewol::Context::OS_Stop() { diff --git a/ewol/widget/Button.cpp b/ewol/widget/Button.cpp index e6c5d831..44d5b326 100644 --- a/ewol/widget/Button.cpp +++ b/ewol/widget/Button.cpp @@ -62,9 +62,9 @@ ewol::widget::Button::~Button() { } -void ewol::widget::Button::onSizeChange() { +void ewol::widget::Button::onChangeSize() { ewol::Padding padding = m_shaper->getPadding(); - ewol::Padding ret = onSizeChangePadded(padding); + ewol::Padding ret = onChangeSizePadded(padding); //EWOL_DEBUG(" configuring : origin=" << origin << " size=" << subElementSize << ""); m_selectableAreaPos = vec2(ret.xLeft(), ret.yButtom()); m_selectableAreaSize = m_size - (m_selectableAreaPos + vec2(ret.xRight(), ret.yTop())); diff --git a/ewol/widget/Button.h b/ewol/widget/Button.h index 95d0b8db..0bd6b40c 100644 --- a/ewol/widget/Button.h +++ b/ewol/widget/Button.h @@ -152,7 +152,7 @@ namespace ewol { virtual void onParameterChangeValue(const ewol::parameter::Ref& _paramPointer); public: // Derived function virtual void calculateMinMaxSize(); - virtual void onSizeChange(); + virtual void onChangeSize(); virtual void onRegenerateDisplay(); virtual bool onEventInput(const ewol::event::Input& _event); virtual bool onEventEntry(const ewol::event::Entry& _event); diff --git a/ewol/widget/CheckBox.cpp b/ewol/widget/CheckBox.cpp index 8d23c339..18179a96 100644 --- a/ewol/widget/CheckBox.cpp +++ b/ewol/widget/CheckBox.cpp @@ -55,11 +55,11 @@ ewol::widget::CheckBox::~CheckBox() { } -void ewol::widget::CheckBox::onSizeChange() { +void ewol::widget::CheckBox::onChangeSize() { ewol::Padding padding = m_shaper->getPadding(); float boxSize = m_shaper->getConfigNumber(m_shaperIdSize); padding.setXLeft(padding.xLeft()*2.0f + boxSize); - ewol::Padding ret = onSizeChangePadded(padding); + ewol::Padding ret = onChangeSizePadded(padding); EWOL_DEBUG(" configuring : padding=" << padding << " boxSize=" << boxSize << ""); m_selectableAreaPos = vec2(ret.xLeft()/*-boxSize*/, ret.yButtom()); m_selectableAreaSize = m_size - (m_selectableAreaPos + vec2(ret.xRight(), ret.yTop())); diff --git a/ewol/widget/CheckBox.h b/ewol/widget/CheckBox.h index aad1c4ea..ade91c59 100644 --- a/ewol/widget/CheckBox.h +++ b/ewol/widget/CheckBox.h @@ -88,7 +88,7 @@ namespace ewol { virtual void onParameterChangeValue(const ewol::parameter::Ref& _paramPointer); public: // Derived function virtual void calculateMinMaxSize(); - virtual void onSizeChange(); + virtual void onChangeSize(); virtual void onRegenerateDisplay(); virtual bool onEventInput(const ewol::event::Input& _event); virtual bool onEventEntry(const ewol::event::Entry& _event); diff --git a/ewol/widget/Container.cpp b/ewol/widget/Container.cpp index 56d867e5..6de99c8a 100644 --- a/ewol/widget/Container.cpp +++ b/ewol/widget/Container.cpp @@ -104,8 +104,8 @@ void ewol::widget::Container::systemDraw(const ewol::DrawProperty& _displayProp) } } -void ewol::widget::Container::onSizeChange() { - ewol::Widget::onSizeChange(); +void ewol::widget::Container::onChangeSize() { + ewol::Widget::onChangeSize(); if (m_subWidget == nullptr) { return; } @@ -130,7 +130,7 @@ void ewol::widget::Container::onSizeChange() { } m_subWidget->setOrigin(origin); m_subWidget->setSize(m_size); - m_subWidget->onSizeChange(); + m_subWidget->onChangeSize(); } void ewol::widget::Container::calculateMinMaxSize() { @@ -205,7 +205,7 @@ void ewol::widget::Container::setOffset(const vec2& _newVal) { if (m_offset != _newVal) { ewol::Widget::setOffset(_newVal); // recalculate the new sise and position of sub widget ... - onSizeChange(); + onChangeSize(); } } diff --git a/ewol/widget/Container.h b/ewol/widget/Container.h index c559b425..1dcd4865 100644 --- a/ewol/widget/Container.h +++ b/ewol/widget/Container.h @@ -60,7 +60,7 @@ namespace ewol { public: // Derived function virtual void systemDraw(const ewol::DrawProperty& _displayProp); virtual void onRegenerateDisplay(); - virtual void onSizeChange(); + virtual void onChangeSize(); virtual void calculateMinMaxSize(); virtual std::shared_ptr getWidgetAtPos(const vec2& _pos); virtual std::shared_ptr getSubObjectNamed(const std::string& _objectName); diff --git a/ewol/widget/Container2.cpp b/ewol/widget/Container2.cpp index 8c7fcddc..91a5d2a5 100644 --- a/ewol/widget/Container2.cpp +++ b/ewol/widget/Container2.cpp @@ -114,8 +114,8 @@ void ewol::widget::Container2::systemDraw(const ewol::DrawProperty& _displayProp } } -ewol::Padding ewol::widget::Container2::onSizeChangePadded(const ewol::Padding& _padding) { - ewol::Widget::onSizeChange(); +ewol::Padding ewol::widget::Container2::onChangeSizePadded(const ewol::Padding& _padding) { + ewol::Widget::onChangeSize(); vec2 localAvaillable = m_size - vec2(_padding.x(), _padding.y()); // Checkin the filling properties == > for the subElements: vec2 subElementSize = m_minSize; @@ -150,7 +150,7 @@ ewol::Padding ewol::widget::Container2::onSizeChangePadded(const ewol::Padding& } m_subWidget[iii]->setOrigin(m_origin + origin); m_subWidget[iii]->setSize(subElementSize); - m_subWidget[iii]->onSizeChange(); + m_subWidget[iii]->onChangeSize(); } } vec2 selectableAreaPos = origin-vec2(_padding.xLeft(), _padding.yButtom()); diff --git a/ewol/widget/Container2.h b/ewol/widget/Container2.h index e66ae2b6..3544d957 100644 --- a/ewol/widget/Container2.h +++ b/ewol/widget/Container2.h @@ -126,7 +126,7 @@ namespace ewol { * @param[in] _padding Padding of the widget. * @note : INTERNAL EWOL SYSTEM */ - virtual ewol::Padding onSizeChangePadded(const ewol::Padding& _padding = ewol::Padding(0,0,0,0)); + virtual ewol::Padding onChangeSizePadded(const ewol::Padding& _padding = ewol::Padding(0,0,0,0)); /** * @brief calculate the minimum and maximum size (need to estimate expend properties of the widget) * @param[in] _padding Padding of the widget. @@ -158,8 +158,8 @@ namespace ewol { public: // Derived function virtual void systemDraw(const ewol::DrawProperty& _displayProp); virtual void onRegenerateDisplay(); - virtual void onSizeChange() { - onSizeChangePadded(); + virtual void onChangeSize() { + onChangeSizePadded(); } virtual void calculateMinMaxSize() { calculateMinMaxSizePadded(); diff --git a/ewol/widget/ContainerN.cpp b/ewol/widget/ContainerN.cpp index 97cd8e71..bfe58a9d 100644 --- a/ewol/widget/ContainerN.cpp +++ b/ewol/widget/ContainerN.cpp @@ -195,14 +195,14 @@ void ewol::widget::ContainerN::systemDraw(const ewol::DrawProperty& _displayProp } } -void ewol::widget::ContainerN::onSizeChange() { +void ewol::widget::ContainerN::onChangeSize() { for (auto &it : m_subWidget) { if (it == nullptr) { continue; } it->setOrigin(m_origin+m_offset); it->setSize(m_size); - it->onSizeChange(); + it->onChangeSize(); } } @@ -317,7 +317,7 @@ void ewol::widget::ContainerN::setOffset(const vec2& _newVal) { if (m_offset != _newVal) { ewol::Widget::setOffset(_newVal); // recalculate the new sise and position of sub widget ... - onSizeChange(); + onChangeSize(); } } diff --git a/ewol/widget/ContainerN.h b/ewol/widget/ContainerN.h index a2386f09..832de4bf 100644 --- a/ewol/widget/ContainerN.h +++ b/ewol/widget/ContainerN.h @@ -96,7 +96,7 @@ namespace ewol { public:// Derived function virtual void systemDraw(const ewol::DrawProperty& _displayProp); virtual void onRegenerateDisplay(); - virtual void onSizeChange(); + virtual void onChangeSize(); virtual void calculateMinMaxSize(); virtual std::shared_ptr getWidgetAtPos(const vec2& _pos); virtual std::shared_ptr getSubObjectNamed(const std::string& _objectName); diff --git a/ewol/widget/ContextMenu.cpp b/ewol/widget/ContextMenu.cpp index ad374ba8..e62b67a3 100644 --- a/ewol/widget/ContextMenu.cpp +++ b/ewol/widget/ContextMenu.cpp @@ -49,7 +49,7 @@ ewol::widget::ContextMenu::~ContextMenu() { } -void ewol::widget::ContextMenu::onSizeChange() { +void ewol::widget::ContextMenu::onChangeSize() { // pop-up fill all the display : ewol::Padding padding = m_shaper->getPadding(); EWOL_VERBOSE("our origin=" << m_origin << " size=" << m_size); @@ -109,7 +109,7 @@ void ewol::widget::ContextMenu::onSizeChange() { EWOL_VERBOSE(" == > sub origin=" << subWidgetOrigin << " size=" << subWidgetSize); m_subWidget->setOrigin(subWidgetOrigin); m_subWidget->setSize(subWidgetSize); - m_subWidget->onSizeChange(); + m_subWidget->onChangeSize(); } markToRedraw(); } diff --git a/ewol/widget/ContextMenu.h b/ewol/widget/ContextMenu.h index 925bc257..0ff93a39 100644 --- a/ewol/widget/ContextMenu.h +++ b/ewol/widget/ContextMenu.h @@ -65,7 +65,7 @@ namespace ewol { public: // Derived function virtual void onRegenerateDisplay(); virtual bool onEventInput(const ewol::event::Input& _event); - virtual void onSizeChange(); + virtual void onChangeSize(); virtual void calculateMinMaxSize(); virtual std::shared_ptr getWidgetAtPos(const vec2& _pos); }; diff --git a/ewol/widget/Gird.cpp b/ewol/widget/Gird.cpp index 1a385f51..0d05ea1e 100644 --- a/ewol/widget/Gird.cpp +++ b/ewol/widget/Gird.cpp @@ -47,7 +47,7 @@ void ewol::widget::Gird::setBorderSize(const ivec2& _newBorderSize) { requestUpdateSize(); } -void ewol::widget::Gird::onSizeChange() { +void ewol::widget::Gird::onChangeSize() { //EWOL_DEBUG("Update size"); m_size -= m_borderSize*2; @@ -77,7 +77,7 @@ void ewol::widget::Gird::onSizeChange() { m_subWidget[iii].widget->setOrigin(vec2ClipInt32(tmpOrigin)); // all time set oll the space . m_subWidget[iii].widget->setSize(vec2ClipInt32(vec2(abs(m_sizeCol[m_subWidget[iii].col]), m_uniformSizeRow))); - m_subWidget[iii].widget->onSizeChange(); + m_subWidget[iii].widget->onChangeSize(); } } m_size += m_borderSize*2; diff --git a/ewol/widget/Gird.h b/ewol/widget/Gird.h index fc17c9bc..285374df 100644 --- a/ewol/widget/Gird.h +++ b/ewol/widget/Gird.h @@ -138,7 +138,7 @@ namespace ewol { virtual void systemDraw(const ewol::DrawProperty& _displayProp); virtual void onRegenerateDisplay(); virtual std::shared_ptr getWidgetAtPos(const vec2& pos); - virtual void onSizeChange(); + virtual void onChangeSize(); virtual void calculateMinMaxSize(); }; }; diff --git a/ewol/widget/PopUp.cpp b/ewol/widget/PopUp.cpp index 0ae751a8..ea36c003 100644 --- a/ewol/widget/PopUp.cpp +++ b/ewol/widget/PopUp.cpp @@ -43,7 +43,7 @@ void ewol::widget::PopUp::setShaperName(const std::string& _shaperName) { markToRedraw(); } -void ewol::widget::PopUp::onSizeChange() { +void ewol::widget::PopUp::onChangeSize() { markToRedraw(); if (nullptr == m_subWidget) { return; @@ -75,7 +75,7 @@ void ewol::widget::PopUp::onSizeChange() { m_subWidget->setOrigin(subWidgetOrigin); m_subWidget->setSize(subWidgetSize); - m_subWidget->onSizeChange(); + m_subWidget->onChangeSize(); } void ewol::widget::PopUp::systemDraw(const ewol::DrawProperty& _displayProp) { diff --git a/ewol/widget/PopUp.h b/ewol/widget/PopUp.h index 1b07cf8a..1810e406 100644 --- a/ewol/widget/PopUp.h +++ b/ewol/widget/PopUp.h @@ -75,7 +75,7 @@ namespace ewol { virtual void periodicCall(const ewol::event::Time& _event); virtual void systemDraw(const ewol::DrawProperty& _displayProp); virtual void onRegenerateDisplay(); - virtual void onSizeChange(); + virtual void onChangeSize(); virtual bool onEventInput(const ewol::event::Input& _event); virtual std::shared_ptr getWidgetAtPos(const vec2& _pos); protected: diff --git a/ewol/widget/Sizer.cpp b/ewol/widget/Sizer.cpp index 641fa8cd..343a77b4 100644 --- a/ewol/widget/Sizer.cpp +++ b/ewol/widget/Sizer.cpp @@ -37,8 +37,8 @@ ewol::widget::Sizer::~Sizer() { } -void ewol::widget::Sizer::onSizeChange() { - ewol::Widget::onSizeChange(); +void ewol::widget::Sizer::onChangeSize() { + ewol::Widget::onChangeSize(); vec2 tmpBorderSize = m_borderSize->getPixel(); EWOL_VERBOSE("[" << getId() << "] update size : " << m_size << " nbElement : " << m_subWidget.size() << " borderSize=" << tmpBorderSize << " from border=" << m_borderSize); vec2 localWidgetSize = m_size - tmpBorderSize*2.0f; @@ -107,7 +107,7 @@ void ewol::widget::Sizer::onSizeChange() { tmpSizeMin.setY(sizeExpand); } if (it->canExpand().x() == true) { - float sizeExpand = std::avg(tmpSizeMin.x(), minSize.x(), tmpSizeMax.x()); + float sizeExpand = std::avg(tmpSizeMin.x(), localWidgetSize.x(), tmpSizeMax.x()); tmpSizeMin.setX(sizeExpand); } it->setSize(tmpSizeMin); @@ -122,7 +122,7 @@ void ewol::widget::Sizer::onSizeChange() { tmpSizeMin.setX(sizeExpand); } if (it->canExpand().y() == true) { - float sizeExpand = std::avg(tmpSizeMin.y(), minSize.y(), tmpSizeMax.y()); + float sizeExpand = std::avg(tmpSizeMin.y(), localWidgetSize.y(), tmpSizeMax.y()); tmpSizeMin.setY(sizeExpand); } it->setSize(tmpSizeMin); @@ -165,7 +165,7 @@ void ewol::widget::Sizer::onSizeChange() { if (it == nullptr) { continue; } - it->onSizeChange(); + it->onChangeSize(); } markToRedraw(); } diff --git a/ewol/widget/Sizer.h b/ewol/widget/Sizer.h index e77f07f0..d21357a1 100644 --- a/ewol/widget/Sizer.h +++ b/ewol/widget/Sizer.h @@ -139,7 +139,7 @@ namespace ewol { private: ewol::compositing::Drawing m_draw; //!< Compositing drawing element for display the border. public: // Derived function - virtual void onSizeChange(); + virtual void onChangeSize(); virtual void calculateMinMaxSize(); // overwrite the set fuction to start annimations ... virtual int32_t subWidgetAdd(std::shared_ptr _newWidget); diff --git a/ewol/widget/WSlider.cpp b/ewol/widget/WSlider.cpp index 18ae53c2..3faaf356 100644 --- a/ewol/widget/WSlider.cpp +++ b/ewol/widget/WSlider.cpp @@ -43,8 +43,8 @@ ewol::widget::WSlider::~WSlider() { } -void ewol::widget::WSlider::onSizeChange() { - ewol::widget::ContainerN::onSizeChange(); +void ewol::widget::WSlider::onChangeSize() { + ewol::widget::ContainerN::onChangeSize(); if (m_windowsDestination == m_windowsSources) { auto it = m_subWidget.begin(); std::advance(it, m_windowsDestination); @@ -52,7 +52,7 @@ void ewol::widget::WSlider::onSizeChange() { && *it != nullptr) { (*it)->setOrigin(m_origin+m_offset); (*it)->setSize(m_size); - (*it)->onSizeChange(); + (*it)->onChangeSize(); } } else { float factor = -1.0f; @@ -73,7 +73,7 @@ void ewol::widget::WSlider::onSizeChange() { + m_offset); } (*it)->setSize(m_size); - (*it)->onSizeChange(); + (*it)->onChangeSize(); } it = m_subWidget.begin(); std::advance(it, m_windowsDestination); @@ -89,7 +89,7 @@ void ewol::widget::WSlider::onSizeChange() { + m_offset); } (*it)->setSize(m_size); - (*it)->onSizeChange(); + (*it)->onChangeSize(); } } markToRedraw(); @@ -205,7 +205,7 @@ void ewol::widget::WSlider::periodicCall(const ewol::event::Time& _event) { m_slidingProgress += _event.getDeltaCall()/m_transitionSpeed; m_slidingProgress = std::avg(0.0f, m_slidingProgress, 1.0f); } - onSizeChange(); + onChangeSize(); } void ewol::widget::WSlider::systemDraw(const ewol::DrawProperty& _displayProp) { diff --git a/ewol/widget/WSlider.h b/ewol/widget/WSlider.h index 3f771d66..a850608b 100644 --- a/ewol/widget/WSlider.h +++ b/ewol/widget/WSlider.h @@ -99,7 +99,7 @@ namespace ewol { return m_transitionSlide; }; public: // Derived function - virtual void onSizeChange(); + virtual void onChangeSize(); virtual void systemDraw(const ewol::DrawProperty& _displayProp); virtual void onRegenerateDisplay(); virtual std::shared_ptr getWidgetAtPos(const vec2& _pos); diff --git a/ewol/widget/Widget.cpp b/ewol/widget/Widget.cpp index e5e0cf96..ad295f93 100644 --- a/ewol/widget/Widget.cpp +++ b/ewol/widget/Widget.cpp @@ -146,7 +146,8 @@ ewol::Widget::~Widget() { shortCutClean(); } -void ewol::Widget::onSizeChange() { +void ewol::Widget::onChangeSize() { + EWOL_VERBOSE("[" << getId() << "] {" << getObjectType() << "} update size : " << m_size); markToRedraw(); } diff --git a/ewol/widget/Widget.h b/ewol/widget/Widget.h index e5d88f5c..f3b450f5 100644 --- a/ewol/widget/Widget.h +++ b/ewol/widget/Widget.h @@ -151,7 +151,7 @@ namespace ewol { * @brief Parent have set the size and the origin. the container need to update the subwidget property * @note : INTERNAL EWOL SYSTEM */ - virtual void onSizeChange(); + virtual void onChangeSize(); virtual void calculateSize() {}; /** * @brief get the widget size diff --git a/ewol/widget/Windows.cpp b/ewol/widget/Windows.cpp index 0d85db29..f4b73fd3 100644 --- a/ewol/widget/Windows.cpp +++ b/ewol/widget/Windows.cpp @@ -41,21 +41,21 @@ ewol::widget::Windows::~Windows() { m_popUpWidgetList.clear(); } -void ewol::widget::Windows::onSizeChange() { - ewol::Widget::onSizeChange(); +void ewol::widget::Windows::onChangeSize() { + ewol::Widget::onChangeSize(); if (m_subWidget != nullptr) { m_subWidget->calculateMinMaxSize(); // TODO : do it better ... and manage gravity ... m_subWidget->setSize(m_size); m_subWidget->setOrigin(vec2(0.0f, 0.0f)); - m_subWidget->onSizeChange(); + m_subWidget->onChangeSize(); } for (auto &it : m_popUpWidgetList) { if(it != nullptr) { it->calculateMinMaxSize(); it->setSize(m_size); it->setOrigin(vec2(0.0f, 0.0f)); - it->onSizeChange(); + it->onChangeSize(); } } } @@ -172,7 +172,7 @@ void ewol::widget::Windows::setSubWidget(std::shared_ptr _widget) } // Regenerate the size calculation : - onSizeChange(); + onChangeSize(); } void ewol::widget::Windows::popUpWidgetPush(std::shared_ptr _widget) { @@ -186,7 +186,7 @@ void ewol::widget::Windows::popUpWidgetPush(std::shared_ptr _widge // force the focus on the basic widget ==> this remove many time the virual keyboard area _widget->keepFocus(); // Regenerate the size calculation : - onSizeChange(); + onChangeSize(); // TODO : it is dangerous to access directly to the system ... getContext().resetIOEvent(); } diff --git a/ewol/widget/Windows.h b/ewol/widget/Windows.h index a6a34bb5..bfc1b691 100644 --- a/ewol/widget/Windows.h +++ b/ewol/widget/Windows.h @@ -77,7 +77,7 @@ namespace ewol { virtual void systemDraw(const ewol::DrawProperty& _displayProp); public: // Derived function virtual void onRegenerateDisplay(); - virtual void onSizeChange(); + virtual void onChangeSize(); virtual std::shared_ptr getWidgetAtPos(const vec2& _pos); virtual void requestDestroyFromChild(const std::shared_ptr& _child); virtual std::shared_ptr getSubObjectNamed(const std::string& _objectName); diff --git a/tools/visual_test/data/gui.xml b/tools/visual_test/data/gui.xml index a9951c3b..738228c5 100644 --- a/tools/visual_test/data/gui.xml +++ b/tools/visual_test/data/gui.xml @@ -1,10 +1,14 @@ + fill="true,true" + border="10px" + border-color="#F008"> - + + +