Hi,
Kindly review the patch for merging bring_in APIs in genlist into single
API. I have verified its functionality and am planning to commit it unless
I get any comments by end of today.
Regards,
Sanjeev
From 93c4c3f6d04a3df3a839de05cbeec34cac2dd835 Mon Sep 17 00:00:00 2001
From: Sanjeev BA <eflel...@gmail.com>
Date: Wed, 7 Mar 2012 16:23:55 +0900
Subject: [PATCH] Merge bring_in, top_bring_in and middle_bring_in into
bring_in with ELM_GENLIST_ITEM_SCROLLTO_*.
Signed-off-by: Sanjeev BA <eflel...@gmail.com>
---
trunk/elementary/src/bin/test_genlist.c | 5 +-
trunk/elementary/src/lib/elm_deprecated.h | 18 +++++-
trunk/elementary/src/lib/elm_gen_common.h | 8 ---
trunk/elementary/src/lib/elm_genlist.c | 96 +++++++++++------------------
trunk/elementary/src/lib/elm_genlist.h | 65 +++++---------------
5 files changed, 72 insertions(+), 120 deletions(-)
diff --git a/trunk/elementary/src/bin/test_genlist.c b/trunk/elementary/src/bin/test_genlist.c
index 18f3849..20d1b3d 100644
--- a/trunk/elementary/src/bin/test_genlist.c
+++ b/trunk/elementary/src/bin/test_genlist.c
@@ -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
diff --git a/trunk/elementary/src/lib/elm_deprecated.h b/trunk/elementary/src/lib/elm_deprecated.h
index f80607d..81e39ed 100644
--- a/trunk/elementary/src/lib/elm_deprecated.h
+++ b/trunk/elementary/src/lib/elm_deprecated.h
@@ -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);
+
/**
* @}
*/
diff --git a/trunk/elementary/src/lib/elm_gen_common.h b/trunk/elementary/src/lib/elm_gen_common.h
index 493f363..4ba674b 100644
--- a/trunk/elementary/src/lib/elm_gen_common.h
+++ b/trunk/elementary/src/lib/elm_gen_common.h
@@ -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;
diff --git a/trunk/elementary/src/lib/elm_genlist.c b/trunk/elementary/src/lib/elm_genlist.c
index 2a4e8b0..61cde06 100644
--- a/trunk/elementary/src/lib/elm_genlist.c
+++ b/trunk/elementary/src/lib/elm_genlist.c
@@ -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
diff --git a/trunk/elementary/src/lib/elm_genlist.h b/trunk/elementary/src/lib/elm_genlist.h
index 61ea388..76786aa 100644
--- a/trunk/elementary/src/lib/elm_genlist.h
+++ b/trunk/elementary/src/lib/elm_genlist.h
@@ -354,7 +354,7 @@
*
* @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
--
1.7.9
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel