[DEV] some correction
This commit is contained in:
parent
fe3242a16f
commit
d01d270135
@ -100,6 +100,9 @@ void ewol::widget::Container::systemDraw(const ewol::DrawProperty& _displayProp)
|
|||||||
|
|
||||||
void ewol::widget::Container::onChangeSize() {
|
void ewol::widget::Container::onChangeSize() {
|
||||||
ewol::Widget::onChangeSize();
|
ewol::Widget::onChangeSize();
|
||||||
|
if (*propertyHide == true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (m_subWidget == nullptr) {
|
if (m_subWidget == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include <ewol/ewol.h>
|
#include <ewol/ewol.h>
|
||||||
#include <ewol/widget/Manager.h>
|
#include <ewol/widget/Manager.h>
|
||||||
#include <ewol/debug.h>
|
#include <ewol/debug.h>
|
||||||
|
#include <ewol/compositing/Drawing.h>
|
||||||
|
|
||||||
#undef __class__
|
#undef __class__
|
||||||
#define __class__ "Scroll"
|
#define __class__ "Scroll"
|
||||||
@ -33,6 +34,16 @@ ewol::widget::Scroll::Scroll() :
|
|||||||
m_highSpeedButton(-1),
|
m_highSpeedButton(-1),
|
||||||
m_highSpeedType(gale::key::type_unknow) {
|
m_highSpeedType(gale::key::type_unknow) {
|
||||||
addObjectType("ewol::widget::Scroll");
|
addObjectType("ewol::widget::Scroll");
|
||||||
|
// Remove gravity property: (only keep top/buttom)
|
||||||
|
propertyGravity.remove("center");
|
||||||
|
propertyGravity.remove("top-left");
|
||||||
|
//propertyGravity.remove("top");
|
||||||
|
propertyGravity.remove("top-right");
|
||||||
|
propertyGravity.remove("right");
|
||||||
|
propertyGravity.remove("buttom-right");
|
||||||
|
//propertyGravity.remove("buttom");
|
||||||
|
propertyGravity.remove("buttom-left");
|
||||||
|
propertyGravity.remove("left");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::Scroll::init() {
|
void ewol::widget::Scroll::init() {
|
||||||
@ -45,11 +56,31 @@ void ewol::widget::Scroll::init() {
|
|||||||
ewol::widget::Scroll::~Scroll() {
|
ewol::widget::Scroll::~Scroll() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
// TODO : create a config for this ...
|
||||||
#define SCROLL_BAR_SPACE (15)
|
#define SCROLL_BAR_SPACE (15)
|
||||||
|
|
||||||
|
// note: The widget will expand has possible and will control itself the display property
|
||||||
|
void ewol::widget::Scroll::onChangeSize() {
|
||||||
|
// Note: No call of container ==> normal case ...
|
||||||
|
ewol::Widget::onChangeSize();
|
||||||
|
if (*propertyHide == true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (m_subWidget == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
vec2 origin = m_origin+m_offset;
|
||||||
|
vec2 minSize = m_subWidget->getCalculateMinSize();
|
||||||
|
bvec2 expand = m_subWidget->propertyExpand.get();
|
||||||
|
//The gravity is not set on the sub element ==> special use of the widget
|
||||||
|
//origin += ewol::gravityGenerateDelta(propertyGravity.get(), minSize - m_size);
|
||||||
|
m_subWidget->setOrigin(origin);
|
||||||
|
m_subWidget->setSize(minSize);
|
||||||
|
m_subWidget->onChangeSize();
|
||||||
|
}
|
||||||
|
|
||||||
void ewol::widget::Scroll::calculateMinMaxSize() {
|
void ewol::widget::Scroll::calculateMinMaxSize() {
|
||||||
// call main class !! and not containter class ...
|
// Note: No call of container ==> normal case ...
|
||||||
ewol::Widget::calculateMinMaxSize();
|
ewol::Widget::calculateMinMaxSize();
|
||||||
// call sub classes
|
// call sub classes
|
||||||
if (m_subWidget != nullptr) {
|
if (m_subWidget != nullptr) {
|
||||||
@ -72,9 +103,20 @@ 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;
|
||||||
|
draw.setPos(vec2(10,10));
|
||||||
|
draw.setColor(etk::color::orange);
|
||||||
|
draw.rectangleWidth(vec2(25,25));
|
||||||
|
draw.setPos(m_size - vec2(35,35));
|
||||||
|
draw.setColor(etk::color::green);
|
||||||
|
draw.rectangleWidth(vec2(25,25));
|
||||||
|
draw.draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ewol::widget::Scroll::onRegenerateDisplay() {
|
void ewol::widget::Scroll::onRegenerateDisplay() {
|
||||||
|
if (*propertyHide == true) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// call upper class
|
// call upper class
|
||||||
ewol::widget::Container::onRegenerateDisplay();
|
ewol::widget::Container::onRegenerateDisplay();
|
||||||
if (needRedraw() == false) {
|
if (needRedraw() == false) {
|
||||||
@ -92,7 +134,7 @@ void ewol::widget::Scroll::onRegenerateDisplay() {
|
|||||||
scrollSize = m_subWidget->getSize();
|
scrollSize = m_subWidget->getSize();
|
||||||
}
|
}
|
||||||
if( m_size.y() < scrollSize.y()
|
if( m_size.y() < scrollSize.y()
|
||||||
|| scrollOffset.y()!=0) {
|
|| scrollOffset.y() != 0) {
|
||||||
float lenScrollBar = m_size.y()*m_size.y() / scrollSize.y();
|
float lenScrollBar = m_size.y()*m_size.y() / scrollSize.y();
|
||||||
lenScrollBar = std::avg(10.0f, lenScrollBar, m_size.y());
|
lenScrollBar = std::avg(10.0f, lenScrollBar, m_size.y());
|
||||||
float originScrollBar = scrollOffset.y() / (scrollSize.y()-m_size.y()*propertyLimit->y());
|
float originScrollBar = scrollOffset.y() / (scrollSize.y()-m_size.y()*propertyLimit->y());
|
||||||
@ -104,7 +146,7 @@ void ewol::widget::Scroll::onRegenerateDisplay() {
|
|||||||
vec2(0, lenScrollBar));
|
vec2(0, lenScrollBar));
|
||||||
}
|
}
|
||||||
if( m_size.x() < scrollSize.x()
|
if( m_size.x() < scrollSize.x()
|
||||||
|| scrollOffset.x()!=0) {
|
|| scrollOffset.x() != 0) {
|
||||||
float lenScrollBar = (m_size.x()-paddingHori.xLeft())*(m_size.x()-paddingVert.x()) / scrollSize.x();
|
float lenScrollBar = (m_size.x()-paddingHori.xLeft())*(m_size.x()-paddingVert.x()) / scrollSize.x();
|
||||||
lenScrollBar = std::avg(10.0f, lenScrollBar, (m_size.x()-paddingVert.x()));
|
lenScrollBar = std::avg(10.0f, lenScrollBar, (m_size.x()-paddingVert.x()));
|
||||||
float originScrollBar = scrollOffset.x() / (scrollSize.x()-m_size.x()*propertyLimit->x());
|
float originScrollBar = scrollOffset.x() / (scrollSize.x()-m_size.x()*propertyLimit->x());
|
||||||
@ -127,11 +169,11 @@ 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_VERBOSE("Get Event on scroll : " << _event);
|
EWOL_ERROR("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
|
||||||
&& ( gale::key::type_unknow == m_highSpeedType
|
&& ( m_highSpeedType == gale::key::type_unknow
|
||||||
|| gale::key::type_mouse == m_highSpeedType ) ) {
|
|| m_highSpeedType == gale::key::type_mouse) ) {
|
||||||
if( _event.getId() == 1
|
if( _event.getId() == 1
|
||||||
&& _event.getStatus() == gale::key::status_down) {
|
&& _event.getStatus() == gale::key::status_down) {
|
||||||
// check if selected the scrolling position whth the scrolling bar ...
|
// check if selected the scrolling position whth the scrolling bar ...
|
||||||
@ -173,6 +215,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());
|
||||||
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())));
|
||||||
@ -184,6 +227,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());
|
||||||
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())));
|
||||||
|
@ -49,6 +49,7 @@ namespace ewol {
|
|||||||
DECLARE_WIDGET_FACTORY(Scroll, "Scroll");
|
DECLARE_WIDGET_FACTORY(Scroll, "Scroll");
|
||||||
virtual ~Scroll();
|
virtual ~Scroll();
|
||||||
public:
|
public:
|
||||||
|
void onChangeSize() override;
|
||||||
void calculateMinMaxSize() override;
|
void calculateMinMaxSize() override;
|
||||||
void onRegenerateDisplay() override;
|
void onRegenerateDisplay() override;
|
||||||
bool onEventInput(const ewol::event::Input& _event) override;
|
bool onEventInput(const ewol::event::Input& _event) override;
|
||||||
|
@ -125,6 +125,7 @@ void ewol::Widget::keepFocus() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ewol::Widget::setOffset(const vec2& _newVal) {
|
void ewol::Widget::setOffset(const vec2& _newVal) {
|
||||||
|
EWOL_INFO("Set offset: " << _newVal);
|
||||||
if (m_offset != _newVal) {
|
if (m_offset != _newVal) {
|
||||||
m_offset = _newVal;
|
m_offset = _newVal;
|
||||||
markToRedraw();
|
markToRedraw();
|
||||||
|
@ -180,7 +180,7 @@ namespace ewol {
|
|||||||
*/
|
*/
|
||||||
virtual void changeZoom(float _range) {};
|
virtual void changeZoom(float _range) {};
|
||||||
protected:
|
protected:
|
||||||
vec2 m_origin; //!< internal ... I do not really known how i can use it ...
|
vec2 m_origin; //!< internal ... I do not really known how if can use it ...
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief set origin at the widget (must be an parrent widget that set this parameter).
|
* @brief set origin at the widget (must be an parrent widget that set this parameter).
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
<label name="appl-label-test" expand="true,false" fill="true,true">Test :</label>
|
<label name="appl-label-test" expand="true,false" fill="true,true">Test :</label>
|
||||||
<spacer expand="true,true"/>
|
<spacer expand="true,true"/>
|
||||||
</sizer>
|
</sizer>
|
||||||
<spacer min-size="(3,3)px" expand="true,false" fill="true" corlor="red"/>
|
<spacer min-size="(3,3)px" expand="true,false" fill="true" color="black"/>
|
||||||
<sizer mode="hori"
|
<sizer mode="hori"
|
||||||
expand="true,true"
|
expand="true,true"
|
||||||
lock="true,true"
|
lock="true,true"
|
||||||
@ -35,7 +35,7 @@
|
|||||||
expand="false,true"
|
expand="false,true"
|
||||||
gravity="top"
|
gravity="top"
|
||||||
lock="true,true"
|
lock="true,true"
|
||||||
limit="0,0.75"
|
limit="0,0.5"
|
||||||
min-size="25%">
|
min-size="25%">
|
||||||
<sizer mode="vert"
|
<sizer mode="vert"
|
||||||
expand="false,false"
|
expand="false,false"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user