for e_thumb.. use preload!

SVN revision: 39866
This commit is contained in:
Carsten Haitzler 2009-04-05 03:49:16 +00:00
parent ffd353ac39
commit cbe9342be3
3 changed files with 42 additions and 1 deletions

View File

@ -12,6 +12,7 @@ struct _E_Smart_Data
int size;
unsigned char fill_inside : 1;
unsigned char scale_up : 1;
unsigned char preload : 1;
};
/* local subsystem functions */
@ -50,6 +51,7 @@ e_icon_file_set(Evas_Object *obj, const char *file)
if (sd->size != 0)
evas_object_image_load_size_set(sd->obj, sd->size, sd->size);
evas_object_image_file_set(sd->obj, file, NULL);
if (sd->preload) evas_object_image_preload(sd->obj, 0);
_e_icon_smart_reconfigure(sd);
}
@ -64,6 +66,7 @@ e_icon_file_key_set(Evas_Object *obj, const char *file, const char *key)
if (sd->size != 0)
evas_object_image_load_size_set(sd->obj, sd->size, sd->size);
evas_object_image_file_set(sd->obj, file, key);
if (sd->preload) evas_object_image_preload(sd->obj, 0);
_e_icon_smart_reconfigure(sd);
}
@ -161,6 +164,26 @@ e_icon_alpha_get(Evas_Object *obj)
return evas_object_image_alpha_get(sd->obj);
}
EAPI void
e_icon_preload_set(Evas_Object *obj, int preload)
{
E_Smart_Data *sd;
sd = evas_object_smart_data_get(obj);
if (!sd) return;
sd->preload = preload;
}
EAPI int
e_icon_preload_get(Evas_Object *obj)
{
E_Smart_Data *sd;
sd = evas_object_smart_data_get(obj);
if (!sd) return 0;
return sd->preload;
}
EAPI void
e_icon_size_get(Evas_Object *obj, int *w, int *h)
{
@ -354,6 +377,12 @@ _e_icon_smart_init(void)
}
}
static void
_e_icon_preloaded(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
evas_object_smart_callback_call(data, "preloaded", NULL);
}
static void
_e_icon_smart_add(Evas_Object *obj)
{
@ -362,6 +391,8 @@ _e_icon_smart_add(Evas_Object *obj)
sd = calloc(1, sizeof(E_Smart_Data));
if (!sd) return;
sd->obj = evas_object_image_add(evas_object_evas_get(obj));
evas_object_event_callback_add(sd->obj, EVAS_CALLBACK_IMAGE_PRELOADED,
_e_icon_preloaded, obj);
sd->x = 0;
sd->y = 0;
sd->w = 0;

View File

@ -16,6 +16,8 @@ EAPI void e_icon_smooth_scale_set (Evas_Object *obj, int smooth);
EAPI int e_icon_smooth_scale_get (Evas_Object *obj);
EAPI void e_icon_alpha_set (Evas_Object *obj, int smooth);
EAPI int e_icon_alpha_get (Evas_Object *obj);
EAPI void e_icon_preload_set (Evas_Object *obj, int preload);
EAPI int e_icon_preload_get (Evas_Object *obj);
EAPI void e_icon_size_get (Evas_Object *obj, int *w, int *h);
EAPI int e_icon_fill_inside_get (Evas_Object *obj);
EAPI void e_icon_fill_inside_set (Evas_Object *obj, int fill_inside);

View File

@ -71,6 +71,12 @@ e_thumb_shutdown(void)
return 1;
}
static void
_thumb_preloaded(void *data, Evas_Object *obj, void *event)
{
evas_object_smart_callback_call(data, "e_thumb_gen", NULL);
}
EAPI Evas_Object *
e_thumb_icon_add(Evas *evas)
{
@ -78,6 +84,7 @@ e_thumb_icon_add(Evas *evas)
E_Thumb *eth;
obj = e_icon_add(evas);
evas_object_smart_callback_add(obj, "preloaded", _thumb_preloaded, obj);
_objid++;
eth = E_NEW(E_Thumb, 1);
eth->objid = _objid;
@ -221,8 +228,9 @@ e_thumb_client_data(Ecore_Ipc_Event_Client_Data *e)
_pending--;
eth->done = 1;
if (_pending == 0) _e_thumb_thumbnailers_kill();
e_icon_preload_set(obj, 1);
e_icon_file_key_set(obj, icon, "/thumbnail/data");
evas_object_smart_callback_call(obj, "e_thumb_gen", NULL);
//x// evas_object_smart_callback_call(obj, "e_thumb_gen", NULL);
}
}
}