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  */
 /*********************/

-- 


Reply via email to