From dbea1f9f3de8a811a28e9114f9b68ffbad1a2fa2 Mon Sep 17 00:00:00 2001 From: Vyacheslav Reutskiy Date: Mon, 21 Sep 2015 16:07:36 +0300 Subject: [PATCH] edje: edje_edit - add getters/setters for container align 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 | 64 ++++++++++++++++++++++++++++++++++++++++++++++-- src/lib/edje/edje_edit.c | 58 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+), 2 deletions(-) diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h index 6026b03..1626716 100644 --- a/src/lib/edje/Edje_Edit.h +++ b/src/lib/edje/Edje_Edit.h @@ -2215,12 +2215,43 @@ edje_edit_state_container_padding_y_set(Evas_Object *obj, const char *part, cons * @param x Variable to store x value. * @param y Variable to store y value. * + * @deprecated Use edje_edit_state_container_align_x_set() and + * edje_edit_state_container_align_y_set() instead. + * * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise. * @since 1.14 */ -EAPI Eina_Bool +EINA_DEPRECATED EAPI Eina_Bool edje_edit_state_container_align_set(Evas_Object *obj, const char *part, const char *state, double value, double x, double y); +/** Set x align for BOX or TABLE part. + * + * @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 x New x align value. + * + * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise. + * @since 1.16 + */ +EAPI Eina_Bool +edje_edit_state_container_align_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x); + +/** Set y align for BOX or TABLE part. + * + * @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 y New y align value. + * + * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise. + * @since 1.16 + */ +EAPI Eina_Bool +edje_edit_state_container_align_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y); + /** Get x and y align for BOX or TABLE part. * * @param obj Object being edited. @@ -2230,12 +2261,41 @@ edje_edit_state_container_align_set(Evas_Object *obj, const char *part, const ch * @param x Value for setting x align. * @param y Value for setting y align. * + * @deprecated Use edje_edit_state_container_align_x_set() and + * edje_edit_state_container_align_y_set() instead. + * * @return @c EINA_TRUE in case of success, @c EINA_FALSE otherwise. * @since 1.14 */ -EAPI Eina_Bool +EINA_DEPRECATED EAPI Eina_Bool edje_edit_state_container_align_get(Evas_Object *obj, const char *part, const char *state, double value, double *x, double *y); +/** Get x align for BOX or TABLE part. + * + * @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 The align by x axis. + * @since 1.16 + */ +EAPI double +edje_edit_state_container_align_x_get(Evas_Object *obj, const char *part, const char *state, double value); + +/** Get y align for BOX or TABLE part. + * + * @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 The align by y axis. + * @since 1.16 + */ +EAPI double +edje_edit_state_container_align_y_get(Evas_Object *obj, const char *part, const char *state, double value); + //@} /******************************************************************************/ /************************** BOX & TABLE ITEMS API *************************/ diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 3b86aac..10a63aa 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -4420,6 +4420,64 @@ FUNC_CONTAINER_INT(padding, y) #undef FUNC_CONTAINER_INT +#define FUNC_CONTAINER_DOUBLE(CLASS, VALUE) \ +EAPI double \ +edje_edit_state_container_##CLASS##_##VALUE##_get(Evas_Object *obj, const char *part, const char *state, double value) \ +{ \ + double val; \ + GET_PD_OR_RETURN(0.0) \ + switch (rp->part->type) \ + { \ + case EDJE_PART_TYPE_TABLE: \ + { \ + Edje_Part_Description_Table *table; \ + table = (Edje_Part_Description_Table *)pd; \ + val = FROM_DOUBLE(table->table.CLASS.VALUE); \ + break; \ + } \ + case EDJE_PART_TYPE_BOX: \ + { \ + Edje_Part_Description_Box *box; \ + box = (Edje_Part_Description_Box *)pd; \ + val = FROM_DOUBLE(box->box.CLASS.VALUE); \ + break; \ + } \ + default: \ + val = 0.0; \ + } \ + return val; \ +} \ +EAPI Eina_Bool \ +edje_edit_state_container_##CLASS##_##VALUE##_set(Evas_Object *obj, const char *part, const char *state, double value, double 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 = TO_DOUBLE(new_val); \ + break; \ + } \ + case EDJE_PART_TYPE_BOX: \ + { \ + Edje_Part_Description_Box *box; \ + box = (Edje_Part_Description_Box *)pd; \ + box->box.CLASS.VALUE = TO_DOUBLE(new_val); \ + break; \ + } \ + default: \ + return EINA_FALSE; \ + } \ + return EINA_TRUE; \ +} + +FUNC_CONTAINER_DOUBLE(align, x) +FUNC_CONTAINER_DOUBLE(align, y) + +#undef FUNC_CONTAINER_DOUBLE + EAPI Eina_Bool edje_edit_state_container_align_get(Evas_Object *obj, const char *part, const char *state, double value, double *x, double *y) { -- 2.7.4