diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h index 18c31b8ae6..31ec1a94ad 100644 --- a/src/lib/edje/Edje_Edit.h +++ b/src/lib/edje/Edje_Edit.h @@ -1260,8 +1260,10 @@ EAPI double edje_edit_state_rel2_relative_y_get(Evas_Object *obj, const char *pa * @param state The name of the state to set 'rel1 relative X' (not including the state value). * @param value The state value. * @param x The new 'rel1 relative X' value to set'. + * + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel1_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x); +EAPI Eina_Bool edje_edit_state_rel1_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x); /** Set the 'rel1 relative Y' value of state. * @@ -1270,8 +1272,10 @@ EAPI void edje_edit_state_rel1_relative_x_set(Evas_Object *obj, const char *part * @param state The name of the state to set 'rel1 relative Y' (not including the state value). * @param value The state value. * @param y The new 'rel1 relative Y' value to set'. + * + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel1_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y); +EAPI Eina_Bool edje_edit_state_rel1_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y); /** Set the 'rel2 relative X' value of state. * @@ -1280,8 +1284,10 @@ EAPI void edje_edit_state_rel1_relative_y_set(Evas_Object *obj, const char *part * @param state The name of the state to set 'rel2 relative X' (not including the state value). * @param value The state value. * @param x The new 'rel2 relative X' value to set'. + * + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel2_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x); +EAPI Eina_Bool edje_edit_state_rel2_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x); /** Set the 'rel2 relative Y' value of state. * @@ -1290,8 +1296,10 @@ EAPI void edje_edit_state_rel2_relative_x_set(Evas_Object *obj, const char *part * @param state The name of the state to set 'rel2 relative Y' (not including the state value). * @param value The state value. * @param y The new 'rel2 relative Y' value to set'. + * + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel2_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y); +EAPI Eina_Bool edje_edit_state_rel2_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y); /** Get the 'rel1 offset X' value of state. * @@ -1344,8 +1352,10 @@ EAPI int edje_edit_state_rel2_offset_y_get(Evas_Object *obj, const char *part, c * @param state The name of the state to set 'rel1 offset X' (not including the state value). * @param value The state value. * @param x The new 'rel1 offset X' value to set'. + * + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel1_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x); +EAPI Eina_Bool edje_edit_state_rel1_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x); /** Set the 'rel1 offset Y' value of state. * @@ -1354,8 +1364,10 @@ EAPI void edje_edit_state_rel1_offset_x_set(Evas_Object *obj, const char *part, * @param state The name of the state to set 'rel1 offset Y' (not including the state value). * @param value The state value. * @param y The new 'rel1 offset Y' value to set'. + * + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel1_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y); +EAPI Eina_Bool edje_edit_state_rel1_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y); /** Set the 'rel2 offset X' value of state. * @@ -1364,8 +1376,10 @@ EAPI void edje_edit_state_rel1_offset_y_set(Evas_Object *obj, const char *part, * @param state The name of the state to set 'rel2 offset X' (not including the state value). * @param value The state value. * @param x The new 'rel2 offset X' value to set'. + * + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel2_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x); +EAPI Eina_Bool edje_edit_state_rel2_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x); /** Set the 'rel2 offset Y' value of state. * @@ -1374,8 +1388,10 @@ EAPI void edje_edit_state_rel2_offset_x_set(Evas_Object *obj, const char *part, * @param state The name of the state to set 'rel2 offset Y' (not including the state value). * @param value The state value. * @param y The new 'rel2 offset Y' value to set'. + * + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel2_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y); +EAPI Eina_Bool edje_edit_state_rel2_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y); /** Get the part name rel1x is relative to. * @@ -1429,9 +1445,9 @@ EAPI const char * edje_edit_state_rel2_to_y_get(Evas_Object *obj, const char *pa * @param value The state value. * @param rel_to The name of the part that is used as container/parent (NULL make the part relative to the whole interface). * - * @return The part name rel1x is relative to or NULL if the part is relative to the whole interface. + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel1_to_x_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to); +EAPI Eina_Bool edje_edit_state_rel1_to_x_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to); /** Set the part rel1y is relative to. * @@ -1441,9 +1457,9 @@ EAPI void edje_edit_state_rel1_to_x_set(Evas_Object *obj, const char *part, cons * @param value The state value. * @param rel_to The name of the part that is used as container/parent (NULL make the part relative to the whole interface). * - * @return The part name rel1y is relative to or NULL if the part is relative to the whole interface. + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel1_to_y_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to); +EAPI Eina_Bool edje_edit_state_rel1_to_y_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to); /** Set the part rel2x is relative to. * @@ -1453,9 +1469,9 @@ EAPI void edje_edit_state_rel1_to_y_set(Evas_Object *obj, const char *part, cons * @param value The state value. * @param rel_to The name of the part that is used as container/parent (NULL make the part relative to the whole interface). * - * @return The part name rel2x is relative to or NULL if the part is relative to the whole interface. + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel2_to_x_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to); +EAPI Eina_Bool edje_edit_state_rel2_to_x_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to); /** Set the part rel2y is relative to. * @@ -1465,9 +1481,9 @@ EAPI void edje_edit_state_rel2_to_x_set(Evas_Object *obj, const char *part, cons * @param value The state value. * @param rel_to The name of the part that is used as container/parent (NULL make the part relative to the whole interface). * - * @return The part name rel2y is relative to or NULL if the part is relative to the whole interface. + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_state_rel2_to_y_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to); +EAPI Eina_Bool edje_edit_state_rel2_to_y_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to); /** Get the color of a part state. * diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index a4fa0dc7d6..384f97e76f 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -3176,19 +3176,20 @@ edje_edit_state_copy(Evas_Object *obj, const char *part, const char *from, doubl return EINA_TRUE; } -#define FUNC_STATE_RELATIVE_DOUBLE(Sub, Value) \ - EAPI double \ +#define FUNC_STATE_RELATIVE_DOUBLE(Sub, Value) \ + EAPI double \ edje_edit_state_##Sub##_relative_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \ - { \ - GET_PD_OR_RETURN(0); \ - return TO_DOUBLE(pd->Sub.relative_##Value); \ - } \ - EAPI void \ + { \ + GET_PD_OR_RETURN(0); \ + return TO_DOUBLE(pd->Sub.relative_##Value); \ + } \ + EAPI Eina_Bool \ edje_edit_state_##Sub##_relative_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \ - { \ - GET_PD_OR_RETURN(); \ - pd->Sub.relative_##Value = FROM_DOUBLE(v); \ - edje_object_calc_force(obj); \ + { \ + GET_PD_OR_RETURN(EINA_FALSE); \ + pd->Sub.relative_##Value = FROM_DOUBLE(v); \ + edje_object_calc_force(obj); \ + return EINA_TRUE; \ } FUNC_STATE_RELATIVE_DOUBLE(rel1, x); @@ -3197,18 +3198,19 @@ FUNC_STATE_RELATIVE_DOUBLE(rel2, x); FUNC_STATE_RELATIVE_DOUBLE(rel2, y); #define FUNC_STATE_OFFSET_INT(Sub, Value) \ - EAPI int \ + EAPI int \ edje_edit_state_##Sub##_offset_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \ - { \ - GET_PD_OR_RETURN(0); \ - return pd->Sub.offset_##Value; \ - } \ - EAPI void \ + { \ + GET_PD_OR_RETURN(0); \ + return pd->Sub.offset_##Value; \ + } \ + EAPI Eina_Bool \ edje_edit_state_##Sub##_offset_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \ - { \ - GET_PD_OR_RETURN(); \ - pd->Sub.offset_##Value = TO_INT(FROM_DOUBLE(v)); \ - edje_object_calc_force(obj); \ + { \ + GET_PD_OR_RETURN(EINA_FALSE); \ + pd->Sub.offset_##Value = TO_INT(FROM_DOUBLE(v)); \ + edje_object_calc_force(obj); \ + return EINA_TRUE; \ } FUNC_STATE_OFFSET_INT(rel1, x); @@ -3216,37 +3218,34 @@ FUNC_STATE_OFFSET_INT(rel1, y); FUNC_STATE_OFFSET_INT(rel2, x); FUNC_STATE_OFFSET_INT(rel2, y); -#define FUNC_STATE_REL(Sub, Value) \ - EAPI const char * \ - edje_edit_state_##Sub##_to_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \ - { \ - Edje_Real_Part *rel; \ - \ - GET_PD_OR_RETURN(NULL); \ - \ - if (pd->Sub.id_##Value == -1) return NULL; \ - \ +#define FUNC_STATE_REL(Sub, Value) \ + EAPI const char * \ + edje_edit_state_##Sub##_to_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \ + { \ + Edje_Real_Part *rel; \ + GET_PD_OR_RETURN(NULL); \ + if (pd->Sub.id_##Value == -1) return NULL; \ rel = ed->table_parts[pd->Sub.id_##Value % ed->table_parts_size]; \ - \ - if (rel->part->name) return eina_stringshare_add(rel->part->name); \ - return NULL; \ - } \ - EAPI void \ - edje_edit_state_##Sub##_to_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, const char *to) \ - { \ - Edje_Real_Part *relp; \ - \ - GET_PD_OR_RETURN(); \ - \ - if (to) \ - { \ - relp = _edje_real_part_get(ed, to); \ - if (!relp) return; \ - pd->Sub.id_##Value = relp->part->id; \ - } \ - else \ - pd->Sub.id_##Value = -1; \ - \ + if (rel->part->name) return eina_stringshare_add(rel->part->name); \ + return NULL; \ + } \ + EAPI Eina_Bool \ + edje_edit_state_##Sub##_to_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, const char *to) \ + { \ + Edje_Real_Part *relp; \ + GET_PD_OR_RETURN(EINA_FALSE); \ + if ((to) && (strcmp(to, ""))) \ + { \ + relp = _edje_real_part_get(ed, to); \ + if (!relp) return EINA_FALSE; \ + pd->Sub.id_##Value = relp->part->id; \ + return EINA_TRUE; \ + } \ + else \ + { \ + pd->Sub.id_##Value = -1; \ + return EINA_FALSE; \ + } \ } //note after this call edje_edit_part_selected_state_set() to update !! need to fix this //_edje_part_description_apply(ed, rp, pd->state.name, pd->state.value, "state", 0.1); //Why segfault??