From 0b60d87ac5cc102f87c9adbc69b74ac9a1fcb4aa Mon Sep 17 00:00:00 2001 From: Stephen Houston Date: Sun, 11 Aug 2013 23:19:32 -0500 Subject: [PATCH] elm_thumb: Add support for ethumb formatting and size manipulation. Add the ability to manipulate elm_thumb thumbnails per object by exposing ethumb manipulation. Reviewed by raster and SeoZ. --- legacy/elementary/src/lib/elm_thumb.c | 338 +++++++++++++++++++ legacy/elementary/src/lib/elm_thumb.h | 4 + legacy/elementary/src/lib/elm_thumb_eo.h | 240 +++++++++++++ legacy/elementary/src/lib/elm_thumb_legacy.h | 211 ++++++++++++ legacy/elementary/src/lib/elm_widget_thumb.h | 10 + 5 files changed, 803 insertions(+) diff --git a/legacy/elementary/src/lib/elm_thumb.c b/legacy/elementary/src/lib/elm_thumb.c index d615009045..fbda52f044 100644 --- a/legacy/elementary/src/lib/elm_thumb.c +++ b/legacy/elementary/src/lib/elm_thumb.c @@ -365,6 +365,22 @@ _on_ethumb_thumb_error(Ethumb_Client *client __UNUSED__, static void _thumb_start(Elm_Thumb_Smart_Data *sd) { + if (sd->thumb.aspect) + ethumb_client_aspect_set(_elm_ethumb_client, sd->thumb.aspect); + if (sd->thumb.size) + ethumb_client_fdo_set(_elm_ethumb_client, sd->thumb.size); + if (sd->thumb.format) + ethumb_client_format_set(_elm_ethumb_client, sd->thumb.format); + if (sd->thumb.orient) + ethumb_client_orientation_set(_elm_ethumb_client, sd->thumb.orient); + if (sd->thumb.tw && sd->thumb.th) + ethumb_client_size_set(_elm_ethumb_client, sd->thumb.tw, sd->thumb.th); + if (sd->thumb.cropx && sd->thumb.cropy) + ethumb_client_crop_align_set(_elm_ethumb_client, sd->thumb.cropx, sd->thumb.cropy); + if (sd->thumb.quality) + ethumb_client_quality_set(_elm_ethumb_client, sd->thumb.quality); + if (sd->thumb.compress) + ethumb_client_compress_set(_elm_ethumb_client, sd->thumb.compress); if (sd->thumb.request) { ethumb_client_thumb_async_cancel(_elm_ethumb_client, sd->thumb.request); @@ -771,6 +787,296 @@ _path_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) *key = sd->thumb.key; } +EAPI void +elm_thumb_aspect_set(Evas_Object *obj, + Ethumb_Thumb_Aspect aspect) +{ + ELM_THUMB_CHECK(obj); + eo_do(obj, elm_obj_thumb_aspect_set(aspect)); +} + +static void +_aspect_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Ethumb_Thumb_Aspect aspect = va_arg(*list, Ethumb_Thumb_Aspect); + Elm_Thumb_Smart_Data *sd = _pd; + + sd->thumb.aspect = aspect; +} + +EAPI Ethumb_Thumb_Aspect +elm_thumb_aspect_get(const Evas_Object *obj) +{ + ELM_THUMB_CHECK(obj) EINA_FALSE; + Ethumb_Thumb_Aspect ret; + eo_do((Eo *)obj, elm_obj_thumb_aspect_get(&ret)); + return ret; +} + +static void +_aspect_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Ethumb_Thumb_Aspect *ret = va_arg(*list, Ethumb_Thumb_Aspect *); + Elm_Thumb_Smart_Data *sd = _pd; + *ret = sd->thumb.aspect; +} + +EAPI void +elm_thumb_fdo_size_set(Evas_Object *obj, + Ethumb_Thumb_FDO_Size size) +{ + ELM_THUMB_CHECK(obj); + eo_do(obj, elm_obj_thumb_fdo_size_set(size)); +} + +static void +_fdo_size_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Ethumb_Thumb_FDO_Size size = va_arg(*list, Ethumb_Thumb_FDO_Size); + Elm_Thumb_Smart_Data *sd = _pd; + + sd->thumb.size = size; +} + +EAPI Ethumb_Thumb_FDO_Size +elm_thumb_fdo_size_get(const Evas_Object *obj) +{ + ELM_THUMB_CHECK(obj) EINA_FALSE; + Ethumb_Thumb_FDO_Size ret; + eo_do((Eo *)obj, elm_obj_thumb_fdo_size_get(&ret)); + return ret; +} + +static void +_fdo_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Ethumb_Thumb_FDO_Size *ret = va_arg(*list, Ethumb_Thumb_FDO_Size *); + Elm_Thumb_Smart_Data *sd = _pd; + *ret = sd->thumb.size; +} + +EAPI void +elm_thumb_format_set(Evas_Object *obj, + Ethumb_Thumb_Format format) +{ + ELM_THUMB_CHECK(obj); + eo_do(obj, elm_obj_thumb_format_set(format)); +} + +static void +_format_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Ethumb_Thumb_Format format = va_arg(*list, Ethumb_Thumb_Format); + Elm_Thumb_Smart_Data *sd = _pd; + + sd->thumb.format = format; +} + +EAPI Ethumb_Thumb_Format +elm_thumb_format_get(const Evas_Object *obj) +{ + ELM_THUMB_CHECK(obj) EINA_FALSE; + Ethumb_Thumb_Format ret; + eo_do((Eo *)obj, elm_obj_thumb_format_get(&ret)); + return ret; +} + +static void +_format_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Ethumb_Thumb_Format *ret = va_arg(*list, Ethumb_Thumb_Format *); + Elm_Thumb_Smart_Data *sd = _pd; + *ret = sd->thumb.format; +} + +EAPI void +elm_thumb_orientation_set(Evas_Object *obj, + Ethumb_Thumb_Orientation orient) +{ + ELM_THUMB_CHECK(obj); + eo_do(obj, elm_obj_thumb_orientation_set(orient)); +} + +static void +_orientation_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Ethumb_Thumb_Orientation orient = va_arg(*list, Ethumb_Thumb_Orientation); + Elm_Thumb_Smart_Data *sd = _pd; + + sd->thumb.orient = orient; +} + +EAPI Ethumb_Thumb_Orientation +elm_thumb_orientation_get(const Evas_Object *obj) +{ + ELM_THUMB_CHECK(obj) EINA_FALSE; + Ethumb_Thumb_Orientation ret; + eo_do((Eo *)obj, elm_obj_thumb_orientation_get(&ret)); + return ret; +} + +static void +_orientation_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Ethumb_Thumb_Orientation *ret = va_arg(*list, Ethumb_Thumb_Orientation *); + Elm_Thumb_Smart_Data *sd = _pd; + *ret = sd->thumb.orient; +} + +EAPI void +elm_thumb_size_set(Evas_Object *obj, + int tw, + int th) +{ + ELM_THUMB_CHECK(obj); + eo_do(obj, elm_obj_thumb_size_set(tw, th)); +} + +static void +_thumb_size_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + int tw = va_arg(*list, int); + int th = va_arg(*list, int); + Elm_Thumb_Smart_Data *sd = _pd; + + sd->thumb.tw = tw; + sd->thumb.th = th; +} + +EAPI void +elm_thumb_size_get(const Evas_Object *obj, + int *tw, + int *th) +{ + ELM_THUMB_CHECK(obj); + eo_do((Eo *) obj, elm_obj_thumb_size_get(tw, th)); +} + +static void +_thumb_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + int *tw = va_arg(*list, int *); + int *th = va_arg(*list, int *); + Elm_Thumb_Smart_Data *sd = _pd; + + if (tw) + *tw = sd->thumb.tw; + if (th) + *th = sd->thumb.th; +} + +EAPI void +elm_thumb_crop_align_set(Evas_Object *obj, + double cropx, + double cropy) +{ + ELM_THUMB_CHECK(obj); + eo_do(obj, elm_obj_thumb_crop_align_set(cropx, cropy)); +} + +static void +_crop_align_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + double cropx = va_arg(*list, double); + double cropy = va_arg(*list, double); + Elm_Thumb_Smart_Data *sd = _pd; + + sd->thumb.cropx = cropx; + sd->thumb.cropy = cropy; +} + +EAPI void +elm_thumb_crop_align_get(const Evas_Object *obj, + double *cropx, + double *cropy) +{ + ELM_THUMB_CHECK(obj); + eo_do((Eo *) obj, elm_obj_thumb_crop_align_get(cropx, cropy)); +} + +static void +_crop_align_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + double *cropx = va_arg(*list, double *); + double *cropy = va_arg(*list, double *); + Elm_Thumb_Smart_Data *sd = _pd; + + if (cropx) + *cropx = sd->thumb.cropx; + if (cropy) + *cropy = sd->thumb.cropy; +} + +EAPI void +elm_thumb_compress_set(Evas_Object *obj, + int compress) +{ + ELM_THUMB_CHECK(obj); + eo_do(obj, elm_obj_thumb_compress_set(compress)); +} + +static void +_compress_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + int compress = va_arg(*list, int); + Elm_Thumb_Smart_Data *sd = _pd; + + sd->thumb.compress = compress; +} + +EAPI void +elm_thumb_compress_get(const Evas_Object *obj, + int *compress) +{ + ELM_THUMB_CHECK(obj); + eo_do((Eo *) obj, elm_obj_thumb_compress_get(compress)); +} + +static void +_compress_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + int *compress = va_arg(*list, int *); + Elm_Thumb_Smart_Data *sd = _pd; + + if (compress) + *compress = sd->thumb.compress; +} + +EAPI void +elm_thumb_quality_set(Evas_Object *obj, + int quality) +{ + ELM_THUMB_CHECK(obj); + eo_do(obj, elm_obj_thumb_quality_set(quality)); +} + +static void +_quality_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + int quality = va_arg(*list, int); + Elm_Thumb_Smart_Data *sd = _pd; + + sd->thumb.quality = quality; +} + +EAPI void +elm_thumb_quality_get(const Evas_Object *obj, + int *quality) +{ + ELM_THUMB_CHECK(obj); + eo_do((Eo *) obj, elm_obj_thumb_quality_get(quality)); +} + +static void +_quality_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + int *quality = va_arg(*list, int *); + Elm_Thumb_Smart_Data *sd = _pd; + + if (quality) + *quality = sd->thumb.quality; +} + EAPI void elm_thumb_animate_set(Evas_Object *obj, Elm_Thumb_Animation_Setting setting) @@ -897,6 +1203,22 @@ _class_constructor(Eo_Class *klass) EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FILE_SET), _file_set), EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FILE_GET), _file_get), EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_PATH_GET), _path_get), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ASPECT_SET), _aspect_set), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ASPECT_GET), _aspect_get), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FDO_SIZE_SET), _fdo_size_set), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FDO_SIZE_GET), _fdo_size_get), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FORMAT_SET), _format_set), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FORMAT_GET), _format_get), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ORIENTATION_SET), _orientation_set), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ORIENTATION_GET), _orientation_get), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_CROP_ALIGN_SET), _crop_align_set), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_CROP_ALIGN_GET), _crop_align_get), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_THUMB_SIZE_SET), _thumb_size_set), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_THUMB_SIZE_GET), _thumb_size_get), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_COMPRESS_SET), _compress_set), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_COMPRESS_GET), _compress_get), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_QUALITY_SET), _quality_set), + EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_QUALITY_GET), _quality_get), EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ANIMATE_SET), _animate_set), EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ANIMATE_GET), _animate_get), EO_OP_FUNC(ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_EDITABLE_SET), _editable_set), @@ -913,6 +1235,22 @@ static const Eo_Op_Description op_desc[] = { EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_FILE_SET, "Set the file that will be used as thumbnail source."), EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_FILE_GET, "Get the image or video path and key used to generate the thumbnail."), EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_PATH_GET, "Get the path and key to the image or video thumbnail generated by ethumb."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_ASPECT_SET, "Set the aspect of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_ASPECT_GET, "Get the aspect of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_FDO_SIZE_SET, "Set the FDO size of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_FDO_SIZE_GET, "Get the FDO size of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_FORMAT_SET, "Set the format of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_FORMAT_GET, "Get the format of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_ORIENTATION_SET, "Set the orientation of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_ORIENTATION_GET, "Get the orientation of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_CROP_ALIGN_SET, "Set the crop of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_CROP_ALIGN_GET, "Get the crop of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_THUMB_SIZE_SET, "Set the thumb size of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_THUMB_SIZE_GET, "Get the thumb size of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_COMPRESS_SET, "Set the compression of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_COMPRESS_GET, "Get the compression of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_QUALITY_SET, "Set the quality of the thumb object."), + EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_QUALITY_GET, "Get the quality of the thumb object."), EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_ANIMATE_SET, "Set the animation state for the thumb object."), EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_ANIMATE_GET, "Get the animation state for the thumb object."), EO_OP_DESCRIPTION(ELM_OBJ_THUMB_SUB_ID_EDITABLE_SET, "Make the thumbnail 'editable'."), diff --git a/legacy/elementary/src/lib/elm_thumb.h b/legacy/elementary/src/lib/elm_thumb.h index 7b0b1c747d..15cc8e6f21 100644 --- a/legacy/elementary/src/lib/elm_thumb.h +++ b/legacy/elementary/src/lib/elm_thumb.h @@ -25,6 +25,10 @@ * Ethumb's documentation to change this path, and to see other * configuration options. * + * If you set formatting features such as, aspect, size, format, + * orientation, crop, compression, or quality after the thumbnail + * has been shown, it needs to be reloaded with elm_thumb_reload. + * * This widget emits the following signals: * - @c "clicked" - This is called when a user has clicked the * thumbnail object without dragging it around. diff --git a/legacy/elementary/src/lib/elm_thumb_eo.h b/legacy/elementary/src/lib/elm_thumb_eo.h index f80229127d..1bf250c1d8 100644 --- a/legacy/elementary/src/lib/elm_thumb_eo.h +++ b/legacy/elementary/src/lib/elm_thumb_eo.h @@ -10,6 +10,22 @@ enum ELM_OBJ_THUMB_SUB_ID_FILE_SET, ELM_OBJ_THUMB_SUB_ID_FILE_GET, ELM_OBJ_THUMB_SUB_ID_PATH_GET, + ELM_OBJ_THUMB_SUB_ID_ASPECT_SET, + ELM_OBJ_THUMB_SUB_ID_ASPECT_GET, + ELM_OBJ_THUMB_SUB_ID_FDO_SIZE_SET, + ELM_OBJ_THUMB_SUB_ID_FDO_SIZE_GET, + ELM_OBJ_THUMB_SUB_ID_FORMAT_SET, + ELM_OBJ_THUMB_SUB_ID_FORMAT_GET, + ELM_OBJ_THUMB_SUB_ID_ORIENTATION_SET, + ELM_OBJ_THUMB_SUB_ID_ORIENTATION_GET, + ELM_OBJ_THUMB_SUB_ID_CROP_ALIGN_SET, + ELM_OBJ_THUMB_SUB_ID_CROP_ALIGN_GET, + ELM_OBJ_THUMB_SUB_ID_THUMB_SIZE_SET, + ELM_OBJ_THUMB_SUB_ID_THUMB_SIZE_GET, + ELM_OBJ_THUMB_SUB_ID_COMPRESS_SET, + ELM_OBJ_THUMB_SUB_ID_COMPRESS_GET, + ELM_OBJ_THUMB_SUB_ID_QUALITY_SET, + ELM_OBJ_THUMB_SUB_ID_QUALITY_GET, ELM_OBJ_THUMB_SUB_ID_ANIMATE_SET, ELM_OBJ_THUMB_SUB_ID_ANIMATE_GET, ELM_OBJ_THUMB_SUB_ID_EDITABLE_SET, @@ -78,6 +94,230 @@ enum */ #define elm_obj_thumb_path_get(file, key) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_PATH_GET), EO_TYPECHECK(const char **, file), EO_TYPECHECK(const char **, key) +/** + * @def elm_obj_thumb_aspect_set + * @since 1.8 + * + * Set the aspect for the thumb object + * + * @param[in] setting + * + * @see elm_thumb_aspect_set + * + * @ingroup Thumb + */ +#define elm_obj_thumb_aspect_set(aspect) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ASPECT_SET), EO_TYPECHECK(Ethumb_Thumb_Aspect, aspect) + +/** + * @def elm_obj_thumb_aspect_get + * @since 1.8 + * + * Get the aspect of the thumb object + * @param[out] ret + * + * @see elm_thumb_aspect_get + * + * @ingroup Thumb + */ +#define elm_obj_thumb_aspect_get(ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ASPECT_GET), EO_TYPECHECK(Ethumb_Thumb_Aspect *, ret) + +/** + * @def elm_obj_thumb_fdo_size_set + * @since 1.8 + * + * Set the fdo size for the thumb object + * + * @param[in] setting + * + * @see elm_thumb_fdo_size_set + * + * @ingroup Thumb + */ +#define elm_obj_thumb_fdo_size_set(size) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FDO_SIZE_SET), EO_TYPECHECK(Ethumb_Thumb_FDO_Size, size) + +/** + * @def elm_obj_thumb_fdo_size_get + * @since 1.8 + * + * Get the fdo size of the thumb object + * @param[out] ret + * + * @see elm_thumb_fdo_size_get + * + * @ingroup Thumb + */ +#define elm_obj_thumb_fdo_size_get(ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FDO_SIZE_GET), EO_TYPECHECK(Ethumb_Thumb_FDO_Size *, ret) + +/** + * @def elm_obj_thumb_format_set + * @since 1.8 + * + * Set the format for the thumb object + * + * @param[in] setting + * + * @see elm_thumb_format_set + * + * @ingroup Thumb + */ +#define elm_obj_thumb_format_set(format) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FORMAT_SET), EO_TYPECHECK(Ethumb_Thumb_Format, format) + +/** + * @def elm_obj_thumb_format_get + * @since 1.8 + * + * Get the format of the thumb object + * @param[out] ret + * + * @see elm_thumb_format_get + * + * @ingroup Thumb + */ +#define elm_obj_thumb_format_get(ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_FORMAT_GET), EO_TYPECHECK(Ethumb_Thumb_Format *, ret) + +/** + * @def elm_obj_thumb_orientation_set + * @since 1.8 + * + * Set the orientation for the thumb object + * + * @param[in] setting + * + * @see elm_thumb_orientation_set + * + * @ingroup Thumb + */ +#define elm_obj_thumb_orientation_set(orient) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ORIENTATION_SET), EO_TYPECHECK(Ethumb_Thumb_Orientation, orient) + +/** + * @def elm_obj_thumb_orientation_get + * @since 1.8 + * + * Get the orientation of the thumb object + * @param[out] ret + * + * @see elm_thumb_orientaion_get + * + * @ingroup Thumb + */ +#define elm_obj_thumb_orientation_get(ret) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_ORIENTATION_GET), EO_TYPECHECK(Ethumb_Thumb_Orientation *, ret) + +/** + * @def elm_obj_thumb_size_set + * @since 1.8 + * + * Set the width and height of the thumbnail + * + * @param[in] width + * @param[in] height + *0 + * @see elm_thumb_size_set + * + * @ingroup Thumb + */ +#define elm_obj_thumb_size_set(tw, th) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_THUMB_SIZE_SET), EO_TYPECHECK(int, tw), EO_TYPECHECK(int, th) + +/** + * @def elm_obj_thumb_size_get + * @since 1.8 + * + * Get the size of the thumbnail. + * + * @param[out] tw + * @param[out] th + * + * @see elm_thumb_size_get + * + * @ingroup Thumb + */ +#define elm_obj_thumb_size_get(tw, th) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_THUMB_SIZE_GET), EO_TYPECHECK(int *, tw), EO_TYPECHECK(int *, th) + +/** + * @def elm_obj_thumb_crop_align_set + * @since 1.8 + * + * Set the crop alignment of the thumbnail + * + * @param[in] x coordinate + * @param[in] y coordinate + * + * @see elm_thumb_crop_align_set + * + * @ingroup Thumb + */ +#define elm_obj_thumb_crop_align_set(cropx, cropy) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_CROP_ALIGN_SET), EO_TYPECHECK(double, cropx), EO_TYPECHECK(double, cropy) + +/** + * @def elm_obj_thumb_crop_align_get + * @since 1.8 + * + * Get the crop alignment of the thumbnail. + * + * @param[out] cropx + * @param[out] cropy + * + * @see elm_thumb_crop_align_get + * + * @ingroup Thumb + */ +#define elm_obj_thumb_crop_align_get(cropx, cropy) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_THUMB_SIZE_GET), EO_TYPECHECK(double *, cropx), EO_TYPECHECK(double *, cropy) + +/** + * @def elm_obj_thumb_compress_set + * @since 1.8 + * + * Set the compression of the thumbnail + * + * @param[in] compress + * + * @see elm_thumb_compress_set + * + * @ingroup Thumb + */ +#define elm_obj_thumb_compress_set(compress) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_COMPRESS_SET), EO_TYPECHECK(int, compress) + +/** + * @def elm_obj_thumb_compress_get + * @since 1.8 + * + * Get the compression of the thumbnail. + * + * @param[out] compress + * + * @see elm_thumb_compress_get + * + * @ingroup Thumb + */ +#define elm_obj_thumb_compress_get(compress) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_COMPRESS_GET), EO_TYPECHECK(int *, compress) + +/** + * @def elm_obj_thumb_quality_set + * @since 1.8 + * + * Set the quality of the thumbnail + * + * @param[in] quality + * + * @see elm_thumb_quality_set + * + * @ingroup Thumb + */ +#define elm_obj_thumb_quality_set(quality) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_QUALITY_SET), EO_TYPECHECK(int, quality) + +/** + * @def elm_obj_thumb_quality_get + * @since 1.8 + * + * Get the quality of the thumbnail. + * + * @param[out] quality + * + * @see elm_thumb_quality_get + * + * @ingroup Thumb + */ +#define elm_obj_thumb_quality_get(quality) ELM_OBJ_THUMB_ID(ELM_OBJ_THUMB_SUB_ID_QUALITY_GET), EO_TYPECHECK(int *, quality) + /** * @def elm_obj_thumb_animate_set * @since 1.8 diff --git a/legacy/elementary/src/lib/elm_thumb_legacy.h b/legacy/elementary/src/lib/elm_thumb_legacy.h index c7963bcfe1..c649115c23 100644 --- a/legacy/elementary/src/lib/elm_thumb_legacy.h +++ b/legacy/elementary/src/lib/elm_thumb_legacy.h @@ -79,6 +79,217 @@ EAPI void elm_thumb_file_get(const Evas_Object *obj, cons */ EAPI void elm_thumb_path_get(const Evas_Object *obj, const char **file, const char **key); +/** + * Set the aspect for the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @param aspect The aspect setting. + * + * @see elm_thumb_file_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_aspect_set(Evas_Object *obj, Ethumb_Thumb_Aspect aspect); + +/** + * Get the aspect of the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @return getting The aspect setting. + * + * @see elm_thumb_aspect_set() + * + * @ingroup Thumb + */ +EAPI Ethumb_Thumb_Aspect elm_thumb_aspect_get(const Evas_Object *obj); + +/** + * Set the FDO size for the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @param size The FDO size setting. + * + * @see elm_thumb_file_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_fdo_size_set(Evas_Object *obj, Ethumb_Thumb_FDO_Size size); + +/** + * Get the fdo size of the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @return getting The FDO size setting. + * + * @see elm_thumb_fdo_size_set() + * + * @ingroup Thumb + */ +EAPI Ethumb_Thumb_FDO_Size elm_thumb_fdo_size_get(const Evas_Object *obj); + +/** + * Set the format for the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @param size The format setting. + * + * @see elm_thumb_file_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_format_set(Evas_Object *obj, Ethumb_Thumb_Format format); + +/** + * Get the format of the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @return getting The Format setting. + * + * @see elm_thumb_format_set() + * + * @ingroup Thumb + */ +EAPI Ethumb_Thumb_Format elm_thumb_format_get(const Evas_Object *obj); + +/** + * Set the orientation for the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @param size The orientation setting. + * + * @see elm_thumb_file_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_orientation_set(Evas_Object *obj, Ethumb_Thumb_Orientation orient); + +/** + * Get the orientation of the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @return getting The orientation setting. + * + * @see elm_thumb_orientation_set() + * + * @ingroup Thumb + */ +EAPI Ethumb_Thumb_Orientation elm_thumb_orientation_get(const Evas_Object *obj); + +/** + * Set the size for the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @param tw The width of the thumb. + * @param th The height of the thumb. + * + * @see elm_thumb_file_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_size_set(Evas_Object *obj, int tw, int th); + +/** + * Get the size of the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @return getting The size setting. + * + * @see elm_thumb_size_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_size_get(const Evas_Object *obj, int *tw, int *th); + +/** + * Set the crop alignment for the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @param cropx The x coordinate of the crop. + * @param cropy The y coordinate of the crop. + * + * @see elm_thumb_file_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_crop_align_set(Evas_Object *obj, double cropx, double cropy); + +/** + * Get the crop alignment of the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @return getting The crop align setting. + * + * @see elm_thumb_crop_align_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_crop_align_get(const Evas_Object *obj, double *cropx, double *cropy); + +/** + * Set the compression for the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @param compress The compression of the thumb. + * + * @see elm_thumb_file_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_compress_set(Evas_Object *obj, int compress); + +/** + * Get the compression of the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @return getting The compress setting. + * + * @see elm_thumb_compress_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_compress_get(const Evas_Object *obj, int *compress); + + +/** + * Set the quality for the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @param quality The quality of the thumb. + * + * @see elm_thumb_file_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_quality_set(Evas_Object *obj, int quality); + +/** + * Get the quality of the thumb object. + * @since 1.8 + * + * @param obj The thumb object. + * @return getting The quality setting. + * + * @see elm_thumb_quality_set() + * + * @ingroup Thumb + */ +EAPI void elm_thumb_quality_get(const Evas_Object *obj, int *quality); + /** * Set the animation state for the thumb object. If its content is an animated * video, you may start/stop the animation or tell it to play continuously and diff --git a/legacy/elementary/src/lib/elm_widget_thumb.h b/legacy/elementary/src/lib/elm_widget_thumb.h index 7f71325a45..fdefe354ae 100644 --- a/legacy/elementary/src/lib/elm_widget_thumb.h +++ b/legacy/elementary/src/lib/elm_widget_thumb.h @@ -38,7 +38,17 @@ struct _Elm_Thumb_Smart_Data const char *thumb_key; Ethumb_Client_Async *request; + double cropx; + double cropy; + int compress; + int quality; + int tw; + int th; + + Ethumb_Thumb_Aspect aspect; + Ethumb_Thumb_FDO_Size size; Ethumb_Thumb_Format format; + Ethumb_Thumb_Orientation orient; Eina_Bool retry : 1; #endif