make tweens other than linear for components now work, added TWEEN_PROPERTY_X_OFFSET_SHIFT_MENU_DIRECTION

Signed-off-by: Vincent-FK <vincent.buso@funkey-project.com>
This commit is contained in:
Vincent-FK 2020-03-27 20:00:40 +01:00
parent 4692a90c48
commit 115641c0e9
4 changed files with 40 additions and 22 deletions

View File

@ -49,6 +49,7 @@ bool Tween::getTweenProperty(std::string name, TweenProperty &property)
tweenPropertyMap_["yorigin"] = TWEEN_PROPERTY_Y_ORIGIN; tweenPropertyMap_["yorigin"] = TWEEN_PROPERTY_Y_ORIGIN;
tweenPropertyMap_["xoffset"] = TWEEN_PROPERTY_X_OFFSET; tweenPropertyMap_["xoffset"] = TWEEN_PROPERTY_X_OFFSET;
tweenPropertyMap_["yoffset"] = TWEEN_PROPERTY_Y_OFFSET; tweenPropertyMap_["yoffset"] = TWEEN_PROPERTY_Y_OFFSET;
tweenPropertyMap_["xoffsetshiftmenudirection"] = TWEEN_PROPERTY_X_OFFSET_SHIFT_MENU_DIRECTION;
tweenPropertyMap_["yoffsetshiftmenudirection"] = TWEEN_PROPERTY_Y_OFFSET_SHIFT_MENU_DIRECTION; tweenPropertyMap_["yoffsetshiftmenudirection"] = TWEEN_PROPERTY_Y_OFFSET_SHIFT_MENU_DIRECTION;
tweenPropertyMap_["fontSize"] = TWEEN_PROPERTY_FONT_SIZE; tweenPropertyMap_["fontSize"] = TWEEN_PROPERTY_FONT_SIZE;
tweenPropertyMap_["backgroundalpha"] = TWEEN_PROPERTY_BACKGROUND_ALPHA; tweenPropertyMap_["backgroundalpha"] = TWEEN_PROPERTY_BACKGROUND_ALPHA;
@ -78,27 +79,27 @@ TweenAlgorithm Tween::getTweenType(std::string name)
{ {
if(tweenTypeMap_.size() == 0) if(tweenTypeMap_.size() == 0)
{ {
tweenTypeMap_["easeInquadratic"] = EASE_IN_QUADRATIC; tweenTypeMap_["easeinquadratic"] = EASE_IN_QUADRATIC;
tweenTypeMap_["easeOutquadratic"] = EASE_OUT_QUADRATIC; tweenTypeMap_["easeoutquadratic"] = EASE_OUT_QUADRATIC;
tweenTypeMap_["easeInoutquadratic"] = EASE_INOUT_QUADRATIC; tweenTypeMap_["easeinoutquadratic"] = EASE_INOUT_QUADRATIC;
tweenTypeMap_["easeIncubic"] = EASE_IN_CUBIC; tweenTypeMap_["easeincubic"] = EASE_IN_CUBIC;
tweenTypeMap_["easeOutcubic"] = EASE_OUT_CUBIC; tweenTypeMap_["easeoutcubic"] = EASE_OUT_CUBIC;
tweenTypeMap_["easeInoutcubic"] = EASE_INOUT_CUBIC; tweenTypeMap_["easeinoutcubic"] = EASE_INOUT_CUBIC;
tweenTypeMap_["easeInquartic"] = EASE_IN_QUARTIC; tweenTypeMap_["easeinquartic"] = EASE_IN_QUARTIC;
tweenTypeMap_["easeOutquartic"] = EASE_OUT_QUARTIC; tweenTypeMap_["easeoutquartic"] = EASE_OUT_QUARTIC;
tweenTypeMap_["easeInoutquartic"] = EASE_INOUT_QUARTIC; tweenTypeMap_["easeinoutquartic"] = EASE_INOUT_QUARTIC;
tweenTypeMap_["easeInquintic"] = EASE_IN_QUINTIC; tweenTypeMap_["easeinquintic"] = EASE_IN_QUINTIC;
tweenTypeMap_["easeOutquintic"] = EASE_OUT_QUINTIC; tweenTypeMap_["easeoutquintic"] = EASE_OUT_QUINTIC;
tweenTypeMap_["easeInoutquintic"] = EASE_INOUT_QUINTIC; tweenTypeMap_["easeinoutquintic"] = EASE_INOUT_QUINTIC;
tweenTypeMap_["easeInsine"] = EASE_IN_SINE; tweenTypeMap_["easeinsine"] = EASE_IN_SINE;
tweenTypeMap_["easeOutsine"] = EASE_OUT_SINE; tweenTypeMap_["easeoutsine"] = EASE_OUT_SINE;
tweenTypeMap_["easeInoutsine"] = EASE_INOUT_SINE; tweenTypeMap_["easeinoutsine"] = EASE_INOUT_SINE;
tweenTypeMap_["easeInexponential"] = EASE_IN_EXPONENTIAL; tweenTypeMap_["easeinexponential"] = EASE_IN_EXPONENTIAL;
tweenTypeMap_["easeOutexponential"] = EASE_OUT_EXPONENTIAL; tweenTypeMap_["easeoutexponential"] = EASE_OUT_EXPONENTIAL;
tweenTypeMap_["easeInoutexponential"] = EASE_INOUT_EXPONENTIAL; tweenTypeMap_["easeinoutexponential"] = EASE_INOUT_EXPONENTIAL;
tweenTypeMap_["easeIncircular"] = EASE_IN_CIRCULAR; tweenTypeMap_["easeincircular"] = EASE_IN_CIRCULAR;
tweenTypeMap_["easeOutcircular"] = EASE_OUT_CIRCULAR; tweenTypeMap_["easeoutcircular"] = EASE_OUT_CIRCULAR;
tweenTypeMap_["easeInoutcircular"] = EASE_INOUT_CIRCULAR; tweenTypeMap_["easeinoutcircular"] = EASE_INOUT_CIRCULAR;
tweenTypeMap_["linear"] = LINEAR; tweenTypeMap_["linear"] = LINEAR;
} }

View File

@ -53,6 +53,7 @@ enum TweenProperty
TWEEN_PROPERTY_Y_ORIGIN, TWEEN_PROPERTY_Y_ORIGIN,
TWEEN_PROPERTY_X_OFFSET, TWEEN_PROPERTY_X_OFFSET,
TWEEN_PROPERTY_Y_OFFSET, TWEEN_PROPERTY_Y_OFFSET,
TWEEN_PROPERTY_X_OFFSET_SHIFT_MENU_DIRECTION,
TWEEN_PROPERTY_Y_OFFSET_SHIFT_MENU_DIRECTION, TWEEN_PROPERTY_Y_OFFSET_SHIFT_MENU_DIRECTION,
TWEEN_PROPERTY_FONT_SIZE, TWEEN_PROPERTY_FONT_SIZE,
TWEEN_PROPERTY_BACKGROUND_ALPHA, TWEEN_PROPERTY_BACKGROUND_ALPHA,

View File

@ -345,6 +345,21 @@ bool Component::animate()
baseViewInfo.YOffset = tween->animate(elapsedTime, storeViewInfo_.YOffset); baseViewInfo.YOffset = tween->animate(elapsedTime, storeViewInfo_.YOffset);
break; break;
case TWEEN_PROPERTY_X_OFFSET_SHIFT_MENU_DIRECTION:
if (tween->startDefined){
baseViewInfo.XOffset = tween->animate(elapsedTime,
tween->getStart(),
tween->getStart() + tween->getEnd()* (static_cast<double>(page.isMenuScrollForward()?-1.0f:1.0f)),
duration);
}
else{
baseViewInfo.XOffset = tween->animate(elapsedTime,
static_cast<double>(storeViewInfo_.YOffset),
static_cast<double>(storeViewInfo_.YOffset) + tween->getEnd()* (static_cast<double>(page.isMenuScrollForward()?-1.0f:1.0f)),
duration);
}
break;
case TWEEN_PROPERTY_Y_OFFSET_SHIFT_MENU_DIRECTION: case TWEEN_PROPERTY_Y_OFFSET_SHIFT_MENU_DIRECTION:
if (tween->startDefined){ if (tween->startDefined){
/*printf("storeViewInfo_.YOffset = %f, tween->start() = %f, page.isMenuScrollForward()=%d, tween->getEnd()=%f, newEnd=%f\n", /*printf("storeViewInfo_.YOffset = %f, tween->start() = %f, page.isMenuScrollForward()=%d, tween->getEnd()=%f, newEnd=%f\n",

View File

@ -1492,7 +1492,7 @@ void PageBuilder::getAnimationEvents(xml_node<> *node, TweenSet &tweens)
if(algorithmXml) if(algorithmXml)
{ {
algorithm = Tween::getTweenType(algorithmXml->value()); algorithm = Tween::getTweenType(algorithmXml->value());
//printf(" algorithm=%d\n", algorithm);
} }
if(Tween::getTweenProperty(type->value(), property)) if(Tween::getTweenProperty(type->value(), property))
@ -1524,6 +1524,7 @@ void PageBuilder::getAnimationEvents(xml_node<> *node, TweenSet &tweens)
toValue = getVerticalAlignment(to, 0); toValue = getVerticalAlignment(to, 0);
break; break;
case TWEEN_PROPERTY_X_OFFSET_SHIFT_MENU_DIRECTION:
case TWEEN_PROPERTY_Y_OFFSET_SHIFT_MENU_DIRECTION: case TWEEN_PROPERTY_Y_OFFSET_SHIFT_MENU_DIRECTION:
fromValue = getVerticalAlignment(from, 0); fromValue = getVerticalAlignment(from, 0);
toValue = getVerticalAlignment(to, 0); toValue = getVerticalAlignment(to, 0);