From d2c954d53595a28d1a8493d44ea78778d3dbfae6 Mon Sep 17 00:00:00 2001 From: Jaeun Choi Date: Wed, 22 Aug 2018 16:26:44 +0900 Subject: [PATCH] lottie/example: add frame information in lottieviewer example Change-Id: If9245244bfd3e8d8050e18b5ea09fcaf240a867d --- example/lottieviewer.cpp | 29 ++++++++++++++++++++++++---- example/resource/layout.edc | 45 +++++++++++++++++++++++++++++++++++++++----- example/resource/layout.edj | Bin 7712 -> 8870 bytes 3 files changed, 65 insertions(+), 9 deletions(-) diff --git a/example/lottieviewer.cpp b/example/lottieviewer.cpp index e6db228..9e80c55 100644 --- a/example/lottieviewer.cpp +++ b/example/lottieviewer.cpp @@ -5,6 +5,12 @@ using namespace std; +typedef struct _AppInfo AppInfo; +struct _AppInfo { + LottieView *view; + Evas_Object *layout; +}; + static void _win_del_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { @@ -16,10 +22,17 @@ static void _slider_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { double val = elm_slider_value_get(obj); - LottieView *view = (LottieView *)data; + AppInfo *info = (AppInfo *)data; - view->seek(val); - view->render(); + int frameNo = val * info->view->getTotalFrame(); + char buf[64]; + + sprintf(buf, "%d / %ld", frameNo, info->view->getTotalFrame()); + + elm_object_part_text_set(info->layout, "text", buf); + + info->view->seek(val); + info->view->render(); } EAPI_MAIN int @@ -27,6 +40,8 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) { Evas_Object *win, *layout, *slider, *image; bool renderMode = true; + char buf[64]; + AppInfo appInfo; if (argc > 1) { if (!strcmp(argv[1], "--disable-render")) @@ -63,10 +78,16 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) evas_object_size_hint_min_set(image, 500, 500); elm_object_part_content_set(layout, "lottie", image); + appInfo.view = view; + appInfo.layout = layout; + slider = elm_slider_add(layout); evas_object_show(slider); elm_object_part_content_set(layout, "slider", slider); - evas_object_smart_callback_add(slider, "changed", _slider_cb, (void *)view); + evas_object_smart_callback_add(slider, "changed", _slider_cb, (void *)&appInfo); + + sprintf(buf, "%d / %ld", 0, view->getTotalFrame()); + elm_object_part_text_set(layout, "text", buf); view->seek(0.0); view->render(); diff --git a/example/resource/layout.edc b/example/resource/layout.edc index cbc0694..f13e870 100644 --- a/example/resource/layout.edc +++ b/example/resource/layout.edc @@ -3,12 +3,15 @@ collections { parts { rect { "bg"; desc { state: "default" 0.0; - color: 255 255 255 255; + color: 225 225 225 225; } } spacer { "lottie_base"; desc { state: "default" 0.0; - rel2.relative: 1.0 0.7; + rel1.to_y: "text"; + rel1.relative: 0.0 1.0; + rel2.to_y: "slider"; + rel2.relative: 1.0 0.0; } } swallow { "lottie"; @@ -19,11 +22,43 @@ collections { rel2.relative: 0.5 0.5; } } + text { "text"; + desc { state: "default" 0.0; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 0.0; + rel1.offset: -20 20; + rel2.offset: -20 20; + align: 1.0 0.0; + color: 0 0 0 255; + min: 200 30; + text { + font: "arial"; + size: 25; + align: 1.0 0.5; + } + } + } swallow { "slider"; desc { state: "default" 0.0; - rel1.relative: 0.0 0.7; - rel1.offset: 20 20; - rel2.offset: -20 -20; + min: 0 100; + max: -1 100; + align: 0.5 1.0; + rel1.to_x: "left_pad"; + rel1.relative: 1.0 1.0; + rel2.to_x: "right_pad"; + rel2.relative: 0.0 1.0; + } + } + spacer { "left_pad"; + desc { state: "default" 0.0; + min: 20 0; + rel2.relative: 0.0 0.0; + } + } + spacer { "right_pad"; + desc { state: "default" 0.0; + min: 20 0; + rel1.relative: 1.0 0.0; } } } diff --git a/example/resource/layout.edj b/example/resource/layout.edj index a8f567df9df7230d7c501cb5c43b660b4d9057b2..38add6be83136ffc2092b212719c747638201afc 100644 GIT binary patch literal 8870 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 bnm)6-ru(ql@68?dbzI^4qrz&v_Wl0@ZYZFE literal 7712 zcmZ{n33wDm7RQS#oRVX5aVj7nBn(NA2topr5JDg%*$^(Tu`|G8k|B1X^VD{kZ!L*cJZ~~Hz32&@O0ZqNUKOf+B{20@Oy-i2hcJI>HZPqTFhMp z--~`HAMY`Pkk(%k(z_M-0Wgz~lPeh4p&xWlf6zYxb{et`8lf0s5ZL#S?HIj!unSjlQHmkHJ%jJ4(O zU_-%z(2Vsuf(^&8BeUKruw*cHz1P9U2e4AGEU?yS#(G|`oB&n^mK(tS43-DRo}&ru zSuoh-U+)z#0mBXqy8~7nz;=OQZ!Io8<}wIA$V zFgC7`AE7%bqqb0ew7Xz`3ecmr9ANa!=zj@z6q1drOJLsyuxnsvC_^*s!~KLpx5c~f zfL#Zpb<^HveMw-bfj$P=9*x>J3zGVmKF}dUz)B$5J&0-U)}{f2S$Bp ztcQCG`v->6`g=6qE%jd8{{~qwWX)1=S zE%c*1ba*yz_fGdXMs;lG{)KW{so4ZZo!6u z(b(cpPJ>*mPzyS7dF!->A9`Y^xNrOQ?iq-_?f$W7w9~0VPuoaMO zjm3N6m0)cc`%wSG;X_}n>E}iKg>MDZY7S%?+Fr1IkXj5uW}qRj!jD2~ajL(&4Xh4~ ztyl0}IL%+pe~^>Vz6PUyi9j=A2=^1w0mDefzUg4S!AuM*1%nTLzbzn9zlZ>q2+8Kw z9Wc~#f3DKK;G+l{bF3cfZUpx6=UWW=Z-C`Pc11JnLw${KW2of}B=tpmuoob;yoAg_ z!<|Jegw(!+klASPRRqmT#G&>S;I9m}5wZt!wuiw!1!L_y0Y+oZ*rOHtW5Mbn**yOd z?0f)2jz?SvW8)q^j<^lRenZ=UHG^rsha7}fgdw$;t=aHZWDhWHJ;-7-tQFZGlHQ%+ zE5u~v5Dbm;a_HmEBWX_4nm`|{Pd)*o@xa;=1(plO)&sf+^%?xFJul%e{2u9oG`>f8 zk4ytAfn?XixgzNuvH80UOuG-p_tfT%&@=oz4}Gi^2_LqIacavxMy~>W#71Pbp$Dm; zA+I87?KHj>dFa=H(R*Wm7pH)o24ia&`jOYbSeq|^!NwL0aT?VLtRotIWHiKllnGMH z8Ay6JbHD~bMxz;b1e>FhDWg7sr2fEpqoy%zG5YX(6!kM}UpW}oB;oqIcJz0Ft)O~3 zi$tH=_YNe@75ZRIUIE(!N$2SkjXok(OH|jEm>~C+n9*uF$ zr;u-T_m3=Kvf`$f~5qQyNVd_wZUsP7EDIP@2S zJp{?t*u7xX&sttWI?!NGbOK};-IqS-BNw8_84Pkh+S6dv_v|-54~*sx%T|JkVC=q# zp=f&dhVS7|@;%tRfOm0c(M!M#`>+;y2W&ON9!K8`wgpoAHbT@Io77NL)_Xn_%0Sx1Af2`$*Mx~3y6zz z@ZvWEIw|2q4^K)2MaajiF3BqME;}z1 zQE&<>fvR}~RpvyYz-2DgrI(cA;>$=HwSU++>onfxo3ReF6NgaB+s(6eSxB6M%jpr# zghbr;jN_sW3O*4IUEYF8ngOHpA+l`M^9r30qZeieV$z}!OX6gU^dp% zdR}4^1-Dg|tb(23iY3`B>#{(X`MTtM5}O$vT_eG)t0b5?xXMj;aPzX_HU_xALRA~c zl1gW7yi0{^s4gX?{+`$0E7N+COB0Gyl2m#PZZjvk3w^t2TUd3Ce9kt@<`G3rr%aNZ z`l4FbOEg_`nOo#sygqP9HclkEYXrrrV948vyU?o$HpT4Z6vaP~c|{de4-I}lbI5|0 z4SrzfoNmEYfIxBaocv!H`QZ`45r#CZAN4CJB9EBT-=ecNZg@POKf?FN9Wy*Y(^%-f zrSPSIvlzh6yA(miq4lE_aX3Qf4#(ppaQ^?Bxo=kBJNK<(XK>p8vl^ZG->cCXy+Gv9vy4MAk_9)tK5MGv zbmAlkCj=m3-Y#vjeACJ}y(MF( z`^1{#+nb1zstUX{pHq0ExH%hcj(!~ShcOQ=?LIxC%;rQZJeTF{{k0sl;$_jX8&wS7VTykemCyh>_Y`ISAr~Ng1;rdANno%{WS9N zz;TO|xAHC;{C4<6I|U*GcS$X$Az||=}lZCB?r5c1X+3vSjL0Q*tb+X}QKA%aSu?LbhSTmsg}uUxfcDsX*fo#6V0Ak;R)3)XQ+E}JSLThnOH`Yvuf zy(s#mPMBnG3%N-f5mI_~%ZkZGhvGuY(>@(mzJB9FpDlBD*?Pg%=}gIw)#I-}eimJ0(t{2p8u$(_v zUzX}@JeBy!*!S<=Y18My4|n`Ae&ep)F~?_zUj0nnx2D`|eZeQ8; z#p;};W>c@BwPOan5w!E#=bH|@mR6)B2HDmxYz*Jr*L3R2=&yHQPCjzBaKb;I80>zl zl`S-;^vQ|A{nm|$+qQAl;iAbm^B#UV>6t6`eoLy>&VRGmytTD+j(O^`UdIOXyDNK zB$fK*>2GQtI0(O7jDKnF;U%4KZ+xn6+O~N;uT=~oy}zsAK!8#@-gm-_RdqV1y^hMm0oxTk2{ zp2%;4Z+*~oui@&a&J(wltb0#?`+SD^%b2``XX>9%ZCEk8F{x?n&!g&^$0ff$v@xcs z;;SEu+WqTX@cA8a!z;9#D?R&T%qlS-D4ejf7#OXXwtd;`}f>hmAHCh!P%fe zw`UG|Gjq%JiFv;->i)sv1+kYi%NI*)i&rm}R#y$Yy!PTpkIt|@{I~L_toiwAU5@5| ze0p_aw;S_4NAjy)d$mp1*xtLNnj88rj0p+e`2M`rx$SDdI{f?v*UBD6S3X^pVeNN5 zse0$SQ=Wl8aWkjCmP7W3{bktU6U(+vJJDQpX>b0l zx!=9IV}8t;xiyc~U7D=+Uwh=wsn`Eh+5V9pVoajgBT*c6u&et0qFtTOmGrw|IX&yt zwL`@Rl6oE(_dr4C(PMX9O=_;~R%tmt|HIwi>@G=u`Sk@gO&yApoM(bAZOS_pf1{@O zvtLae2A=pa{Gf1bPQ~_-ldfJK`SPs}Q6c8OPo;dc*xl~p;Df_ozTV-nlMlXfrB_(( z_<<|4VsAy%4xsX0n<`OEkKKPTeA4+v{Lv%7niuhVOtlB2CT%!ecYI3hFV#DDuQTa` z_&K+wuHCiQBC14JdhDy6ro?W_iXCNMIRt<2jj0_FR@-(Fe`)A}3TOW+(Q_~Mtr;b9 z)#4FVvEfyX)32798a7S#ZfN*2X=Ckk6Pg$PUd0btlYM0U*!bh$HjTXfL%UA(F;%NB sG_Oh6-!aR3{MRSfyg2Yq#J=k1_H^7+ll<)8mUY