1 #include <Elementary.h>
2 #include "lottieview.h"
8 typedef struct _AppInfo AppInfo;
15 _win_del_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
17 LottieView *view = (LottieView *)data;
22 _slider_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
24 double val = elm_slider_value_get(obj);
25 AppInfo *info = (AppInfo *)data;
27 int frameNo = val * info->view->getTotalFrame();
30 sprintf(buf, "%d / %ld", frameNo, info->view->getTotalFrame());
32 elm_object_part_text_set(info->layout, "text", buf);
34 info->view->seek(val);
39 elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
41 Evas_Object *win, *layout, *slider, *image;
42 bool renderMode = true;
47 if (!strcmp(argv[1], "--disable-render"))
51 elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
52 win = elm_win_util_standard_add("lottie", "LottieViewer");
53 elm_win_autodel_set(win, EINA_TRUE);
54 evas_object_resize(win, 500, 700);
55 evas_object_show(win);
57 layout = elm_layout_add(win);
58 evas_object_show(layout);
59 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
61 std::string edjPath = DEMO_DIR;
62 edjPath +="layout.edj";
64 elm_layout_file_set(layout, edjPath.c_str(), "layout");
65 elm_win_resize_object_add(win, layout);
67 std::string filePath = DEMO_DIR;
68 filePath +="insta_camera.json";
70 LottieView *view = new LottieView(evas_object_evas_get(win), renderMode);
71 view->setFilePath(filePath.c_str());
72 view->setSize(500, 500);
74 evas_object_smart_callback_add(win, "delete,request", _win_del_cb, (void *)view);
76 image = view->getImage();
77 evas_object_show(image);
78 evas_object_size_hint_min_set(image, 500, 500);
79 elm_object_part_content_set(layout, "lottie", image);
82 appInfo.layout = layout;
84 slider = elm_slider_add(layout);
85 evas_object_show(slider);
86 elm_object_part_content_set(layout, "slider", slider);
87 evas_object_smart_callback_add(slider, "changed", _slider_cb, (void *)&appInfo);
89 sprintf(buf, "%d / %ld", 0, view->getTotalFrame());
90 elm_object_part_text_set(layout, "text", buf);