From 6fa58b6382681a461b5444dd86638fe96a645808 Mon Sep 17 00:00:00 2001 From: barbieri Date: Sat, 17 Apr 2010 20:27:53 +0000 Subject: [PATCH] Get a table element with its coordinates. By: Hugo Camboulive git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@48087 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/Evas.h | 1 + src/lib/canvas/evas_object_table.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/lib/Evas.h b/src/lib/Evas.h index 8628b0e..827f325 100644 --- a/src/lib/Evas.h +++ b/src/lib/Evas.h @@ -2053,6 +2053,7 @@ struct _Evas_Smart_Cb_Description EAPI Eina_Iterator *evas_object_table_iterator_new(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; EAPI Eina_Accessor *evas_object_table_accessor_new(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; EAPI Eina_List *evas_object_table_children_get(const Evas_Object *o) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; + EAPI Evas_Object *evas_object_table_child_get(const Evas_Object *o, unsigned short col, unsigned short row) EINA_ARG_NONNULL(1); /** diff --git a/src/lib/canvas/evas_object_table.c b/src/lib/canvas/evas_object_table.c index f713b05..90393f7 100644 --- a/src/lib/canvas/evas_object_table.c +++ b/src/lib/canvas/evas_object_table.c @@ -1358,3 +1358,22 @@ evas_object_table_children_get(const Evas_Object *o) return new_list; } + +/** + * Get a child from the table using its coordinates + * + * @note This does not take into account col/row spanning + */ +Evas_Object * +evas_object_table_child_get(const Evas_Object *o, unsigned short col, unsigned short row) +{ + Eina_List *l; + Evas_Object_Table_Option *opt; + + EVAS_OBJECT_TABLE_DATA_GET_OR_RETURN_VAL(o, priv, NULL); + + EINA_LIST_FOREACH(priv->children, l, opt) + if (opt->col == col && opt->row == row) + return opt->obj; + return NULL; +} -- 2.7.4