seoz pushed a commit to branch master.

commit 86ae7552e8bd59c16f68499ea0c82f9ddea42288
Author: Daniel Juyung Seo <[email protected]>
Date:   Tue Apr 9 13:06:19 2013 +0900

    elm_photo: added getters for some setters.
    
    1. Added elm_obj_photo_size_get, elm_obj_photo_fill_inside_get, 
elm_obj_photo_editable_get.
    2. Added sample code to test_photo.c
---
 src/bin/test_photo.c | 11 +++++++++++
 src/lib/elm_photo.c  | 30 ++++++++++++++++++++++++++++++
 src/lib/elm_photo.h  | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 89 insertions(+)

diff --git a/src/bin/test_photo.c b/src/bin/test_photo.c
index 70fb4bd..7e3de46 100644
--- a/src/bin/test_photo.c
+++ b/src/bin/test_photo.c
@@ -21,6 +21,9 @@ test_photo(void *data __UNUSED__, Evas_Object *obj 
__UNUSED__, void *event_info
    Evas_Object *win, *sc, *tb, *ph;
    int i, j, n;
    char buf[PATH_MAX];
+   int size = 0;
+   Eina_Bool fill = EINA_FALSE, editable = EINA_FALSE;
+
    const char *img[9] =
      {
         "panel_01.jpg",
@@ -81,6 +84,14 @@ test_photo(void *data __UNUSED__, Evas_Object *obj 
__UNUSED__, void *event_info
           }
      }
 
+   eo_do(ph,
+         elm_obj_photo_size_get(&size),
+         elm_obj_photo_fill_inside_get(&fill),
+         elm_obj_photo_editable_get(&editable));
+   printf("Last Photo Information:\n");
+   printf("\tobject %p, size %d, fill_inside %d, editable %d\n",
+          ph, size, fill, editable);
+
    sc = elm_scroller_add(win);
    evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    elm_win_resize_object_add(win, sc);
diff --git a/src/lib/elm_photo.c b/src/lib/elm_photo.c
index 05d25ee..e46020e 100644
--- a/src/lib/elm_photo.c
+++ b/src/lib/elm_photo.c
@@ -379,6 +379,14 @@ _size_set(Eo *obj, void *_pd, va_list *list)
    _sizing_eval(obj);
 }
 
+static void
+_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   int *ret = va_arg(*list, int *);
+   Elm_Photo_Smart_Data *sd = _pd;
+   *ret = sd->size;
+}
+
 EAPI void
 elm_photo_fill_inside_set(Evas_Object *obj,
                           Eina_Bool fill)
@@ -399,6 +407,14 @@ _fill_inside_set(Eo *obj, void *_pd, va_list *list)
    _sizing_eval(obj);
 }
 
+static void
+_fill_inside_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
+   Elm_Photo_Smart_Data *sd = _pd;
+   *ret = sd->fill_inside;
+}
+
 EAPI void
 elm_photo_editable_set(Evas_Object *obj,
       Eina_Bool set)
@@ -415,6 +431,14 @@ _editable_set(Eo *obj EINA_UNUSED, void *_pd, va_list 
*list)
    elm_image_editable_set(sd->icon, set);
 }
 
+static void
+_editable_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
+   Elm_Photo_Smart_Data *sd = _pd;
+   *ret = elm_image_editable_get(sd->icon);
+}
+
 EAPI void
 elm_photo_thumb_set(const Evas_Object *obj,
       const char *file,
@@ -490,8 +514,11 @@ _class_constructor(Eo_Class *klass)
 
         EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_FILE_SET), _file_set),
         EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_SIZE_SET), _size_set),
+        EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_SIZE_GET), _size_get),
         EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_FILL_INSIDE_SET), 
_fill_inside_set),
+        EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_FILL_INSIDE_GET), 
_fill_inside_get),
         EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_EDITABLE_SET), 
_editable_set),
+        EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_EDITABLE_GET), 
_editable_get),
         EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_THUMB_SET), 
_thumb_set),
         EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_ASPECT_FIXED_SET), 
_aspect_fixed_set),
         EO_OP_FUNC(ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_ASPECT_FIXED_GET), 
_aspect_fixed_get),
@@ -505,8 +532,11 @@ _class_constructor(Eo_Class *klass)
 static const Eo_Op_Description op_desc[] = {
      EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_FILE_SET, "Set the file that will 
be used as the photo widget's image."),
      EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_SIZE_SET, "Set the size that will 
be used on the photo."),
+     EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_SIZE_GET, "Get the size that will 
be used on the photo."),
      EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_FILL_INSIDE_SET, "Set if the photo 
should be completely visible or not."),
+     EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_FILL_INSIDE_GET, "Get if the photo 
should be completely visible or not."),
      EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_EDITABLE_SET, "Set editability of 
the photo."),
+     EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_EDITABLE_GET, "Get editability of 
the photo."),
      EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_THUMB_SET, "Set the file that will 
be used as thumbnail in the photo."),
      EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_ASPECT_FIXED_SET, "Set whether the 
original aspect ratio of the photo should be kept on resize."),
      EO_OP_DESCRIPTION(ELM_OBJ_PHOTO_SUB_ID_ASPECT_FIXED_GET, "Get if the 
object keeps the original aspect ratio."),
diff --git a/src/lib/elm_photo.h b/src/lib/elm_photo.h
index e0f3b2a..7c8a64b 100644
--- a/src/lib/elm_photo.h
+++ b/src/lib/elm_photo.h
@@ -34,8 +34,11 @@ enum
 {
    ELM_OBJ_PHOTO_SUB_ID_FILE_SET,
    ELM_OBJ_PHOTO_SUB_ID_SIZE_SET,
+   ELM_OBJ_PHOTO_SUB_ID_SIZE_GET,
    ELM_OBJ_PHOTO_SUB_ID_FILL_INSIDE_SET,
+   ELM_OBJ_PHOTO_SUB_ID_FILL_INSIDE_GET,
    ELM_OBJ_PHOTO_SUB_ID_EDITABLE_SET,
+   ELM_OBJ_PHOTO_SUB_ID_EDITABLE_GET,
    ELM_OBJ_PHOTO_SUB_ID_THUMB_SET,
    ELM_OBJ_PHOTO_SUB_ID_ASPECT_FIXED_SET,
    ELM_OBJ_PHOTO_SUB_ID_ASPECT_FIXED_GET,
@@ -83,6 +86,21 @@ enum
 #define elm_obj_photo_size_set(size) 
ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_SIZE_SET), EO_TYPECHECK(int, size)
 
 /**
+ * @def elm_obj_photo_size_get
+ * @since 1.8
+ *
+ * Get the size that will be used on the photo
+ *
+ * @param[out] ret
+ *
+ * @note There is no elm_photo_size_get
+ *
+ * @see elm_photo_size_set
+ * @see elm_obj_photo_size_set
+ */
+#define elm_obj_photo_size_get(ret) 
ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_SIZE_GET), EO_TYPECHECK(int *, ret)
+
+/**
  * @def elm_obj_photo_fill_inside_set
  * @since 1.8
  *
@@ -95,6 +113,21 @@ enum
 #define elm_obj_photo_fill_inside_set(fill) 
ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_FILL_INSIDE_SET), EO_TYPECHECK(Eina_Bool, 
fill)
 
 /**
+ * @def elm_obj_photo_fill_inside_get
+ * @since 1.8
+ *
+ * Get if the photo should be completely visible or not.
+ *
+ * @param[out] ret
+ *
+ * @note There is no elm_photo_fill_inside_get
+ *
+ * @see elm_photo_fill_inside_set
+ * @see elm_obj_photo_fill_inside_set
+ */
+#define elm_obj_photo_fill_inside_get(ret) 
ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_FILL_INSIDE_GET), EO_TYPECHECK(Eina_Bool 
*, ret)
+
+/**
  * @def elm_obj_photo_editable_set
  * @since 1.8
  *
@@ -107,6 +140,21 @@ enum
 #define elm_obj_photo_editable_set(set) 
ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_EDITABLE_SET), EO_TYPECHECK(Eina_Bool, 
set)
 
 /**
+ * @def elm_obj_photo_editable_get
+ * @since 1.8
+ *
+ * Get editability of the photo.
+ *
+ * @param[out] ret
+ *
+ * @note There is no elm_photo_editable_get
+ *
+ * @see elm_photo_editable_set
+ * @see elm_obj_photo_editable_set
+ */
+#define elm_obj_photo_editable_get(ret) 
ELM_OBJ_PHOTO_ID(ELM_OBJ_PHOTO_SUB_ID_EDITABLE_GET), EO_TYPECHECK(Eina_Bool *, 
ret)
+
+/**
  * @def elm_obj_photo_thumb_set
  * @since 1.8
  *

-- 

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter

Reply via email to