forked from enlightenment/efl
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:
parent
246df08184
commit
08075be885
|
@ -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 ************************************/
|
||||
|
|
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue