rendered paste bodystatic Evas_Object *
_trans_object_add(Evas *evas)
{
Evas_Object *obj, *o;
E_Widget_Data *wd;
Evas_Coord w, h;
obj = e_widget_add(evas);
e_widget_del_hook_set(obj, _e_wid_del_hook);
wd = calloc(1, sizeof(E_Widget_Data));
wd->obj = obj;
o = edje_object_add(evas);
wd->o_frame = o;
e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/preview");
evas_object_show(o);
e_widget_sub_object_add(obj, o);
e_widget_resize_object_set(obj, o);
o = edje_object_add(evas);
wd->o_trans = o;
edje_extern_object_min_size_set(o, 200, 200);
edje_extern_object_max_size_set(o, 200, 200);
edje_object_signal_callback_add(o, "e,state,done", "*",
_trans_object_trans_done, wd);
evas_object_show(o);
edje_object_part_swallow(wd->o_frame, "e.swallow.content", o);
// e_widget_sub_object_add(obj, o);
o = e_livethumb_add(evas);
wd->o_bg = o;
e_livethumb_vsize_set(o, 400, 400);
edje_extern_object_min_size_set(o, 200, 200);
edje_extern_object_max_size_set(o, 200, 200);
evas_object_layer_set(o, -1);
evas_object_show(o);
edje_object_part_swallow(wd->o_trans, "e.swallow.bg.new", wd->o_bg);
edje_object_part_swallow(wd->o_trans, "e.swallow.bg.old", wd->o_bg);
edje_object_part_swallow(wd->o_frame, "e.swallow.content", o);
e_widget_data_set(obj, wd);
e_widget_can_focus_set(obj, 0);
edje_object_size_min_calc(wd->o_frame, &w, &h);
e_widget_min_size_set(obj, w, h);
e_widget_sub_object_add(obj, o);
return obj;
}
static void
_trans_object_file_set(Evas_Object *obj, const char *file)
{
E_Widget_Data *wd;
wd = e_widget_data_get(obj);
if (wd->o_thumb)
evas_object_del(wd->o_thumb);
wd->o_thumb = edje_object_add(e_livethumb_evas_get(wd->o_bg));
edje_object_file_set(wd->o_thumb, file, "e/desktop/background");
evas_object_show(wd->o_thumb);
e_livethumb_thumb_set(wd->o_bg, wd->o_thumb);
}
static void
_trans_object_trans_set(Evas_Object *obj, const char *trans)
{
E_Widget_Data *wd;
wd = e_widget_data_get(obj);
e_theme_edje_object_set(wd->o_trans, "base/theme/transitions", trans);
edje_object_signal_emit(wd->o_trans, "e,action,start", "e");
}
static void
_trans_object_trans_done(void *data, Evas_Object *obj, const char *emission, const char *source)
{
E_Widget_Data *wd;
wd = data;
// evas_object_layer_set(wd->o_trans, -1);
// evas_object_layer_set(wd->o_bg, 1);
}
static void
_e_wid_del_hook(Evas_Object *obj)
{
E_Widget_Data *wd;
wd = e_widget_data_get(obj);
free(wd);
}