#define FMT_SIZE_T "%zu"
-EAPI Eo_Op ELM_OBJ_IMAGE_BASE_ID = EO_NOOP;
-
#define MY_CLASS ELM_OBJ_IMAGE_CLASS
#define MY_CLASS_NAME "Elm_Image"
#define MY_CLASS_NAME_LEGACY "elm_image"
Evas_Object *obj,
void *event EINA_UNUSED)
{
- Elm_Image_Smart_Data *sd = data;
+ Elm_Image_Data *sd = data;
sd->preloading = EINA_FALSE;
if (sd->show) evas_object_show(obj);
ELM_SAFE_FREE(sd->prev_img, evas_object_del);
}
static void
-_elm_image_internal_sizing_eval(Evas_Object *obj, Elm_Image_Smart_Data *sd)
+_elm_image_internal_sizing_eval(Evas_Object *obj, Elm_Image_Data *sd)
{
Evas_Coord x, y, w, h;
const char *type;
return EINA_TRUE;
}
-static void
-_elm_image_smart_smooth_scale_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_smooth_scale_set(Eo *obj EINA_UNUSED, Elm_Image_Data *sd, Eina_Bool smooth)
{
- Eina_Bool smooth = va_arg(*list, int);
-
- Elm_Image_Smart_Data *sd = _pd;
-
if (sd->edje) return;
evas_object_image_smooth_scale_set(sd->img, smooth);
}
-static void
-_elm_image_smart_smooth_scale_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_smooth_scale_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Image_Smart_Data *sd = _pd;
-
- if (!ret) return;
-
- if (sd->edje)
- {
- *ret = EINA_FALSE;
- return;
- }
+ if (sd->edje) return EINA_FALSE;
- *ret = evas_object_image_smooth_scale_get(sd->img);
+ return evas_object_image_smooth_scale_get(sd->img);
}
-static void
-_elm_image_smart_fill_inside_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_fill_inside_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool fill_inside)
{
- Eina_Bool fill_inside = va_arg(*list, int);
-
- Elm_Image_Smart_Data *sd = _pd;
-
fill_inside = !!fill_inside;
if (sd->fill_inside == fill_inside) return;
_elm_image_internal_sizing_eval(obj, sd);
}
-static void
-_elm_image_smart_fill_inside_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_fill_inside_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
- Elm_Image_Smart_Data *sd = _pd;
-
- if (ret) *ret = sd->fill_inside;
+ return sd->fill_inside;
}
-static void
-_elm_image_smart_resize_up_set(Eo *obj, void *_pd, va_list *list)
-
+EOLIAN static void
+_elm_image_resize_up_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool resize_up)
{
- Eina_Bool resize_up = va_arg(*list, int);
-
- Elm_Image_Smart_Data *sd = _pd;
-
resize_up = !!resize_up;
if (sd->resize_up == resize_up) return;
_elm_image_internal_sizing_eval(obj, sd);
}
-static void
-_elm_image_smart_resize_up_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_resize_up_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
- Elm_Image_Smart_Data *sd = _pd;
-
- if (ret) *ret = sd->resize_up;
+ return sd->resize_up;
}
-static void
-_elm_image_smart_resize_down_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_resize_down_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool resize_down)
{
- Eina_Bool resize_down = va_arg(*list, int);
-
- Elm_Image_Smart_Data *sd = _pd;
-
resize_down = !!resize_down;
if (sd->resize_down == resize_down) return;
_elm_image_internal_sizing_eval(obj, sd);
}
-static void
-_elm_image_smart_resize_down_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_resize_down_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
- Elm_Image_Smart_Data *sd = _pd;
- if (ret) *ret = sd->resize_up;
+ return sd->resize_up;
}
static void
-_elm_image_flip_horizontal(Evas_Object *obj, Elm_Image_Smart_Data *sd)
+_elm_image_flip_horizontal(Evas_Object *obj, Elm_Image_Data *sd)
{
unsigned int *p1, *p2, tmp;
unsigned int *data;
}
static void
-_elm_image_flip_vertical(Evas_Object *obj, Elm_Image_Smart_Data *sd)
+_elm_image_flip_vertical(Evas_Object *obj, Elm_Image_Data *sd)
{
unsigned int *p1, *p2, tmp;
unsigned int *data;
}
static void
-_elm_image_smart_rotate_180(Evas_Object *obj, Elm_Image_Smart_Data *sd)
+_elm_image_smart_rotate_180(Evas_Object *obj, Elm_Image_Data *sd)
{
unsigned int *p1, *p2, tmp;
unsigned int *data;
return EINA_FALSE;
}
-static void
-_elm_image_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_image_evas_smart_add(Eo *obj, Elm_Image_Data *priv)
{
- Elm_Image_Smart_Data *priv = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
elm_widget_sub_object_parent_add(obj);
eo_do(obj, elm_obj_image_sizing_eval());
}
-static void
-_elm_image_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_image_evas_smart_del(Eo *obj, Elm_Image_Data *sd)
{
- Elm_Image_Smart_Data *sd = _pd;
-
ecore_timer_del(sd->anim_timer);
evas_object_del(sd->img);
evas_object_del(sd->prev_img);
eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
}
-static void
-_elm_image_smart_move(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_evas_smart_move(Eo *obj, Elm_Image_Data *sd, Evas_Coord x, Evas_Coord y)
{
- Elm_Image_Smart_Data *sd = _pd;
-
- Evas_Coord x = va_arg(*list, Evas_Coord);
- Evas_Coord y = va_arg(*list, Evas_Coord);
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_move(x, y));
if ((sd->img_x == x) && (sd->img_y == y)) return;
_elm_image_internal_sizing_eval(obj, sd);
}
-static void
-_elm_image_smart_resize(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_evas_smart_resize(Eo *obj, Elm_Image_Data *sd, Evas_Coord w, Evas_Coord h)
{
- Elm_Image_Smart_Data *sd = _pd;
- Evas_Coord w = va_arg(*list, Evas_Coord);
- Evas_Coord h = va_arg(*list, Evas_Coord);
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_resize(w, h));
if ((sd->img_w == w) && (sd->img_h == h)) return;
_elm_image_internal_sizing_eval(obj, sd);
}
-static void
-_elm_image_smart_show(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_image_evas_smart_show(Eo *obj, Elm_Image_Data *sd)
{
- Elm_Image_Smart_Data *sd = _pd;
-
sd->show = EINA_TRUE;
if (sd->preloading) return;
ELM_SAFE_FREE(sd->prev_img, evas_object_del);
}
-static void
-_elm_image_smart_hide(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_image_evas_smart_hide(Eo *obj, Elm_Image_Data *sd)
{
- Elm_Image_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_hide());
sd->show = EINA_FALSE;
ELM_SAFE_FREE(sd->prev_img, evas_object_del);
}
-static void
-_elm_image_smart_member_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_image_evas_smart_member_add(Eo *obj, Elm_Image_Data *sd, Evas_Object *member)
{
- Evas_Object *member = va_arg(*list, Evas_Object *);
- Elm_Image_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_member_add(member));
if (sd->hit_rect)
evas_object_raise(sd->hit_rect);
}
-static void
-_elm_image_smart_color_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_evas_smart_color_set(Eo *obj, Elm_Image_Data *sd, int r, int g, int b, int a)
{
- Elm_Image_Smart_Data *sd = _pd;
-
- int r = va_arg(*list, int);
- int g = va_arg(*list, int);
- int b = va_arg(*list, int);
- int a = va_arg(*list, int);
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_color_set(r, g, b, a));
evas_object_color_set(sd->hit_rect, 0, 0, 0, 0);
if (sd->prev_img) evas_object_color_set(sd->prev_img, r, g, b, a);
}
-static void
-_elm_image_smart_clip_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_evas_smart_clip_set(Eo *obj, Elm_Image_Data *sd, Evas_Object *clip)
{
- Elm_Image_Smart_Data *sd = _pd;
-
- Evas_Object *clip = va_arg(*list, Evas_Object *);
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_clip_set(clip));
evas_object_clip_set(sd->img, clip);
if (sd->prev_img) evas_object_clip_set(sd->prev_img, clip);
}
-static void
-_elm_image_smart_clip_unset(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
-
+EOLIAN static void
+_elm_image_evas_smart_clip_unset(Eo *obj, Elm_Image_Data *sd)
{
- Elm_Image_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_clip_unset());
evas_object_clip_unset(sd->img);
if (sd->prev_img) evas_object_clip_unset(sd->prev_img);
}
-static void
-_elm_image_smart_theme(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_elm_widget_theme_apply(Eo *obj, Elm_Image_Data *sd EINA_UNUSED)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret = EINA_FALSE;
-
eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret));
- if (!int_ret) return;
+ if (!int_ret) return EINA_FALSE;
eo_do(obj, elm_obj_image_sizing_eval());
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
-static void
-_elm_image_smart_event(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_elm_widget_event(Eo *obj, Elm_Image_Data *_pd EINA_UNUSED, Evas_Object *src, Evas_Callback_Type type, void *event_info)
{
- Evas_Object *src = va_arg(*list, Evas_Object *);
(void) src;
- Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type);
- void *event_info = va_arg(*list, void *);
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
Evas_Event_Key_Down *ev = event_info;
- if (ret) *ret = EINA_FALSE;
- if (elm_widget_disabled_get(obj)) return;
- if (type != EVAS_CALLBACK_KEY_DOWN) return;
- if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
+ if (elm_widget_disabled_get(obj)) return EINA_FALSE;
+ if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
+ if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
if ((strcmp(ev->key, "Return")) &&
(strcmp(ev->key, "KP_Enter")) &&
(strcmp(ev->key, "space")))
- return;
+ return EINA_FALSE;
_activate(obj);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
-static void
-_elm_image_smart_sizing_eval(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_image_sizing_eval(Eo *obj, Elm_Image_Data *sd)
{
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
int w, h;
double ts;
- Elm_Image_Smart_Data *sd = _pd;
-
_elm_image_internal_sizing_eval(obj, sd);
eo_do(obj, elm_obj_image_smooth_scale_set(sd->smooth));
ts = sd->scale;
sd->scale = 1.0;
- eo_do(obj, elm_obj_image_size_get(&w, &h));
+ eo_do(obj, elm_obj_image_object_size_get(&w, &h));
sd->scale = ts;
evas_object_size_hint_min_get(obj, &minw, &minh);
evas_object_image_load_size_set(sd->img, sd->load_size, sd->load_size);
else
{
- eo_do((Eo *) obj, elm_obj_image_size_get(&w, &h));
+ eo_do((Eo *) obj, elm_obj_image_object_size_get(&w, &h));
evas_object_image_load_size_set(sd->img, w, h);
}
}
-static void
-_elm_image_smart_memfile_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_memfile_set(Eo *obj, Elm_Image_Data *sd, const void *img, size_t size, const char *format, const char *key)
{
- Elm_Image_Smart_Data *sd = _pd;
-
- const void *img = va_arg(*list, const void *);
- size_t size = va_arg(*list, size_t);
- const char *format = va_arg(*list, const char *);
- const char *key = va_arg(*list, const char *);
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
_elm_image_file_set_do(obj);
evas_object_image_memfile_set
{
ERR("Things are going bad for some random " FMT_SIZE_T
" byte chunk of memory (%p)", size, sd->img);
- if (ret) *ret = EINA_FALSE;
- return;
+ return EINA_FALSE;
}
_elm_image_internal_sizing_eval(obj, sd);
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
-static void
-_elm_image_smart_scale_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_scale_set(Eo *obj, Elm_Image_Data *sd, double scale)
{
- Elm_Image_Smart_Data *sd = _pd;
-
- double scale = va_arg(*list, double);
-
sd->scale = scale;
_elm_image_internal_sizing_eval(obj, sd);
}
-static void
-_elm_image_smart_scale_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static double
+_elm_image_scale_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- Elm_Image_Smart_Data *sd = _pd;
- double *ret = va_arg(*list, double *);
-
- if (ret) *ret = sd->scale;
+ return sd->scale;
}
EAPI Evas_Object *
return obj;
}
-static void
-_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_image_eo_base_constructor(Eo *obj, Elm_Image_Data *_pd EINA_UNUSED)
{
eo_do_super(obj, MY_CLASS, eo_constructor());
eo_do(obj,
}
EAPI Eina_Bool
-elm_image_memfile_set(Evas_Object *obj,
- const void *img,
- size_t size,
- const char *format,
- const char *key)
-{
- ELM_IMAGE_CHECK(obj) EINA_FALSE;
-
- EINA_SAFETY_ON_NULL_RETURN_VAL(img, EINA_FALSE);
- EINA_SAFETY_ON_TRUE_RETURN_VAL(!size, EINA_FALSE);
-
- Eina_Bool ret = EINA_FALSE;
- eo_do(obj, elm_obj_image_memfile_set(img, size, format, key, &ret));
- return ret;
-}
-
-EAPI Eina_Bool
elm_image_file_set(Evas_Object *obj,
const char *file,
const char *group)
}
static void
-_elm_image_smart_internal_file_set(Eo *obj, Elm_Image_Smart_Data *sd,
+_elm_image_smart_internal_file_set(Eo *obj, Elm_Image_Data *sd,
const char *file, const Eina_File *f, const char *key, Eina_Bool *ret)
{
if (eina_str_has_extension(file, ".edj"))
_elm_image_smart_download_done(void *data, Elm_Url *url EINA_UNUSED, Eina_Binbuf *download)
{
Eo *obj = data;
- Elm_Image_Smart_Data *sd = eo_data_scope_get(obj, MY_CLASS);
+ Elm_Image_Data *sd = eo_data_scope_get(obj, MY_CLASS);
Eina_File *f;
size_t length;
Eina_Bool ret = EINA_FALSE;
_elm_image_smart_download_cancel(void *data, Elm_Url *url EINA_UNUSED, int error)
{
Eo *obj = data;
- Elm_Image_Smart_Data *sd = eo_data_scope_get(obj, MY_CLASS);
+ Elm_Image_Data *sd = eo_data_scope_get(obj, MY_CLASS);
Elm_Image_Error err = { error, EINA_FALSE };
evas_object_smart_callback_call(obj, SIG_DOWNLOAD_ERROR, &err);
"http://", "https://", "ftp://"
};
-static void
-_elm_image_smart_file_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_file_set(Eo *obj, Elm_Image_Data *sd, const char *file, const char *key)
{
- const char *file = va_arg(*list, const char *);
- const char *key = va_arg(*list, const char *);
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
- Elm_Image_Smart_Data *sd = _pd;
-
+ Eina_Bool ret = EINA_FALSE;
unsigned int i;
if (sd->remote) _elm_url_cancel(sd->remote);
{
evas_object_smart_callback_call(obj, SIG_DOWNLOAD_START, NULL);
eina_stringshare_replace(&sd->key, key);
- if (ret) *ret = EINA_TRUE;
- return ;
+ return EINA_TRUE;
}
break;
}
- _elm_image_smart_internal_file_set(obj, sd, file, NULL, key, ret);
+ _elm_image_smart_internal_file_set(obj, sd, file, NULL, key, &ret);
+
+ return ret;
}
-static void
-_elm_image_smart_mmap_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_mmap_set(Eo *obj, Elm_Image_Data *sd, const Eina_File *f, const char *key)
{
- const Eina_File *f = va_arg(*list, const Eina_File *);
- const char *key = va_arg(*list, const char*);
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
- Elm_Image_Smart_Data *sd = _pd;
+ Eina_Bool ret;
if (sd->remote) _elm_url_cancel(sd->remote);
sd->remote = NULL;
_elm_image_smart_internal_file_set(obj, sd,
eina_file_filename_get(f), f,
- key, ret);
-}
+ key, &ret);
-EAPI void
-elm_image_file_get(const Evas_Object *obj,
- const char **file,
- const char **group)
-{
- ELM_IMAGE_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_image_file_get(file, group));
+ return ret;
}
-static void
-_elm_image_smart_file_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_file_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd, const char **file, const char **key)
{
- Elm_Image_Smart_Data *sd = _pd;
-
- const char **file = va_arg(*list, const char **);
- const char **key = va_arg(*list, const char **);
-
if (sd->edje)
edje_object_file_get(sd->img, file, key);
else
evas_object_image_file_get(sd->img, file, key);
}
-EAPI void
-elm_image_smooth_set(Evas_Object *obj,
- Eina_Bool smooth)
-{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_smooth_set(smooth));
-}
-
-static void
-_elm_image_smart_smooth_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_smooth_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool smooth)
{
- Eina_Bool smooth = va_arg(*list, int);
- Elm_Image_Smart_Data *sd = _pd;
sd->smooth = smooth;
eo_do(obj, elm_obj_image_sizing_eval());
}
-EAPI Eina_Bool
-elm_image_smooth_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_image_smooth_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_image_smooth_get(&ret));
- return ret;
+ return sd->smooth;
}
-static void
-_elm_image_smart_smooth_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_object_size_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd, int *w, int *h)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Image_Smart_Data *sd = _pd;
- if (ret) *ret = sd->smooth;
-}
-
-EAPI void
-elm_image_object_size_get(const Evas_Object *obj,
- int *w,
- int *h)
-{
- if (w) *w = 0;
- if (h) *h = 0;
-
- ELM_IMAGE_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_image_size_get(w, h));
-}
-
-static void
-_elm_image_smart_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- int *w = va_arg(*list, int *);
- int *h = va_arg(*list, int *);
-
int tw, th;
int cw = 0, ch = 0;
const char *type;
- Elm_Image_Smart_Data *sd = _pd;
-
type = evas_object_type_get(sd->img);
if (!type) return;
if (h) *h = th;
}
-EAPI void
-elm_image_no_scale_set(Evas_Object *obj,
- Eina_Bool no_scale)
-{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_no_scale_set(no_scale));
-}
-
-static void
-_elm_image_smart_no_scale_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_no_scale_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool no_scale)
{
- Eina_Bool no_scale = va_arg(*list, int);
- Elm_Image_Smart_Data *sd = _pd;
sd->no_scale = no_scale;
eo_do(obj, elm_obj_image_sizing_eval());
}
-EAPI Eina_Bool
-elm_image_no_scale_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_image_no_scale_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_image_no_scale_get(&ret));
- return ret;
+ return sd->no_scale;
}
-static void
-_elm_image_smart_no_scale_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_resizable_set(Eo *obj EINA_UNUSED, Elm_Image_Data *sd, Eina_Bool up, Eina_Bool down)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Image_Smart_Data *sd = _pd;
- if (ret) *ret = sd->no_scale;
-}
-
-EAPI void
-elm_image_resizable_set(Evas_Object *obj,
- Eina_Bool up,
- Eina_Bool down)
-{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_resizable_set(up, down));
-}
-
-static void
-_elm_image_smart_resizable_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Eina_Bool up = va_arg(*list, int);
- Eina_Bool down = va_arg(*list, int);
- Elm_Image_Smart_Data *sd = _pd;
-
sd->resize_up = !!up;
sd->resize_down = !!down;
eo_do(obj, elm_obj_image_sizing_eval());
}
-EAPI void
-elm_image_resizable_get(const Evas_Object *obj,
- Eina_Bool *size_up,
- Eina_Bool *size_down)
-{
- ELM_IMAGE_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_image_resizable_get(size_up, size_down));
-}
-
-static void
-_elm_image_smart_resizable_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_resizable_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd, Eina_Bool *size_up, Eina_Bool *size_down)
{
- Eina_Bool *size_up = va_arg(*list, Eina_Bool *);
- Eina_Bool *size_down = va_arg(*list, Eina_Bool *);
-
- Elm_Image_Smart_Data *sd = _pd;
if (size_up) *size_up = sd->resize_up;
if (size_down) *size_down = sd->resize_down;
}
-EAPI void
-elm_image_fill_outside_set(Evas_Object *obj,
- Eina_Bool fill_outside)
+EOLIAN static void
+_elm_image_fill_outside_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool fill_outside)
{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_fill_outside_set(fill_outside));
-}
-
-static void
-_elm_image_smart_fill_outside_set(Eo *obj, void *_pd, va_list *list)
-{
- Eina_Bool fill_outside = va_arg(*list, int);
- Elm_Image_Smart_Data *sd = _pd;
sd->fill_inside = !fill_outside;
eo_do(obj, elm_obj_image_sizing_eval());
}
-EAPI Eina_Bool
-elm_image_fill_outside_get(const Evas_Object *obj)
-{
- ELM_IMAGE_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_image_fill_outside_get(&ret));
- return ret;
-}
-
-static void
-_elm_image_smart_fill_outside_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
- Elm_Image_Smart_Data *sd = _pd;
- if (ret) *ret = !sd->fill_inside;
-}
-
-EAPI void
-elm_image_preload_disabled_set(Evas_Object *obj,
- Eina_Bool disabled)
+EOLIAN static Eina_Bool
+_elm_image_fill_outside_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_preload_disabled_set(!!disabled));
+ return !sd->fill_inside;
}
-static void
-_elm_image_smart_preload_disabled_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_preload_disabled_set(Eo *obj EINA_UNUSED, Elm_Image_Data *sd, Eina_Bool disable)
{
- Elm_Image_Smart_Data *sd = _pd;
-
- Eina_Bool disable = va_arg(*list, int);
-
if (sd->edje || !sd->preloading) return;
//FIXME: Need to keep the disabled status for next image loading.
eo_do(obj, elm_obj_image_load_size_set(size));
}
-static void
-_elm_image_smart_load_size_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_load_size_set(Eo *obj EINA_UNUSED, Elm_Image_Data *sd, int size)
{
- Elm_Image_Smart_Data *sd = _pd;
-
- int size = va_arg(*list, int);
-
sd->load_size = size;
}
return ret;
}
-static void
-_elm_image_smart_load_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Image_Smart_Data *sd = _pd;
-
- int *ret = va_arg(*list, int *);
-
- if (ret) *ret = sd->load_size;
-}
-
-EAPI void
-elm_image_orient_set(Evas_Object *obj,
- Elm_Image_Orient orient)
+EOLIAN static int
+_elm_image_load_size_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_orient_set(orient));
+ return sd->load_size;
}
-static void
-_elm_image_smart_orient_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_orient_set(Eo *obj, Elm_Image_Data *sd, Elm_Image_Orient orient)
{
- Elm_Image_Orient orient = va_arg(*list, Elm_Image_Orient);
unsigned int *data, *data2 = NULL, *to, *from;
int x, y, w, hw, iw, ih;
- Elm_Image_Smart_Data *sd = _pd;
-
if (sd->edje)
return;
_elm_image_internal_sizing_eval(obj, sd);
}
-EAPI Elm_Image_Orient
-elm_image_orient_get(const Evas_Object *obj)
+EOLIAN static Elm_Image_Orient
+_elm_image_orient_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj) ELM_IMAGE_ORIENT_NONE;
-
- Elm_Image_Orient ret = ELM_IMAGE_ORIENT_NONE;
- eo_do((Eo *) obj, elm_obj_image_orient_get(&ret));
-
- return ret;
-}
-
-static void
-_elm_image_smart_orient_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Image_Smart_Data *sd = _pd;
-
- Elm_Image_Orient *ret = va_arg(*list, Elm_Image_Orient *);
-
- if (ret) *ret = sd->orient;
-}
-
-EAPI void
-elm_image_editable_set(Evas_Object *obj,
- Eina_Bool set)
-{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_editable_set(set));
+ return sd->orient;
}
/**
* Turns on editing through drag and drop and copy and paste.
*/
-static void
-_elm_image_smart_editable_set(Eo *obj, void *_pd, va_list *list)
-
+EOLIAN static void
+_elm_image_editable_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool edit)
{
- Elm_Image_Smart_Data *sd = _pd;
- Eina_Bool edit = va_arg(*list, int);
-
if (sd->edje)
{
WRN("No editing edje objects yet (ever)\n");
_elm_image_drag_n_drop_cb, obj);
}
-EAPI Eina_Bool
-elm_image_editable_get(const Evas_Object *obj)
-{
- ELM_IMAGE_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_image_editable_get(&ret));
- return ret;
-}
-
-static void
-_elm_image_smart_editable_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_image_editable_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- Elm_Image_Smart_Data *sd = _pd;
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
- if (ret) *ret = sd->edit;
+ return sd->edit;
}
-EAPI Evas_Object *
-elm_image_object_get(const Evas_Object *obj)
+EOLIAN static Evas_Object*
+_elm_image_object_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj) NULL;
-
- Evas_Object *ret = NULL;
- eo_do((Eo *) obj, elm_obj_image_object_get(&ret));
- return ret;
+ return sd->img;
}
-static void
-_elm_image_smart_object_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Evas_Object **ret = va_arg(*list, Evas_Object **);
-
- Elm_Image_Smart_Data *sd = _pd;
-
- if (ret) *ret = sd->img;
-}
-
-EAPI void
-elm_image_aspect_fixed_set(Evas_Object *obj,
- Eina_Bool fixed)
-{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_aspect_fixed_set(fixed));
-}
-
-static void
-_elm_image_smart_aspect_fixed_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_aspect_fixed_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool fixed)
{
- Elm_Image_Smart_Data *sd = _pd;
- Eina_Bool fixed = va_arg(*list, int);
-
fixed = !!fixed;
if (sd->aspect_fixed == fixed) return;
_elm_image_internal_sizing_eval(obj, sd);
}
-EAPI Eina_Bool
-elm_image_aspect_fixed_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_image_aspect_fixed_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_image_aspect_fixed_get(&ret));
- return ret;
+ return sd->aspect_fixed;
}
-static void
-_elm_image_smart_aspect_fixed_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Image_Smart_Data *sd = _pd;
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
- if (ret) *ret = sd->aspect_fixed;
-}
-
-EAPI Eina_Bool
-elm_image_animated_available_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_image_animated_available_get(Eo *obj, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_image_animated_available_get(&ret));
- return ret;
-}
-
-static void
-_elm_image_smart_animated_available_get(Eo *obj, void *_pd, va_list *list)
-{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
-
- Elm_Image_Smart_Data *sd = _pd;
-
- if (sd->edje)
- {
- if (ret) *ret = EINA_FALSE;
- return;
- }
+ if (sd->edje) return EINA_FALSE;
- if (ret) *ret = evas_object_image_animated_get(elm_image_object_get(obj));
+ return evas_object_image_animated_get(elm_image_object_get(obj));
}
-EAPI void
-elm_image_animated_set(Evas_Object *obj,
- Eina_Bool anim)
+EOLIAN static void
+_elm_image_animated_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool anim)
{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_animated_set(anim));
-}
-
-static void
-_elm_image_smart_animated_set(Eo *obj, void *_pd, va_list *list)
-{
- Eina_Bool anim = va_arg(*list, int);
- Elm_Image_Smart_Data *sd = _pd;
-
anim = !!anim;
if (sd->anim == anim) return;
return;
}
-EAPI Eina_Bool
-elm_image_animated_get(const Evas_Object *obj)
-{
- ELM_IMAGE_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_image_animated_get(&ret));
- return ret;
-}
-
-static void
-_elm_image_smart_animated_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Image_Smart_Data *sd = _pd;
- if (ret) *ret = sd->anim;
-}
-
-EAPI void
-elm_image_animated_play_set(Evas_Object *obj,
- Eina_Bool play)
+EOLIAN static Eina_Bool
+_elm_image_animated_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj);
- eo_do(obj, elm_obj_image_animated_play_set(play));
+ return sd->anim;
}
-static void
-_elm_image_smart_animated_play_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_image_animated_play_set(Eo *obj, Elm_Image_Data *sd, Eina_Bool play)
{
- Eina_Bool play = va_arg(*list, int);
- Elm_Image_Smart_Data *sd = _pd;
-
if (!sd->anim) return;
if (sd->play == play) return;
sd->play = play;
}
-EAPI Eina_Bool
-elm_image_animated_play_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_image_animated_play_get(Eo *obj EINA_UNUSED, Elm_Image_Data *sd)
{
- ELM_IMAGE_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_image_animated_play_get(&ret));
- return ret;
+ return sd->play;
}
static void
-_elm_image_smart_animated_play_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+_elm_image_class_constructor(Eo_Class *klass)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Image_Smart_Data *sd = _pd;
- if (ret) *ret = sd->play;
-}
-
-static void
-_class_constructor(Eo_Class *klass)
-{
- const Eo_Op_Func_Description func_desc[] = {
- EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
-
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_image_smart_add),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_image_smart_del),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _elm_image_smart_resize),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _elm_image_smart_move),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_SHOW), _elm_image_smart_show),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_HIDE), _elm_image_smart_hide),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MEMBER_ADD), _elm_image_smart_member_add),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_COLOR_SET), _elm_image_smart_color_set),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_CLIP_SET), _elm_image_smart_clip_set),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_CLIP_UNSET), _elm_image_smart_clip_unset),
-
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_image_smart_theme),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_EVENT), _elm_image_smart_event),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ASPECT_FIXED_SET), _elm_image_smart_aspect_fixed_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ASPECT_FIXED_GET), _elm_image_smart_aspect_fixed_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_EDITABLE_SET), _elm_image_smart_editable_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_EDITABLE_GET), _elm_image_smart_editable_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILE_SET), _elm_image_smart_file_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILE_GET), _elm_image_smart_file_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SIZING_EVAL), _elm_image_smart_sizing_eval),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SCALE_SET), _elm_image_smart_smooth_scale_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SCALE_GET), _elm_image_smart_smooth_scale_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILL_INSIDE_SET), _elm_image_smart_fill_inside_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILL_INSIDE_GET), _elm_image_smart_fill_inside_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILL_OUTSIDE_SET), _elm_image_smart_fill_outside_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_FILL_OUTSIDE_GET), _elm_image_smart_fill_outside_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_OBJECT_GET), _elm_image_smart_object_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_LOAD_SIZE_SET), _elm_image_smart_load_size_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_LOAD_SIZE_GET), _elm_image_smart_load_size_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_MEMFILE_SET), _elm_image_smart_memfile_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_MMAP_SET), _elm_image_smart_mmap_set),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ORIENT_SET), _elm_image_smart_orient_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ORIENT_GET), _elm_image_smart_orient_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_PRELOAD_DISABLED_SET), _elm_image_smart_preload_disabled_set),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZE_DOWN_SET), _elm_image_smart_resize_down_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZE_DOWN_GET), _elm_image_smart_resize_down_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZE_UP_SET), _elm_image_smart_resize_up_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZE_UP_GET), _elm_image_smart_resize_up_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SCALE_SET), _elm_image_smart_scale_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SCALE_GET), _elm_image_smart_scale_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_OBJECT_SIZE_GET), _elm_image_smart_size_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SET), _elm_image_smart_smooth_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_GET), _elm_image_smart_smooth_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_NO_SCALE_SET), _elm_image_smart_no_scale_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_NO_SCALE_GET), _elm_image_smart_no_scale_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZABLE_SET), _elm_image_smart_resizable_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_RESIZABLE_GET), _elm_image_smart_resizable_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_AVAILABLE_GET), _elm_image_smart_animated_available_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_SET), _elm_image_smart_animated_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_GET), _elm_image_smart_animated_get),
-
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_PLAY_SET), _elm_image_smart_animated_play_set),
- EO_OP_FUNC(ELM_OBJ_IMAGE_ID(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_PLAY_GET), _elm_image_smart_animated_play_get),
-
- EO_OP_FUNC_SENTINEL
- };
- eo_class_funcs_set(klass, func_desc);
-
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
-static const Eo_Op_Description op_desc[] = {
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_ASPECT_FIXED_SET, "Set whether the original aspect ratio of the image should be kept on resize."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_ASPECT_FIXED_GET, "Get if the object retains the original aspect ratio."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_EDITABLE_SET, "Make the image 'editable'."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_EDITABLE_GET, "Check if the image is 'editable'."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_FILE_SET, "Set the file that will be used as the image's source."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_FILE_GET, "Get the file that will be used as image."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_SIZING_EVAL, "'Virtual' function on evaluating the object's final geometry."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SCALE_SET, "'Virtual' function on setting whether the object's image should be scaled smoothly or not."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SCALE_GET, "'Virtual' function on retrieving whether the object's image is to scaled smoothly or not."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_FILL_INSIDE_SET, "'Virtual' function on how to resize the object's internal image, when maintaining a given aspect ratio -- leave blank spaces or scale to fill all space, with pixels out of bounds."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_FILL_INSIDE_GET, "'Virtual' function on retrieving how the object's internal image is to be resized, when maintaining a given aspect ratio."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_FILL_OUTSIDE_SET, "Set if the image fills the entire object area, when keeping the aspect ratio."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_FILL_OUTSIDE_GET, "Get if the object is filled outside."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_OBJECT_GET, "Get the inlined image object of the image widget."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_LOAD_SIZE_SET, "'Virtual' function on setting the object's image loading size (in pixels, applied to both axis)."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_LOAD_SIZE_GET, "'Virtual' function on retrieving the object's image loading size."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_MEMFILE_SET, "Set a location in memory to be used as an image object's source bitmap."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_MMAP_SET, "Set an Eina_File to be used as an image object's source bitmap."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_ORIENT_SET, "Set the image orientation."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_ORIENT_GET, "Get the image orientation."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_PRELOAD_DISABLED_SET, "Enable or disable preloading of the image."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_RESIZE_DOWN_SET, "'Virtual' function on setting whether the object's image can be resized to a size smaller than the original one."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_RESIZE_DOWN_GET, "'Virtual' function on retrieving whether the object's image can be resized to a size smaller than the original one."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_RESIZE_UP_SET, "'Virtual' function on setting whether the object's image can be resized to a size greater than the original one."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_RESIZE_UP_GET, "'Virtual' function on retrieving whether the object's image can be resized to a size greater than the original one."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_SCALE_SET, "'Virtual' function on setting the scale for the object's image size."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_SCALE_GET, "'Virtual' function on retrieving the scale for the object's image size."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_OBJECT_SIZE_GET, "Get the current size of the image."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_SET, "Set the smooth effect for an image."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_SMOOTH_GET, "Get the smooth effect for an image."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_NO_SCALE_SET, "Disable scaling of this object."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_NO_SCALE_GET, "Get whether scaling is disabled on the object."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_RESIZABLE_SET, "Set if the object is (up/down) resizable."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_RESIZABLE_GET, "Get if the object is (up/down) resizable."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_AVAILABLE_GET, "Get whether an image object supports animation or not."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_SET, "Set whether an image object (which supports animation) is to animate itself or not."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_GET, "Get whether an image object has animation enabled or not."),
-
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_PLAY_SET, "Start or stop an image object's animation."),
- EO_OP_DESCRIPTION(ELM_OBJ_IMAGE_SUB_ID_ANIMATED_PLAY_GET, "Get whether an image object is under animation or not."),
-
- EO_OP_DESCRIPTION_SENTINEL
-};
-static const Eo_Class_Description class_desc = {
- EO_VERSION,
- MY_CLASS_NAME,
- EO_CLASS_TYPE_REGULAR,
- EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_IMAGE_BASE_ID, op_desc, ELM_OBJ_IMAGE_SUB_ID_LAST),
- NULL,
- sizeof(Elm_Image_Smart_Data),
- _class_constructor,
- NULL
-};
-EO_DEFINE_CLASS(elm_obj_image_class_get, &class_desc, ELM_OBJ_WIDGET_CLASS, EVAS_SMART_CLICKABLE_INTERFACE, NULL);
+#include "elm_image.eo.c"
--- /dev/null
+class Elm_Image (Elm_Widget, Evas_Clickable_Interface)
+{
+ eo_prefix: elm_obj_image;
+ properties {
+ editable {
+ set {
+ /*@
+ Make the image 'editable'.
+
+ This means the image is a valid drag target for drag and drop, and can be
+ cut or pasted too.
+
+ @ingroup Image */
+ }
+ get {
+ /*@
+ Check if the image is 'editable'.
+
+ @return Editability.
+
+ A return value of EINA_TRUE means the image is a valid drag target
+ for drag and drop, and can be cut or pasted too.
+
+ @ingroup Image */
+ }
+ values {
+ Eina_Bool set; /*@ Turn on or off editability. Default is @c EINA_FALSE. */
+ }
+ }
+ smooth_scale {
+ set {
+ /*@ No description supplied by the EAPI. */
+ }
+ get {
+ /*@ No description supplied by the EAPI. */
+ }
+ values {
+ Eina_Bool smooth;
+ }
+ }
+ resize_down {
+ set {
+ /*@ No description supplied by the EAPI. */
+ }
+ get {
+ /*@ No description supplied by the EAPI. */
+ }
+ values {
+ Eina_Bool resize_down;
+ }
+ }
+ load_size {
+ set {
+ /*@ No description supplied by the EAPI. */
+ }
+ get {
+ /*@ No description supplied by the EAPI. */
+ }
+ values {
+ int size;
+ }
+ }
+ animated_play {
+ set {
+ /*@
+ Start or stop an image object's animation.
+
+ To actually start playing any image object's animation, if it
+ supports it, one must do something like:
+
+ @code
+ if (elm_image_animated_available_get(img))
+ {
+ elm_image_animated_set(img, EINA_TRUE);
+ elm_image_animated_play_set(img, EINA_TRUE);
+ }
+ @endcode
+
+ elm_image_animated_set() will enable animation on the image, <b>but
+ not start it yet</b>. This is the function one uses to start and
+ stop animations on image objects.
+
+ @see elm_image_animated_available_get()
+ @see elm_image_animated_set()
+ @see elm_image_animated_play_get()
+
+ @ingroup Image
+ @since 1.7 */
+ }
+ get {
+ /*@
+ Get whether an image object is under animation or not.
+
+ @return @c EINA_TRUE, if the image is being animated, @c EINA_FALSE
+ otherwise.
+
+ @see elm_image_animated_play_get()
+
+ @ingroup Image
+ @since 1.7 */
+ }
+ values {
+ Eina_Bool play; /*@ @c EINA_TRUE to start the animation, @c EINA_FALSE
+ otherwise. Default is @c EINA_FALSE. */
+ }
+ }
+ resize_up {
+ set {
+ /*@ No description supplied by the EAPI. */
+ }
+ get {
+ /*@ No description supplied by the EAPI. */
+ }
+ values {
+ Eina_Bool resize_up;
+ }
+ }
+ smooth {
+ set {
+ /*@
+ Set the smooth effect for an image.
+
+ Set the scaling algorithm to be used when scaling the image. Smooth
+ scaling provides a better resulting image, but is slower.
+
+ The smooth scaling should be disabled when making animations that change
+ the image size, since it will be faster. Animations that don't require
+ resizing of the image can keep the smooth scaling enabled (even if the
+ image is already scaled, since the scaled image will be cached).
+
+ @see elm_image_smooth_get()
+
+ @ingroup Image */
+ }
+ get {
+ /*@
+ Get the smooth effect for an image.
+
+ @return @c EINA_TRUE if smooth scaling is enabled, @c EINA_FALSE otherwise.
+
+ @see elm_image_smooth_set()
+
+ @ingroup Image */
+ }
+ values {
+ Eina_Bool smooth; /*@ @c EINA_TRUE if smooth scaling should be used, @c EINA_FALSE
+ otherwise. Default is @c EINA_TRUE. */
+ }
+ }
+ no_scale {
+ set {
+ /*@
+ Disable scaling of this object.
+
+ This function disables scaling of the elm_image widget through the
+ function elm_object_scale_set(). However, this does not affect the widget
+ size/resize in any way. For that effect, take a look at
+ elm_image_resizable_set().
+
+ @see elm_image_no_scale_get()
+ @see elm_image_resizable_set()
+ @see elm_object_scale_set()
+
+ @ingroup Image */
+ }
+ get {
+ /*@
+ Get whether scaling is disabled on the object.
+
+ @return @c EINA_TRUE if scaling is disabled, @c EINA_FALSE otherwise
+
+ @see elm_image_no_scale_set()
+
+ @ingroup Image */
+ }
+ values {
+ Eina_Bool no_scale; /*@ @c EINA_TRUE if the object is not scalable, @c EINA_FALSE
+ otherwise. Default is @c EINA_FALSE. */
+ }
+ }
+ animated {
+ set {
+ /*@
+ Set whether an image object (which supports animation) is to
+ animate itself or not.
+
+ An image object, even if it supports animation, will be displayed
+ by default without animation. Call this function with @a animated
+ set to @c EINA_TRUE to enable its animation. To start or stop the
+ animation, actually, use elm_image_animated_play_set().
+
+ @see elm_image_animated_get()
+ @see elm_image_animated_available_get()
+ @see elm_image_animated_play_set()
+
+ @ingroup Image
+ @since 1.7 */
+ }
+ get {
+ /*@
+ Get whether an image object has animation enabled or not.
+
+ @return @c EINA_TRUE if the image has animation enabled,
+ @c EINA_FALSE otherwise.
+
+ @see elm_image_animated_set()
+
+ @ingroup Image
+ @since 1.7 */
+ }
+ values {
+ Eina_Bool anim; /*@ @c EINA_TRUE if the object is to animate itself,
+ @c EINA_FALSE otherwise. Default is @c EINA_FALSE. */
+ }
+ }
+ scale {
+ set {
+ /*@ No description supplied by the EAPI. */
+ }
+ get {
+ /*@ No description supplied by the EAPI. */
+ }
+ values {
+ double scale;
+ }
+ }
+ file {
+ set {
+ /*@
+ Set the file that will be used as the image's source.
+
+ @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
+
+ @see elm_image_file_get()
+
+ @note This function will trigger the Edje file case based on the
+ extension of the @a file string (expects @c ".edj", for this
+ case).
+
+ @note If you use animated gif image and create multiple image objects with
+ one gif image file, you should set the @p group differently for each object.
+ Or image objects will share one evas image cache entry and you will get
+ unwanted frames.
+
+ @ingroup Image */
+ return Eina_Bool;
+ legacy null;
+ }
+ get {
+ /*@
+ Get the file that will be used as image.
+
+ @see elm_image_file_set()
+
+ @ingroup Image */
+ }
+ values {
+ const char *file; /*@ The path to file that will be used as image source */
+ const char *group; /*@ The group that the image belongs to, in case it's an
+ EET (including Edje case) file. This can be used as a key inside
+ evas image cache if this is a normal image file not eet file. */
+ }
+ }
+ fill_inside {
+ set {
+ /*@ No description supplied by the EAPI. */
+ }
+ get {
+ /*@ No description supplied by the EAPI. */
+ }
+ values {
+ Eina_Bool fill_inside;
+ }
+ }
+ aspect_fixed {
+ set {
+ /*@
+ Set whether the original aspect ratio of the image should be kept on resize.
+
+ The original aspect ratio (width / height) of the image is usually
+ distorted to match the object's size. Enabling this option will retain
+ this original aspect, and the way that the image is fit into the object's
+ area depends on the option set by elm_image_fill_outside_set().
+
+ @see elm_image_aspect_fixed_get()
+ @see elm_image_fill_outside_set()
+
+ @ingroup Image */
+ }
+ get {
+ /*@
+ Get if the object retains the original aspect ratio.
+
+ @return @c EINA_TRUE if the object keeps the original aspect, @c EINA_FALSE
+ otherwise.
+
+ @ingroup Image */
+ }
+ values {
+ Eina_Bool fixed; /*@ @c EINA_TRUE if the image should retain the aspect,
+ @c EINA_FALSE otherwise. */
+ }
+ }
+ orient {
+ set {
+ /*@
+ Set the image orientation.
+
+ This function allows to rotate or flip the given image.
+
+ @see elm_image_orient_get()
+ @see @ref Elm_Image_Orient
+
+ @ingroup Image */
+ }
+ get {
+ /*@
+ Get the image orientation.
+
+ @return The image orientation @ref Elm_Image_Orient
+
+ @see elm_image_orient_set()
+ @see @ref Elm_Image_Orient
+
+ @ingroup Image */
+ }
+ values {
+ Elm_Image_Orient orient; /*@ The image orientation @ref Elm_Image_Orient
+ Default is #ELM_IMAGE_ORIENT_NONE. */
+ }
+ }
+ fill_outside {
+ set {
+ /*@
+ Set if the image fills the entire object area, when keeping the aspect ratio.
+
+ When the image should keep its aspect ratio even if resized to another
+ aspect ratio, there are two possibilities to resize it: keep the entire
+ image inside the limits of height and width of the object (@p fill_outside
+ is @c EINA_FALSE) or let the extra width or height go outside of the object,
+ and the image will fill the entire object (@p fill_outside is @c EINA_TRUE).
+
+ @note This option will have no effect if
+ elm_image_aspect_fixed_set() is set to @c EINA_FALSE.
+
+ @see elm_image_fill_outside_get()
+ @see elm_image_aspect_fixed_set()
+
+ @ingroup Image */
+ }
+ get {
+ /*@
+ Get if the object is filled outside
+
+ @return @c EINA_TRUE if the object is filled outside, @c EINA_FALSE otherwise.
+
+ @see elm_image_fill_outside_set()
+
+ @ingroup Image */
+ }
+ values {
+ Eina_Bool fill_outside; /*@ @c EINA_TRUE if the object is filled outside,
+ @c EINA_FALSE otherwise. Default is @c EINA_FALSE. */
+ }
+ }
+ resizable {
+ set {
+ /*@
+ Set if the object is (up/down) resizable.
+
+ This function limits the image resize ability. If @p size_up is set to
+ @c EINA_FALSE, the object can't have its height or width resized to a value
+ higher than the original image size. Same is valid for @p size_down.
+
+ @see elm_image_resizable_get()
+
+ @ingroup Image */
+ }
+ get {
+ /*@
+ Get if the object is (up/down) resizable.
+
+ @see elm_image_resizable_set()
+
+ @ingroup Image */
+ }
+ values {
+ Eina_Bool up; /*@ A bool to set if the object is resizable up. Default is
+ @c EINA_TRUE. */
+ Eina_Bool down; /*@ A bool to set if the object is resizable down. Default
+ is @c EINA_TRUE. */
+ }
+ }
+ preload_disabled {
+ set {
+ /*@
+ Enable or disable preloading of the image
+
+ @ingroup Image */
+ }
+ values {
+ Eina_Bool disabled; /*@ If EINA_TRUE, preloading will be disabled */
+ }
+ }
+ mmap {
+ set {
+ /*@
+ Set the file that will be used as the image's source.
+
+ @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
+
+ @see elm_image_file_set()
+
+ @note This function will trigger the Edje file case based on the
+ extension of the @a file string use to create the Eina_File (expects
+ @c ".edj", for this case).
+
+ @note If you use animated gif image and create multiple image objects with
+ one gif image file, you should set the @p group differently for each object.
+ Or image objects will share one evas image cache entry and you will get
+ unwanted frames.
+
+ @ingroup Image */
+ return Eina_Bool;
+ legacy null;
+ }
+ values {
+ const Eina_File *file; /*@ The handler to an Eina_File that will be used as image source */
+ const char *group; /*@ The group that the image belongs to, in case it's an
+ EET (including Edje case) file. This can be used as a key inside
+ evas image cache if this is a normal image file not eet file. */
+ }
+ }
+ memfile {
+ set {
+ /*@
+ Set a location in memory to be used as an image object's source
+ bitmap.
+
+ This function is handy when the contents of an image file are
+ mapped in memory, for example.
+
+ The @p format string should be something like @c "png", @c "jpg",
+ @c "tga", @c "tiff", @c "bmp" etc, when provided (@c NULL, on the
+ contrary). This improves the loader performance as it tries the
+ "correct" loader first, before trying a range of other possible
+ loaders until one succeeds.
+
+ @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
+
+ @since 1.7
+
+ @ingroup Image */
+ return Eina_Bool;
+ }
+ values {
+ const void *img; /*@ The binary data that will be used as image source */
+ size_t size; /*@ The size of binary data blob @p img */
+ const char *format; /*@ (Optional) expected format of @p img bytes */
+ const char *key; /*@ Optional indexing key of @p img to be passed to the
+ image loader (eg. if @p img is a memory-mapped EET file) */
+ }
+ }
+ animated_available {
+ get {
+ /*@
+ Get whether an image object supports animation or not.
+
+ @return @c EINA_TRUE if the image supports animation,
+ @c EINA_FALSE otherwise.
+
+ This function returns if this Elementary image object's internal
+ image can be animated. Currently Evas only supports GIF
+ animation. If the return value is @b EINA_FALSE, other
+ @c elm_image_animated_xxx API calls won't work.
+
+ @see elm_image_animated_set()
+
+ @ingroup Image
+ @since 1.7 */
+ return Eina_Bool;
+ }
+ }
+ object {
+ get {
+ /*@
+ Get the inlined image object of the image widget.
+
+ @return The inlined image object, or NULL if none exists
+
+ This function allows one to get the underlying @c Evas_Object of type
+ Image from this elementary widget. It can be useful to do things like get
+ the pixel data, save the image to a file, etc.
+
+ @note Be careful to not manipulate it, as it is under control of
+ elementary.
+
+ @ingroup Image */
+ return Evas_Object *;
+ }
+ }
+ object_size {
+ get {
+ /*@
+ Get the current size of the image.
+
+ This is the real size of the image, not the size of the object.
+
+ @ingroup Image */
+ }
+ values {
+ int w; /*@ Pointer to store width, or NULL. */
+ int h; /*@ Pointer to store height, or NULL. */
+ }
+ }
+ }
+ methods {
+ sizing_eval {
+ /*@ No description supplied by the EAPI. */
+ }
+ }
+ implements {
+ class::constructor;
+ Eo_Base::constructor;
+ Evas_Smart::hide;
+ Evas_Smart::clip::set;
+ Evas_Smart::clip_unset;
+ Evas_Smart::show;
+ Evas_Smart::color::set;
+ Evas_Smart::move;
+ Evas_Smart::add;
+ Evas_Smart::del;
+ Evas_Smart::member_add;
+ Evas_Smart::resize;
+ Elm_Widget::theme_apply;
+ Elm_Widget::event;
+ }
+ events {
+ drop;
+ clicked;
+ download,start;
+ download,progress;
+ download,done;
+ download,error;
+ }
+
+}