Photocam load callbacks
This code snippet demonstrates how to use load callbacks for photocam widget. There are 3 types of events, each for every phase of loading. They can be used to create progressbars for loading large files.
//icon directory should look like this
#define IMG_DIR "/opt/usr/apps/org.example.myapp/res/images"
static void _photocam_loaded_cb(void *data, Evas_Object *obj, void *event_info) {
dlog_print(DLOG_DEBUG, LOG_TAG, "Photocam - loaded low resolution version");
}
static void _photocam_load_detail_cb(void *data, Evas_Object *obj, void *event_info) {
dlog_print(DLOG_DEBUG, LOG_TAG, "Photocam - start loading full resolution");
}
static void _photocam_loaded_detail_cb(void *data, Evas_Object *obj, void *event_info) {
dlog_print(DLOG_DEBUG, LOG_TAG, "Photocam - photo fully loaded");
}
static void photocam_test(Evas_Object *parent) {
//create photocam object
Evas_Object *photocam = elm_photocam_add(parent);
elm_win_resize_object_add(parent, photocam);
//set source file (a big image file)
char path[100] = { 0 };
snprintf(path, sizeof(path), IMG_DIR"/%s", "big_image.jpg");
elm_photocam_file_set(photocam, path);
//loading phases callbacks
evas_object_smart_callback_add(photocam, "loaded", _photocam_loaded_cb, NULL);
evas_object_smart_callback_add(photocam, "load,detail", _photocam_load_detail_cb, NULL);
evas_object_smart_callback_add(photocam, "loaded,detail", _photocam_loaded_detail_cb, NULL);
evas_object_show(photocam);
}