mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-02 00:17:02 +00:00
76 lines
1.9 KiB
C++
76 lines
1.9 KiB
C++
#include <Elementary.h>
|
|
#include "lottieview.h"
|
|
#include<iostream>
|
|
#include <stdio.h>
|
|
|
|
using namespace std;
|
|
|
|
static void
|
|
_win_del_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
|
{
|
|
LottieView *view = (LottieView *)data;
|
|
delete view;
|
|
elm_exit();
|
|
}
|
|
|
|
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;
|
|
|
|
view->seek(val);
|
|
view->render();
|
|
}
|
|
|
|
EAPI_MAIN int
|
|
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|
{
|
|
Evas_Object *win, *layout, *slider, *image;
|
|
bool renderMode = true;
|
|
|
|
if (argc > 1) {
|
|
if (!strcmp(argv[1], "--disable-render"))
|
|
renderMode = false;
|
|
}
|
|
|
|
win = elm_win_util_standard_add("lottie", "LottieViewer");
|
|
evas_object_resize(win, 500, 700);
|
|
evas_object_show(win);
|
|
|
|
layout = elm_layout_add(win);
|
|
evas_object_show(layout);
|
|
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
std::string edjPath = DEMO_DIR;
|
|
edjPath +="layout.edj";
|
|
elm_layout_file_set(layout, edjPath.c_str(), "layout");
|
|
elm_win_resize_object_add(win, layout);
|
|
|
|
std::string filePath = DEMO_DIR;
|
|
filePath +="insta_camera.json";
|
|
|
|
LottieView *view = new LottieView(evas_object_evas_get(win), renderMode);
|
|
view->setFilePath(filePath.c_str());
|
|
view->setSize(500, 500);
|
|
|
|
evas_object_smart_callback_add(win, "delete,request", _win_del_cb, (void *)view);
|
|
|
|
image = view->getImage();
|
|
evas_object_show(image);
|
|
evas_object_size_hint_min_set(image, 500, 500);
|
|
elm_object_part_content_set(layout, "lottie", image);
|
|
|
|
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);
|
|
|
|
view->seek(0.0);
|
|
view->render();
|
|
|
|
elm_run();
|
|
|
|
return 0;
|
|
}
|
|
ELM_MAIN()
|