All pastes #159718 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-09-03 12:41 UTC
rendered paste body
static 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);
}