static void evas_object_image_filled_resize_listener(void *data, Evas *eo_e, Evas_Object *eo_obj, void *einfo);
static int evas_object_image_is_on_plane(Evas_Object *obj EINA_UNUSED, Evas_Object_Protected_Data *pd EINA_UNUSED, void *type_private_data);
+static int evas_object_image_plane_changed(Evas_Object *obj EINA_UNUSED, Evas_Object_Protected_Data *pd EINA_UNUSED, void *type_private_data);
static const Evas_Object_Func object_func =
{
/* methods (compulsory) */
evas_object_image_can_map,
evas_object_image_render_prepare, // render_prepare
evas_object_image_is_on_plane,
+ evas_object_image_plane_changed
};
static const Evas_Object_Image_Load_Opts default_load_opts = {
if (o->plane) return 1;
return 0;
}
+
+static int
+evas_object_image_plane_changed(Evas_Object *obj EINA_UNUSED, Evas_Object_Protected_Data *pd EINA_UNUSED, void *type_private_data)
+{
+ Evas_Image_Data *o = type_private_data;
+
+ if (!!o->plane != o->plane_status)
+ {
+ o->plane_status = !!o->plane;
+ return 1;
+ }
+
+ return 0;
+}
+
static void
evas_object_image_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, void *type_private_data,
void *engine, void *output, void *context, void *surface, int x, int y, Eina_Bool do_async)
}
static inline int
+evas_object_plane_changed(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
+{
+ if (obj->func->plane_changed)
+ return obj->func->plane_changed(eo_obj, obj, obj->private_data);
+ return 0;
+}
+
+static inline int
evas_event_freezes_through(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
{
if (obj->freeze_events) return 1;
// from disk or uploading to texture etc.
void (*render_prepare) (Evas_Object *obj, Evas_Object_Protected_Data *pd, Eina_Bool do_async);
int (*is_on_plane) (Evas_Object *obj, Evas_Object_Protected_Data *pd, void *type_private_data);
+ int (*plane_changed) (Evas_Object *obj, Evas_Object_Protected_Data *pd, void *type_private_data);
};
struct _Evas_Func