cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=32024b076a32de238dbdca860408ed1d35a5141d

commit 32024b076a32de238dbdca860408ed1d35a5141d
Author: Vorobiov Vitalii <vi.vorob...@samsung.com>
Date:   Mon Jun 16 16:58:38 2014 +0200

    edje: Edje_Edit - add edje_edit_part_item_padding functions.
    
    Summary:
    1. Changing item's paddings and getting current padding of the item.
    Add getter and setter functions for padding of the item.
    - edje_edit_part_item_padding_get
    - edje_edit_part_item_padding_set
    
    2. Also some code generatings fixes for paddings, box/table and max values.
    
    Reviewers: cedric, Hermet, seoz, raster
    
    CC: reutskiy.v.v, cedric
    
    Differential Revision: https://phab.enlightenment.org/D1043
    
    Signed-off-by: Cedric BAIL <c.b...@partner.samsung.com>
---
 src/lib/edje/Edje_Edit.h | 29 ++++++++++++++++++
 src/lib/edje/edje_edit.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 105 insertions(+), 3 deletions(-)

diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h
index 6a282e2..109c2b7 100644
--- a/src/lib/edje/Edje_Edit.h
+++ b/src/lib/edje/Edje_Edit.h
@@ -1805,6 +1805,35 @@ EAPI int edje_edit_part_item_prefer_h_get(Evas_Object 
*obj, const char *part, co
  */
 EAPI Eina_Bool edje_edit_part_item_prefer_h_set(Evas_Object *obj, const char 
*part, const char *item, int prefer_h);
 
+/** Get paddings of the part's item.
+ *
+ * @param obj Object being edited.
+ * @param part Part that contain item.
+ * @param item_name The name of the item.
+ * @param l A pointer to store the left padding value.
+ * @param r A pointer to store the right padding value.
+ * @param t A pointer to store the top padding value.
+ * @param b A pointer to store the bottom padding value.
+ *
+ * @return EINA_TRUE If successfull, EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool edje_edit_part_item_padding_get(Evas_Object *obj, const char 
*part, const char *item_name, int *l, int *r, int *t, int *b);
+
+
+/** Set paddings of the part's item.
+ *
+ * @param obj Object being edited.
+ * @param part Part that contain item.
+ * @param item_name The name of the item.
+ * @param l Value of the left padding.
+ * @param r Value of the right padding.
+ * @param t Value of the top padding.
+ * @param b Value of the bottom padding.
+ *
+ * @return EINA_TRUE If successfull, EINA_FALSE otherwise.
+ */
+EAPI Eina_Bool edje_edit_part_item_padding_set(Evas_Object *obj, const char 
*part, const char *item_name, int l, int r, int t, int b);
+
 //@}
 
/******************************************************************************/
 /**************************   STATES API   
************************************/
diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 6b3e5c2..8f8800d 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -3998,6 +3998,72 @@ FUNC_PART_ITEM_INT(aspect, h, 0);
 FUNC_PART_ITEM_INT(prefer, w, 0);
 FUNC_PART_ITEM_INT(prefer, h, 0);
 
+EAPI Eina_Bool
+edje_edit_part_item_padding_get(Evas_Object *obj, const char *part, const char 
*item_name, int *l, int *r, int *t, int *b)
+{
+   Edje_Part *ep;
+   unsigned int i;
+   Edje_Pack_Element *item = NULL;
+
+   if ((!obj) || (!part) || (!item_name))
+     return EINA_FALSE;
+
+   GET_RP_OR_RETURN(EINA_FALSE);
+
+   ep = rp->part;
+   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;
+
+   if (l) *l = item->padding.l;
+   if (t) *t = item->padding.t;
+   if (r) *r = item->padding.r;
+   if (b) *b = item->padding.b;
+
+   return EINA_TRUE;
+}
+
+EAPI Eina_Bool
+edje_edit_part_item_padding_set(Evas_Object *obj, const char *part, const char 
*item_name, int l, int r, int t, int b)
+{
+   Edje_Part *ep;
+   unsigned int i;
+   Edje_Pack_Element *item = NULL;
+
+   if ((!obj) || (!part) || (!item_name))
+     return EINA_FALSE;
+
+   GET_RP_OR_RETURN(EINA_FALSE);
+
+   ep = rp->part;
+   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;
+
+   if (l > -1) item->padding.l = l;
+   else return EINA_FALSE;
+   if (t > -1) item->padding.t = t;
+   else return EINA_FALSE;
+   if (r > -1) item->padding.r = r;
+   else return EINA_FALSE;
+   if (b > -1) item->padding.b = b;
+   else return EINA_FALSE;
+
+   return EINA_TRUE;
+}
+
 /*********************/
 /*  PART STATES API  */
 /*********************/
@@ -9271,7 +9337,10 @@ _edje_generate_source_of_part(Evas_Object *obj, 
Edje_Part *ep, Eina_Strbuf *buf)
      {
         if (ep->items_count != 0)
           {
-             BUF_APPEND(I4"box {\n");
+             if (edje_edit_part_type_get(obj, part) == EDJE_PART_TYPE_BOX)
+               BUF_APPEND(I4"box {\n");
+             else
+               BUF_APPEND(I4"table {\n");
              BUF_APPEND(I5"items {\n");
              for (i = 0; i < ep->items_count; ++i)
                {
@@ -9284,7 +9353,7 @@ _edje_generate_source_of_part(Evas_Object *obj, Edje_Part 
*ep, Eina_Strbuf *buf)
                     BUF_APPENDF(I7"source: \"%s\";\n", item->source);
                   if ((item->min.w != 0) || (item->min.h != 0))
                     BUF_APPENDF(I7"min: %d %d;\n", item->min.h, item->min.h);
-                  if ((item->max.w != 0) || (item->max.h != 0))
+                  if ((item->max.w != -1) || (item->max.h != -1))
                     BUF_APPENDF(I7"max: %d %d;\n", item->max.h, item->max.h);
                   //TODO aspect mode
                   if ((item->aspect.w != 0) || (item->aspect.h != 0))
@@ -9293,7 +9362,11 @@ _edje_generate_source_of_part(Evas_Object *obj, 
Edje_Part *ep, Eina_Strbuf *buf)
                     BUF_APPENDF(I7"prefer: %d %d;\n", item->prefer.h, 
item->prefer.h);
                   if ((item->spread.w != 1) || (item->spread.h != 1))
                     BUF_APPENDF(I7"spread: %d %d;\n", item->spread.h, 
item->spread.h);
-                  //TODO padding
+                  if ((item->padding.l != 0) || (item->padding.t != 0) ||
+                      (item->padding.r != 0) || (item->padding.b != 0))
+                    BUF_APPENDF(I7"padding: %d %d %d %d;\n",
+                                item->padding.l, item->padding.r,
+                                item->padding.t, item->padding.b);
                   //TODO align
                   //TODO weight
                   //TODO options

-- 


Reply via email to