genlist : generate eo functions about genlist APIs 01/109901/2
authorSangHyeon Lee <sh10233.lee@samsung.com>
Wed, 11 Jan 2017 03:38:01 +0000 (12:38 +0900)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Fri, 13 Jan 2017 07:37:33 +0000 (23:37 -0800)
Change-Id: I2fd0a7e2363d4ac18f4ac9101f95eb0006f9eb41

src/mobile_lib/elm_genlist.c
src/mobile_lib/elm_genlist.eo
src/mobile_lib/elm_genlist_common.h
src/mobile_lib/elm_genlist_item.eo
src/mobile_lib/elm_genlist_legacy.h

index 2e66a44fd69541f7776668fa7f6de3343d5de772..deb404d62523312ebbdcc45425be1ae2904bf1c2 100644 (file)
@@ -6585,12 +6585,9 @@ _elm_genlist_item_list_compare(const void *data,
    return GL_IT(it)->wsd->item_compare_cb(EO_OBJ(it), EO_OBJ(item1));
 }
 
-EAPI unsigned int
-elm_genlist_items_count(const Evas_Object *obj)
+EOLIAN static unsigned int
+_elm_genlist_items_count(const Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) 0;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->item_count;
 }
 
@@ -6618,19 +6615,11 @@ _list_last_recursive(Eina_List *list)
    return ll;
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_item_append(Evas_Object *obj,
-                        const Elm_Genlist_Item_Class *itc,
-                        const void *data,
-                        Elm_Object_Item *eo_parent,
-                        Elm_Genlist_Item_Type type,
-                        Evas_Smart_Cb func,
-                        const void *func_data)
+EOLIAN static Elm_Object_Item*
+_elm_genlist_item_append(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *eo_parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data)
 {
    Elm_Gen_Item *it;
 
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
    EINA_SAFETY_ON_NULL_RETURN_VAL(itc, NULL);
 
    if (eo_parent)
@@ -6671,19 +6660,11 @@ elm_genlist_item_append(Evas_Object *obj,
    return EO_OBJ(it);
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_item_prepend(Evas_Object *obj,
-                         const Elm_Genlist_Item_Class *itc,
-                         const void *data,
-                         Elm_Object_Item *eo_parent,
-                         Elm_Genlist_Item_Type type,
-                         Evas_Smart_Cb func,
-                         const void *func_data)
+EOLIAN static Elm_Object_Item*
+_elm_genlist_item_prepend(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *eo_parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data)
 {
    Elm_Gen_Item *it = NULL;
 
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
    EINA_SAFETY_ON_NULL_RETURN_VAL(itc, NULL);
    if (eo_parent)
      {
@@ -6727,23 +6708,13 @@ elm_genlist_item_prepend(Evas_Object *obj,
    return EO_OBJ(it);
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_item_insert_after(Evas_Object *obj,
-                              const Elm_Genlist_Item_Class *itc,
-                              const void *data,
-                              Elm_Object_Item *eo_parent,
-                              Elm_Object_Item *eo_after_it,
-                              Elm_Genlist_Item_Type type,
-                              Evas_Smart_Cb func,
-                              const void *func_data)
-{
-   EINA_SAFETY_ON_NULL_RETURN_VAL(eo_after_it, NULL);
-   ELM_GENLIST_ITEM_DATA_GET(eo_after_it, after_it);
+EOLIAN static Elm_Object_Item*
+_elm_genlist_item_insert_after(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *eo_parent, Elm_Object_Item *eo_after, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(eo_after, NULL);
+   ELM_GENLIST_ITEM_DATA_GET(eo_after, after_it);
    Elm_Gen_Item *it;
 
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    ELM_GENLIST_ITEM_CHECK_OR_RETURN(after_it, NULL);
    EINA_SAFETY_ON_FALSE_RETURN_VAL(obj == WIDGET(after_it), NULL);
    if (eo_parent)
@@ -6771,7 +6742,7 @@ elm_genlist_item_insert_after(Evas_Object *obj,
    else
      {
         it->parent->item->items =
-          eina_list_append_relative(it->parent->item->items, EO_OBJ(it), eo_after_it);
+          eina_list_append_relative(it->parent->item->items, EO_OBJ(it), eo_after);
      }
    sd->items = eina_inlist_append_relative
        (sd->items, EINA_INLIST_GET(it), EINA_INLIST_GET(after_it));
@@ -6781,28 +6752,18 @@ elm_genlist_item_insert_after(Evas_Object *obj,
    GL_IT(it)->before = EINA_FALSE;
    _item_queue_direct(it, NULL);
 
-   if (elm_genlist_item_next_get(eo_after_it) == EO_OBJ(sd->aligned_item))
+   if (elm_genlist_item_next_get(eo_after) == EO_OBJ(sd->aligned_item))
      sd->aligned_item = NULL;
    return EO_OBJ(it);
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_item_insert_before(Evas_Object *obj,
-                               const Elm_Genlist_Item_Class *itc,
-                               const void *data,
-                               Elm_Object_Item *eo_parent,
-                               Elm_Object_Item *eo_before_it,
-                               Elm_Genlist_Item_Type type,
-                               Evas_Smart_Cb func,
-                               const void *func_data)
-{
-   EINA_SAFETY_ON_NULL_RETURN_VAL(eo_before_it, NULL);
-   ELM_GENLIST_ITEM_DATA_GET(eo_before_it, before_it);
+EOLIAN static Elm_Object_Item*
+_elm_genlist_item_insert_before(Eo *obj, Elm_Genlist_Data *sd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *eo_parent, Elm_Object_Item *eo_before, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(eo_before, NULL);
+   ELM_GENLIST_ITEM_DATA_GET(eo_before, before_it);
    Elm_Gen_Item *it;
 
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    ELM_GENLIST_ITEM_CHECK_OR_RETURN(before_it, NULL);
    EINA_SAFETY_ON_FALSE_RETURN_VAL(obj == WIDGET(before_it), NULL);
    if (eo_parent)
@@ -6830,7 +6791,7 @@ elm_genlist_item_insert_before(Evas_Object *obj,
    else
      {
         it->parent->item->items =
-          eina_list_prepend_relative(it->parent->item->items, EO_OBJ(it), eo_before_it);
+          eina_list_prepend_relative(it->parent->item->items, EO_OBJ(it), eo_before);
      }
    sd->items = eina_inlist_prepend_relative
        (sd->items, EINA_INLIST_GET(it), EINA_INLIST_GET(before_it));
@@ -6846,22 +6807,13 @@ elm_genlist_item_insert_before(Evas_Object *obj,
    return EO_OBJ(it);
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_item_sorted_insert(Evas_Object *obj,
-                               const Elm_Genlist_Item_Class *itc,
-                               const void *data,
-                               Elm_Object_Item *eo_parent,
-                               Elm_Genlist_Item_Type type,
-                               Eina_Compare_Cb comp,
-                               Evas_Smart_Cb func,
-                               const void *func_data)
+EOLIAN static Elm_Object_Item*
+_elm_genlist_item_sorted_insert(Eo *obj, Elm_Genlist_Data *sd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *eo_parent, Elm_Genlist_Item_Type type, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data)
 {
    Elm_Gen_Item *rel = NULL;
    Elm_Gen_Item *it;
    Elm_Object_Item *eo_it;
 
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
    if (eo_parent)
      {
         ELM_GENLIST_ITEM_DATA_GET(eo_parent, parent);
@@ -6960,14 +6912,11 @@ elm_genlist_item_sorted_insert(Evas_Object *obj,
    return eo_it;
 }
 
-EAPI void
-elm_genlist_clear(Evas_Object *obj)
+EOLIAN static void
+_elm_genlist_clear(Eo *obj, Elm_Genlist_Data *sd)
 {
    Elm_Gen_Item *it;
 
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    eina_hash_free_buckets(sd->size_caches);
    elm_object_item_focus_set(EO_OBJ(sd->focused_item), EINA_FALSE);
    if (sd->key_down_item) sd->key_down_item = NULL;
@@ -7074,13 +7023,9 @@ elm_genlist_clear(Evas_Object *obj)
 #endif
 }
 
-EAPI void
-elm_genlist_multi_select_set(Evas_Object *obj,
-                             Eina_Bool multi)
+EOLIAN static void
+_elm_genlist_multi_select_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool multi)
 {
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    sd->multi = !!multi;
    if (!sd->multi && sd->selected)
      {
@@ -7096,46 +7041,34 @@ elm_genlist_multi_select_set(Evas_Object *obj,
      }
 }
 
-EAPI Eina_Bool
-elm_genlist_multi_select_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_genlist_multi_select_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) EINA_FALSE;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->multi;
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_selected_item_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Item*
+_elm_genlist_selected_item_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    if (sd->selected)
      return sd->selected->data;
 
    return NULL;
 }
 
-EAPI Eina_List *
-elm_genlist_selected_items_get(const Evas_Object *obj)
+EOLIAN static const Eina_List*
+_elm_genlist_selected_items_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->selected;
 }
 
-EAPI Eina_List *
-elm_genlist_realized_items_get(const Evas_Object *obj)
+EOLIAN static Eina_List*
+_elm_genlist_realized_items_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
    Item_Block *itb;
    Eina_List *list = NULL;
    Eina_Bool done = EINA_FALSE;
 
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    EINA_INLIST_FOREACH(sd->blocks, itb)
      {
         if (itb->realized)
@@ -7157,19 +7090,13 @@ elm_genlist_realized_items_get(const Evas_Object *obj)
    return list;
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_at_xy_item_get(const Evas_Object *obj,
-                           Evas_Coord x,
-                           Evas_Coord y,
-                           int *posret)
+EOLIAN static Elm_Object_Item*
+_elm_genlist_at_xy_item_get(const Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Evas_Coord x, Evas_Coord y, int *posret)
 {
    Evas_Coord ox, oy, ow, oh;
    Evas_Coord lasty;
    Item_Block *itb;
 
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh);
    lasty = oy;
    EINA_INLIST_FOREACH(sd->blocks, itb)
@@ -7211,26 +7138,21 @@ elm_genlist_at_xy_item_get(const Evas_Object *obj,
    return NULL;
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_first_item_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Item*
+_elm_genlist_first_item_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
    Elm_Gen_Item *tit, *it = NULL;
 
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    EINA_INLIST_REVERSE_FOREACH(sd->items, tit) it = tit;
 
    return EO_OBJ(it);
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_last_item_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Item*
+_elm_genlist_last_item_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
    Elm_Gen_Item *it;
 
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
    if (!sd->items) return NULL;
 
    it = ELM_GEN_ITEM_FROM_INLIST(sd->items->last);
@@ -7802,13 +7724,9 @@ _elm_genlist_item_index_get(Eo *eo_it EINA_UNUSED, Elm_Gen_Item *it)
    return cnt;
 }
 
-EAPI void
-elm_genlist_mode_set(Evas_Object *obj,
-                     Elm_List_Mode mode)
+EOLIAN static void
+_elm_genlist_mode_set(Eo *obj, Elm_Genlist_Data *sd, Elm_List_Mode mode)
 {
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    if (sd->mode == mode) return;
    sd->mode = mode;
 
@@ -7831,12 +7749,9 @@ elm_genlist_mode_set(Evas_Object *obj,
    elm_layout_sizing_eval(obj);
 }
 
-EAPI Elm_List_Mode
-elm_genlist_mode_get(const Evas_Object *obj)
+EOLIAN static Elm_List_Mode
+_elm_genlist_mode_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) ELM_LIST_LAST;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->mode;
 }
 
@@ -7846,12 +7761,17 @@ elm_genlist_bounce_set(Evas_Object *obj,
                        Eina_Bool v_bounce)
 {
    ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
+   eo_do(obj, elm_interface_scrollable_bounce_allow_set(h_bounce, v_bounce));
+}
 
+EOLIAN static void
+_elm_genlist_elm_interface_scrollable_bounce_allow_set(Eo *obj, Elm_Genlist_Data *sd, Eina_Bool h_bounce, Eina_Bool v_bounce)
+{
    sd->h_bounce = !!h_bounce;
    sd->v_bounce = !!v_bounce;
 
-   eo_do(obj, elm_interface_scrollable_bounce_allow_set(h_bounce, v_bounce));
+   eo_do_super(obj, MY_CLASS, elm_interface_scrollable_bounce_allow_set
+         (sd->h_bounce, sd->v_bounce));
    //sd->s_iface->bounce_allow_set(obj, sd->h_bounce, sd->v_bounce);
 }
 
@@ -7861,37 +7781,32 @@ elm_genlist_bounce_get(const Evas_Object *obj,
                        Eina_Bool *v_bounce)
 {
    ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
+   eo_do( obj, elm_interface_scrollable_bounce_allow_get
+         (h_bounce, v_bounce));
+}
 
+EOLIAN static void
+_elm_genlist_elm_interface_scrollable_bounce_allow_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool *h_bounce, Eina_Bool *v_bounce)
+{
    if (h_bounce) *h_bounce = sd->h_bounce;
    if (v_bounce) *v_bounce = sd->v_bounce;
 }
 
-EAPI void
-elm_genlist_homogeneous_set(Evas_Object *obj,
-                            Eina_Bool homogeneous)
+EOLIAN static void
+_elm_genlist_homogeneous_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool homogeneous)
 {
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    sd->homogeneous = !!homogeneous;
 }
 
-EAPI Eina_Bool
-elm_genlist_homogeneous_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_genlist_homogeneous_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) EINA_FALSE;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->homogeneous;
 }
 
-EAPI void
-elm_genlist_block_count_set(Evas_Object *obj,
-                            int count)
+EOLIAN static void
+_elm_genlist_block_count_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, int count)
 {
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
    EINA_SAFETY_ON_TRUE_RETURN(count < 1);
 
    sd->max_items_per_block = count;
@@ -7899,12 +7814,9 @@ elm_genlist_block_count_set(Evas_Object *obj,
    _item_cache_all_free(sd);
 }
 
-EAPI int
-elm_genlist_block_count_get(const Evas_Object *obj)
+EOLIAN static int
+_elm_genlist_block_count_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) 0;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->max_items_per_block;
 }
 
@@ -8034,11 +7946,9 @@ _item_filter_enterer(void *data)
    return ok;
 }
 
-EAPI void
-elm_genlist_filter_set(Evas_Object *obj, void *filter_data)
+EOLIAN void
+_elm_genlist_filter_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, void *filter_data)
 {
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
    Item_Block *itb;
    Eina_List *l;
    Elm_Gen_Item *it;
@@ -8117,11 +8027,9 @@ _filter_iterator_get_container(Elm_Genlist_Filter *iter)
    return WIDGET(it);
 }
 
-EAPI Eina_Iterator *
-elm_genlist_filter_iterator_new(Evas_Object *obj)
+EOLIAN Eina_Iterator *
+_elm_genlist_filter_iterator_new(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
    Elm_Genlist_Filter *iter;
    iter = calloc(1, sizeof (Elm_Genlist_Filter));
    if (!iter) return NULL;
@@ -8140,22 +8048,15 @@ elm_genlist_filter_iterator_new(Evas_Object *obj)
    return &iter->iterator;
 }
 
-EAPI void
-elm_genlist_longpress_timeout_set(Evas_Object *obj,
-                                  double timeout)
+EOLIAN static void
+_elm_genlist_longpress_timeout_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, double timeout)
 {
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    sd->longpress_timeout = timeout;
 }
 
-EAPI double
-elm_genlist_longpress_timeout_get(const Evas_Object *obj)
+EOLIAN static double
+_elm_genlist_longpress_timeout_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) 0;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->longpress_timeout;
 }
 
@@ -8163,6 +8064,13 @@ EAPI void
 elm_genlist_scroller_policy_set(Evas_Object *obj,
                                 Elm_Scroller_Policy policy_h,
                                 Elm_Scroller_Policy policy_v)
+{
+   ELM_GENLIST_CHECK(obj);
+   eo_do(obj, elm_interface_scrollable_policy_set(policy_h, policy_v));
+}
+
+EOLIAN static void
+_elm_genlist_elm_interface_scrollable_policy_set(Eo *obj, Elm_Genlist_Data *sd EINA_UNUSED, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v)
 {
    ELM_GENLIST_CHECK(obj);
 
@@ -8177,6 +8085,13 @@ EAPI void
 elm_genlist_scroller_policy_get(const Evas_Object *obj,
                                 Elm_Scroller_Policy *policy_h,
                                 Elm_Scroller_Policy *policy_v)
+{
+   ELM_GENLIST_CHECK(obj);
+   eo_do( obj, elm_interface_scrollable_policy_get(policy_h, policy_v));
+}
+
+EOLIAN static void
+_elm_genlist_elm_interface_scrollable_policy_get(Eo *obj, Elm_Genlist_Data *sd EINA_UNUSED, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v)
 {
    Elm_Scroller_Policy s_policy_h, s_policy_v;
 
@@ -8187,8 +8102,8 @@ elm_genlist_scroller_policy_get(const Evas_Object *obj,
    if (policy_v) *policy_v = (Elm_Scroller_Policy)s_policy_v;
 }
 
-EAPI void
-elm_genlist_realized_items_update(Evas_Object *obj)
+EOLIAN static void
+_elm_genlist_realized_items_update(Eo *obj, Elm_Genlist_Data *_pd EINA_UNUSED)
 {
    Eina_List *list;
    Elm_Object_Item *eo_it;
@@ -8264,34 +8179,24 @@ _elm_genlist_item_decorate_mode_get(Eo *eo_i EINA_UNUSED, Elm_Gen_Item *i)
    return GL_IT(i)->wsd->decorate_it_type;
 }
 
-EAPI Elm_Object_Item *
-elm_genlist_decorated_item_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Item *
+_elm_genlist_decorated_item_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) NULL;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return EO_OBJ(sd->mode_item);
 }
 
-EAPI Eina_Bool
-elm_genlist_decorate_mode_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_genlist_decorate_mode_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) EINA_FALSE;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->decorate_all_mode;
 }
 
-EAPI void
-elm_genlist_decorate_mode_set(Evas_Object *obj,
-                              Eina_Bool decorated)
+EOLIAN static void
+_elm_genlist_decorate_mode_set(Eo *obj, Elm_Genlist_Data *sd, Eina_Bool decorated)
 {
    Elm_Object_Item *eo_it;
    Eina_List *list;
 
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    decorated = !!decorated;
    if (sd->decorate_all_mode == decorated) return;
    // decorate_all_mode should be set first
@@ -8317,14 +8222,11 @@ elm_genlist_decorate_mode_set(Evas_Object *obj,
    _changed(sd->pan_obj);
 }
 
-EAPI void
-elm_genlist_reorder_mode_set(Evas_Object *obj,
-                             Eina_Bool reorder_mode)
+EOLIAN static void
+_elm_genlist_reorder_mode_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool reorder_mode)
 {
    Eina_List *list;
    Elm_Object_Item *eo_it;
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
 
    if (sd->reorder_mode == !!reorder_mode) return;
    sd->reorder_mode = !!reorder_mode;
@@ -8352,12 +8254,9 @@ elm_genlist_reorder_mode_set(Evas_Object *obj,
      }
 }
 
-EAPI Eina_Bool
-elm_genlist_reorder_mode_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_genlist_reorder_mode_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) EINA_FALSE;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->reorder_mode;
 }
 
@@ -8465,13 +8364,9 @@ _elm_genlist_item_flip_get(Eo *eo_it EINA_UNUSED, Elm_Gen_Item *it)
    return it->flipped;
 }
 
-EAPI void
-elm_genlist_select_mode_set(Evas_Object *obj,
-                            Elm_Object_Select_Mode mode)
+EOLIAN static void
+_elm_genlist_select_mode_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Elm_Object_Select_Mode mode)
 {
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    if ((mode >= ELM_OBJECT_SELECT_MODE_MAX) || (sd->select_mode == mode))
      return;
 
@@ -8502,31 +8397,21 @@ elm_genlist_select_mode_set(Evas_Object *obj,
      }
 }
 
-EAPI Elm_Object_Select_Mode
-elm_genlist_select_mode_get(const Evas_Object *obj)
+EOLIAN static Elm_Object_Select_Mode
+_elm_genlist_select_mode_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) ELM_OBJECT_SELECT_MODE_MAX;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->select_mode;
 }
 
-EAPI void
-elm_genlist_highlight_mode_set(Evas_Object *obj,
-                               Eina_Bool highlight)
+EOLIAN static void
+_elm_genlist_highlight_mode_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool highlight)
 {
-   ELM_GENLIST_CHECK(obj);
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    sd->highlight = !!highlight;
 }
 
-EAPI Eina_Bool
-elm_genlist_highlight_mode_get(const Evas_Object *obj)
+EOLIAN static Eina_Bool
+_elm_genlist_highlight_mode_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd)
 {
-   ELM_GENLIST_CHECK(obj) EINA_FALSE;
-   ELM_GENLIST_DATA_GET(obj, sd);
-
    return sd->highlight;
 }
 
@@ -8562,14 +8447,6 @@ _elm_genlist_item_select_mode_get(Eo *eo_it EINA_UNUSED, Elm_Gen_Item *it)
    return it->select_mode;
 }
 
-// will be deprecated
-EAPI void
-elm_genlist_tree_effect_enabled_set(Evas_Object *obj EINA_UNUSED,
-                                    Eina_Bool enabled EINA_UNUSED)
-{
-   ELM_GENLIST_CHECK(obj);
-}
-
 EOLIAN Elm_Atspi_State_Set
 _elm_genlist_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_it, Elm_Gen_Item *it EINA_UNUSED)
 {
@@ -8783,12 +8660,17 @@ _elm_genlist_item_elm_interface_atspi_component_highlight_clear(Eo *eo_it EINA_U
    return EINA_TRUE;
 }
 ///////////////////////////////////////////////////////////////////////////////
-// will be deprecated
-EAPI Eina_Bool
-elm_genlist_tree_effect_enabled_get(const Evas_Object *obj EINA_UNUSED)
+
+EOLIAN static void
+_elm_genlist_tree_effect_enabled_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd EINA_UNUSED, Eina_Bool enabled EINA_UNUSED)
 {
-   ELM_GENLIST_CHECK(obj) EINA_FALSE;
+   // Need to implemented
+   //sd->tree_effect_enabled = !!enabled;
+}
 
+EOLIAN static Eina_Bool
+_elm_genlist_tree_effect_enabled_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd EINA_UNUSED)
+{
    return EINA_FALSE;
 }
 
index 12a63638c191d539054ff878d23180cd3331f8bb..81528066d38d94e861e8dde8a1a792b35ff5e511 100644 (file)
@@ -5,6 +5,568 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, Evas.Clickable_Interfac
                    Evas.Selectable_Interface)
 {
    eo_prefix: elm_obj_genlist;
+   methods {
+      @property homogeneous {
+         set {
+            [[Enable/disable homogeneous mode.
+
+              This will enable the homogeneous mode where items are of the
+              same height and width so that genlist may do the lazy-loading
+              at its maximum (which increases the performance for scrolling
+              the list). In the normal mode, genlist will pre-calculate all
+              the items' sizes even though they are not in use. So items'
+              callbacks are called many times than expected. But homogeneous
+              mode will skip the item size pre-calculation  process so
+              items' callbacks are called only when the item is needed.
+
+              Note: This also works well with group index.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         get {
+            [[Get whether the homogeneous mode is enabled.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         values {
+            homogeneous: bool; [[Assume the items within the genlist are of
+                                 the same height and width. Default is $false.]]
+         }
+      }
+      @property select_mode {
+         set {
+            [[Set the genlist select mode.
+
+              #ELM_OBJECT_SELECT_MODE_DEFAULT means that items will call
+              their selection func and callback once when first becoming
+              selected. Any further clicks will do nothing, unless you set
+              always select mode. ELM_OBJECT_SELECT_MODE_ALWAYS means that
+              even if selected, every click will make the selected callbacks
+              be called. #ELM_OBJECT_SELECT_MODE_NONE will turn off the
+              ability to select items entirely and they will neither appear
+              selected nor call selected callback functions.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         get {
+            [[Get the genlist select mode.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         values {
+            mode: Elm.Object.Select_Mode(Elm.Object.Select_Mode.max); [[The select mode.]]
+         }
+      }
+      @property longpress_timeout {
+         set {
+            [[Set the timeout in seconds for the longpress event.
+
+              This option will change how long it takes to send an event
+              "longpressed" after the mouse down signal is sent to the list.
+              If this event occurs, no "clicked" event will be sent.
+
+              Warning: If you set the longpress timeout value with this API,
+              your genlist will not be affected by the longpress value of
+              elementary config value later.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         get {
+            [[Get the timeout in seconds for the longpress event.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         values {
+            timeout: double; [[Timeout in seconds. Default is elm config value (1.0).]]
+         }
+      }
+      @property multi_select {
+         set {
+            [[Enable or disable multi-selection in the genlist.
+
+              This enables ($true) or disables ($false) multi-selection in
+              the list. This allows more than 1 item to be selected. To
+              retrieve the list of selected items, use @.selected_items.get.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         get {
+            [[Get if multi-selection in genlist is enabled or disabled.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         values {
+            multi: bool; [[Multi-select enable/disable. Default is disabled.]]
+         }
+      }
+      @property reorder_mode {
+         set {
+            [[Set reorder mode.
+
+              After turning on the reorder mode, longpress on normal item
+              will trigger reordering of the item. You can move the item
+              up and down. However, reorder does not work with group item.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         get {
+            [[Get the reorder mode.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         values {
+            reorder_mode: bool; [[The reorder mode.]]
+         }
+      }
+      @property decorate_mode {
+         set @internal {
+            [[Set Genlist decorate mode.
+
+              This sets Genlist decorate mode to all items.
+            ]]
+         }
+         get @internal {
+            [[Get Genlist decorate mode.]]
+         }
+         values {
+            decorated: bool; [[The decorate mode status.]]
+         }
+      }
+      @property block_count {
+         set {
+            [[Set the maximum number of items within an item block.
+
+              This will configure the block count to tune to the target
+              with particular performance matrix.
+
+              A block of objects will be used to reduce the number of
+              operations due to many objects in the screen. It can
+              determine the visibility, or if the object has changed,
+              it theme needs to be updated, etc. doing this kind of
+              calculation to the entire block, instead of per object.
+
+              The default value for the block count is enough for most
+              lists, so unless you know you will have a lot of objects
+              visible in the screen at the same time, don't try to
+              change this.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         get {
+            [[Get the maximum number of items within an item block.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         values {
+            count: int; [[Maximum number of items within an item block. Default is 32.]]
+         }
+      }
+      @property tree_effect_enabled {
+         [[Control genlist tree effect.]]
+         set @internal {
+         }
+         get @internal {
+         }
+         values {
+            enabled: bool; [[The tree effect status.]]
+         }
+      }
+      @property highlight_mode {
+         set {
+            [[Set whether the genlist items should be highlighted on item
+              selection.
+
+              This will turn on/off the highlight effect on item selection.
+              The selected and clicked callback functions will still be
+              called.
+
+              Highlight is enabled by default.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         get {
+            [[Get whether the genlist items' should be highlighted when
+              item selected.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         values {
+            highlight: bool; [[$true to enable highlighting or $false to
+                               disable it.]]
+         }
+      }
+      @property mode {
+         set {
+            [[This sets the horizontal stretching mode.
+
+              This sets the mode used for sizing items horizontally. Valid
+              modes are #ELM_LIST_LIMIT, #ELM_LIST_SCROLL, and
+              #ELM_LIST_COMPRESS. The default is #ELM_LIST_SCROLL. This mode
+              means that if items are too wide to fit, the scroller will
+              scroll horizontally. Otherwise items are expanded to fill
+              the width of the viewport of the scroller. If it is
+              #ELM_LIST_LIMIT, items will be expanded to the viewport width
+              and limited to that size. If it is #ELM_LIST_COMPRESS, the
+              item width will be fixed (restricted to a minimum of) to the
+              list width when calculating its size in order to allow the
+              height to be calculated based on it. This allows, for
+              instance, text block to wrap lines if the Edje part is
+              configured with "text.min: 0 1".
+
+              Note: #ELM_LIST_COMPRESS will make list resize slower as it
+              will have to recalculate every item height again whenever
+              the list width changes!
+
+              Note: Homogeneous mode is for that all items in the genlist
+              same width/height. With #ELM_LIST_COMPRESS, it makes genlist
+              items to fast initializing. However there's no sub-objects
+              in genlist which can be on the flying resizable (such as
+              TEXTBLOCK). If then, some dynamic esizable objects in
+              genlist would not diplayed properly.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         get {
+            [[Get the horizontal stretching mode.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+         }
+         values {
+            mode: Elm_List_Mode(4); [[The mode to use (one of #ELM_LIST_SCROLL or #ELM_LIST_LIMIT).]]
+         }
+      }
+      @property decorated_item {
+         get @internal {
+            [[Get active genlist mode item.
+
+              This function returns the item that was activated with a mode,
+              by the function @.decorate_mode.set.
+            ]]
+            return: Elm.Widget_Item *; [[The active item for that current mode.
+                                         Or $null if no item is activated with any mode.]]
+         }
+      }
+      @property selected_item {
+         get {
+            [[Get the selected item in the genlist.
+
+              This gets the selected item in the list (if multi-selection
+              is enabled, only the item that was first selected in the list
+              is returned - which is not very useful, so see
+              @.selected_items.get for when multi-selection is used).
+
+              If no item is selected, $null is returned.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+            return: Elm.Widget_Item *; [[The selected item, or $null if none is selected.]]
+         }
+      }
+      @property first_item {
+         get {
+            [[Get the first item in the genlist.
+
+              This returns the first item in the list.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+            return: Elm.Widget_Item *; [[The first item or $null.]]
+         }
+      }
+      @property realized_items {
+         get {
+            [[Get a list of realized items in genlist.
+
+              This returns a list of the realized items in the genlist.
+              The list contains genlist item pointers. The list must be
+              freed by the caller when done with \@ref eina_list_free. The 
+              item pointers in the list are only valid so long as those
+              items are not deleted or the genlist is not deleted.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+            return: free(own(list<Elm_Gen_Item *> *), eina_list_free) @warn_unused;
+         }
+      }
+      @property selected_items {
+         get {
+            [[Get a list of selected items in the genlist.
+
+              It returns a list of the selected items. This list pointer
+              is only valid so long as the selection doesn't change (no
+              items are selected or unselected, or unselected implicitl
+              by deletion). The list contains genlist items pointers. The
+              order of the items in this list is the order which they were
+              selected, i.e. the first item in this list is the first item
+              that was selected, and so on.
+
+              Note: If not in multi-select mode, consider using function
+              @.selected_item.get instead.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+            return: const(list<Elm.Widget_Item *>)*;
+         }
+      }
+      @property last_item {
+         get {
+            [[Get the last item in the genlist
+
+              This returns the last item in the list.
+
+              \@if MOBILE \@since_tizen 2.3
+              \@elseif WEARABLE \@since_tizen 2.3.1
+              \@endif
+            ]]
+            return: Elm.Widget_Item *;
+         }
+      }
+      item_insert_before {
+         [[Insert an item before another in a genlist widget
+
+           This inserts an item before another in the list. It will be in
+           the same tree level or group as the item it is inserted before.
+
+           \@if MOBILE \@since_tizen 2.3
+           \@elseif WEARABLE \@since_tizen 2.3.1
+           \@endif
+         ]]
+         return: Elm.Widget_Item *;
+         params {
+            @in itc: const(Elm_Genlist_Item_Class)*; [[The item class for the item.]]
+            @in data: const(void)*; [[The item data.]]
+            @in parent: Elm.Widget_Item * @nullable; [[The parent item, or $null if none.]]
+            @in before_it: Elm.Widget_Item *; [[The item to place this new one before.]]
+            @in type: Elm_Genlist_Item_Type; [[Item type.]]
+            @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
+            @in func_data: const(void)* @optional; [[Data passed to $func above.]]
+         }
+      }
+      realized_items_update {
+         [[Update the contents of all realized items.
+
+           This updates all realized items by calling all the item class
+           functions again to get the contents, texts and states. Use this
+           when the original item data has changed and the changes are
+           desired to be reflected.
+
+           To update just one item, use \@ref elm_genlist_item_update.
+
+           \@if MOBILE \@since_tizen 2.3
+           \@elseif WEARABLE \@since_tizen 2.3.1
+           \@endif
+         ]]
+      }
+      item_insert_after {
+         [[Insert an item after another in a genlist widget
+
+           This inserts an item after another in the list. It will be in the
+           same tree level or group as the item it is inserted after.
+
+           \@if MOBILE \@since_tizen 2.3
+           \@elseif WEARABLE \@since_tizen 2.3.1
+           \@endif
+         ]]
+         return: Elm.Widget_Item *;
+         params {
+            @in itc: const(Elm_Genlist_Item_Class)*; [[The item class for the item.]]
+            @in data: const(void)*; [[The item data.]]
+            @in parent: Elm.Widget_Item * @nullable; [[The parent item, or $null if none.]]
+            @in after_it: Elm.Widget_Item *; [[The item to place this new one after.]]
+            @in type: Elm_Genlist_Item_Type; [[Item type.]]
+            @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
+            @in func_data: const(void)* @optional; [[Data passed to $func above.]]
+         }
+      }
+      at_xy_item_get @const {
+         [[Get the item that is at the x, y canvas coords.
+
+           This returns the item at the given coordinates (which are canvas
+           relative, not object-relative). If an item is at that coordinate,
+           that item handle is returned, and if $posret is not NULL, the
+           integer pointed to is set to a value of -1, 0 or 1, depending if
+           the coordinate is on the upper portion of that item (-1), on the
+           middle section (0) or on the lower part (1). If NULL is returned
+           as an item (no item found there), then posret may indicate -1 or
+           1 based if the coordinate is above or below all items
+           respectively in the genlist.
+
+           \@if MOBILE \@since_tizen 2.3
+           \@elseif WEARABLE \@since_tizen 2.3.1
+           \@endif
+         ]]
+         return: Elm.Widget_Item *;
+         params {
+            @in x: Evas.Coord; [[The input x coordinate.]]
+            @in y: Evas.Coord; [[The input y coordinate.]]
+            @out posret: int; [[The position relative to the item returned here.]]
+         }
+      }
+      @property filter {
+         set @internal {
+            [[Set filter mode with key.
+
+              This initiates the filter mode of genlist with user/application
+              provided key. If key is NULL, the filter mode is turned off.
+
+              The filter data passed has to be managed by application itself and
+              should not be deleted before genlist is deleted(or while filtering
+              is not done.
+            ]]
+         }
+         values {
+            key: void *; [[Filter key]]
+         }
+      }
+      filter_iterator_new @internal {
+         [[Returns an iterator over the list of filtered items.
+
+           Return NULL if filter is not set. Application must take care
+           of the case while calling the API. Must be freed after use.
+         ]]
+         return: free(own(iterator<Elm_Gen_Item *> *), eina_iterator_free); [[Iterator on genlist]]
+      }
+      items_count @const {
+         [[Return how many items are currently in a list.
+
+           This behavior is O(1) and includes items which may or may not
+           be realized.
+
+           \@if MOBILE \@since_tizen 2.3
+           \@elseif WEARABLE \@since_tizen 2.3.1
+           \@endif
+         ]]
+         return: uint;
+      }
+      item_prepend {
+         [[Prepend a new item in a given genlist widget.
+
+           This adds an item to the beginning of the list or beginning of
+           the children of the parent if given.
+
+           \@if MOBILE \@since_tizen 2.3
+           \@elseif WEARABLE \@since_tizen 2.3.1
+           \@endif
+         ]]
+         return: Elm.Widget_Item *;
+         params {
+            @in itc: const(Elm_Genlist_Item_Class)*; [[The item class for the item.]]
+            @in data: const(void)*; [[The item data.]]
+            @in parent: Elm.Widget_Item * @nullable; [[The parent item, or $null if none.]]
+            @in type: Elm_Genlist_Item_Type; [[Item type.]]
+            @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
+            @in func_data: const(void)* @optional; [[Data passed to $func above.]]
+         }
+      }
+      clear {
+         [[Remove all items from a given genlist widget.
+
+           This removes (and deletes) all items in $obj, leaving it empty.
+
+           \@if MOBILE \@since_tizen 2.3
+           \@elseif WEARABLE \@since_tizen 2.3.1
+           \@endif
+         ]]
+      }
+      item_append {
+         [[Append a new item in a given genlist widget.
+
+           This adds the given item to the end of the list or the end of
+           the children list if the $parent is given.
+
+           \@if MOBILE \@since_tizen 2.3
+           \@elseif WEARABLE \@since_tizen 2.3.1
+           \@endif
+         ]]
+         return: Elm.Widget_Item *;
+         params {
+            @in itc: const(Elm_Genlist_Item_Class)*; [[The item class for the item.]]
+            @in data: const(void)*; [[The item data.]]
+            @in parent: Elm.Widget_Item * @nullable; [[The parent item, or $null if none.]]
+            @in type: Elm_Genlist_Item_Type; [[Item type.]]
+            @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
+            @in func_data: const(void)* @optional; [[Data passed to $func above.]]
+         }
+      }
+      item_sorted_insert {
+         [[Insert a new item into the sorted genlist object
+
+           This inserts an item in the genlist based on user defined
+           comparison function. The two arguments passed to the function
+           $func are genlist item handles to compare.
+
+           \@if MOBILE \@since_tizen 2.3
+           \@elseif WEARABLE \@since_tizen 2.3.1
+           \@endif
+         ]]
+         return: Elm.Widget_Item *;
+         params {
+            @in itc: const(Elm_Genlist_Item_Class)*; [[The item class for the item.]]
+            @in data: const(void)*; [[The item data.]]
+            @in parent: Elm.Widget_Item * @nullable; [[The parent item, or $null if none.]]
+            @in type: Elm_Genlist_Item_Type; [[Item type.]]
+            @in comp: Eina_Compare_Cb; [[The function called for the sort.]]
+            @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
+            @in func_data: const(void)* @optional; [[Data passed to $func above.]]
+         }
+      }
+   }
    implements {
       class.constructor;
       Eo.Base.constructor;
@@ -27,6 +589,8 @@ class Elm.Genlist (Elm.Layout, Elm_Interface_Scrollable, Evas.Clickable_Interfac
       Elm.Widget.translate;
       Elm.Layout.sub_object_add_enable;
       Elm.Layout.sizing_eval;
+      Elm_Interface_Scrollable.bounce_allow;
+      Elm_Interface_Scrollable.policy;
       Elm_Interface_Atspi_Accessible.children.get;
       Elm_Interface_Atspi_Accessible.state_set.get;
       Elm_Interface_Atspi_Selection.selected_children_count.get;
index 76f6ee8db211b0ceb0b00da75169a118379cfa44..788765b762e4030918f779f10c0c870fb792031b 100644 (file)
@@ -1,48 +1,6 @@
 #define ELM_GENLIST_ITEM_CLASS_VERSION ELM_GEN_ITEM_CLASS_VERSION
 #define ELM_GENLIST_ITEM_CLASS_HEADER ELM_GEN_ITEM_CLASS_HEADER
 
-/**
- * @brief Enumeration that defines whether the item is of a special type (has subitems or it's the
- * index of a group), or it is just a simple item.
- */
-typedef enum
-{
-       ELM_GENLIST_ITEM_NONE = 0, /**< simple item */
-       ELM_GENLIST_ITEM_TREE = (1 << 0), /**< this may be expanded and have child items. */
-       ELM_GENLIST_ITEM_GROUP = (1 << 1), /**< an index item of a group of items. this item can have child items. */
-
-       ELM_GENLIST_ITEM_MAX = (1 << 2)
-} Elm_Genlist_Item_Type;
-
-/**
- * @brief Enumeration that defines the type of the item field.
- * @remarks It is used while updating the item field.
- * @remarks It can be used for updating multi fields.
- */
-typedef enum
-{
-       ELM_GENLIST_ITEM_FIELD_ALL = 0, /**< The item contains all fields */
-       ELM_GENLIST_ITEM_FIELD_TEXT = (1 << 0), /**< The item contains a text field */
-       ELM_GENLIST_ITEM_FIELD_CONTENT = (1 << 1), /**< The item contains a content field */
-       ELM_GENLIST_ITEM_FIELD_STATE = (1 << 2) /**< The item contains a state field */
-} Elm_Genlist_Item_Field_Type;
-
-
-/**
- * @brief Enumeration that defines where to position the item in the genlist.
- */
-typedef enum
-{
-       ELM_GENLIST_ITEM_SCROLLTO_NONE = 0,   /**< Scrolls to nowhere */
-       ELM_GENLIST_ITEM_SCROLLTO_IN = (1 << 0),   /**< Scrolls to the nearest viewport */
-       ELM_GENLIST_ITEM_SCROLLTO_TOP = (1 << 1),   /**< Scrolls to the top of the viewport */
-       ELM_GENLIST_ITEM_SCROLLTO_MIDDLE = (1 << 2),   /**< Scrolls to the middle of the viewport */
-// @tizen_feature
-       ELM_GENLIST_ITEM_SCROLLTO_BOTTOM = (1 << 3)   /**< Scrolls to the bottom of the viewport */
-///
-} Elm_Genlist_Item_Scrollto_Type;
-
-
 /**
  * @see Elm_Gen_Item_Class
  */
index 27c11b4a63afe536cb01a626d50dea72c56416df..1d885a4a4632d069cc7561c04ca473e7df8a71dc 100644 (file)
@@ -1,5 +1,41 @@
 import elm_general;
 
+enum Elm.Genlist.Item.Type
+{
+   [[Defines if the item is of any special type (has subitems or it's the
+     index of a group), or is just a simple item.
+   ]]
+   legacy: elm_genlist_item;
+   none = 0, [[Simple item.]]
+   tree = (1 << 0), [[This may be expanded and have child items.]]
+   group = (1 << 1), [[An index item of a group of items. this item can have child items.]]
+   max = (1 << 2)
+}
+
+enum Elm.Genlist.Item.Field_Type
+{
+   [[Defines the type of the item part
+     Used while updating item's parts
+     It can be used at updating multi fields.
+   ]]
+   legacy: elm_genlist_item_field;
+   all = 0,
+   text = (1 << 0),
+   content = (1 << 1),
+   state = (1 << 2)
+}
+
+enum Elm.Genlist.Item.Scrollto_Type
+{
+   [[Defines where to position the item in the genlist.]]
+   legacy: elm_genlist_item_scrollto;
+   none = 0,   [[No scrollto.]]
+   in = (1 << 0),   [[To the nearest viewport.]]
+   top = (1 << 1),   [[To the top of viewport.]]
+   middle = (1 << 2),   [[To the middle of viewport.]]
+   bottom = (1 << 3)   [[To the bottom of viewport.]]
+}
+
 class Elm.Genlist_Item(Elm.Widget_Item)
 {
       eo_prefix: elm_obj_genlist_item;
@@ -345,7 +381,7 @@ class Elm.Genlist_Item(Elm.Widget_Item)
                       ]]
                 }
                 values {
-                     type: Elm_Genlist_Item_Type(4); [[Item type.]]
+                     type: Elm.Genlist.Item.Type(Elm.Genlist.Item.Type.max); [[Item type.]]
                 }
            }
            /*      init { FIXME
@@ -416,8 +452,8 @@ class Elm.Genlist_Item(Elm.Widget_Item)
                  $ingroup Genlist
                  ]]
                 params {
-                     @in type: Elm_Genlist_Item_Scrollto_Type; [[The position to bring in, the given item to.
-                                                                 \$ref Elm_Genlist_Item_Scrollto_Type.]]
+                     @in type: Elm.Genlist.Item.Scrollto_Type; [[The position to bring in, the given item to.
+                                                                 \@ref Elm_Genlist_Item_Scrollto_Type.]]
                 }
            }
            bring_in {
@@ -438,8 +474,8 @@ class Elm.Genlist_Item(Elm.Widget_Item)
                  $ingroup Genlist
                  ]]
                 params {
-                     @in type: Elm_Genlist_Item_Scrollto_Type; [[The position to bring in, the given item to.
-                                                                 \$ref Elm_Genlist_Item_Scrollto_Type.]]
+                     @in type: Elm.Genlist.Item.Scrollto_Type; [[The position to bring in, the given item to.
+                                                                 \@ref Elm_Genlist_Item_Scrollto_Type.]]
                 }
            }
            all_contents_unset{
@@ -509,7 +545,7 @@ class Elm.Genlist_Item(Elm.Widget_Item)
                  ]]
                 params {
                      @in parts: const (char) *; [[The name of item's part.]]
-                     @in itf: Elm_Genlist_Item_Field_Type; [[The type of item's part type.]]
+                     @in itf: Elm.Genlist.Item.Field_Type; [[The type of item's part type.]]
                 }
            }
            item_class_update {
index 1399cab22ffd94bf712172d0ec8a5200885088c2..3ac4ccdb4c2d8f3dd51cec336a5d391b74c7ae0c 100644 (file)
  */
 EAPI Evas_Object                  *elm_genlist_add(Evas_Object *parent);
 
-/**
- * @brief Removes all items from a given genlist widget.
- *
- * @details This removes (and deletes) all items in @a obj, making it empty.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- *
- * @see elm_object_item_del() to remove just one item.
- */
-EAPI void                          elm_genlist_clear(Evas_Object *obj);
-
-/**
- * @brief Enables or disables multi-selection in the genlist.
- *
- * @details This enables (@c EINA_TRUE) or disables (@c EINA_FALSE) multi-selection in
- *          the list. This allows more than @c 1 item to be selected. To retrieve the list
- *          of selected items, use elm_genlist_selected_items_get().
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @param[in] multi The boolean value that enables or disables multi-selection \n
- *              Default is disabled.
- *
- * @see elm_genlist_selected_items_get()
- * @see elm_genlist_multi_select_get()
- */
-EAPI void                          elm_genlist_multi_select_set(Evas_Object *obj, Eina_Bool multi);
-
-/**
- * @brief Gets whether multi-selection in genlist is enabled or disabled.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The boolean value that indicates whether multi-selection is enabled or disabled
- *         (@c EINA_TRUE = enabled/@c EINA_FALSE = disabled). Default is @c EINA_FALSE.
- *
- * @see elm_genlist_multi_select_set()
- */
-EAPI Eina_Bool                     elm_genlist_multi_select_get(const Evas_Object *obj);
-
-/**
- * @brief Sets the horizontal stretching mode.
- *
- * @details This sets the mode used for sizing items horizontally. Valid modes
- *          are #ELM_LIST_LIMIT, #ELM_LIST_SCROLL, and #ELM_LIST_COMPRESS. The default is
- *          ELM_LIST_SCROLL. This mode means that if items are too wide to fit,
- *          the scroller scrolls horizontally. Otherwise items are expanded
- *          to fill the width of the viewport of the scroller. If it is
- *          ELM_LIST_LIMIT, items are expanded to the viewport width and
- *          limited to that size. If it is ELM_LIST_COMPRESS, the item width is
- *          fixed (restricted to a minimum of) to the list width when calculating its
- *          size in order to allow the height to be calculated based on it. This allows,
- *          for instance, a text block to wrap lines if the Edje part is configured with
- *          "text.min: 0 1".
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks ELM_LIST_COMPRESS makes list resize slower as it
- *          recalculates every item height again whenever the list width
- *          changes
- * @remarks The homogeneous mode is so that all items in the genlist are of the same
- *          width/height. With ELM_LIST_COMPRESS, genlist items are initialized fast.
- *          However, there are no sub-objects in the genlist which can be
- *          on the flying resizable (such as TEXTBLOCK). If so, then some dynamic
- *          resizable objects in the genlist would not be diplayed properly.
- *
- * @param[in] obj The genlist object
- * @param[in] mode The mode to use (either #ELM_LIST_SCROLL or #ELM_LIST_LIMIT)
- *
- * @see elm_genlist_mode_get()
- */
-EAPI void                          elm_genlist_mode_set(Evas_Object *obj, Elm_List_Mode mode);
-
-/**
- * @brief Gets the horizontal stretching mode.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The mode to use
- * (#ELM_LIST_LIMIT, #ELM_LIST_SCROLL)
- *
- * @see elm_genlist_mode_set()
- */
-EAPI Elm_List_Mode                 elm_genlist_mode_get(const Evas_Object *obj);
-
 /**
  * @internal
  *
@@ -534,629 +434,6 @@ EINA_DEPRECATED EAPI void          elm_genlist_bounce_set(Evas_Object *obj, Eina
 EINA_DEPRECATED EAPI void          elm_genlist_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
 
 /**
- * @brief Appends a new item to a given genlist widget.
- *
- * @details This adds the given item to the end of the list or the end of
- *          the children list if the @a parent is given.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @param[in] itc The item class for the item
- * @param[in] data The item data
- * @param[in] parent The parent item, otherwise @c NULL if there is no parent item
- * @param[in] type The item type
- * @param[in] func The convenience function that is called when the item is selected
- * @param[in] func_data The data passed to @a func mentioned above
- * @return A handle to the added item, otherwise @c NULL if it is not possible
- *
- * @see elm_genlist_item_prepend()
- * @see elm_genlist_item_insert_before()
- * @see elm_genlist_item_insert_after()
- * @see elm_object_item_del()
- */
-EAPI Elm_Object_Item             *elm_genlist_item_append(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
-
-/**
- * @brief Prepends a new item to a given genlist widget.
- *
- * @details This adds an item to the beginning of the list or beginning of the
- *          children of the parent if given.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @param[in] itc The item class for the item
- * @param[in] data The item data
- * @param[in] parent The parent item, otherwise @c NULL if there is no parent item
- * @param[in] type The item type
- * @param[in] func The convenience function that is called when the item is selected
- * @param[in] func_data The data passed to @a func mentioned above
- * @return A handle to the added item, otherwise @c NULL if it is not possible
- *
- * @see elm_genlist_item_append()
- * @see elm_genlist_item_insert_before()
- * @see elm_genlist_item_insert_after()
- * @see elm_object_item_del()
- */
-EAPI Elm_Object_Item             *elm_genlist_item_prepend(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
-
-/**
- * @brief Inserts an item before another in a genlist widget.
- *
- * @details This inserts an item before another in the list. It is the
- *          same tree level or group as the item before which it is inserted.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @param[in] itc The item class for the item
- * @param[in] data The item data
- * @param[in] parent The parent item, otherwise @c NULL if there is no parent item
- * @param[in] before The item before which to place this new one
- * @param[in] type The item type
- * @param[in] func The convenience function that is called when the item is selected
- * @param[in] func_data The data passed to @a func mentioned above
- * @return A handle to the item added, otherwise @c NULL if it is not possible
- *
- * @see elm_genlist_item_append()
- * @see elm_genlist_item_prepend()
- * @see elm_genlist_item_insert_after()
- * @see elm_object_item_del()
- */
-EAPI Elm_Object_Item             *elm_genlist_item_insert_before(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Object_Item *before, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
-
-/**
- * @brief Inserts an item after another in a genlist widget.
- *
- * @details This inserts an item after another in the list. It is in the
- *          same tree level or group as the item after which it is inserted.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @param[in] itc The item class for the item
- * @param[in] data The item data
- * @param[in] parent The parent item, otherwise @c NULL if there is no parent item
- * @param[in] after The item after which to place this new one
- * @param[in] type The item type
- * @param[in] func The convenience function that is called when the item is selected
- * @param[in] func_data The data passed to @a func mentioned above
- * @return A handle to the item added, otherwise @c NULL if it is not possible
- *
- * @see elm_genlist_item_append()
- * @see elm_genlist_item_prepend()
- * @see elm_genlist_item_insert_before()
- * @see elm_object_item_del()
- */
-EAPI Elm_Object_Item             *elm_genlist_item_insert_after(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Object_Item *after, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
-
-/**
- * @brief Inserts a new item into the sorted genlist object.
- *
- * @details This inserts an item in the genlist based on a user defined comparison
- *          function. The two arguments passed to the function @a func are genlist item
- *          handles to compare.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @param[in] itc The item class for the item
- * @param[in] data The item data
- * @param[in] parent The parent item, otherwise @c NULL if there is no parent item
- * @param[in] type The item type
- * @param[in] comp The function called for sorting
- * @param[in] func The convenience function that is called when the item is selected
- * @param[in] func_data The data passed to @a func mentioned above
- * @return A handle to the item added, otherwise @c NULL if it is not possible
- *
- * @see elm_genlist_item_append()
- * @see elm_genlist_item_prepend()
- * @see elm_genlist_item_insert_after()
- * @see elm_object_item_del()
- */
-EAPI Elm_Object_Item             *elm_genlist_item_sorted_insert(Evas_Object *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Object_Item *parent, Elm_Genlist_Item_Type type, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data);
-
-/* Operations to retrieve existing items */
-/**
- * @brief Gets the selected item in the genlist.
- *
- * @details This gets the selected item in the list (if multi-selection is enabled, only
- *          the item that is first selected in the list is returned, which is not very
- *          useful, so see elm_genlist_selected_items_get() to know when multi-selection is
- *          used).
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks If no item is selected, @c NULL is returned.
- *
- * @param[in] obj The genlist object
- * @return The selected item, otherwise @c NULL if none are selected
- *
- * @see elm_genlist_selected_items_get()
- */
-EAPI Elm_Object_Item             *elm_genlist_selected_item_get(const Evas_Object *obj);
-
-/**
- * @brief Gets a list of selected items in the genlist.
- *
- * @details It returns a list of selected items. This list pointer is only valid as
- *          long as the selection doesn't change (no items are selected or unselected, or
- *          unselected implicitly by deletion). The list contains genlist item
- *          pointers. The order of the items in this list is the order in which they were
- *          selected, i.e. the first item in this list is the first item that is
- *          selected, and so on.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks If not in the multi-select mode, use
- *          elm_genlist_selected_item_get() instead.
- *
- * @param[in] obj The genlist object
- * @return The list of selected items, otherwise @c NULL if none are selected
- *
- * @see elm_genlist_multi_select_set()
- * @see elm_genlist_selected_item_get()
- */
-EAPI Eina_List              *elm_genlist_selected_items_get(const Evas_Object *obj);
-
-/**
- * @brief Gets a list of realized items in the genlist.
- *
- * @details This returns a list of realized items in the genlist. The list
- *          contains genlist item pointers. The list must be freed by the
- *          caller when done with eina_list_free(). The item pointers in the
- *          list are only valid as long as those items are not deleted or the
- *          genlist is not deleted.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The list of realized items, otherwise @c NULL if none are realized
- *
- * @see elm_genlist_realized_items_update()
- */
-EAPI Eina_List                    *elm_genlist_realized_items_get(const Evas_Object *obj);
-
-/**
- * @brief Gets the first item in the genlist.
- *
- * @details This returns the first item in the list.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The first item, otherwise @c NULL if there are no items
- */
-EAPI Elm_Object_Item             *elm_genlist_first_item_get(const Evas_Object *obj);
-
-/**
- * @brief Gets the last item in the genlist.
- *
- * @details This returns the last item in the list.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The last item, otherwise @c NULL if there are no items
- */
-EAPI Elm_Object_Item             *elm_genlist_last_item_get(const Evas_Object *obj);
-
-/**
- * @internal
- *
- * @brief Sets the scrollbar policy.
- *
- * @details This sets the scrollbar visibility policy for the given genlist
- *          scroller. #ELM_SCROLLER_POLICY_AUTO means the scrollbar is
- *          made visible if it is needed, and otherwise kept hidden. #ELM_SCROLLER_POLICY_ON
- *          turns it on at all times, and #ELM_SCROLLER_POLICY_OFF always keeps it off.
- *          This applies for the horizontal and vertical scrollbars respectively.
- *          The default is #ELM_SCROLLER_POLICY_AUTO.
- *
- * @param obj The genlist object
- * @param policy_h The horizontal scrollbar policy
- * @param policy_v The vertical scrollbar policy
- *
- * @deprecated Use elm_scroller_policy_set() instead.
- *
- * @see elm_scroller_policy_set()
- */
-EINA_DEPRECATED EAPI void          elm_genlist_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v);
-
-/**
- * @internal
- *
- * @brief Gets the scrollbar policy.
- *
- * @param obj The genlist object
- * @param policy_h The pointer to store the horizontal scrollbar policy
- * @param policy_v The pointer to store the vertical scrollbar policy
- *
- * @deprecated Use elm_scroller_policy_get() instead.
- *
- * @see elm_scroller_policy_get()
- */
-EINA_DEPRECATED EAPI void          elm_genlist_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v);
-
-/**
- * @brief Updates the content of all the realized items.
- *
- * @details This updates all the realized items by calling all the item class functions again
- *          to get the content, text and states. Use this when the original
- *          item data has changed and the changes are desired to reflect.
- *
- *          To update just one item, use elm_genlist_item_update().
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- *
- * @see elm_genlist_realized_items_get()
- * @see elm_genlist_item_update()
- */
-EAPI void                          elm_genlist_realized_items_update(Evas_Object *obj);
-
-/**
- * @brief Returns the number of items that are currently in a list.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks This behavior is O(1) and includes items which may or may not be realized.
- *
- * @param[in] obj The list
- * @return The total number of items in the list
- */
-EAPI unsigned int elm_genlist_items_count(const Evas_Object *obj);
-
-/**
- * @brief Enables or disables the homogeneous mode.
- *
- * @details This enables the homogeneous mode where items are of the same
- *          height and width so that genlist may perform lazy-loading at its
- *          maximum (which increases the performance for scrolling the list).
- *          In the normal mode, genlist pre-calculates all the items' sizes even
- *          though they are not in use. So items' callbacks are called for more times than
- *          expected. But the homogeneous mode skips the item size pre-calculation
- *          process so items' callbacks are called only when the item is needed.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks This also works well with group index.
- *
- * @param[in] obj The genlist object
- * @param[in] homogeneous The boolean value assuming that the items within the genlist are of the
- *                    same height and width (@c EINA_TRUE = on, @c EINA_FALSE = off) \n
- *                    Default is @c EINA_FALSE.
- *
- * @see elm_genlist_mode_set()
- * @see elm_genlist_homogeneous_get()
- */
-EAPI void                          elm_genlist_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous);
-
-/**
- * @brief Gets whether the homogeneous mode is enabled.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The boolean value assuming that the items within the genlist are of the same height
- *         and width (@c EINA_TRUE = on, @c EINA_FALSE = off)
- *
- * @see elm_genlist_homogeneous_set()
- */
-EAPI Eina_Bool                     elm_genlist_homogeneous_get(const Evas_Object *obj);
-
-/**
- * @brief Sets the maximum number of items within an item block.
- *
- * @details This configures the block count to tune the target with, for a particular
- *          performance matrix.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks A block of objects are used to reduce the number of operations occurring due to
- *          large number of objects on the screen. It can determine the visibility, or if the
- *          object has changed, its theme needs to be updated by doing this kind of
- *          calculation to the entire block, instead of every object.
- *
- * @remarks The default value for the block count is enough for most lists, so unless
- *          your sure that you have a lot of objects visible on the screen at the same
- *          time, don't try to change this.
- *
- * @param[in] obj The genlist object
- * @param[in] count The maximum number of items within an item block \n
- *              Default is @c 32.
- *
- * @see elm_genlist_block_count_get()
- * @see @ref Genlist_Implementation
- */
-EAPI void                          elm_genlist_block_count_set(Evas_Object *obj, int count);
-
-/**
- * @brief Gets the maximum number of items within an item block.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The maximum number of items within an item block
- *
- * @see elm_genlist_block_count_set()
- */
-EAPI int                           elm_genlist_block_count_get(const Evas_Object *obj);
-
-/**
- * @brief Sets the timeout in seconds for the longpress event.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks This option changes the time it takes to send an event @c "longpressed"
- *          after the mouse down signal is sent to the list. If this event occurs, no
- *          @c "clicked" event is sent.
- *
- * @remarks If you set the longpress timeout value with this API, your genlist
- *          is not affected by the longpress value of the elementary config value
- *          later.
- *
- * @param[in] obj The genlist object
- * @param[in] timeout The timeout in seconds \n
- *                The default value is elm config value(1.0).
- *
- * @see elm_genlist_longpress_timeout_set()
- */
-EAPI void                          elm_genlist_longpress_timeout_set(Evas_Object *obj, double timeout);
-
-/**
- * @brief Gets the timeout in seconds for the longpress event.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The timeout in seconds
- *
- * @see elm_genlist_longpress_timeout_get()
- */
-EAPI double                        elm_genlist_longpress_timeout_get(const Evas_Object *obj);
-
-/**
- * @brief Gets the item that is at the x, y canvas coordinates.
- *
- * @details This returns the item at the given coordinates (which are canvas
- *          relative, not object-relative). If an item is at that coordinate,
- *          that item handle is returned, and if @a posret is not @c NULL, the
- *          integer it is pointing to is set to either @c -1, @c 0, or @c 1, depending on whether
- *          the coordinate is on the upper portion of that item (-1), in the
- *          middle section (0), or on the lower part (1). If @c NULL is returned as
- *          an item (no item found there), then posret may indicate @c -1 or @c 1
- *          depending on whether the coordinate is above or below the items in
- *          the genlist respectively.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @param[in] x The input x coordinate
- * @param[in] y The input y coordinate
- * @param[out] posret The position relative to the returned item
- * @return The item at the coordinates, otherwise @c NULL if there are none
- */
-EAPI Elm_Object_Item             *elm_genlist_at_xy_item_get(const Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *posret);
-
-/**
- * @internal
- * @remarks Tizen no feature
- *
- * @brief Gets the active genlist mode item.
- *
- * @details This function returns the item that is activated with a mode, by the
- *          function elm_genlist_item_decorate_mode_set().
- *
- * @param[in] obj The genlist object
- * @return The active item for that current mode, otherwise @c NULL if no item is
- *         activated with a mode
- *
- * @see elm_genlist_item_decorate_mode_set()
- * @see elm_genlist_mode_get()
- */
-EAPI Elm_Object_Item              *elm_genlist_decorated_item_get(const Evas_Object *obj);
-
-/**
- * @brief Sets the reorder mode.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks After turning on the reorder mode, longpress on a normal item triggers
- *          reordering of the item. You can move the item up and down. However, reordering
- *          does not work with group items.
- *
- * @param[in] obj The genlist object
- * @param[in] reorder_mode The reorder mode
- * (@c EINA_TRUE = on, @c EINA_FALSE = off)
- */
-EAPI void                          elm_genlist_reorder_mode_set(Evas_Object *obj, Eina_Bool reorder_mode);
-
-/**
- * @brief Gets the reorder mode.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The reorder mode
- *         (@c EINA_TRUE = on, @c EINA_FALSE = off)
- */
-EAPI Eina_Bool                     elm_genlist_reorder_mode_get(const Evas_Object *obj);
-
-/**
- * @internal
- * @remarks Tizen no feature
- *
- * @brief Sets the genlist decorate mode.
- *
- * @details This sets the genlist decorate mode for all items.
- *
- * @param obj The genlist object
- * @param decorated The decorate mode status
- *                  (@c EINA_TRUE = decorate mode, @c EINA_FALSE = normal mode
- */
-EAPI void               elm_genlist_decorate_mode_set(Evas_Object *obj, Eina_Bool decorated);
-
-/**
- * @internal
- * @remarks Tizen no feature
- *
- * @brief Gets the genlist decorate mode.
- *
- * @param obj The genlist object
- * @return The decorate mode status
- *         (@c EINA_TRUE = decorate mode, @c EINA_FALSE = normal mode
- */
-EAPI Eina_Bool          elm_genlist_decorate_mode_get(const Evas_Object *obj);
-
-/**
- * @internal
- * @remarks Tizen no feature
- *
- * @brief Sets the genlist tree effect.
- *
- * @param obj The genlist object
- * @param enabled The tree effect status
- *                (@c EINA_TRUE = enabled, @c EINA_FALSE = disabled
- */
-EAPI void               elm_genlist_tree_effect_enabled_set(Evas_Object *obj, Eina_Bool enabled);
-
-/**
- * @internal
- * @remarks Tizen no feature
- *
- * @brief Gets the genlist tree effect.
- *
- * @param obj The genlist object
- * @return The tree effect status
- *         (@c EINA_TRUE = enabled, @c EINA_FALSE = disabled
- */
-EAPI Eina_Bool          elm_genlist_tree_effect_enabled_get(const Evas_Object *obj);
-
-/**
- * @brief Sets the genlist select mode.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks elm_genlist_select_mode_set() changes the item select mode in the genlist widget.
- *          - ELM_OBJECT_SELECT_MODE_DEFAULT : Items call their selection @a func and
- *            callback on first getting selected. Any further clicks
- *            do nothing, unless you set the always select mode.
- *          - ELM_OBJECT_SELECT_MODE_ALWAYS :  This means that, even if selected,
- *            every click calls the selected callbacks.
- *          - ELM_OBJECT_SELECT_MODE_NONE : This turns off the ability to select items
- *            entirely and they neither appear selected nor call selected
- *            callback functions.
- *
- * @param[in] obj The genlist object
- * @param[in] mode The select mode
- *
- * @see elm_genlist_select_mode_get()
- */
-EAPI void elm_genlist_select_mode_set(Evas_Object *obj, Elm_Object_Select_Mode mode);
-
-/**
- * @brief Gets the genlist select mode.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return The select mode
- *         (If getting the mode fails, it returns @c ELM_OBJECT_SELECT_MODE_MAX)
- *
- * @see elm_genlist_select_mode_set()
- */
-EAPI Elm_Object_Select_Mode elm_genlist_select_mode_get(const Evas_Object *obj);
-
-/**
- * @brief Sets whether the genlist items should be highlighted when an item is selected.
- *
- * @details This turns on/off the highlight effect when an item is selected and
- *          it gets or does not get highlighted. The selected and clicked
- *          callback functions are still called.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @remarks Highlight is enabled by default.
- *
- * @param[in] obj The genlist object
- * @param[in] highlight If @c EINA_TRUE highlighting is enabled,
- *                  otherwise @c EINA_FALSE to disable it
- *
- * @see elm_genlist_highlight_mode_get().
- */
-EAPI void               elm_genlist_highlight_mode_set(Evas_Object *obj, Eina_Bool highlight);
-
-/**
- * @brief Gets whether the genlist items should be highlighted when an item is selected.
- *
- * @if MOBILE @since_tizen 2.3
- * @elseif WEARABLE @since_tizen 2.3.1
- * @endif
- *
- * @param[in] obj The genlist object
- * @return @c EINA_TRUE indicates that items can be highlighted,
- *         otherwise @c EINA_FALSE indicates that they can't \n
- *         If @a obj is @c NULL, @c EINA_FALSE is returned.
- *
- * @see elm_genlist_highlight_mode_set()
- */
-EAPI Eina_Bool          elm_genlist_highlight_mode_get(const Evas_Object *obj);
-
-/**
- * @brief Gets the nth item in a given genlist widget, placed at position @a nth, in
- *        its internal items list.
- *
  * @since 1.8
  *
  * @if MOBILE @since_tizen 2.3
@@ -1231,24 +508,5 @@ elm_genlist_item_reorder_stop(Elm_Object_Item *item);
  * @}
  */
 
-
-/**
- * @internal
- * @remarks Tizen only feature
- *
- * This API is not supported yet.
- * @param key The filter key
- */
-EAPI void
-elm_genlist_filter_set(Evas_Object *obj, void * key);
-/**
- * @}
- */
-
-EAPI Eina_Iterator *
-elm_genlist_filter_iterator_new(Evas_Object *obj);
-
-
-
 #include "elm_genlist_item.eo.legacy.h"
 #include "elm_genlist.eo.legacy.h"