From f1dd5afeaf925568ea3acc4a620418230d794cf9 Mon Sep 17 00:00:00 2001 From: Amitesh Singh Date: Mon, 25 Sep 2017 20:20:19 +0900 Subject: work init --- src/lib/efl/interfaces/efl_image_load.eo | 4 ---- src/lib/evas/canvas/efl_canvas_image.c | 13 ++++++++++++- src/lib/evas/canvas/efl_canvas_image.eo | 1 + src/lib/evas/canvas/evas_image_private.h | 2 ++ 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/lib/efl/interfaces/efl_image_load.eo b/src/lib/efl/interfaces/efl_image_load.eo index 65e4853111..04926c259a 100644 --- a/src/lib/efl/interfaces/efl_image_load.eo +++ b/src/lib/efl/interfaces/efl_image_load.eo @@ -1,6 +1,5 @@ import efl_gfx_types; -/* enum Efl.Image.Load.State { none = 0, [[Not loading any image.]] @@ -10,7 +9,6 @@ enum Efl.Image.Load.State error = 4, [[Image load has failed. Call @Efl.Image.Load.load_error.get to know why.]] cancelled = 5 [[Image load has been cancelled.]] } -*/ interface Efl.Image.Load () { @@ -33,7 +31,6 @@ interface Efl.Image.Load () will be kept in memory. ]] } - /* @property load_state { get { [[Queries information on the current state of load of the image. @@ -46,7 +43,6 @@ interface Efl.Image.Load () state: Efl.Image.Load.State; [[Image loading status]] } } - */ @property load_size { [[The load size of an image. diff --git a/src/lib/evas/canvas/efl_canvas_image.c b/src/lib/evas/canvas/efl_canvas_image.c index 1694d47ae5..4c6c8ac1fe 100644 --- a/src/lib/evas/canvas/efl_canvas_image.c +++ b/src/lib/evas/canvas/efl_canvas_image.c @@ -174,7 +174,8 @@ _evas_image_load_async_start(Eo *eo_obj) { Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); - + + o->load_state = EFL_IMAGE_LOAD_STATE_PENDING; evas_object_async_block(obj); _image_preload_internal(eo_obj, o, EINA_FALSE); } @@ -193,6 +194,7 @@ _evas_image_load_async_cancel(Eo *eo_obj) evas_object_async_block(obj); _image_preload_internal(eo_obj, o, EINA_TRUE); + o->load_state = EFL_IMAGE_LOAD_STATE_CANCELLED; } EOLIAN static void @@ -762,6 +764,15 @@ _efl_canvas_image_efl_gfx_buffer_buffer_copy_set(Eo *eo_obj, void *_pd EINA_UNUS return _image_pixels_set(obj, o, slice, size.w, size.h, stride, cspace, plane, EINA_TRUE); } +EOLIAN Efl_Image_Load_State +_efl_canvas_image_efl_image_load_load_state_get(Eo *eo_obj, void *pd EINA_UNUSED) +{ + //Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); + Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); + + return o->load_state; +} + EOLIAN static Eina_Slice _efl_canvas_image_efl_gfx_buffer_buffer_managed_get(Eo *eo_obj, void *_pd EINA_UNUSED EINA_UNUSED, int plane) diff --git a/src/lib/evas/canvas/efl_canvas_image.eo b/src/lib/evas/canvas/efl_canvas_image.eo index dc23c8abc5..759612b8ed 100644 --- a/src/lib/evas/canvas/efl_canvas_image.eo +++ b/src/lib/evas/canvas/efl_canvas_image.eo @@ -34,5 +34,6 @@ class Efl.Canvas.Image (Efl.Canvas.Image.Internal, Efl.Gfx.Buffer, Efl.Image.Load.load_skip_header { get; set; } Efl.Image.Load.load_region { get; set; } Efl.Image.Load.load_region_support { get; } + Efl.Image.Load.load_state { get; } } } diff --git a/src/lib/evas/canvas/evas_image_private.h b/src/lib/evas/canvas/evas_image_private.h index b4299eb920..3f65e143af 100644 --- a/src/lib/evas/canvas/evas_image_private.h +++ b/src/lib/evas/canvas/evas_image_private.h @@ -124,6 +124,8 @@ struct _Evas_Image_Data struct { short w, h; } file_size; + + Efl_Image_Load_State load_state; Eina_Bool changed : 1; Eina_Bool dirty_pixels : 1; -- cgit v1.2.1