seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=adaaed49cab83e935b331209d17745544fece7bf

commit adaaed49cab83e935b331209d17745544fece7bf
Author: Daniel Juyung Seo <seojuyu...@gmail.com>
Date:   Mon Nov 4 01:15:58 2013 +0900

    gengrid/genlist: added Eo compatibles for 
elm_genlist/gengrid_multi_select_mode_set/get() APIs.
---
 src/lib/elm_gengrid.c    | 32 ++++++++++++++++++++++++++++----
 src/lib/elm_gengrid_eo.h | 36 ++++++++++++++++++++++++++++++++++++
 src/lib/elm_genlist.c    | 32 ++++++++++++++++++++++++++++----
 src/lib/elm_genlist_eo.h | 36 ++++++++++++++++++++++++++++++++++++
 4 files changed, 128 insertions(+), 8 deletions(-)

diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index 3587374..645cb58 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -3034,18 +3034,38 @@ elm_gengrid_multi_select_mode_set(Evas_Object *obj,
                                   Elm_Object_Multi_Select_Mode mode)
 {
    ELM_GENGRID_CHECK(obj);
-   ELM_GENGRID_DATA_GET(obj, sd);
+   eo_do(obj, elm_obj_gengrid_multi_select_mode_set(mode));
+}
+
+static void
+_multi_select_mode_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   Elm_Object_Multi_Select_Mode mode = va_arg(*list, 
Elm_Object_Multi_Select_Mode);
+   Elm_Gengrid_Smart_Data *sd = _pd;
+
+   if (mode >= ELM_OBJECT_MULTI_SELECT_MODE_MAX)
+     return;
 
-   sd->multi_select_mode = mode;
+   if (sd->multi_select_mode != mode)
+     sd->multi_select_mode = mode;
 }
 
 EAPI Elm_Object_Multi_Select_Mode
 elm_gengrid_multi_select_mode_get(const Evas_Object *obj)
 {
    ELM_GENGRID_CHECK(obj) ELM_OBJECT_MULTI_SELECT_MODE_MAX;
-   ELM_GENGRID_DATA_GET(obj, sd);
+   Elm_Object_Multi_Select_Mode ret = ELM_OBJECT_MULTI_SELECT_MODE_MAX;
+   eo_do((Eo *)obj, elm_obj_gengrid_multi_select_mode_get(&ret));
+   return ret;
+}
+
+static void
+_multi_select_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   Elm_Object_Multi_Select_Mode *ret = va_arg(*list, 
Elm_Object_Multi_Select_Mode *);
+   Elm_Gengrid_Smart_Data *sd = _pd;
 
-   return sd->multi_select_mode;
+   *ret = sd->multi_select_mode;
 }
 
 EAPI Elm_Object_Item *
@@ -4075,6 +4095,8 @@ _class_constructor(Eo_Class *klass)
         EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_CLEAR), _clear),
         
EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_SET), 
_multi_select_set),
         
EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_GET), 
_multi_select_get),
+        
EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_SET), 
_multi_select_mode_set),
+        
EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_GET), 
_multi_select_mode_get),
         
EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEM_GET), 
_selected_item_get),
         
EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEMS_GET), 
_selected_items_get),
         
EO_OP_FUNC(ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_GET), 
_realized_items_get),
@@ -4120,6 +4142,8 @@ static const Eo_Op_Description op_desc[] = {
      EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_CLEAR, "Remove all items from a 
given gengrid widget."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_SET, "Enable or 
disable multi-selection in a given gengrid widget."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_GET, "Get whether 
multi-selection is enabled or disabled for a given gengrid widget."),
+     EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_SET, "Set the 
gengrid multi select mode."),
+     EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_GET, "Get the 
gengrid multi select mode."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEM_GET, "Get the 
selected item in a given gengrid widget."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEMS_GET, "Get a list 
of selected items in a given gengrid."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_GET, "Get a list 
of realized items in gengrid."),
diff --git a/src/lib/elm_gengrid_eo.h b/src/lib/elm_gengrid_eo.h
index 94f0dc6..0ee1ed2 100644
--- a/src/lib/elm_gengrid_eo.h
+++ b/src/lib/elm_gengrid_eo.h
@@ -31,6 +31,8 @@ enum
    ELM_OBJ_GENGRID_SUB_ID_CLEAR,
    ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_SET,
    ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_GET,
+   ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_SET,
+   ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_GET,
    ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEM_GET,
    ELM_OBJ_GENGRID_SUB_ID_SELECTED_ITEMS_GET,
    ELM_OBJ_GENGRID_SUB_ID_REALIZED_ITEMS_GET,
@@ -280,6 +282,40 @@ enum
 #define elm_obj_gengrid_multi_select_get(ret) 
ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_GET), 
EO_TYPECHECK(Eina_Bool *, ret)
 
 /**
+ * @def elm_obj_gengrid_multi_select_mode_set
+ * @since 1.8
+ *
+ * Set the gengrid multi select mode.
+ *
+ * @param[in] mode
+ *
+ * - ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items whenever each
+ *   item is clicked.
+ * - ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only one item will be selected
+ *   although multi-selection is enabled, if clicked without pressing control
+ *   key. This mode is only available with multi-selection.
+ *
+ * @see elm_gengrid_multi_select_set()
+ * @see elm_gengrid_multi_select_mode_get()
+ */
+#define elm_obj_gengrid_multi_select_mode_set(mode) 
ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_SET), 
EO_TYPECHECK(Elm_Object_Multi_Select_Mode, mode)
+
+/**
+ * @def elm_obj_gengrid_multi_select_mode_get
+ * @since 1.8
+ *
+ * Get the gengrid multi select mode.
+ *
+ * @param[out] ret
+ *
+ * (If getting mode is failed, it returns ELM_OBJECT_MULTI_SELECT_MODE_MAX)
+ *
+ * @see elm_gengrid_multi_select_set()
+ * @see elm_gengrid_multi_select_mode_set()
+ */
+#define elm_obj_gengrid_multi_select_mode_get(ret) 
ELM_OBJ_GENGRID_ID(ELM_OBJ_GENGRID_SUB_ID_MULTI_SELECT_MODE_GET), 
EO_TYPECHECK(Elm_Object_Multi_Select_Mode *, ret)
+
+/**
  * @def elm_obj_gengrid_selected_item_get
  * @since 1.8
  *
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index 6111994..d0d13ce 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -5811,18 +5811,38 @@ elm_genlist_multi_select_mode_set(Evas_Object *obj,
                                   Elm_Object_Multi_Select_Mode mode)
 {
    ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
+   eo_do(obj, elm_obj_genlist_multi_select_mode_set(mode));
+}
+
+static void
+_multi_select_mode_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   Elm_Object_Multi_Select_Mode mode = va_arg(*list, 
Elm_Object_Multi_Select_Mode);
+   Elm_Genlist_Smart_Data *sd = _pd;
+
+   if (mode >= ELM_OBJECT_MULTI_SELECT_MODE_MAX)
+     return;
 
-   sd->multi_select_mode = mode;
+   if (sd->multi_select_mode != mode)
+     sd->multi_select_mode = mode;
 }
 
 EAPI Elm_Object_Multi_Select_Mode
 elm_genlist_multi_select_mode_get(const Evas_Object *obj)
 {
    ELM_GENLIST_CHECK(obj) ELM_OBJECT_MULTI_SELECT_MODE_MAX;
-   ELM_GENLIST_DATA_GET(obj, sd);
+   Elm_Object_Multi_Select_Mode ret = ELM_OBJECT_MULTI_SELECT_MODE_MAX;
+   eo_do((Eo *)obj, elm_obj_genlist_multi_select_mode_get(&ret));
+   return ret;
+}
+
+static void
+_multi_select_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   Elm_Object_Multi_Select_Mode *ret = va_arg(*list, 
Elm_Object_Multi_Select_Mode *);
+   Elm_Genlist_Smart_Data *sd = _pd;
 
-   return sd->multi_select_mode;
+   *ret = sd->multi_select_mode;
 }
 
 EAPI Elm_Object_Item *
@@ -7550,6 +7570,8 @@ _class_constructor(Eo_Class *klass)
         EO_OP_FUNC(ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_CLEAR), 
_clear_eo),
         
EO_OP_FUNC(ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_SET), 
_multi_select_set),
         
EO_OP_FUNC(ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_GET), 
_multi_select_get),
+        
EO_OP_FUNC(ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_MODE_SET), 
_multi_select_mode_set),
+        
EO_OP_FUNC(ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_MODE_GET), 
_multi_select_mode_get),
         
EO_OP_FUNC(ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEM_GET), 
_selected_item_get),
         
EO_OP_FUNC(ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEMS_GET), 
_selected_items_get),
         
EO_OP_FUNC(ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_REALIZED_ITEMS_GET), 
_realized_items_get),
@@ -7598,6 +7620,8 @@ static const Eo_Op_Description op_desc[] = {
      EO_OP_DESCRIPTION(ELM_OBJ_GENLIST_SUB_ID_CLEAR, "Remove all items from a 
given genlist widget."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_SET, "Enable or 
disable multi-selection in the genlist."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_GET, "Get if 
multi-selection in genlist is enabled or disabled."),
+     EO_OP_DESCRIPTION(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_MODE_SET, "Set the 
genlist multi select mode."),
+     EO_OP_DESCRIPTION(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_MODE_GET, "Get the 
genlist multi select mode."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEM_GET, "Get the 
selected item in the genlist."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEMS_GET, "Get a list 
of selected items in the genlist."),
      EO_OP_DESCRIPTION(ELM_OBJ_GENLIST_SUB_ID_REALIZED_ITEMS_GET, "Get a list 
of realized items in genlist."),
diff --git a/src/lib/elm_genlist_eo.h b/src/lib/elm_genlist_eo.h
index d25bafc..2f8c2d0 100644
--- a/src/lib/elm_genlist_eo.h
+++ b/src/lib/elm_genlist_eo.h
@@ -24,6 +24,8 @@ enum
    ELM_OBJ_GENLIST_SUB_ID_CLEAR,
    ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_SET,
    ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_GET,
+   ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_MODE_SET,
+   ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_MODE_GET,
    ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEM_GET,
    ELM_OBJ_GENLIST_SUB_ID_SELECTED_ITEMS_GET,
    ELM_OBJ_GENLIST_SUB_ID_REALIZED_ITEMS_GET,
@@ -199,6 +201,40 @@ enum
 #define elm_obj_genlist_multi_select_get(ret) 
ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_GET), 
EO_TYPECHECK(Eina_Bool *, ret)
 
 /**
+ * @def elm_obj_genlist_multi_select_mode_set
+ * @since 1.8
+ *
+ * Set the genlist multi select mode.
+ *
+ * @param[in] mode
+ *
+ * - ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items whenever each
+ *   item is clicked.
+ * - ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only one item will be selected
+ *   although multi-selection is enabled, if clicked without pressing control
+ *   key. This mode is only available with multi-selection.
+ *
+ * @see elm_genlist_multi_select_set()
+ * @see elm_genlist_multi_select_mode_get()
+ */
+#define elm_obj_genlist_multi_select_mode_set(mode) 
ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_MODE_SET), 
EO_TYPECHECK(Elm_Object_Multi_Select_Mode, mode)
+
+/**
+ * @def elm_obj_genlist_multi_select_mode_get
+ * @since 1.8
+ *
+ * Get the genlist multi select mode.
+ *
+ * @param[out] ret
+ *
+ * (If getting mode is failed, it returns ELM_OBJECT_MULTI_SELECT_MODE_MAX)
+ *
+ * @see elm_genlist_multi_select_set()
+ * @see elm_genlist_multi_select_mode_set()
+ */
+#define elm_obj_genlist_multi_select_mode_get(ret) 
ELM_OBJ_GENLIST_ID(ELM_OBJ_GENLIST_SUB_ID_MULTI_SELECT_MODE_GET), 
EO_TYPECHECK(Elm_Object_Multi_Select_Mode *, ret)
+
+/**
  * @def elm_obj_genlist_selected_item_get
  * @since 1.8
  *

-- 


Reply via email to