static void _mouse_wheel_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { Smart_Data *sd = data; Evas_Object *photocam; Elm_Object_Item *item; Evas_Event_Mouse_Wheel *ev = (Evas_Event_Mouse_Wheel*) event_info; double zoom; //unset the mouse wheel ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; item = elm_slideshow_item_current_get(sd->slideshow); if(!item) return ; photocam = elm_slideshow_item_object_get(item); zoom = elm_photocam_zoom_get(photocam); if (ev->z > 0) zoom *= 1.1; else zoom /= 1.1; if (zoom < 10 && zoom > 0.1) { elm_photocam_zoom_mode_set(photocam, ELM_PHOTOCAM_ZOOM_MODE_MANUAL); elm_photocam_zoom_set(photocam, zoom); } }
static void _fit(void *data, Evas_Object *obj, void *event_info) { int x, y, w, h; elm_photocam_image_region_get(data, &x, &y, &w, &h); printf("region: {%d, %d, %d, %d}\n", x, y, w, h); elm_photocam_zoom_mode_set(data, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); }
static Evas_Object * _slideshow_item_get(void *data, Evas_Object *obj) { Evas_Object *im; im = elm_photocam_add(obj); elm_photocam_zoom_mode_set(im,ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT); elm_photocam_file_set(im, data); return im; }
static void _unfit(void *data, Evas_Object *obj, void *event_info) { elm_photocam_zoom_mode_set(data, ELM_PHOTOCAM_ZOOM_MODE_MANUAL); }