edje: Edje_Edit - add code to generate edc source for all transition types in programs

Summary:
Add code to generate edc source for all transition types used in program block.

_edje_generate_source_of_program() api generates program source code from the edje object.
Very few transition types are handled in the function. Added code to generate edc source
code for all the transition types.

Reviewers: govi, raster, jpeg, zmike, cedric

@feature

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1367

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
Irfan Abdul 2014-09-03 22:08:30 +02:00 committed by Cedric BAIL
parent c03876d611
commit 13773009de
1 changed files with 60 additions and 17 deletions

View File

@ -9662,11 +9662,12 @@ _edje_generate_source_of_program(Evas_Object *obj, const char *program, Eina_Str
{
Eina_List *l, *ll;
const char *s, *s2;
double db, db2;
double db, db2,v1,v2,v3,v4;
char *data;
Eina_Bool ret = EINA_TRUE;
const char *api_name, *api_description;
Edje_Program *epr;
int tweenmode = 0;
GET_EED_OR_RETURN(EINA_FALSE);
@ -9789,25 +9790,67 @@ _edje_generate_source_of_program(Evas_Object *obj, const char *program, Eina_Str
/* Transition */
db = TO_DOUBLE(epr->tween.time);
switch (epr->tween.mode)
tweenmode = (epr->tween.mode & (~(EDJE_TWEEN_MODE_OPT_FROM_CURRENT)));
switch (tweenmode)
{
case EDJE_TWEEN_MODE_LINEAR:
if (db)
BUF_APPENDF(I4"transition: LINEAR %.5f;\n", db);
break;
case EDJE_TWEEN_MODE_ACCELERATE:
BUF_APPENDF(I4"transition: ACCELERATE %.5f;\n", db);
break;
case EDJE_TWEEN_MODE_DECELERATE:
BUF_APPENDF(I4"transition: DECELERATE %.5f;\n", db);
break;
case EDJE_TWEEN_MODE_SINUSOIDAL:
BUF_APPENDF(I4"transition: SINUSOIDAL %.5f;\n", db);
break;
default:
break;
case EDJE_TWEEN_MODE_LINEAR:
if (db)
BUF_APPENDF(I4"transition: LINEAR %.5f", db);
break;
case EDJE_TWEEN_MODE_ACCELERATE:
BUF_APPENDF(I4"transition: ACCELERATE %.5f", db);
break;
case EDJE_TWEEN_MODE_DECELERATE:
BUF_APPENDF(I4"transition: DECELERATE %.5f", db);
break;
case EDJE_TWEEN_MODE_SINUSOIDAL:
BUF_APPENDF(I4"transition: SINUSOIDAL %.5f", db);
break;
case EDJE_TWEEN_MODE_ACCELERATE_FACTOR:
v1 = TO_DOUBLE(epr->tween.v1);
BUF_APPENDF(I4"transition: ACCELERATE_FACTOR %.5f %.5f", db,v1);
break;
case EDJE_TWEEN_MODE_DECELERATE_FACTOR:
v1 = TO_DOUBLE(epr->tween.v1);
BUF_APPENDF(I4"transition: DECELERATE_FACTOR %.5f %.5f", db,v1);
break;
case EDJE_TWEEN_MODE_SINUSOIDAL_FACTOR:
v1 = TO_DOUBLE(epr->tween.v1);
BUF_APPENDF(I4"transition: SINUSOIDAL_FACTOR %.5f %.5f", db,v1);
break;
case EDJE_TWEEN_MODE_DIVISOR_INTERP:
v1 = TO_DOUBLE(epr->tween.v1);
v2 = TO_DOUBLE(epr->tween.v2);
BUF_APPENDF(I4"transition: DIVISOR_INTERP %.5f %.5f %.5f", db,v1,v2);
break;
case EDJE_TWEEN_MODE_BOUNCE:
v1 = TO_DOUBLE(epr->tween.v1);
v2 = TO_DOUBLE(epr->tween.v2);
BUF_APPENDF(I4"transition: BOUNCE %.5f %.5f %.5f", db,v1,v2);
break;
case EDJE_TWEEN_MODE_SPRING:
v1 = TO_DOUBLE(epr->tween.v1);
v2 = TO_DOUBLE(epr->tween.v2);
BUF_APPENDF(I4"transition: SPRING %.5f %.5f %.5f", db,v1,v2);
break;
case EDJE_TWEEN_MODE_CUBIC_BEZIER:
v1 = TO_DOUBLE(epr->tween.v1);
v2 = TO_DOUBLE(epr->tween.v2);
v3 = TO_DOUBLE(epr->tween.v3);
v4 = TO_DOUBLE(epr->tween.v4);
BUF_APPENDF(I4"transition: CUBIC_BEZIER %.5f %.5f %.5f %.5f %.5f", db,v1,v2,v3,v4);
break;
default:
break;
}
if( db && (tweenmode >= EDJE_TWEEN_MODE_LINEAR) && (tweenmode < EDJE_TWEEN_MODE_LAST))
{
if(epr->tween.mode & EDJE_TWEEN_MODE_OPT_FROM_CURRENT)
BUF_APPENDF(" CURRENT;\n");
else
BUF_APPENDF(";\n");
}
/* In */
db = epr->in.from;
db2 = epr->in.range;