okra pushed a commit to branch master.

commit 6bc3942a6495ccecc6408b67073667926e01abd8
Author: Stephen Houston <[email protected]>
Date:   Sun Aug 11 23:19:32 2013 -0500

    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.
---
 src/lib/elm_thumb.c        | 338 +++++++++++++++++++++++++++++++++++++++++++++
 src/lib/elm_thumb.h        |   4 +
 src/lib/elm_thumb_eo.h     | 240 ++++++++++++++++++++++++++++++++
 src/lib/elm_thumb_legacy.h | 211 ++++++++++++++++++++++++++++
 src/lib/elm_widget_thumb.h |  10 ++
 5 files changed, 803 insertions(+)

diff --git a/src/lib/elm_thumb.c b/src/lib/elm_thumb.c
index d615009..fbda52f 100644
--- a/src/lib/elm_thumb.c
+++ b/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);
@@ -772,6 +788,296 @@ _path_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
 }
 
 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/src/lib/elm_thumb.h b/src/lib/elm_thumb.h
index 7b0b1c7..15cc8e6 100644
--- a/src/lib/elm_thumb.h
+++ b/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/src/lib/elm_thumb_eo.h b/src/lib/elm_thumb_eo.h
index f802291..1bf250c 100644
--- a/src/lib/elm_thumb_eo.h
+++ b/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,
@@ -79,6 +95,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/src/lib/elm_thumb_legacy.h b/src/lib/elm_thumb_legacy.h
index c7963bc..c649115 100644
--- a/src/lib/elm_thumb_legacy.h
+++ b/src/lib/elm_thumb_legacy.h
@@ -80,6 +80,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
  * looping.
diff --git a/src/lib/elm_widget_thumb.h b/src/lib/elm_widget_thumb.h
index 7f71325..fdefe35 100644
--- a/src/lib/elm_widget_thumb.h
+++ b/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

-- 

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk

Reply via email to