[DEV] correct tool and add Scroll property
This commit is contained in:
parent
d01d270135
commit
6c3a78560a
@ -28,6 +28,9 @@ ewol::widget::Scroll::Scroll() :
|
|||||||
"{ewol}THEME:GUI:WidgetScrolled.json",
|
"{ewol}THEME:GUI:WidgetScrolled.json",
|
||||||
"shape for the horizonal display",
|
"shape for the horizonal display",
|
||||||
&ewol::widget::Scroll::onChangePropertyShapeHori),
|
&ewol::widget::Scroll::onChangePropertyShapeHori),
|
||||||
|
propertyHover(this, "hover",
|
||||||
|
true,
|
||||||
|
"the display bar are hover the subWidget"),
|
||||||
m_pixelScrolling(20),
|
m_pixelScrolling(20),
|
||||||
m_highSpeedStartPos(0,0),
|
m_highSpeedStartPos(0,0),
|
||||||
m_highSpeedMode(speedModeDisable),
|
m_highSpeedMode(speedModeDisable),
|
||||||
@ -69,13 +72,38 @@ void ewol::widget::Scroll::onChangeSize() {
|
|||||||
if (m_subWidget == nullptr) {
|
if (m_subWidget == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// remove the bar if hover
|
||||||
|
vec2 basicSize = m_size;
|
||||||
|
if (*propertyHover == false) {
|
||||||
|
basicSize -= vec2(SCROLL_BAR_SPACE,SCROLL_BAR_SPACE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
vec2 origin = m_origin+m_offset;
|
vec2 origin = m_origin+m_offset;
|
||||||
vec2 minSize = m_subWidget->getCalculateMinSize();
|
vec2 minSize = m_subWidget->getCalculateMinSize();
|
||||||
bvec2 expand = m_subWidget->propertyExpand.get();
|
bvec2 expand = m_subWidget->propertyExpand.get();
|
||||||
//The gravity is not set on the sub element ==> special use of the widget
|
//The gravity is not set on the sub element ==> special use of the widget
|
||||||
//origin += ewol::gravityGenerateDelta(propertyGravity.get(), minSize - m_size);
|
//origin += ewol::gravityGenerateDelta(propertyGravity.get(), minSize - m_size);
|
||||||
m_subWidget->setOrigin(origin);
|
if ( expand.x() == true
|
||||||
|
&& minSize.x() < basicSize.x()) {
|
||||||
|
minSize.setX(basicSize.x());
|
||||||
|
}
|
||||||
|
if ( expand.y() == true
|
||||||
|
&& minSize.y() < basicSize.y()) {
|
||||||
|
minSize.setY(basicSize.y());
|
||||||
|
}
|
||||||
m_subWidget->setSize(minSize);
|
m_subWidget->setSize(minSize);
|
||||||
|
if (*propertyGravity == ewol::gravity_top) {
|
||||||
|
origin += vec2(0.0f, basicSize.y()-minSize.y());
|
||||||
|
if (*propertyHover == false) {
|
||||||
|
origin += vec2(0,SCROLL_BAR_SPACE);
|
||||||
|
}
|
||||||
|
} else if (*propertyGravity == ewol::gravity_buttom) {
|
||||||
|
// nothing to do ... origin +=
|
||||||
|
} else {
|
||||||
|
EWOL_ERROR(" Not manage other gravity ...");
|
||||||
|
}
|
||||||
|
m_subWidget->setOrigin(origin);
|
||||||
m_subWidget->onChangeSize();
|
m_subWidget->onChangeSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,6 +131,7 @@ void ewol::widget::Scroll::systemDraw(const ewol::DrawProperty& _displayProp) {
|
|||||||
void ewol::widget::Scroll::onDraw() {
|
void ewol::widget::Scroll::onDraw() {
|
||||||
m_shaperH.draw();
|
m_shaperH.draw();
|
||||||
m_shaperV.draw();
|
m_shaperV.draw();
|
||||||
|
/*
|
||||||
ewol::compositing::Drawing draw;
|
ewol::compositing::Drawing draw;
|
||||||
draw.setPos(vec2(10,10));
|
draw.setPos(vec2(10,10));
|
||||||
draw.setColor(etk::color::orange);
|
draw.setColor(etk::color::orange);
|
||||||
@ -111,6 +140,7 @@ void ewol::widget::Scroll::onDraw() {
|
|||||||
draw.setColor(etk::color::green);
|
draw.setColor(etk::color::green);
|
||||||
draw.rectangleWidth(vec2(25,25));
|
draw.rectangleWidth(vec2(25,25));
|
||||||
draw.draw();
|
draw.draw();
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::Scroll::onRegenerateDisplay() {
|
void ewol::widget::Scroll::onRegenerateDisplay() {
|
||||||
@ -169,7 +199,7 @@ bool ewol::widget::Scroll::onEventInput(const ewol::event::Input& _event) {
|
|||||||
scrollOffset = m_subWidget->getOffset();
|
scrollOffset = m_subWidget->getOffset();
|
||||||
scrollSize = m_subWidget->getSize();
|
scrollSize = m_subWidget->getSize();
|
||||||
}
|
}
|
||||||
EWOL_ERROR("Get Event on scroll : " << _event);
|
EWOL_VERBOSE("Get Event on scroll : " << _event);
|
||||||
relativePos.setY(m_size.y() - relativePos.y());
|
relativePos.setY(m_size.y() - relativePos.y());
|
||||||
if( _event.getType() == gale::key::type_mouse
|
if( _event.getType() == gale::key::type_mouse
|
||||||
&& ( m_highSpeedType == gale::key::type_unknow
|
&& ( m_highSpeedType == gale::key::type_unknow
|
||||||
@ -215,7 +245,7 @@ bool ewol::widget::Scroll::onEventInput(const ewol::event::Input& _event) {
|
|||||||
return false;
|
return false;
|
||||||
} else if( _event.getId() == 4
|
} else if( _event.getId() == 4
|
||||||
&& _event.getStatus() == gale::key::status_up) {
|
&& _event.getStatus() == gale::key::status_up) {
|
||||||
EWOL_ERROR(" mode UP " << m_size.y() << "<" << scrollSize.y());
|
EWOL_VERBOSE(" mode UP " << m_size.y() << "<" << scrollSize.y());
|
||||||
if(m_size.y() < scrollSize.y()) {
|
if(m_size.y() < scrollSize.y()) {
|
||||||
scrollOffset.setY(scrollOffset.y()-m_pixelScrolling);
|
scrollOffset.setY(scrollOffset.y()-m_pixelScrolling);
|
||||||
scrollOffset.setY(std::avg(0.0f, scrollOffset.y(), (scrollSize.y() - m_size.y()*propertyLimit->y())));
|
scrollOffset.setY(std::avg(0.0f, scrollOffset.y(), (scrollSize.y() - m_size.y()*propertyLimit->y())));
|
||||||
@ -227,7 +257,7 @@ bool ewol::widget::Scroll::onEventInput(const ewol::event::Input& _event) {
|
|||||||
}
|
}
|
||||||
} else if( _event.getId() == 5
|
} else if( _event.getId() == 5
|
||||||
&& _event.getStatus() == gale::key::status_up) {
|
&& _event.getStatus() == gale::key::status_up) {
|
||||||
EWOL_ERROR(" mode DOWN " << m_size.y() << "<" << scrollSize.y());
|
EWOL_VERBOSE(" mode DOWN " << m_size.y() << "<" << scrollSize.y());
|
||||||
if(m_size.y() < scrollSize.y()) {
|
if(m_size.y() < scrollSize.y()) {
|
||||||
scrollOffset.setY(scrollOffset.y()+m_pixelScrolling);
|
scrollOffset.setY(scrollOffset.y()+m_pixelScrolling);
|
||||||
scrollOffset.setY(std::avg(0.0f, scrollOffset.y(), (scrollSize.y() - m_size.y()*propertyLimit->y())));
|
scrollOffset.setY(std::avg(0.0f, scrollOffset.y(), (scrollSize.y() - m_size.y()*propertyLimit->y())));
|
||||||
|
@ -24,6 +24,7 @@ namespace ewol {
|
|||||||
eproperty::Range<vec2> propertyLimit; //!< Set the limitation of the ratio in the sreen
|
eproperty::Range<vec2> propertyLimit; //!< Set the limitation of the ratio in the sreen
|
||||||
eproperty::Value<std::string> propertyShapeVert; //!< Vertical shaper name
|
eproperty::Value<std::string> propertyShapeVert; //!< Vertical shaper name
|
||||||
eproperty::Value<std::string> propertyShapeHori; //!< Horizontal shaper name
|
eproperty::Value<std::string> propertyShapeHori; //!< Horizontal shaper name
|
||||||
|
eproperty::Value<bool> propertyHover; //!< Horizontal shaper name
|
||||||
public:
|
public:
|
||||||
enum highSpeedMode {
|
enum highSpeedMode {
|
||||||
speedModeDisable,
|
speedModeDisable,
|
||||||
|
@ -30,12 +30,6 @@
|
|||||||
#include <etk/os/FSNode.h>
|
#include <etk/os/FSNode.h>
|
||||||
#include <eproperty/Value.h>
|
#include <eproperty/Value.h>
|
||||||
|
|
||||||
|
|
||||||
static const char * l_eventChangeTheme = "event-change-theme";
|
|
||||||
static const char * l_eventChangeWidgetNext = "event-change-widget-test-next";
|
|
||||||
static const char * l_eventChangeWidgetPrevious = "event-change-widget-test-previous";
|
|
||||||
|
|
||||||
|
|
||||||
#undef __class__
|
#undef __class__
|
||||||
#define __class__ "MainWindows"
|
#define __class__ "MainWindows"
|
||||||
|
|
||||||
@ -212,6 +206,7 @@ void appl::MainWindows::updateProperty() {
|
|||||||
if (m_subWidget == nullptr) {
|
if (m_subWidget == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
m_listConnection.clear();
|
||||||
std::shared_ptr<ewol::widget::Label> widget = ewol::widget::Label::create();
|
std::shared_ptr<ewol::widget::Label> widget = ewol::widget::Label::create();
|
||||||
widget->propertyValue.set(m_subWidget->getObjectType());
|
widget->propertyValue.set(m_subWidget->getObjectType());
|
||||||
m_sizerDynamic->subWidgetAdd(widget);
|
m_sizerDynamic->subWidgetAdd(widget);
|
||||||
@ -222,164 +217,186 @@ void appl::MainWindows::updateProperty() {
|
|||||||
APPL_WARNING("Parameter EMPTY . " << iii << " : nullptr");
|
APPL_WARNING("Parameter EMPTY . " << iii << " : nullptr");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
std::shared_ptr<ewol::widget::Sizer> widgetSizer = ewol::widget::Sizer::create();
|
if (param->getPropertyType() != "eproperty::List") {
|
||||||
if (widgetSizer != nullptr) {
|
std::shared_ptr<ewol::widget::Sizer> widgetSizer = ewol::widget::Sizer::create();
|
||||||
widgetSizer->propertyMode.set(ewol::widget::Sizer::modeHori);
|
if (widgetSizer != nullptr) {
|
||||||
widgetSizer->propertyExpand.set(bvec2(true,false));
|
widgetSizer->propertyMode.set(ewol::widget::Sizer::modeHori);
|
||||||
widgetSizer->propertyFill.set(bvec2(true,true));
|
widgetSizer->propertyExpand.set(bvec2(true,false));
|
||||||
m_sizerDynamic->subWidgetAddStart(widgetSizer);
|
widgetSizer->propertyFill.set(bvec2(true,true));
|
||||||
|
m_sizerDynamic->subWidgetAddStart(widgetSizer);
|
||||||
std::shared_ptr<ewol::widget::Label> widget = ewol::widget::Label::create();
|
|
||||||
widget->propertyValue.set(param->getName() + ":");
|
|
||||||
widgetSizer->subWidgetAdd(widget);
|
|
||||||
//addSpacer(widgetSizer, etk::color::purple);
|
|
||||||
// Main part TODO: ...
|
|
||||||
std::string type = param->getType();
|
|
||||||
if (type == typeid(std::string).name()) {
|
|
||||||
std::shared_ptr<ewol::widget::Entry> widgetTmp = ewol::widget::Entry::create();
|
|
||||||
widgetSizer->subWidgetAdd(widgetTmp);
|
|
||||||
eproperty::Property* param = m_subWidget->getPropertyRaw(iii);
|
|
||||||
eproperty::Value<std::string>* paramValue = dynamic_cast<eproperty::Value<std::string>*>(param);
|
|
||||||
if (paramValue == nullptr) {
|
|
||||||
APPL_ERROR("nullptr...");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
std::string value = paramValue->get();
|
|
||||||
widgetTmp->propertyValue.set(value);
|
|
||||||
widgetTmp->propertyExpand.set(bvec2(true,false));
|
|
||||||
widgetTmp->propertyFill.set(bvec2(true,false));
|
|
||||||
widgetTmp->signalModify.connect([=](const std::string& _value) {
|
|
||||||
APPL_INFO("set parameter : NAME name=" << param->getName() << " value=" << _value);
|
|
||||||
paramValue->set(_value);
|
|
||||||
return;
|
|
||||||
});
|
|
||||||
} else if (type == typeid(gale::Dimension).name()) {
|
|
||||||
type = "gale::Dimension";
|
|
||||||
} else if (type == typeid(bvec2).name()) {
|
|
||||||
addSpacer(widgetSizer);
|
|
||||||
std::shared_ptr<ewol::widget::CheckBox> widgetTmp = ewol::widget::CheckBox::create();
|
|
||||||
widgetSizer->subWidgetAdd(widgetTmp);
|
|
||||||
eproperty::Property* param = m_subWidget->getPropertyRaw(iii);
|
|
||||||
eproperty::Value<bvec2>* paramValue = dynamic_cast<eproperty::Value<bvec2>*>(param);
|
|
||||||
if (paramValue == nullptr) {
|
|
||||||
APPL_ERROR("nullptr... 2 ");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
bvec2 value = paramValue->get();
|
|
||||||
widgetTmp->propertyValue.set(value.x());
|
|
||||||
widgetTmp->signalValue.connect([=](const bool& _value) {
|
|
||||||
APPL_INFO("set parameter : X name=" << param->getName() << " value=" << _value);
|
|
||||||
bvec2 lastValueInterpreted = paramValue->get();
|
|
||||||
lastValueInterpreted.setX(_value);
|
|
||||||
paramValue->set(lastValueInterpreted);
|
|
||||||
return;
|
|
||||||
});
|
|
||||||
std::shared_ptr<ewol::widget::Label> widgetLabel = ewol::widget::Label::create();
|
|
||||||
widgetLabel->propertyValue.set("x");
|
|
||||||
widgetTmp->setSubWidget(widgetLabel);
|
|
||||||
|
|
||||||
widgetTmp = ewol::widget::CheckBox::create();
|
std::shared_ptr<ewol::widget::Label> widget = ewol::widget::Label::create();
|
||||||
widgetSizer->subWidgetAdd(widgetTmp);
|
widget->propertyValue.set(param->getName() + ":");
|
||||||
widgetTmp->propertyValue.set(value.y());
|
widgetSizer->subWidgetAdd(widget);
|
||||||
widgetTmp->signalValue.connect([=](const bool& _value) {
|
//addSpacer(widgetSizer, etk::color::purple);
|
||||||
APPL_INFO("set parameter : Y name=" << param->getName() << " value=" << _value);
|
// Main part TODO: ...
|
||||||
bvec2 lastValueInterpreted = paramValue->get();
|
std::string type = param->getType();
|
||||||
lastValueInterpreted.setY(_value);
|
if (type == typeid(std::string).name()) {
|
||||||
paramValue->set(lastValueInterpreted);
|
std::shared_ptr<ewol::widget::Entry> widgetTmp = ewol::widget::Entry::create();
|
||||||
|
widgetSizer->subWidgetAdd(widgetTmp);
|
||||||
|
eproperty::Property* param = m_subWidget->getPropertyRaw(iii);
|
||||||
|
eproperty::Value<std::string>* paramValue = dynamic_cast<eproperty::Value<std::string>*>(param);
|
||||||
|
if (paramValue == nullptr) {
|
||||||
|
APPL_ERROR("nullptr...");
|
||||||
return;
|
return;
|
||||||
});
|
}
|
||||||
widgetLabel = ewol::widget::Label::create();
|
std::string value = paramValue->get();
|
||||||
widgetLabel->propertyValue.set("y");
|
widgetTmp->propertyValue.set(value);
|
||||||
widgetTmp->setSubWidget(widgetLabel);
|
widgetTmp->propertyExpand.set(bvec2(true,false));
|
||||||
} else if (type == typeid(ivec2).name()) {
|
widgetTmp->propertyFill.set(bvec2(true,false));
|
||||||
type = "ivec2";
|
esignal::Connection conn = widgetTmp->signalModify.connect(
|
||||||
} else if (type == typeid(uivec2).name()) {
|
[=](const std::string& _value) {
|
||||||
type = "uivec2";
|
APPL_INFO("set parameter : NAME name=" << param->getName() << " value=" << _value);
|
||||||
} else if (type == typeid(vec2).name()) {
|
paramValue->set(_value);
|
||||||
type = "vec2";
|
|
||||||
} else if (type == typeid(bool).name()) {
|
|
||||||
addSpacer(widgetSizer);
|
|
||||||
std::shared_ptr<ewol::widget::CheckBox> widgetTmp = ewol::widget::CheckBox::create();
|
|
||||||
widgetSizer->subWidgetAdd(widgetTmp);
|
|
||||||
widgetTmp->signalValue.connect([=](const bool& _value) {
|
|
||||||
if (m_subWidget == nullptr) {
|
|
||||||
APPL_ERROR("nullptr...");
|
|
||||||
return;
|
return;
|
||||||
}
|
});
|
||||||
APPL_INFO("set parameter : name=" << param->getName() << " value=" << _value);
|
m_listConnection.push_back(std::move(conn));
|
||||||
m_subWidget->propertySet(param->getName(), etk::to_string(_value));
|
} else if (type == typeid(gale::Dimension).name()) {
|
||||||
|
type = "gale::Dimension";
|
||||||
|
} else if (type == typeid(bvec2).name()) {
|
||||||
|
addSpacer(widgetSizer);
|
||||||
|
std::shared_ptr<ewol::widget::CheckBox> widgetTmp = ewol::widget::CheckBox::create();
|
||||||
|
widgetSizer->subWidgetAdd(widgetTmp);
|
||||||
|
eproperty::Property* param = m_subWidget->getPropertyRaw(iii);
|
||||||
|
eproperty::Value<bvec2>* paramValue = dynamic_cast<eproperty::Value<bvec2>*>(param);
|
||||||
|
if (paramValue == nullptr) {
|
||||||
|
APPL_ERROR("nullptr... 2 ");
|
||||||
return;
|
return;
|
||||||
});
|
}
|
||||||
} else if ( type == typeid(int64_t).name()
|
bvec2 value = paramValue->get();
|
||||||
|| type == typeid(int32_t).name()
|
widgetTmp->propertyValue.set(value.x());
|
||||||
|| type == typeid(int16_t).name()
|
esignal::Connection conn = widgetTmp->signalValue.connect(
|
||||||
|| type == typeid(int8_t).name()
|
[=](const bool& _value) {
|
||||||
|| type == typeid(uint64_t).name()
|
APPL_INFO("set parameter : X name=" << param->getName() << " value=" << _value);
|
||||||
|| type == typeid(uint32_t).name()
|
bvec2 lastValueInterpreted = paramValue->get();
|
||||||
|| type == typeid(uint16_t).name()
|
lastValueInterpreted.setX(_value);
|
||||||
|| type == typeid(uint8_t).name()) {
|
paramValue->set(lastValueInterpreted);
|
||||||
std::shared_ptr<ewol::widget::Entry> widgetTmp = ewol::widget::Entry::create();
|
return;
|
||||||
widgetSizer->subWidgetAdd(widgetTmp);
|
});
|
||||||
eproperty::Property* param = m_subWidget->getPropertyRaw(iii);
|
m_listConnection.push_back(std::move(conn));
|
||||||
std::string value = param->getString();
|
std::shared_ptr<ewol::widget::Label> widgetLabel = ewol::widget::Label::create();
|
||||||
widgetTmp->propertyValue.set(value);
|
widgetLabel->propertyValue.set("x");
|
||||||
widgetTmp->propertyExpand.set(bvec2(true,false));
|
widgetTmp->setSubWidget(widgetLabel);
|
||||||
widgetTmp->propertyFill.set(bvec2(true,false));
|
|
||||||
widgetTmp->signalModify.connect([=](const std::string& _value) {
|
widgetTmp = ewol::widget::CheckBox::create();
|
||||||
APPL_INFO("set parameter : NAME name=" << param->getName() << " value=" << _value);
|
widgetSizer->subWidgetAdd(widgetTmp);
|
||||||
param->setString(_value);
|
widgetTmp->propertyValue.set(value.y());
|
||||||
|
conn = widgetTmp->signalValue.connect(
|
||||||
|
[=](const bool& _value) {
|
||||||
|
APPL_INFO("set parameter : Y name=" << param->getName() << " value=" << _value);
|
||||||
|
bvec2 lastValueInterpreted = paramValue->get();
|
||||||
|
lastValueInterpreted.setY(_value);
|
||||||
|
paramValue->set(lastValueInterpreted);
|
||||||
|
return;
|
||||||
|
});
|
||||||
|
m_listConnection.push_back(std::move(conn));
|
||||||
|
widgetLabel = ewol::widget::Label::create();
|
||||||
|
widgetLabel->propertyValue.set("y");
|
||||||
|
widgetTmp->setSubWidget(widgetLabel);
|
||||||
|
} else if (type == typeid(ivec2).name()) {
|
||||||
|
type = "ivec2";
|
||||||
|
} else if (type == typeid(uivec2).name()) {
|
||||||
|
type = "uivec2";
|
||||||
|
} else if (type == typeid(vec2).name()) {
|
||||||
|
type = "vec2";
|
||||||
|
} else if (type == typeid(bool).name()) {
|
||||||
|
addSpacer(widgetSizer);
|
||||||
|
std::shared_ptr<ewol::widget::CheckBox> widgetTmp = ewol::widget::CheckBox::create();
|
||||||
|
widgetSizer->subWidgetAdd(widgetTmp);
|
||||||
|
esignal::Connection conn = widgetTmp->signalValue.connect(
|
||||||
|
[=](const bool& _value) {
|
||||||
|
if (m_subWidget == nullptr) {
|
||||||
|
APPL_ERROR("nullptr...");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
APPL_INFO("set parameter : name=" << param->getName() << " value=" << _value);
|
||||||
|
m_subWidget->propertySet(param->getName(), etk::to_string(_value));
|
||||||
|
return;
|
||||||
|
});
|
||||||
|
m_listConnection.push_back(std::move(conn));
|
||||||
|
} else if ( type == typeid(int64_t).name()
|
||||||
|
|| type == typeid(int32_t).name()
|
||||||
|
|| type == typeid(int16_t).name()
|
||||||
|
|| type == typeid(int8_t).name()
|
||||||
|
|| type == typeid(uint64_t).name()
|
||||||
|
|| type == typeid(uint32_t).name()
|
||||||
|
|| type == typeid(uint16_t).name()
|
||||||
|
|| type == typeid(uint8_t).name()) {
|
||||||
|
ewol::widget::SpinShared widgetTmp = ewol::widget::Spin::create();
|
||||||
|
widgetSizer->subWidgetAdd(widgetTmp);
|
||||||
|
eproperty::Property* param = m_subWidget->getPropertyRaw(iii);
|
||||||
|
std::string value = param->getString();
|
||||||
|
widgetTmp->propertyValue.set(etk::string_to_int8_t(value));
|
||||||
|
widgetTmp->propertyExpand.set(bvec2(true,false));
|
||||||
|
widgetTmp->propertyFill.set(bvec2(true,false));
|
||||||
|
|
||||||
|
esignal::Connection conn = widgetTmp->signalValue.connect(
|
||||||
|
[=](const int64_t& _value) {
|
||||||
|
APPL_INFO("set parameter : NAME name=" << param->getName() << " value=" << _value);
|
||||||
|
param->setString(etk::to_string(_value));
|
||||||
|
return;
|
||||||
|
});
|
||||||
|
m_listConnection.push_back(std::move(conn));
|
||||||
|
if (type == typeid(int64_t).name()) {
|
||||||
|
widgetTmp->propertyMin.set(0x8000000000000000LL);
|
||||||
|
widgetTmp->propertyMax.set(0x7FFFFFFFFFFFFFFFLL);
|
||||||
|
} else if (type == typeid(int32_t).name()) {
|
||||||
|
widgetTmp->propertyMin.set(0x80000000LL);
|
||||||
|
widgetTmp->propertyMax.set(0x7FFFFFFFLL);
|
||||||
|
} else if (type == typeid(int16_t).name()) {
|
||||||
|
type = "int16_t";
|
||||||
|
} else if (type == typeid(int8_t).name()) {
|
||||||
|
type = "int8_t";
|
||||||
|
} else if (type == typeid(uint64_t).name()) {
|
||||||
|
type = "uint64_t";
|
||||||
|
} else if (type == typeid(uint32_t).name()) {
|
||||||
|
type = "uint32_t";
|
||||||
|
} else if (type == typeid(uint16_t).name()) {
|
||||||
|
type = "uint16_t";
|
||||||
|
} else if (type == typeid(uint8_t).name()) {
|
||||||
|
type = "uint8_t";
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (type == typeid(float).name()) {
|
||||||
|
type = "float";
|
||||||
|
} else if (type == typeid(double).name()) {
|
||||||
|
type = "double";
|
||||||
|
} else if (type == typeid(enum ewol::gravity).name()) {
|
||||||
|
// TODO: generize this for all list of parameters
|
||||||
|
type = "enum ewol::gravity";
|
||||||
|
std::shared_ptr<ewol::widget::Select> widgetTmp = ewol::widget::Select::create();
|
||||||
|
widgetSizer->subWidgetAdd(widgetTmp);
|
||||||
|
widgetTmp->propertyExpand.set(bvec2(true,false));
|
||||||
|
widgetTmp->propertyFill.set(bvec2(true,false));
|
||||||
|
widgetTmp->optionAdd(int32_t(ewol::gravity_center), "Center");
|
||||||
|
widgetTmp->optionAdd(int32_t(ewol::gravity_top), "Top");
|
||||||
|
widgetTmp->optionAdd(int32_t(ewol::gravity_buttom), "Buttom");
|
||||||
|
widgetTmp->optionAdd(int32_t(ewol::gravity_right), "Right");
|
||||||
|
widgetTmp->optionAdd(int32_t(ewol::gravity_left), "Left");
|
||||||
|
widgetTmp->optionAdd(int32_t(ewol::gravity_topRight), "Top-right");
|
||||||
|
widgetTmp->optionAdd(int32_t(ewol::gravity_topLeft), "Top-left");
|
||||||
|
widgetTmp->optionAdd(int32_t(ewol::gravity_buttomRight), "Buttom-right");
|
||||||
|
widgetTmp->optionAdd(int32_t(ewol::gravity_buttomLeft), "Buttom-left");
|
||||||
|
eproperty::Property* param = m_subWidget->getPropertyRaw(iii);
|
||||||
|
eproperty::List<ewol::gravity>* paramValue = dynamic_cast<eproperty::List<ewol::gravity>*>(param);
|
||||||
|
if (paramValue == nullptr) {
|
||||||
|
APPL_ERROR("nullptr... 2 ");
|
||||||
return;
|
return;
|
||||||
});
|
}
|
||||||
if (type == typeid(int64_t).name()) {
|
ewol::gravity value = paramValue->get();
|
||||||
type = "int64_t";
|
widgetTmp->propertyValue.set(value);
|
||||||
} else if (type == typeid(int32_t).name()) {
|
esignal::Connection conn = widgetTmp->signalValue.connect(
|
||||||
type = "int32_t";
|
[=](const int32_t& _value) {
|
||||||
} else if (type == typeid(int16_t).name()) {
|
enum ewol::gravity val = ewol::gravity(_value);
|
||||||
type = "int16_t";
|
APPL_INFO("set parameter: gravity name=" << param->getName() << " value=" << val);
|
||||||
} else if (type == typeid(int8_t).name()) {
|
paramValue->set(val);
|
||||||
type = "int8_t";
|
return;
|
||||||
} else if (type == typeid(uint64_t).name()) {
|
});
|
||||||
type = "uint64_t";
|
m_listConnection.push_back(std::move(conn));
|
||||||
} else if (type == typeid(uint32_t).name()) {
|
|
||||||
type = "uint32_t";
|
|
||||||
} else if (type == typeid(uint16_t).name()) {
|
|
||||||
type = "uint16_t";
|
|
||||||
} else if (type == typeid(uint8_t).name()) {
|
|
||||||
type = "uint8_t";
|
|
||||||
}
|
}
|
||||||
} else if (type == typeid(float).name()) {
|
} else {
|
||||||
type = "float";
|
// property list ...
|
||||||
} else if (type == typeid(double).name()) {
|
|
||||||
type = "double";
|
|
||||||
} else if (type == typeid(enum ewol::gravity).name()) {
|
|
||||||
type = "enum ewol::gravity";
|
|
||||||
std::shared_ptr<ewol::widget::Select> widgetTmp = ewol::widget::Select::create();
|
|
||||||
widgetSizer->subWidgetAdd(widgetTmp);
|
|
||||||
widgetTmp->propertyExpand.set(bvec2(true,false));
|
|
||||||
widgetTmp->propertyFill.set(bvec2(true,false));
|
|
||||||
widgetTmp->optionAdd(int32_t(ewol::gravity_center), "Center");
|
|
||||||
widgetTmp->optionAdd(int32_t(ewol::gravity_top), "Top");
|
|
||||||
widgetTmp->optionAdd(int32_t(ewol::gravity_buttom), "Buttom");
|
|
||||||
widgetTmp->optionAdd(int32_t(ewol::gravity_right), "Right");
|
|
||||||
widgetTmp->optionAdd(int32_t(ewol::gravity_left), "Left");
|
|
||||||
widgetTmp->optionAdd(int32_t(ewol::gravity_topRight), "Top-right");
|
|
||||||
widgetTmp->optionAdd(int32_t(ewol::gravity_topLeft), "Top-left");
|
|
||||||
widgetTmp->optionAdd(int32_t(ewol::gravity_buttomRight), "Buttom-right");
|
|
||||||
widgetTmp->optionAdd(int32_t(ewol::gravity_buttomLeft), "Buttom-left");
|
|
||||||
eproperty::Property* param = m_subWidget->getPropertyRaw(iii);
|
|
||||||
eproperty::List<ewol::gravity>* paramValue = dynamic_cast<eproperty::List<ewol::gravity>*>(param);
|
|
||||||
if (paramValue == nullptr) {
|
|
||||||
APPL_ERROR("nullptr... 2 ");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ewol::gravity value = paramValue->get();
|
|
||||||
widgetTmp->propertyValue.set(value);
|
|
||||||
widgetTmp->signalValue.connect([=](const int32_t& _value) {
|
|
||||||
enum ewol::gravity val = ewol::gravity(_value);
|
|
||||||
APPL_INFO("set parameter: gravity name=" << param->getName() << " value=" << val);
|
|
||||||
paramValue->set(val);
|
|
||||||
return;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::shared_ptr<ewol::widget::Spacer> mySpacer = ewol::widget::Spacer::create();
|
std::shared_ptr<ewol::widget::Spacer> mySpacer = ewol::widget::Spacer::create();
|
||||||
|
@ -18,10 +18,11 @@
|
|||||||
namespace appl {
|
namespace appl {
|
||||||
class MainWindows : public ewol::widget::Windows {
|
class MainWindows : public ewol::widget::Windows {
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<ewol::widget::Composer> m_composer;
|
std::vector<esignal::Connection> m_listConnection;
|
||||||
std::shared_ptr<ewol::widget::Sizer> m_sizerVert;
|
ewol::widget::ComposerShared m_composer;
|
||||||
std::shared_ptr<ewol::widget::Sizer> m_sizerDynamic;
|
ewol::widget::SizerShared m_sizerVert;
|
||||||
std::shared_ptr<ewol::Widget> m_subWidget;
|
ewol::widget::SizerShared m_sizerDynamic;
|
||||||
|
ewol::WidgetShared m_subWidget;
|
||||||
ewol::gravity m_gravity;
|
ewol::gravity m_gravity;
|
||||||
int32_t m_idWidget;
|
int32_t m_idWidget;
|
||||||
public:
|
public:
|
||||||
|
@ -36,9 +36,10 @@
|
|||||||
gravity="top"
|
gravity="top"
|
||||||
lock="true,true"
|
lock="true,true"
|
||||||
limit="0,0.5"
|
limit="0,0.5"
|
||||||
min-size="25%">
|
min-size="25%"
|
||||||
|
hover="false">
|
||||||
<sizer mode="vert"
|
<sizer mode="vert"
|
||||||
expand="false,false"
|
expand="true,false"
|
||||||
fill="true"
|
fill="true"
|
||||||
name="appl-dynamic-config">
|
name="appl-dynamic-config">
|
||||||
<label expand="true" fill="true">No config</label>
|
<label expand="true" fill="true">No config</label>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user