From 9b5981a52e2907dc3d7baaabe16c5714fb140f75 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Sat, 17 Apr 2010 20:27:53 +0000 Subject: [PATCH] Get a table element with its coordinates. By: Hugo Camboulive SVN revision: 48087 --- legacy/evas/src/lib/Evas.h | 1 + .../evas/src/lib/canvas/evas_object_table.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/legacy/evas/src/lib/Evas.h b/legacy/evas/src/lib/Evas.h index 8628b0ed6a..827f3250ee 100644 --- a/legacy/evas/src/lib/Evas.h +++ b/legacy/evas/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/legacy/evas/src/lib/canvas/evas_object_table.c b/legacy/evas/src/lib/canvas/evas_object_table.c index f713b05096..90393f7ade 100644 --- a/legacy/evas/src/lib/canvas/evas_object_table.c +++ b/legacy/evas/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; +}