edje: Edje_Edit - add bunch of BOX and TABLE param get/set functions.

Summary:
Add some functions for setting and getting params of the items in BOX or TABLE parts.
Next item's params are added:
- min
- max
- prefer
- aspect

Functions of them looks like that:
- edje_edit_part_item_min_w_get
- edje_edit_part_item_min_w_set
- edje_edit_part_item_min_h_get
- edje_edit_part_item_min_h_set
- edje_edit_part_item_prefer_w_set
- ... etc

Also this commit adds code generation for them.

@feature

Reviewers: cedric, seoz, raster, Hermet

CC: reutskiy.v.v, cedric

Differential Revision: https://phab.enlightenment.org/D1035

Signed-off-by: Cedric BAIL <c.bail@partner.samsung.com>
This commit is contained in:
Vorobiov Vitalii 2014-06-13 18:09:30 +02:00 committed by Cedric BAIL
parent 246df08184
commit 08075be885
2 changed files with 245 additions and 6 deletions

View File

@ -1592,6 +1592,182 @@ EAPI Eina_Bool edje_edit_part_item_source_set(Evas_Object *obj, const char *part
*/
EAPI const char * edje_edit_part_item_source_get(Evas_Object *obj, const char *part, const char *item_name);
/** Get the minimum width value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to get minimum width.
*
* @return The minimum width value.
*/
EAPI int edje_edit_part_item_min_w_get(Evas_Object *obj, const char *part, const char *item);
/** Set the minimum width value of a part's item.
* The minimum width should be greater than 0.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to set minimum width.
* @param min_w Minimum width value.
*
* @return EINA_TRUE if successful, EINA_FALSE otherwise.
*/
EAPI Eina_Bool edje_edit_part_item_min_w_set(Evas_Object *obj, const char *part, const char *item, int min_w);
/** Get the minimum height value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to get minimum height.
*
* @return The minimum height value.
*/
EAPI int edje_edit_part_item_min_h_get(Evas_Object *obj, const char *part, const char *item);
/** Set the minimum height value of a part's item.
* The minimum height should be greater than 0.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to set minimum height.
* @param min_h Minimum height value.
*
* @return EINA_TRUE if successful, EINA_FALSE otherwise.
*/
EAPI Eina_Bool edje_edit_part_item_min_h_set(Evas_Object *obj, const char *part, const char *item, int min_h);
/** Get the maximum width value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to get maximum width.
*
* @return The maximum width value.
*/
EAPI int edje_edit_part_item_max_w_get(Evas_Object *obj, const char *part, const char *item);
/** Set the maximum width value of a part's item.
* The maximum width should be greater than -1.
* The value -1 means that state doesn't have any boundaries on width direction.
* (it can be any size that is bigger than it's min)
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to set maximum width.
* @param max_w Maximum width value.
*
* @return EINA_TRUE if successful, EINA_FALSE otherwise.
*/
EAPI Eina_Bool edje_edit_part_item_max_w_set(Evas_Object *obj, const char *part, const char *item, int max_w);
/** Get the maximum height value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to get maximum height.
*
* @return The maximum height value.
*/
EAPI int edje_edit_part_item_max_h_get(Evas_Object *obj, const char *part, const char *item);
/** Set the maximum height value of a part's item.
* The maximum height should be greater than -1.
* The value -1 means that state doesn't have any boundaries on height direction.
* (it can be any size that is bigger than it's min)
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to set maximum height.
* @param max_h Maximum height value.
*
* @return EINA_TRUE if successful, EINA_FALSE otherwise.
*/
EAPI Eina_Bool edje_edit_part_item_max_h_set(Evas_Object *obj, const char *part, const char *item, int max_h);
/** Get the aspect width value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to get aspect width.
*
* @return The aspect width value.
*/
EAPI int edje_edit_part_item_aspect_w_get(Evas_Object *obj, const char *part, const char *item);
/** Set the aspect width value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to set aspect width.
* @param aspect_w Maximum width value.
*
* @return EINA_TRUE if successful, EINA_FALSE otherwise.
*/
EAPI Eina_Bool edje_edit_part_item_aspect_w_set(Evas_Object *obj, const char *part, const char *item, int aspect_w);
/** Get the aspect height value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to get aspect height.
*
* @return The maximum height value.
*/
EAPI int edje_edit_part_item_aspect_h_get(Evas_Object *obj, const char *part, const char *item);
/** Set the aspect height value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to set aspect height.
* @param max_h Maximum height value.
*
* @return EINA_TRUE if successful, EINA_FALSE otherwise.
*/
EAPI Eina_Bool edje_edit_part_item_aspect_h_set(Evas_Object *obj, const char *part, const char *item, int aspect_h);
/** Get the prefer width value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to get prefer width.
*
* @return The prefer width value.
*/
EAPI int edje_edit_part_item_prefer_w_get(Evas_Object *obj, const char *part, const char *item);
/** Set the prefer width value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to set prefer width.
* @param prefer_w Maximum width value.
*
* @return EINA_TRUE if successful, EINA_FALSE otherwise.
*/
EAPI Eina_Bool edje_edit_part_item_prefer_w_set(Evas_Object *obj, const char *part, const char *item, int prefer_w);
/** Get the prefer height value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to get prefer height.
*
* @return The maximum height value.
*/
EAPI int edje_edit_part_item_prefer_h_get(Evas_Object *obj, const char *part, const char *item);
/** Set the prefer height value of a part's item.
*
* @param obj Object being edited.
* @param part Part that contain state.
* @param item The name of the item to set prefer height.
* @param max_h Maximum height value.
*
* @return EINA_TRUE if successful, EINA_FALSE otherwise.
*/
EAPI Eina_Bool edje_edit_part_item_prefer_h_set(Evas_Object *obj, const char *part, const char *item, int prefer_h);
//@}
/******************************************************************************/
/************************** STATES API ************************************/

View File

@ -3863,6 +3863,64 @@ edje_edit_part_item_source_get(Evas_Object *obj, const char *part, const char *i
return eina_stringshare_add(item->source);
}
#define FUNC_PART_ITEM_INT(Class, Value, Min) \
EAPI int \
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; \
if ((!obj) || (!part) || (!item_name)) \
return Min; \
GET_RP_OR_RETURN(Min); \
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 Min; \
return item->Class.Value; \
} \
EAPI Eina_Bool \
edje_edit_part_item_##Class##_##Value##_set(Evas_Object *obj, const char *part, const char *item_name, int v) \
{ \
Edje_Part *ep; \
unsigned int i; \
Edje_Pack_Element *item = NULL; \
if ((!obj) || (!part) || (!item_name)) \
return EINA_FALSE; \
if (v < Min) return EINA_FALSE; \
GET_RP_OR_RETURN(EINA_FALSE); \
ep = rp->part; \
if ((rp->part->type != EDJE_PART_TYPE_BOX) && \
(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->Class.Value = v; \
return EINA_TRUE; \
}
FUNC_PART_ITEM_INT(min, w, 0);
FUNC_PART_ITEM_INT(min, h, 0);
FUNC_PART_ITEM_INT(max, w, -1);
FUNC_PART_ITEM_INT(max, h, -1);
FUNC_PART_ITEM_INT(aspect, w, 0);
FUNC_PART_ITEM_INT(aspect, h, 0);
FUNC_PART_ITEM_INT(prefer, w, 0);
FUNC_PART_ITEM_INT(prefer, h, 0);
/*********************/
/* PART STATES API */
/*********************/
@ -9091,20 +9149,25 @@ _edje_generate_source_of_part(Evas_Object *obj, Edje_Part *ep, Eina_Strbuf *buf)
BUF_APPENDF(I7"name: \"%s\";\n", item->name);
if (item->source)
BUF_APPENDF(I7"source: \"%s\";\n", item->source);
//TODO min
//TODO prefer
//TODO max
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))
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))
BUF_APPENDF(I7"aspect: %d %d;\n", item->aspect.h, item->aspect.h);
if ((item->prefer.w != 0) || (item->prefer.h != 0))
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
//TODO align
//TODO weight
//TODO aspect
//TODO aspect mode
//TODO options
//TODO col
//TODO row
//TODO colspan
//TODO rowspan
//TODO spread
BUF_APPEND(I6"}\n");
}
BUF_APPEND(I5"}\n");