}
*/
-static Eina_Bool
-_zoom_set(Evas_Object *obj, int w, int h)
-{
- int z;
- Widget_Data *wd = elm_widget_data_get(obj);
- if (wd->size.imw > wd->size.imh)
- z = wd->size.imw / w;
- else
- z = wd->size.imh / h;
- if (z >= 8) z = 8;
- else if (z >= 4) z = 4;
- else if (z >= 2) z = 2;
- else z = 1;
- wd->zoom = z;
- wd->size.nw = w;
- wd->size.nh = h;
- return (z != wd->zoom);
-}
-
static void
_sizing_eval(Evas_Object *obj)
{
Eina_List *l;
Grid *g, *g_zoom = NULL;
Evas_Coord pw, ph, rx, ry, rw, rh;
+ double z;
int zoom_changed = 0, started = 0;
Ecore_Animator *an;
if (!wd) return;
{
pw = rw;
}
- if (_zoom_set(obj, pw, ph))
+ if (wd->size.imw > wd->size.imh)
+ z = (double)wd->size.imw / pw;
+ else
+ z = (double)wd->size.imh / ph;
+ if (z != wd->zoom)
zoom_changed = 1;
+ wd->zoom = z;
+ wd->size.nw = pw;
+ wd->size.nh = ph;
}
}
else if (wd->mode == ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL)
{
pw = rw;
}
- if (_zoom_set(obj, pw, ph))
+ if (wd->size.imw > wd->size.imh)
+ z = (double)wd->size.imw / pw;
+ else
+ z = (double)wd->size.imh / ph;
+ if (z != wd->zoom)
zoom_changed = 1;
+ wd->zoom = z;
+ wd->size.nw = pw;
+ wd->size.nh = ph;
}
}
else if (wd->mode == ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT_IN)
}
else
pw = rw;
- if (_zoom_set(obj, pw, ph))
+ if (wd->size.imw > wd->size.imh)
+ z = (double)wd->size.imw / pw;
+ else
+ z = (double)wd->size.imh / ph;
+ if (z != wd->zoom)
zoom_changed = 1;
+ wd->zoom = z;
+ wd->size.nw = pw;
+ wd->size.nh = ph;
}
}
if (wd->main_load_pending)