rimmed pushed a commit to branch master.

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

commit f73174f980cc687093d2c4d675bb50d10d11b791
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Mon Sep 21 10:25:24 2015 +0300

    edje: edje_edit - add getters/setters for min container size
    
    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.
    
    TODO:
     * separate edje_edit_state_container_padding_get/set
     * separate edje_edit_state_container_align_set/set
     * separate edje_edit_part_item_position_get/set
     * separate edje_edit_part_item_span_get/set
---
 src/lib/edje/Edje_Edit.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/lib/edje/edje_edit.c | 58 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 127 insertions(+)

diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h
index 5492881..df3fc05 100644
--- a/src/lib/edje/Edje_Edit.h
+++ b/src/lib/edje/Edje_Edit.h
@@ -2025,11 +2025,45 @@ EAPI unsigned char 
edje_edit_state_table_homogeneous_get(Evas_Object *obj, const
  * @param h Variable to store horizontal min value.
  * @param v Variable to store vertical min value.
  *
+ * @deprecated Use edje_edit_state_container_min_x_get() and
+ * edje_edit_state_container_min_y_get() instead.
+ *
  * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise.
  * @since 1.14
  */
+EINA_DEPRECATED
 EAPI Eina_Bool edje_edit_state_container_min_get(Evas_Object *obj, const char 
*part, const char *state, double value, Eina_Bool *h, Eina_Bool *v);
 
+/** Get whether horizontal min size of the container is equal to the min
+ * horizontal size of items (BOX and TABLE part functions).
+ *
+ * @param obj Object being edited.
+ * @param part Part that has BOX/TABLE type.
+ * @param state Name of the state.
+ * @param value Value of the state.
+ *
+ * @return @c EINA_TRUE If the part forces container's minimal horizontal size,
+ *         @c EINA_FALSE otherwise.
+ * @since 1.16
+ */
+EAPI Eina_Bool
+edje_edit_state_container_min_x_get(Evas_Object *obj, const char *part, const 
char *state, double value);
+
+/** Get whether vertical min size of the container is equal to the min vertical
+ * size of items (BOX and TABLE part functions).
+ *
+ * @param obj Object being edited.
+ * @param part Part that has BOX/TABLE type.
+ * @param state Name of the state.
+ * @param value Value of the state.
+ *
+ * @return @c EINA_TRUE If the part forces container's minimal horizontal size,
+ *         @c EINA_FALSE otherwise.
+ * @since 1.16
+ */
+EAPI Eina_Bool
+edje_edit_state_container_min_y_get(Evas_Object *obj, const char *part, const 
char *state, double value);
+
 /** Set whether vertical or horizontal minimum size's of the box are equal
  * to the minimum vertical or horizontal size of items
  * (function for BOX or TABLE part.
@@ -2042,11 +2076,46 @@ EAPI Eina_Bool 
edje_edit_state_container_min_get(Evas_Object *obj, const char *p
  * @param h horizontal min value.
  * @param v vertical min value.
  *
+ * @deprecated Use edje_edit_state_container_min_x_set() and
+ * edje_edit_state_container_min_y_set() instead.
+ *
  * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise.
  * @since 1.14
  */
+EINA_DEPRECATED
 EAPI Eina_Bool edje_edit_state_container_min_set(Evas_Object *obj, const char 
*part, const char *state, double value, Eina_Bool h, Eina_Bool v);
 
+/** Set whether horizontal min size of the container should be equal to the min
+ * horizontal size of items (BOX and TABLE part functions).
+ *
+ * @param obj Object being edited.
+ * @param part Part that has BOX/TABLE type.
+ * @param state Name of the state.
+ * @param value Value of the state.
+ * @param h New horizontal min value.
+ *
+ * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise.
+ *
+ * @since 1.16
+ */
+EAPI Eina_Bool
+edje_edit_state_container_min_x_set(Evas_Object *obj, const char *part, const 
char *state, double value, Eina_Bool v);
+
+/** Set whether vertical min size of the container should be equal to the min
+ * vertical size of items (BOX and TABLE part functions).
+ *
+ * @param obj Object being edited.
+ * @param part Part that has BOX/TABLE type.
+ * @param state Name of the state.
+ * @param value Value of the state.
+ * @param v New vertical min value.
+ *
+ * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise.
+ * @since 1.16
+ */
+EAPI Eina_Bool
+edje_edit_state_container_min_y_set(Evas_Object *obj, const char *part, const 
char *state, double value, Eina_Bool h);
+
 /** Get x and y paddings for BOX or TABLE part.
  *
  * @param obj Object being edited.
diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index c229d4d..0af12a6 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -4304,6 +4304,64 @@ edje_edit_state_table_homogeneous_set(Evas_Object *obj, 
const char *part, const
 /*     BOX & TABLE API     */
 /***************************/
 
+#define FUNC_CONTAINER_BOOL(CLASS, VALUE) \
+EAPI Eina_Bool \
+edje_edit_state_container_##CLASS##_##VALUE##_get(Evas_Object *obj, const char 
*part, const char *state, double value) \
+{ \
+   Eina_Bool val; \
+   GET_PD_OR_RETURN(EINA_FALSE) \
+   switch (rp->part->type) \
+     { \
+      case EDJE_PART_TYPE_TABLE: \
+      { \
+         Edje_Part_Description_Table *table; \
+         table = (Edje_Part_Description_Table *)pd; \
+         val = table->table.CLASS.VALUE; \
+         break; \
+      } \
+      case EDJE_PART_TYPE_BOX: \
+      { \
+         Edje_Part_Description_Box *box; \
+         box = (Edje_Part_Description_Box *)pd; \
+         val = box->box.CLASS.VALUE; \
+         break; \
+      } \
+      default: \
+       val = EINA_FALSE; \
+     } \
+   return val; \
+} \
+EAPI Eina_Bool \
+edje_edit_state_container_##CLASS##_##VALUE##_set(Evas_Object *obj, const char 
*part, const char *state, double value, Eina_Bool new_val) \
+{ \
+   GET_PD_OR_RETURN(EINA_FALSE) \
+   switch (rp->part->type) \
+     { \
+      case EDJE_PART_TYPE_TABLE: \
+      { \
+         Edje_Part_Description_Table *table; \
+         table = (Edje_Part_Description_Table *)pd; \
+         table->table.CLASS.VALUE = new_val; \
+         break; \
+      } \
+      case EDJE_PART_TYPE_BOX: \
+      { \
+         Edje_Part_Description_Box *box; \
+         box = (Edje_Part_Description_Box *)pd; \
+         box->box.CLASS.VALUE = new_val; \
+         break; \
+      } \
+      default: \
+        return EINA_FALSE; \
+     } \
+   return EINA_TRUE; \
+}
+
+FUNC_CONTAINER_BOOL(min, v)
+FUNC_CONTAINER_BOOL(min, h)
+
+#undef FUNC_CONTAINER_BOOL
+
 EAPI Eina_Bool
 edje_edit_state_container_align_get(Evas_Object *obj, const char *part, const 
char *state, double value, double *x, double *y)
 {

-- 


Reply via email to