diff --git a/legacy/evas/ChangeLog b/legacy/evas/ChangeLog index 4d40965b72..d087dfc0ea 100644 --- a/legacy/evas/ChangeLog +++ b/legacy/evas/ChangeLog @@ -407,4 +407,4 @@ * Allow evas table to re-pack the same object without error and just update packing parameters - + * Allow to get packign location of table child diff --git a/legacy/evas/src/lib/Evas.h b/legacy/evas/src/lib/Evas.h index 79355d1469..289d04e0ef 100644 --- a/legacy/evas/src/lib/Evas.h +++ b/legacy/evas/src/lib/Evas.h @@ -8327,6 +8327,20 @@ EAPI void evas_object_table_mirrored_set (Evas EAPI Eina_Bool evas_object_table_mirrored_get (const Evas_Object *o) EINA_ARG_NONNULL(1); +/** + * Get packgin location of a child of table + * + * @param o The given table object. + * @param child The child object to add. + * @param col pointer to store relative-horizontal position to place child. + * @param row pointer to store relative-vertical position to place child. + * @param colspan pointer to store how many relative-horizontal position to use for this child. + * @param rowspan pointer to store how many relative-vertical position to use for this child. + * + * @return 1 on success, 0 on failure. + */ +EAPI Eina_Bool evas_object_table_pack_get(Evas_Object *o, Evas_Object *child, unsigned short *col, unsigned short *row, unsigned short *colspan, unsigned short *rowspan); + /** * Add a new child to a table object. * diff --git a/legacy/evas/src/lib/canvas/evas_object_table.c b/legacy/evas/src/lib/canvas/evas_object_table.c index 533d9ab4a4..420c25afcf 100644 --- a/legacy/evas/src/lib/canvas/evas_object_table.c +++ b/legacy/evas/src/lib/canvas/evas_object_table.c @@ -1045,6 +1045,28 @@ evas_object_table_padding_get(const Evas_Object *o, Evas_Coord *horizontal, Evas } } +EAPI Eina_Bool +evas_object_table_pack_get(Evas_Object *o, Evas_Object *child, unsigned short *col, unsigned short *row, unsigned short *colspan, unsigned short *rowspan) +{ + Evas_Object_Table_Option *opt; + + EVAS_OBJECT_TABLE_DATA_GET_OR_RETURN_VAL(o, priv, 0); + opt = _evas_object_table_option_get(child); + if (!opt) + { + if (col) *col = 0; + if (row) *row = 0; + if (colspan) *colspan = 0; + if (rowspan) *rowspan = 0; + return EINA_FALSE; + } + if (col) *col = opt->col; + if (row) *row = opt->row; + if (colspan) *colspan = opt->colspan; + if (rowspan) *rowspan = opt->rowspan; + return EINA_TRUE; +} + EAPI Eina_Bool evas_object_table_pack(Evas_Object *o, Evas_Object *child, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan) {