Merge bring_in, top_bring_in and middle_bring_in into bring_in with ELM_GENLIST_ITEM_...
authorSanjeev BA <eflelev8@gmail.com>
Wed, 7 Mar 2012 08:29:28 +0000 (08:29 +0000)
committerSanjeev BA <iamsanjeev@gmail.com>
Wed, 7 Mar 2012 08:29:28 +0000 (08:29 +0000)
Signed-off-by: Sanjeev BA <eflelev8@gmail.com>
SVN revision: 68897

src/bin/test_genlist.c
src/lib/elm_deprecated.h
src/lib/elm_gen_common.h
src/lib/elm_genlist.c
src/lib/elm_genlist.h

index 18f3849..20d1b3d 100644 (file)
@@ -68,7 +68,8 @@ set_api_state(api_data *api)
       case TOOLTIP_TEXT_SET: /* 6 */
            {
               elm_genlist_item_tooltip_text_set(elm_genlist_first_item_get(gl), "Tooltip text from API");
-              elm_genlist_item_bring_in(elm_genlist_first_item_get(gl));
+              elm_genlist_item_bring_in(elm_genlist_first_item_get(gl),
+                                         ELM_GENLIST_ITEM_SCROLLTO_IN);
            }
          break;
 
@@ -161,7 +162,7 @@ _move(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *even
 static void
 _bt50_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
-   elm_genlist_item_bring_in(data);
+   elm_genlist_item_bring_in(data, ELM_GENLIST_ITEM_SCROLLTO_IN);
 }
 
 static void
index f80607d..81e39ed 100644 (file)
@@ -5031,10 +5031,26 @@ EINA_DEPRECATED EAPI void                 elm_object_tree_unfocusable_set(Evas_O
  *
  * @see elm_object_tree_unfocusable_set()
  *
- * @ingroup Focus
  * @deprecated Please use elm_object_tree_unfocusable_get()
  */
 EINA_DEPRECATED EAPI Eina_Bool            elm_object_tree_unfocusable_get(const Evas_Object *obj);
+
+/**
+ * Animatedly bring in, to the visible are of a genlist, a given
+ * item on it.
+ *
+ * @deprecated elm_genlist_item_bring_in()
+ */
+EINA_DEPRECATED EAPI void elm_genlist_item_top_bring_in(Elm_Object_Item *it);
+
+/**
+ * Animatedly bring in, to the visible are of a genlist, a given
+ * item on it.
+ *
+ * @deprecated elm_genlist_item_bring_in()
+ */
+EINA_DEPRECATED EAPI void elm_genlist_item_middle_bring_in(Elm_Object_Item *it);
+
 /**
  * @}
  */
index 493f363..4ba674b 100644 (file)
@@ -14,14 +14,6 @@ typedef struct Elm_Gen_Item_Type    Elm_Gen_Item_Type;
 typedef struct Elm_Gen_Item_Tooltip Elm_Gen_Item_Tooltip;
 typedef struct _Widget_Data         Widget_Data;
 
-typedef enum
-{
-   ELM_GENLIST_ITEM_SCROLLTO_NONE = 0,   /**< no scrollto */
-   ELM_GENLIST_ITEM_SCROLLTO_IN = (1 << 0),   /**< show, bring in */
-   ELM_GENLIST_ITEM_SCROLLTO_TOP = (1 << 1),   /**< top show, top bring in */
-   ELM_GENLIST_ITEM_SCROLLTO_MIDDLE = (1 << 2)   /**< middle show, middle bring in */
-} Elm_Genlist_Item_Scrollto_Type;
-
 struct Elm_Gen_Item_Tooltip
 {
    const void                 *data;
index 2a4e8b0..61cde06 100644 (file)
@@ -349,7 +349,7 @@ _event_hook(Evas_Object       *obj,
    else if ((!strcmp(ev->keyname, "Home")) || (!strcmp(ev->keyname, "KP_Home")))
      {
         it = elm_genlist_first_item_get(obj);
-        elm_genlist_item_bring_in(it);
+        elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_IN);
         elm_genlist_item_selected_set(it, EINA_TRUE);
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
         return EINA_TRUE;
@@ -357,7 +357,7 @@ _event_hook(Evas_Object       *obj,
    else if ((!strcmp(ev->keyname, "End")) || (!strcmp(ev->keyname, "KP_End")))
      {
         it = elm_genlist_last_item_get(obj);
-        elm_genlist_item_bring_in(it);
+        elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_IN);
         elm_genlist_item_selected_set(it, EINA_TRUE);
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
         return EINA_TRUE;
@@ -4767,17 +4767,19 @@ elm_genlist_item_demote(Elm_Object_Item *it)
 }
 
 EAPI void
-elm_genlist_item_bring_in(Elm_Object_Item *it)
+elm_genlist_item_bring_in(Elm_Object_Item *it, Elm_Genlist_Item_Scrollto_Type type)
 {
+
    ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
    Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
+   Evas_Coord x, y, w, h;
    Evas_Coord gith = 0;
    if (_it->generation < _it->wd->generation) return;
    if ((_it->item->queued) || (!_it->item->mincalcd))
      {
         _it->wd->show_item = _it;
         _it->wd->bring_in = EINA_TRUE;
-        _it->wd->scrollto_type = ELM_GENLIST_ITEM_SCROLLTO_IN;
+        _it->wd->scrollto_type = type;
         _it->item->showme = EINA_TRUE;
         return;
      }
@@ -4786,13 +4788,34 @@ elm_genlist_item_bring_in(Elm_Object_Item *it)
         _it->wd->show_item->item->showme = EINA_FALSE;
         _it->wd->show_item = NULL;
      }
-   if ((_it->item->group_item) &&
-       (_it->wd->pan_y > (_it->y + _it->item->block->y)))
-     gith = _it->item->group_item->item->h;
-   elm_smart_scroller_region_bring_in(_it->wd->scr,
-                                      _it->x + _it->item->block->x,
-                                      _it->y + _it->item->block->y - gith,
-                                      _it->item->block->w, _it->item->h);
+
+   x = _it->x + _it->item->block->x;
+   if (type==ELM_GENLIST_ITEM_SCROLLTO_IN)
+     {
+        if ((_it->item->group_item) &&
+           (_it->wd->pan_y > (_it->y + _it->item->block->y)))
+            gith = _it->item->group_item->item->h;
+
+        w = _it->item->block->w;
+        h = _it->item->h;
+        y = _it->y + _it->item->block->y - gith;
+     }
+   else if (type==ELM_GENLIST_ITEM_SCROLLTO_TOP)
+     {
+        evas_object_geometry_get(_it->wd->pan_smart, NULL, NULL, &w, &h);
+        if (_it->item->group_item) gith = _it->item->group_item->item->h;
+        y = _it->y + _it->item->block->y - gith;
+     }
+   else if (type==ELM_GENLIST_ITEM_SCROLLTO_MIDDLE)
+     {
+        evas_object_geometry_get(_it->wd->pan_smart, NULL, NULL, &w, &h);
+        w = _it->item->block->w;
+        y = _it->y + _it->item->block->y - h / 2 + _it->item->h / 2;
+     }
+   else
+     return;
+
+   elm_smart_scroller_region_bring_in(_it->wd->scr,x, y, w, h);
 }
 
 EAPI void
@@ -4828,31 +4851,7 @@ elm_genlist_item_top_show(Elm_Object_Item *it)
 EAPI void
 elm_genlist_item_top_bring_in(Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
-   Evas_Coord ow, oh;
-   Evas_Coord gith = 0;
-
-   if (_it->generation < _it->wd->generation) return;
-   if ((_it->item->queued) || (!_it->item->mincalcd))
-     {
-        _it->wd->show_item = _it;
-        _it->wd->bring_in = EINA_TRUE;
-        _it->wd->scrollto_type = ELM_GENLIST_ITEM_SCROLLTO_TOP;
-        _it->item->showme = EINA_TRUE;
-        return;
-     }
-   if (_it->wd->show_item)
-     {
-        _it->wd->show_item->item->showme = EINA_FALSE;
-        _it->wd->show_item = NULL;
-     }
-   evas_object_geometry_get(_it->wd->pan_smart, NULL, NULL, &ow, &oh);
-   if (_it->item->group_item) gith = _it->item->group_item->item->h;
-   elm_smart_scroller_region_bring_in(_it->wd->scr,
-                                      _it->x + _it->item->block->x,
-                                      _it->y + _it->item->block->y - gith,
-                                      _it->item->block->w, oh);
+   elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_TOP);
 }
 
 EAPI void
@@ -4887,30 +4886,7 @@ elm_genlist_item_middle_show(Elm_Object_Item *it)
 EAPI void
 elm_genlist_item_middle_bring_in(Elm_Object_Item *it)
 {
-   ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
-   Elm_Gen_Item *_it = (Elm_Gen_Item *)it;
-   Evas_Coord ow, oh;
-
-   if (_it->generation < _it->wd->generation) return;
-   if ((_it->item->queued) || (!_it->item->mincalcd))
-     {
-        _it->wd->show_item = _it;
-        _it->wd->bring_in = EINA_TRUE;
-        _it->wd->scrollto_type = ELM_GENLIST_ITEM_SCROLLTO_MIDDLE;
-        _it->item->showme = EINA_TRUE;
-        return;
-     }
-   if (_it->wd->show_item)
-     {
-        _it->wd->show_item->item->showme = EINA_FALSE;
-        _it->wd->show_item = NULL;
-     }
-   evas_object_geometry_get(_it->wd->pan_smart, NULL, NULL, &ow, &oh);
-   elm_smart_scroller_region_bring_in(_it->wd->scr,
-                                      _it->x + _it->item->block->x,
-                                      _it->y + _it->item->block->y - oh / 2 +
-                                      _it->item->h / 2, _it->item->block->w,
-                                      oh);
+   elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
 }
 
 EINA_DEPRECATED EAPI void
index 61ea388..76786aa 100644 (file)
  *
  * @ingroup Genlist
  */
- typedef enum
+typedef enum
 {
    ELM_GENLIST_ITEM_NONE = 0, /**< simple item */
    //XXX: ELM_GENLIST_ITEM_TREE
@@ -372,6 +372,14 @@ typedef enum
    ELM_GENLIST_ITEM_FIELD_STATE = (1 << 2)
 } Elm_Genlist_Item_Field_Type;
 
+typedef enum
+{
+   ELM_GENLIST_ITEM_SCROLLTO_NONE = 0,   /**< no scrollto */
+   ELM_GENLIST_ITEM_SCROLLTO_IN = (1 << 0),   /**< show, bring in */
+   ELM_GENLIST_ITEM_SCROLLTO_TOP = (1 << 1),   /**< top show, top bring in */
+   ELM_GENLIST_ITEM_SCROLLTO_MIDDLE = (1 << 2)   /**< middle show, middle bring in */
+} Elm_Genlist_Item_Scrollto_Type;
+
 /**
  * @see Elm_Gen_Item_Class
  */
@@ -918,19 +926,18 @@ EAPI void                          elm_genlist_item_show(Elm_Object_Item *it);
  * item on it.
  *
  * @param it The item to display
+ * @param type The position to bring in, the given item to.
+ *             @ref Elm_Genlist_Item_Scrollto_Type
  *
  * This causes genlist to jump to the given item @p it and show it (by
- * animatedly scrolling), if it is not fully visible. This may use animation
- * to do so and take a period of time
+ * animatedly scrolling), if it is not fully visible. 
+ * This may use animation and take a some time to do so.
  *
  * @see elm_genlist_item_show()
- * @see elm_genlist_item_top_bring_in()
- * @see elm_genlist_item_middle_bring_in()
  *
  * @ingroup Genlist
  */
-//XXX: elm_genlist_item_bring_in(it, TOP/MIDDLE/BOTTOM/...); this kind of API would cover all similar APIs - bring_in, top_bring_in ...
-EAPI void                          elm_genlist_item_bring_in(Elm_Object_Item *it);
+EAPI void                          elm_genlist_item_bring_in(Elm_Object_Item *it, Elm_Genlist_Item_Scrollto_Type type);
 
 /**
  * Show the portion of a genlist's internal list containing a given
@@ -944,7 +951,7 @@ EAPI void                          elm_genlist_item_bring_in(Elm_Object_Item *it
  * The item will be positioned at the top of the genlist viewport.
  *
  * @see elm_genlist_item_show()
- * @see elm_genlist_item_top_bring_in()
+ * @see elm_genlist_item_bring_in()
  *
  * @ingroup Genlist
  */
@@ -952,26 +959,6 @@ EAPI void                          elm_genlist_item_bring_in(Elm_Object_Item *it
 EAPI void                          elm_genlist_item_top_show(Elm_Object_Item *it);
 
 /**
- * Animatedly bring in, to the visible are of a genlist, a given
- * item on it.
- *
- * @param it The item
- *
- * This causes genlist to jump to the given item @p it and show it (by
- * animatedly scrolling), if it is not fully visible. This may use animation
- * to do so and take a period of time
- *
- * The item will be positioned at the top of the genlist viewport.
- *
- * @see elm_genlist_item_bring_in()
- * @see elm_genlist_item_top_show()
- *
- * @ingroup Genlist
- */
-//XXX: elm_genlist_item_bring_in(it, TOP/MIDDLE/BOTTOM/...); this kind of API would cover all similar APIs - bring_in, top_bring_in ...
-EAPI void                          elm_genlist_item_top_bring_in(Elm_Object_Item *it);
-
-/**
  * Show the portion of a genlist's internal list containing a given
  * item, immediately.
  *
@@ -983,7 +970,7 @@ EAPI void                          elm_genlist_item_top_bring_in(Elm_Object_Item
  * The item will be positioned at the middle of the genlist viewport.
  *
  * @see elm_genlist_item_show()
- * @see elm_genlist_item_middle_bring_in()
+ * @see elm_genlist_item_bring_in()
  *
  * @ingroup Genlist
  */
@@ -991,26 +978,6 @@ EAPI void                          elm_genlist_item_top_bring_in(Elm_Object_Item
 EAPI void                          elm_genlist_item_middle_show(Elm_Object_Item *it);
 
 /**
- * Animatedly bring in, to the visible are of a genlist, a given
- * item on it.
- *
- * @param it The item
- *
- * This causes genlist to jump to the given item @p it and show it (by
- * animatedly scrolling), if it is not fully visible. This may use animation
- * to do so and take a period of time
- *
- * The item will be positioned at the middle of the genlist viewport.
- *
- * @see elm_genlist_item_bring_in()
- * @see elm_genlist_item_middle_show()
- *
- * @ingroup Genlist
- */
-//XXX: elm_genlist_item_bring_in(it, TOP/MIDDLE/BOTTOM/...); this kind of API would cover all similar APIs - bring_in, top_bring_in ...
-EAPI void                          elm_genlist_item_middle_bring_in(Elm_Object_Item *it);
-
-/**
  * Update the contents of an item
  *
  * @param it The item