[DEV] extract the coloring of the sizer widget
This commit is contained in:
parent
19989a475a
commit
6e2fdccb98
@ -16,7 +16,6 @@
|
||||
ewol::widget::Sizer::Sizer() :
|
||||
m_mode(*this, "mode", modeHori, "The display mode"),
|
||||
m_borderSize(*this, "border", vec2(0,0), "The sizer border size"),
|
||||
m_borderColor(*this, "border-color", etk::color::none, "Color of the border"),
|
||||
m_animation(animationNone),
|
||||
m_animationTime(0) {
|
||||
addObjectType("ewol::widget::Sizer");
|
||||
@ -251,125 +250,6 @@ void ewol::widget::Sizer::calculateMinMaxSize() {
|
||||
//EWOL_ERROR("[" << getId() << "] {" << getObjectType() << "} Result min size : " << m_minSize);
|
||||
}
|
||||
|
||||
void ewol::widget::Sizer::onRegenerateDisplay() {
|
||||
ewol::widget::ContainerN::onRegenerateDisplay();
|
||||
m_draw.clear();
|
||||
vec2 tmpBorderSize = m_borderSize->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 (m_mode == 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 (m_mode == ewol::widget::Sizer::modeHori) {
|
||||
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));
|
||||
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(m_gravity) & uint32_t(ewol::gravity_top)) == 0) {
|
||||
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().x(), localWidgetSize.y()-startDraw+tmpBorderSize.y()) );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (size.x() < localWidgetSize.x()) {
|
||||
// left
|
||||
if ((uint32_t(m_gravity) & uint32_t(ewol::gravity_left)) == 0) {
|
||||
m_draw.setColor(etk::Color<>(0xFF, 0xFF, 0x00, 0xA0));
|
||||
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(m_gravity) & uint32_t(ewol::gravity_right)) == 0) {
|
||||
m_draw.setColor(etk::color::orange);
|
||||
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 (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()) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void ewol::widget::Sizer::onDraw() {
|
||||
m_draw.draw();
|
||||
ewol::widget::ContainerN::onDraw();
|
||||
}
|
||||
|
||||
int32_t ewol::widget::Sizer::subWidgetAdd(std::shared_ptr<ewol::Widget> _newWidget) {
|
||||
if (m_animation == animationNone) {
|
||||
return ewol::widget::ContainerN::subWidgetAdd(_newWidget);
|
||||
|
@ -30,7 +30,7 @@ namespace ewol {
|
||||
modeVert, //!< Vertical mode
|
||||
modeHori, //!< Horizontal mode
|
||||
};
|
||||
private:
|
||||
protected:
|
||||
ewol::parameter::List<enum displayMode> m_mode; //!< Methode to display the widget list (vert/hory ...)
|
||||
protected:
|
||||
/**
|
||||
@ -59,7 +59,7 @@ namespace ewol {
|
||||
enum displayMode getMode() const {
|
||||
return m_mode;
|
||||
}
|
||||
private:
|
||||
protected:
|
||||
ewol::parameter::Value<gale::Dimension> m_borderSize; //!< Border size needed for all the display
|
||||
public:
|
||||
/**
|
||||
@ -76,23 +76,6 @@ namespace ewol {
|
||||
const gale::Dimension& getBorderSize() const {
|
||||
return m_borderSize;
|
||||
};
|
||||
private:
|
||||
ewol::parameter::Value<etk::Color<>> m_borderColor; //!< Border color.
|
||||
public:
|
||||
/**
|
||||
* @brief Set the current border color:
|
||||
* @param[in] _value The border color to set @ref etk::color::none : no color
|
||||
*/
|
||||
void setBorderColor(const etk::Color<>& _value) {
|
||||
m_borderColor.set(_value);
|
||||
}
|
||||
/**
|
||||
* @brief get the current border size of the current element:
|
||||
* @return the border size (0 if not used)
|
||||
*/
|
||||
const etk::Color<>& getBorderColor() const {
|
||||
return m_borderColor;
|
||||
};
|
||||
public:
|
||||
enum animation {
|
||||
animationNone, //!< No annimation
|
||||
@ -102,7 +85,7 @@ namespace ewol {
|
||||
animationRight //!< element came from the right
|
||||
//animationZoom //!< element came from zooming
|
||||
};
|
||||
private:
|
||||
protected:
|
||||
enum animation m_animation; //!< Methode add and remove element (animation)
|
||||
public:
|
||||
/**
|
||||
@ -119,7 +102,7 @@ namespace ewol {
|
||||
enum animation getAnimationMode() {
|
||||
return m_animation;
|
||||
};
|
||||
private:
|
||||
protected:
|
||||
float m_animationTime; //!< Time in second to generate animation
|
||||
public:
|
||||
/**
|
||||
@ -136,8 +119,6 @@ namespace ewol {
|
||||
float getAnimationTime() {
|
||||
return m_animationTime;
|
||||
};
|
||||
private:
|
||||
ewol::compositing::Drawing m_draw; //!< Compositing drawing element for display the border.
|
||||
public: // Derived function
|
||||
virtual void onChangeSize();
|
||||
virtual void calculateMinMaxSize();
|
||||
@ -147,8 +128,6 @@ namespace ewol {
|
||||
virtual void subWidgetRemove(std::shared_ptr<ewol::Widget> _newWidget);
|
||||
virtual void subWidgetUnLink(std::shared_ptr<ewol::Widget> _newWidget);
|
||||
virtual void onParameterChangeValue(const ewol::parameter::Ref& _paramPointer);
|
||||
virtual void onRegenerateDisplay();
|
||||
virtual void onDraw();
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ 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/widget/SizerColor.cpp',
|
||||
'tools/visual_test/appl/TestButton.cpp',
|
||||
'tools/visual_test/appl/TestCheckBox.cpp',
|
||||
'tools/visual_test/appl/TestImage.cpp',
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <ewol/object/Object.h>
|
||||
#include <ewol/context/Context.h>
|
||||
#include <ewol/widget/Manager.h>
|
||||
#include <appl/widget/SizerColor.h>
|
||||
|
||||
#include <appl/debug.h>
|
||||
#include <appl/MainWindows.h>
|
||||
@ -47,6 +48,9 @@ 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)");
|
||||
}
|
||||
|
||||
|
145
tools/visual_test/appl/widget/SizerColor.cpp
Normal file
145
tools/visual_test/appl/widget/SizerColor.cpp
Normal file
@ -0,0 +1,145 @@
|
||||
/**
|
||||
* @author Edouard DUPIN
|
||||
*
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
*
|
||||
* @license APACHE v2.0 (see license file)
|
||||
*/
|
||||
|
||||
#include <appl/debug.h>
|
||||
#include <appl/widget/SizerColor.h>
|
||||
|
||||
#undef __class__
|
||||
#define __class__ "SizerColor"
|
||||
|
||||
appl::widget::SizerColor::SizerColor() :
|
||||
m_borderColor(*this, "border-color", etk::color::none, "Color of the border") {
|
||||
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 = m_borderSize->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 (m_mode == 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 (m_mode == ewol::widget::Sizer::modeHori) {
|
||||
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));
|
||||
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(m_gravity) & uint32_t(ewol::gravity_top)) == 0) {
|
||||
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().x(), localWidgetSize.y()-startDraw+tmpBorderSize.y()) );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (size.x() < localWidgetSize.x()) {
|
||||
// left
|
||||
if ((uint32_t(m_gravity) & uint32_t(ewol::gravity_left)) == 0) {
|
||||
m_draw.setColor(etk::Color<>(0xFF, 0xFF, 0x00, 0xA0));
|
||||
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(m_gravity) & uint32_t(ewol::gravity_right)) == 0) {
|
||||
m_draw.setColor(etk::color::orange);
|
||||
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 (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()) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void appl::widget::SizerColor::onDraw() {
|
||||
m_draw.draw();
|
||||
ewol::widget::Sizer::onDraw();
|
||||
}
|
61
tools/visual_test/appl/widget/SizerColor.h
Normal file
61
tools/visual_test/appl/widget/SizerColor.h
Normal file
@ -0,0 +1,61 @@
|
||||
/**
|
||||
* @author Edouard DUPIN
|
||||
*
|
||||
* @copyright 2011, Edouard DUPIN, all right reserved
|
||||
*
|
||||
* @license APACHE v2.0 (see license file)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <etk/types.h>
|
||||
#include <ewol/widget/Sizer.h>
|
||||
#include <etk/Color.h>
|
||||
#include <ewol/compositing/Drawing.h>
|
||||
|
||||
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:
|
||||
ewol::parameter::Value<etk::Color<>> m_borderColor; //!< Border color.
|
||||
public:
|
||||
/**
|
||||
* @brief Set the current border color:
|
||||
* @param[in] _value The border color to set @ref etk::color::none : no color
|
||||
*/
|
||||
void setBorderColor(const etk::Color<>& _value) {
|
||||
m_borderColor.set(_value);
|
||||
}
|
||||
/**
|
||||
* @brief get the current border size of the current element:
|
||||
* @return the border size (0 if not used)
|
||||
*/
|
||||
const etk::Color<>& getBorderColor() const {
|
||||
return m_borderColor;
|
||||
};
|
||||
private:
|
||||
ewol::compositing::Drawing m_draw; //!< Compositing drawing element for display the border.
|
||||
public:
|
||||
virtual void onRegenerateDisplay();
|
||||
virtual void onDraw();
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -44,12 +44,16 @@
|
||||
<label expand="true" fill="true">No config</label>
|
||||
</sizer>
|
||||
</scroll>
|
||||
<sizer mode="hori"
|
||||
expand="true,true"
|
||||
fill="true,true"
|
||||
border="10px"
|
||||
border-color="#F008"
|
||||
name="appl-upper-test-widget">
|
||||
<sizerColor mode="hori"
|
||||
expand="true,true"
|
||||
fill="true,true"
|
||||
border="10px"
|
||||
border-color="#F008"
|
||||
back-color-right="light-green"
|
||||
back-color-left="magenta"
|
||||
back-color-buttom="purple"
|
||||
back-color-top="cyan"
|
||||
name="appl-upper-test-widget">
|
||||
|
||||
<spacer expand="false,true" fill="true,true" min-size="12%" color="red"/>
|
||||
<spacer expand="false,false" fill="true,true" min-size="12%" color="green"/>
|
||||
@ -57,7 +61,7 @@
|
||||
<!-->
|
||||
<label name="[TEST]TO-TEST" expand="true" fill="true">No widget</label>
|
||||
-->
|
||||
</sizer>
|
||||
</sizerColor>
|
||||
</sizer>
|
||||
</sizer>
|
||||
</composer>
|
||||
|
Loading…
x
Reference in New Issue
Block a user