diff --git a/ewol/widget/Sizer.cpp b/ewol/widget/Sizer.cpp
index b6000b09..c042c786 100644
--- a/ewol/widget/Sizer.cpp
+++ b/ewol/widget/Sizer.cpp
@@ -271,7 +271,7 @@ void ewol::widget::Sizer::onRegenerateDisplay() {
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(0,0);
+ vec2 underOrigin(999999999999.0,999999999999.0);
for (auto &it : m_subWidget) {
if (it == nullptr) {
continue;
@@ -297,7 +297,7 @@ void ewol::widget::Sizer::onRegenerateDisplay() {
vec2 size = it->getSize();
// now we display around the widget every element needed
if (m_mode == ewol::widget::Sizer::modeHori) {
- if (size.x() < localWidgetSize.x()) {
+ if (size.y() < localWidgetSize.y()) {
// under
if ((uint32_t(m_gravity) & uint32_t(ewol::gravity_buttom)) == 0) {
m_draw.setColor(etk::Color<>(0xFF, 0xFF, 0x00, 0xA0));
@@ -309,10 +309,9 @@ void ewol::widget::Sizer::onRegenerateDisplay() {
m_draw.setColor(etk::color::orange);
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().y(), localWidgetSize.y()-startDraw+tmpBorderSize.y()) );
+ m_draw.rectangleWidth(vec2(it->getSize().x(), localWidgetSize.y()-startDraw+tmpBorderSize.y()) );
}
}
- // TODO : Do left and right
} else {
if (size.x() < localWidgetSize.x()) {
// left
@@ -329,7 +328,40 @@ void ewol::widget::Sizer::onRegenerateDisplay() {
m_draw.rectangleWidth(vec2(localWidgetSize.x()-startDraw+tmpBorderSize.x(), it->getSize().y()) );
}
}
- // TODO : Do up and down
+ }
+ }
+ // now we do the rest of the sizer:
+ if (m_mode == ewol::widget::Sizer::modeHori) {
+ if (underSize.x() < localWidgetSize.x()) {
+ // left
+ if ((uint32_t(m_gravity) & uint32_t(ewol::gravity_left)) == 0) {
+ m_draw.setColor(etk::color::purple);
+ m_draw.setPos(localWidgetOrigin - m_origin);
+ m_draw.rectangleWidth(vec2(underOrigin.x()-localWidgetOrigin.x(), localWidgetSize.y()) );
+ }
+ // right
+ if ((uint32_t(m_gravity) & uint32_t(ewol::gravity_right)) == 0) {
+ m_draw.setColor(etk::color::cyan);
+ 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(m_gravity) & uint32_t(ewol::gravity_buttom)) == 0) {
+ m_draw.setColor(etk::color::purple);
+ m_draw.setPos(localWidgetOrigin - m_origin);
+ m_draw.rectangleWidth(vec2(localWidgetSize.x(), underOrigin.y()-localWidgetOrigin.y()) );
+ }
+ // upper
+ if ((uint32_t(m_gravity) & uint32_t(ewol::gravity_top)) == 0) {
+ m_draw.setColor(etk::color::cyan);
+ 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()) );
+ }
}
}
}
diff --git a/tools/visual_test/data/gui.xml b/tools/visual_test/data/gui.xml
index cd2996b6..dbe7e4f5 100644
--- a/tools/visual_test/data/gui.xml
+++ b/tools/visual_test/data/gui.xml
@@ -44,18 +44,19 @@
-
-
+
+ -->