rimmed pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=27b81e44bc2b52b4cce0f157b814cb1a211b2757
commit 27b81e44bc2b52b4cce0f157b814cb1a211b2757 Author: Vyacheslav Reutskiy <v.reuts...@samsung.com> Date: Mon Sep 21 16:48:07 2015 +0300 edje: edje_edit - add getters/setters for a container item spans This functions designed that make the edje edit API's more homogeneous. The all edje attribute setters and getters treated only ony attribute, besides container API's --- src/lib/edje/Edje_Edit.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/edje/edje_edit.c | 50 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h index a9c7a3e..448d27a 100644 --- a/src/lib/edje/Edje_Edit.h +++ b/src/lib/edje/Edje_Edit.h @@ -2860,10 +2860,38 @@ edje_edit_part_item_position_row_set(Evas_Object *obj, const char *part, const c * @param col Pointer to an unsigned char in which to store the columns count. * @param row Pointer to an unsigned char in which to store the rows count. * + * @deprecated Use edje_edit_part_item_span_row_get() and + * edje_edit_part_item_span_col_get() instead. + * * @since 1.11 */ +EINA_DEPRECATED EAPI void edje_edit_part_item_span_get(Evas_Object *obj, const char *part, const char *item, unsigned char *col, unsigned char *row); +/** Get the number of span columns. + * + * @param obj Object being edited. + * @param part Part that contain item. + * @param item The name of the item of part. + * + * @return The count of span columns. + * @since 1.16 + */ +EAPI unsigned short +edje_edit_part_item_span_col_get(Evas_Object *obj, const char *part, const char *item); + +/** Get the number of span rows. + * + * @param obj Object being edited. + * @param part Part that contain item. + * @param item The name of the item of part. + * + * @return The count of span rows. + * @since 1.16 + */ +EAPI unsigned short +edje_edit_part_item_span_row_get(Evas_Object *obj, const char *part, const char *item); + /** Set the count of columns and rows, which this item will spans for use. * * @param obj object being edited. @@ -2875,8 +2903,35 @@ EAPI void edje_edit_part_item_span_get(Evas_Object *obj, const char *part, const * @return @c EINA_TRUE if successful, @c EINA_FALSE otherwise. * @since 1.11 */ +EINA_DEPRECATED EAPI Eina_Bool edje_edit_part_item_span_set(Evas_Object *obj, const char *part, const char *item, unsigned char col, unsigned char row); +/** Set the count of columns which this item will spans for use. + * + * @param obj Object being edited. + * @param part Part that contain item. + * @param item The name of the item. + * @param col new count of the columns spans. + * + * @return @c EINA_TRUE if successful, @c EINA_FALSE otherwise. + * @since 1.16 + */ +EAPI Eina_Bool +edje_edit_part_item_span_col_set(Evas_Object *obj, const char *part, const char *item, unsigned short col); + +/** Set the count of rows which this item will spans for use. + * + * @param obj Object being edited. + * @param part Part that contain item. + * @param item The name of the item. + * @param row new count of the rows spans. + * + * @return @c EINA_TRUE if successful, @c EINA_FALSE otherwise. + * @since 1.16 + */ +EAPI Eina_Bool +edje_edit_part_item_span_row_set(Evas_Object *obj, const char *part, const char *item, unsigned short row); + //@} /******************************************************************************/ /************************** STATES API ************************************/ diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 29ccb78..908eee0 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -5275,6 +5275,56 @@ edje_edit_part_item_span_set(Evas_Object *obj, const char *part, const char *ite return EINA_TRUE; } +#define FUNC_PART_ITEM_USHORT(CLASS, VALUE, MEMBER) \ +EAPI unsigned short \ +edje_edit_part_item_##CLASS##_##VALUE##_get(Evas_Object *obj, const char *part, const char *item_name) \ +{ \ + Edje_Part *ep; \ + unsigned int i; \ + Edje_Pack_Element *item = NULL; \ + GET_RP_OR_RETURN(0); \ + if (!item_name) return 0; \ + ep = rp->part; \ + if (rp->part->type != EDJE_PART_TYPE_TABLE) return EINA_FALSE; \ + for (i = 0; i < ep->items_count; ++i) \ + { \ + if ((ep->items[i]->name) && (!strcmp(ep->items[i]->name, item_name))) \ + { \ + item = ep->items[i]; \ + break; \ + } \ + } \ + if (!item) return 0; \ + return item->MEMBER; \ +} \ +EAPI Eina_Bool \ +edje_edit_part_item_##CLASS##_##VALUE##_set(Evas_Object *obj, const char *part, const char *item_name, unsigned short new_val) \ +{ \ + Edje_Part *ep; \ + unsigned int i; \ + Edje_Pack_Element *item = NULL; \ + GET_RP_OR_RETURN(EINA_FALSE); \ + if (!item_name) return EINA_FALSE; \ + ep = rp->part; \ + if (rp->part->type != EDJE_PART_TYPE_TABLE) return EINA_FALSE; \ + for (i = 0; i < ep->items_count; i++) \ + { \ + if ((ep->items[i]->name) && (!strcmp(ep->items[i]->name, item_name))) \ + { \ + item = ep->items[i]; \ + break; \ + } \ + } \ + if (!item) return EINA_FALSE; \ + item->MEMBER = new_val; \ + return EINA_TRUE; \ +} + +FUNC_PART_ITEM_USHORT(span, col, colspan) +FUNC_PART_ITEM_USHORT(span, row, rowspan) + +#undef FUNC_PART_ITEM_USHORT + /*********************/ /* PART STATES API */ /*********************/ --