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);
}

Responses

0 Replies