From: Enlightenment S. <no-...@en...> - 2010-06-04 03:08:25
|
Log: Move functions around and fix the style to match the rest. Author: sachiel Date: 2010-06-03 20:08:18 -0700 (Thu, 03 Jun 2010) New Revision: 49437 Modified: trunk/edje/src/lib/Edje_Edit.h Modified: trunk/edje/src/lib/Edje_Edit.h =================================================================== --- trunk/edje/src/lib/Edje_Edit.h 2010-06-04 02:47:00 UTC (rev 49436) +++ trunk/edje/src/lib/Edje_Edit.h 2010-06-04 03:08:18 UTC (rev 49437) @@ -493,6 +493,32 @@ //@} +/** Add a new ttf font to the edje file. + * + * The newly created font will be available to all the groups in the edje, + * not only the current one. + * + * @param obj Object being edited. + * @param path Path to the font file to add into the Edje file. + * @param alias Name with which the font will be referred inside the Edje, + * can be NULL to use the filename. + * + * @return EINA_TRUE if the font got succesfully added, EINA_FALSE if not. + */ +EAPI Eina_Bool edje_edit_font_add(Evas_Object *obj, const char *path, const char *alias); + +/** Remove a ttf font to the edje file. + * + * The font exists at the file level, it's not per object. So deleting it + * will affect every group that is using it. + * + * @param obj Object being edited. + * @param alias Name by which the file is identified in the Edje file. + * + * @return EINA_TRUE if succesful, EINA_FALSE otherwise. + */ +EAPI Eina_Bool edje_edit_font_del(Evas_Object *obj, const char *alias); + /******************************************************************************/ /************************** TEXT STYLES *************************************/ /******************************************************************************/ @@ -731,45 +757,6 @@ */ EAPI Eina_Bool edje_edit_part_name_set(Evas_Object *obj, const char *part, const char *new_name); -/**Add a new ttf font to the edje file. - * The newly created font will be available to all the groups in the edje, not only the current one. - * If font can't be load EINA_FALSE is returned. - */ -EAPI Eina_Bool ///@return EINA_TRUE on success or EINA_FALSE on failure -edje_edit_font_add( - Evas_Object *obj, ///< The edje object - const char* path, ///< The file path to load the ttf font from - const char* alias ///< The file alias, or NULL to use filename -); - -/**Remove a ttf font to the edje file. - * If font can't be deleted EINA_FALSE is returned. - */ -EAPI Eina_Bool ///@return EINA_TRUE on success or EINA_FALSE on failure -edje_edit_font_del( - Evas_Object *obj, ///< The edje object - const char* alias ///< The file alias -); - -/**Get font name for a given part state. Remember to free the returned string using edje_edit_string_free().*/ -EAPI const char * ///@return The name of the font used in the given part state -edje_edit_state_font_get( - Evas_Object *obj, ///< The edje object - const char *part, ///< The name of the part - const char *state, ///< The name of the 'part state' (ex. "default") - double value -); - -/**Set font name for a given part state. */ -EAPI void -edje_edit_state_font_set( - Evas_Object *obj, ///< The edje object - const char *part, ///< The name of the part - const char *state, ///< The name of the 'part state' (ex. "default") - double value, - const char *font ///< The name of the font to use in the given part state -); - /** Get the type of a part. * * @param obj Object being edited. @@ -2072,6 +2059,31 @@ */ EAPI void edje_edit_state_text_set(Evas_Object *obj, const char *part, const char *state, double value,const char *text); +/** Get font name for a given part state. + * + * @param obj Object being edited. + * @param part The name of the part to get the font of. + * @param state The state of the part to get the font of. + * @param value Value of the state. + * + * @return Font used by the part or NULL if error or nothing is set. + */ +EAPI const char * edje_edit_state_font_get(Evas_Object *obj, const char *part, const char *state, double value); + +/** Set font name for a given part state. + * + * Font name can be any alias of an internal font in the Edje file and, + * if it doesn't match any, Edje will look for a font with the given name + * in the system fonts. + * + * @param obj Object being edited. + * @param part Part to set the font of. + * @param state State in which the font is set. + * @param value Value of the state. + * @param font The font name to use. + */ +EAPI void edje_edit_state_font_set(Evas_Object *obj, const char *part, const char *state, double value, const char *font); + /** Get the text size of a part state * * @param obj Object being edited. |
From: Enlightenment S. <no-...@en...> - 2010-06-09 14:40:07
|
Log: Remove duplicated prototypes Author: sachiel Date: 2010-06-09 07:39:59 -0700 (Wed, 09 Jun 2010) New Revision: 49591 Modified: trunk/edje/src/lib/Edje_Edit.h Modified: trunk/edje/src/lib/Edje_Edit.h =================================================================== --- trunk/edje/src/lib/Edje_Edit.h 2010-06-09 14:34:12 UTC (rev 49590) +++ trunk/edje/src/lib/Edje_Edit.h 2010-06-09 14:39:59 UTC (rev 49591) @@ -493,32 +493,7 @@ //@} -/** Add a new ttf font to the edje file. - * - * The newly created font will be available to all the groups in the edje, - * not only the current one. - * - * @param obj Object being edited. - * @param path Path to the font file to add into the Edje file. - * @param alias Name with which the font will be referred inside the Edje, - * can be NULL to use the filename. - * - * @return EINA_TRUE if the font got succesfully added, EINA_FALSE if not. - */ -EAPI Eina_Bool edje_edit_font_add(Evas_Object *obj, const char *path, const char *alias); -/** Remove a ttf font to the edje file. - * - * The font exists at the file level, it's not per object. So deleting it - * will affect every group that is using it. - * - * @param obj Object being edited. - * @param alias Name by which the file is identified in the Edje file. - * - * @return EINA_TRUE if succesful, EINA_FALSE otherwise. - */ -EAPI Eina_Bool edje_edit_font_del(Evas_Object *obj, const char *alias); - /******************************************************************************/ /************************** TEXT STYLES *************************************/ /******************************************************************************/ |
From: Enlightenment S. <no-...@en...> - 2010-06-15 01:51:54
|
Log: Setters and getters functions to Api property of Parts and Programs Now we can set and retrieve, name and descripition of the api property, from Parts and Programs. By: Thiago Ribeiro Masaki <ma...@pr...> Author: sachiel Date: 2010-06-14 18:51:46 -0700 (Mon, 14 Jun 2010) New Revision: 49678 Modified: trunk/edje/src/lib/Edje_Edit.h trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/Edje_Edit.h =================================================================== --- trunk/edje/src/lib/Edje_Edit.h 2010-06-15 00:21:15 UTC (rev 49677) +++ trunk/edje/src/lib/Edje_Edit.h 2010-06-15 01:51:46 UTC (rev 49678) @@ -732,6 +732,44 @@ */ EAPI Eina_Bool edje_edit_part_name_set(Evas_Object *obj, const char *part, const char *new_name); +/** Get api's name of a part. + * + * @param obj Object being edited. + * @param part Name of the part. + * + * @return name of the api if succesful, NULL otherwise. + */ +EAPI const char * edje_edit_part_api_name_get(Evas_Object *obj, const char *part); + +/** Get api's description of a part. + * + * @param obj Object being edited. + * @param part Name of the part. + * + * @return description of the api if succesful, NULL otherwise. + */ +EAPI const char * edje_edit_part_api_description_get(Evas_Object *obj, const char *part); + +/** Set api's name of a part. + * + * @param obj Object being edited. + * @param part Name of the part. + * @param name New name for the api property. + * + * @return EINA_TRUE if succesful, EINA_FALSE otherwise. + */ +EAPI Eina_Bool edje_edit_part_api_name_set(Evas_Object *obj, const char *part, const char *name); + +/** Set api's description of a part. + * + * @param obj Object being edited. + * @param part Name of part. + * @param description New description for the api property. + * + * @return EINA_TRUE if succesful, EINA_FALSE otherwise. + */ +EAPI Eina_Bool edje_edit_part_api_description_set(Evas_Object *obj, const char *part, const char *description); + /** Get the type of a part. * * @param obj Object being edited. @@ -3102,6 +3140,44 @@ */ EAPI const char * edje_edit_program_state_get(Evas_Object *obj, const char *prog); +/** Get api's name of a program. + * + * @param obj Object being edited. + * @param prog Name of program. + * + * @return name of the api if succesful, NULL otherwise. + */ +EAPI const char * edje_edit_program_api_name_get(Evas_Object *obj, const char *prog); + +/** Get api's description of a program. + * + * @param obj Object being edited. + * @param prog Name of program. + * + * @return description of the api if succesful, NULL otherwise. + */ +EAPI const char * edje_edit_program_api_description_get(Evas_Object *obj, const char *prog); + +/** Set api's name of a program. + * + * @param obj Object being edited. + * @param prog Name of the part. + * @param name New name for the api property. + * + * @return EINA_TRUE if succesful, EINA_FALSE otherwise. + */ +EAPI Eina_Bool edje_edit_program_api_name_set(Evas_Object *obj, const char *prog, const char *name); + +/** Set api's description of a program. + * + * @param obj Object being edited. + * @param prog Name of the program. + * @param description New description for the api property. + * + * @return EINA_TRUE if succesful, EINA_FALSE otherwise. + */ +EAPI Eina_Bool edje_edit_program_api_description_set(Evas_Object *obj, const char *prog, const char *description); + /** Set the state for the given program * * In a STATE_SET action this is the name of state to set. Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-06-15 00:21:15 UTC (rev 49677) +++ trunk/edje/src/lib/edje_edit.c 2010-06-15 01:51:46 UTC (rev 49678) @@ -1905,6 +1905,44 @@ return EINA_TRUE; } +EAPI const char * +edje_edit_part_api_name_get(Evas_Object *obj, const char *part) +{ + GET_RP_OR_RETURN(NULL); + + return eina_stringshare_add(rp->part->api.name); +} + +EAPI const char * +edje_edit_part_api_description_get(Evas_Object *obj, const char *part) +{ + GET_RP_OR_RETURN(NULL); + + return eina_stringshare_add(rp->part->api.description); +} + +EAPI Eina_Bool +edje_edit_part_api_name_set(Evas_Object *obj, const char *part, const char *name) +{ + GET_RP_OR_RETURN(EINA_FALSE); + + _edje_if_string_free(ed, rp->part->api.name); + rp->part->api.name = eina_stringshare_add(name); + + return EINA_TRUE; +} + +EAPI Eina_Bool +edje_edit_part_api_description_set(Evas_Object *obj, const char *part, const char *description) +{ + GET_RP_OR_RETURN(EINA_FALSE); + + _edje_if_string_free(ed, rp->part->api.description); + rp->part->api.description = eina_stringshare_add(description); + + return EINA_TRUE; +} + Eina_Bool _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type, const char *source) { @@ -6059,6 +6097,46 @@ return EINA_TRUE; } +EAPI const char * +edje_edit_program_api_name_get(Evas_Object *obj, const char *prog) +{ + GET_EPR_OR_RETURN(NULL); + + return eina_stringshare_add(epr->api.name); +} + +EAPI const char * +edje_edit_program_api_description_get(Evas_Object *obj, const char *prog) +{ + GET_EPR_OR_RETURN(NULL); + + return eina_stringshare_add(epr->api.description); +} + +EAPI Eina_Bool +edje_edit_program_api_name_set(Evas_Object *obj, const char *prog, const char* name) +{ + GET_ED_OR_RETURN(EINA_FALSE); + GET_EPR_OR_RETURN(EINA_FALSE); + + _edje_if_string_free(ed, epr->api.name); + epr->api.name = eina_stringshare_add(name); + + return EINA_TRUE; +} + +EAPI Eina_Bool +edje_edit_program_api_description_set(Evas_Object *obj, const char *prog, const char *description) +{ + GET_ED_OR_RETURN(EINA_FALSE); + GET_EPR_OR_RETURN(EINA_FALSE); + + _edje_if_string_free(ed, epr->api.description); + epr->api.description = eina_stringshare_add(description); + + return EINA_TRUE; +} + /*************************/ /* EMBRYO SCRIPTS API */ /*************************/ @@ -6178,6 +6256,7 @@ double db, db2; char *data; Eina_Bool ret = EINA_TRUE; + const char *api_name, *api_description; GET_ED_OR_RETURN(EINA_FALSE); @@ -6278,7 +6357,31 @@ } // TODO Support script {} + /* api */ + api_name = edje_edit_program_api_name_get(obj, program); + api_description = edje_edit_program_api_description_get(obj, program); + if (api_name || api_description) + { + if (api_name && api_description) + { + BUF_APPENDF(I4"api: \"%s\" \"%s\";\n", api_name, api_description); + edje_edit_string_free(api_name); + edje_edit_string_free(api_description); + } + else + if (api_name) + { + BUF_APPENDF(I4"api: \"%s\" \"\";\n", api_name); + edje_edit_string_free(api_name); + } + else + { + BUF_APPENDF(I4"api: \"\" \"%s\";\n", api_description); + edje_edit_string_free(api_description); + } + } + BUF_APPEND(I3 "}\n"); return ret; } @@ -6527,6 +6630,7 @@ Eina_List *l, *ll; char *data; Eina_Bool ret = EINA_TRUE; + const char *api_name, *api_description; BUF_APPENDF(I3"part { name: \"%s\";\n", part); BUF_APPENDF(I4"type: %s;\n", types[edje_edit_part_type_get(obj, part)]); @@ -6594,6 +6698,30 @@ } edje_edit_string_list_free(ll); + api_name = edje_edit_part_api_name_get(obj, part); + api_description = edje_edit_part_api_description_get(obj, part); + + if (api_name || api_description) + { + if (api_name && api_description) + { + BUF_APPENDF(I4"api: \"%s\" \"%s\";\n", api_name, api_description); + edje_edit_string_free(api_name); + edje_edit_string_free(api_description); + } + else + if (api_name) + { + BUF_APPENDF(I4"api: \"%s\" \"\";\n", api_name); + edje_edit_string_free(api_name); + } + else + { + BUF_APPENDF(I4"api: \"\" \"%s\";\n", api_description); + edje_edit_string_free(api_description); + } + } + BUF_APPEND(I3"}\n");//part return ret; } |
From: Enlightenment S. <no-...@en...> - 2010-06-18 22:08:04
|
Log: Fixing verify and set problems in externals types Edje Edit was writing the info in the struct before verify if the value can be set. New the verify works and the old value is recover if verify fails. By: Fabiano Fidencio <fid...@pr...> Author: sachiel Date: 2010-06-18 15:07:54 -0700 (Fri, 18 Jun 2010) New Revision: 49745 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-06-18 18:59:49 UTC (rev 49744) +++ trunk/edje/src/lib/edje_edit.c 2010-06-18 22:07:54 UTC (rev 49745) @@ -3990,13 +3990,16 @@ * - EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: double * - EDJE_EXTERNAL_PARAM_TYPE_STRING: char* * - EDJE_EXTERNAL_PARAM_TYPE_CHOICE: char* + * + * @note: The validation of the parameter will occur only if the part + * is in the same state as the one being modified. */ EAPI Eina_Bool edje_edit_state_external_param_set(Evas_Object *obj, const char *part, const char *state, double value, const char *param, Edje_External_Param_Type type, ...) { va_list ap; Eina_List *l; - Edje_External_Param *p; + Edje_External_Param *p, old_p; Edje_Real_Part *rp; int found = 0; @@ -4010,6 +4013,7 @@ if (!strcmp(p->name, param)) { found = 1; + old_p = *p; break; } @@ -4045,10 +4049,35 @@ break; default: ERR("unknown external parameter type '%d'", type); + va_end(ap); + if (!found) free(p); + else *p = old_p; + return EINA_FALSE; } va_end(ap); + //FIXME: + //For now, we're just setting the value if the state is the selected state. + //This is a conceptual error and is incoherent with the rest of the API! + { + const char *sname; + double svalue; + sname = edje_edit_part_selected_state_get(obj, part, &svalue); + if (!strcmp(state, sname) && svalue == value) + if (!edje_object_part_external_param_set(obj, part, p)) + if ((type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE) || + (type == EDJE_EXTERNAL_PARAM_TYPE_STRING)) + { + _edje_if_string_free(ed, p->s); + if (!found) free(p); + else *p = old_p; + eina_stringshare_del(sname); + return EINA_FALSE; + } + eina_stringshare_del(sname); + } + if (!found) pd->external_params = eina_list_append(pd->external_params, p); @@ -4058,14 +4087,6 @@ _edje_external_params_parse(rp->swallowed_object, pd->external_params); - { - const char * sname; - double svalue; - sname = edje_edit_part_selected_state_get(obj, part, &svalue); - if (!strcmp(state, sname) && svalue == value) - edje_object_part_external_param_set(obj, part, p); - eina_stringshare_del(sname); - } return EINA_TRUE; } |
From: Enlightenment S. <no-...@en...> - 2010-06-18 22:08:11
|
Log: Add scale set/get to Edje_Edit. By: Iv?\195?\161n Briano <iv...@pr...> Author: sachiel Date: 2010-06-18 15:08:05 -0700 (Fri, 18 Jun 2010) New Revision: 49746 Modified: trunk/edje/src/lib/Edje_Edit.h trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/Edje_Edit.h =================================================================== --- trunk/edje/src/lib/Edje_Edit.h 2010-06-18 22:07:54 UTC (rev 49745) +++ trunk/edje/src/lib/Edje_Edit.h 2010-06-18 22:08:05 UTC (rev 49746) @@ -917,11 +917,31 @@ /** Set repeat_events for part. * - * @param obj Object bein edited. - * @oaram part Part to set which event flags will be ignored + * @param obj Object being edited. + * @param part Part to set which event flags will be ignored */ EAPI void edje_edit_part_ignore_flags_set(Evas_Object *obj, const char *part, Evas_Event_Flags ignore_flags); +/** Set scale property for the part. + * + * This property tells Edje that the given part should be scaled by the + * Edje scale factor. + * + * @param obj Object being edited. + * @param part Part to set scale for. + * @param scale Scale value to set. + */ +EAPI void edje_edit_part_scale_set(Evas_Object *obj, const char *part, Eina_Bool scale); + +/** Get scale for the part. + * + * @param obj Object being edited. + * @param part Part to get the scale value of. + * + * @return Whether scale is on (EINA_TRUE) or not. + */ +EAPI Eina_Bool edje_edit_part_scale_get(Evas_Object *obj, const char *part); + /** Get horizontal dragable state for part. * * @param obj Object being edited. Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-06-18 22:07:54 UTC (rev 49745) +++ trunk/edje/src/lib/edje_edit.c 2010-06-18 22:08:05 UTC (rev 49746) @@ -2465,6 +2465,23 @@ rp->part->ignore_flags = ignore_flags; } +EAPI void +edje_edit_part_scale_set(Evas_Object *obj, const char *part, Eina_Bool scale) +{ + GET_RP_OR_RETURN(); + + rp->part->scale = scale; + edje_object_calc_force(obj); +} + +EAPI Eina_Bool +edje_edit_part_scale_get(Evas_Object *obj, const char *part) +{ + GET_RP_OR_RETURN(EINA_FALSE); + + return rp->part->scale; +} + EAPI const char * edje_edit_part_source_get(Evas_Object *obj, const char *part) { @@ -6659,8 +6676,9 @@ BUF_APPEND(I4"mouse_events: 0;\n"); if (edje_edit_part_repeat_events_get(obj, part)) BUF_APPEND(I4"repeat_events: 1;\n"); + if (edje_edit_part_scale_get(obj, part)) + BUF_APPEND(I4"scale: 1;\n"); //TODO Support ignore_flags - //TODO Support scale //TODO Support pointer_mode //TODO Support precise_is_inside //TODO Support use_alternate_font_metrics |
From: Enlightenment S. <no-...@en...> - 2010-07-03 22:51:05
|
Log: Re-convert to old format on Edje_Edit when saving Author: sachiel Date: 2010-07-03 15:50:58 -0700 (Sat, 03 Jul 2010) New Revision: 50016 Modified: trunk/edje/src/lib/edje_convert.c trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_convert.c =================================================================== --- trunk/edje/src/lib/edje_convert.c 2010-07-03 22:33:17 UTC (rev 50015) +++ trunk/edje/src/lib/edje_convert.c 2010-07-03 22:50:58 UTC (rev 50016) @@ -97,7 +97,7 @@ Eina_List *l; int max; - edf->image_dir = malloc(sizeof (Edje_Image_Directory)); + edf->image_dir = calloc(1, sizeof (Edje_Image_Directory)); if (!edf->image_dir) return EINA_FALSE; if (!oedf->image_dir) return EINA_TRUE; Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-07-03 22:33:17 UTC (rev 50015) +++ trunk/edje/src/lib/edje_edit.c 2010-07-03 22:50:58 UTC (rev 50016) @@ -6949,16 +6949,109 @@ } ///////////////////////////////////////// +/* FIXME: error checks... not that they will help much at all though */ +static void +_edje_edit_convert_to_old(Edje_File *ef) +{ + Eina_Iterator *itr; + Eina_Hash_Tuple *tpl; + int i; + + itr = eina_hash_iterator_tuple_new(ef->data); + EINA_ITERATOR_FOREACH(itr, tpl) + { + Edje_Data *ed; + ed = malloc(sizeof(*ed)); + ed->key = tpl->key; + ed->value = tpl->data; + ef->oef->data = eina_list_append(ef->oef->data, ed); + } + eina_iterator_free(itr); + + itr = eina_hash_iterator_tuple_new(ef->fonts); + EINA_ITERATOR_FOREACH(itr, tpl) + { + if (!ef->oef->font_dir) + ef->oef->font_dir = calloc(1, sizeof(Old_Edje_Font_Directory)); + ef->oef->font_dir->entries = + eina_list_append(ef->oef->font_dir->entries, + tpl->data); + } + eina_iterator_free(itr); + + if (ef->image_dir->entries || ef->image_dir->sets) + { + if (!ef->oef->image_dir) + ef->oef->image_dir = calloc(1, sizeof(Old_Edje_Image_Directory)); + for (i = 0; i < ef->image_dir->entries_count; i++) + ef->oef->image_dir->entries = eina_list_append( + ef->oef->image_dir->entries, + &ef->image_dir->entries[i]); + for (i = 0; i < ef->image_dir->sets_count; i++) + ef->oef->image_dir->sets = eina_list_append( + ef->oef->image_dir->sets, + &ef->image_dir->sets[i]); + } + + if (ef->external_dir) + { + ef->oef->external_dir = calloc(1, sizeof(Old_Edje_External_Directory)); + for (i = 0; i < ef->external_dir->entries_count; i++) + ef->oef->external_dir->entries = eina_list_append( + ef->oef->external_dir->entries, + &ef->external_dir->entries[i]); + } + + eina_list_free(ef->oef->collection_dir->entries); + ef->oef->collection_dir->entries = NULL; + itr = eina_hash_iterator_tuple_new(ef->collection); + EINA_ITERATOR_FOREACH(itr, tpl) + ef->oef->collection_dir->entries = eina_list_append( + ef->oef->collection_dir->entries, + tpl->data); + eina_iterator_free(itr); + + ef->oef->compiler = ef->compiler; +} + +static void +_edje_edit_clean_old(Edje_File *ef) +{ + Edje_Data *ed; + + EINA_LIST_FREE(ef->oef->data, ed) + free(ed); + if (ef->oef->font_dir) + { + eina_list_free(ef->oef->font_dir->entries); + ef->oef->font_dir = NULL; + } + if (ef->oef->image_dir) + { + eina_list_free(ef->oef->image_dir->entries); + eina_list_free(ef->oef->image_dir->sets); + ef->oef->image_dir->entries = ef->oef->image_dir->sets = NULL; + } + if (ef->oef->external_dir) + { + eina_list_free(ef->oef->external_dir->entries); + free(ef->oef->external_dir); + ef->oef->external_dir = NULL; + } +} + static Eina_Bool _edje_edit_edje_file_save(Eet_File *eetf, Edje_File *ef) { /* Write Edje_File structure */ INF("** Writing Edje_File* ed->file"); - if (eet_data_write(eetf, _edje_edd_edje_file, "edje_file", ef, 1) <= 0) + _edje_edit_convert_to_old(ef); + if (eet_data_write(eetf, _edje_edd_edje_file, "edje_file", ef->oef, 1) <= 0) { ERR("Error. unable to write \"edje_file\" entry to \"%s\"", ef->path); return EINA_FALSE; } + _edje_edit_clean_old(ef); return EINA_TRUE; } @@ -7101,19 +7194,23 @@ { Eina_List *l; Edje_Part_Collection *edc; + Edje_Part_Collection_Directory_Entry *ce; Eina_Iterator *it; INF("** Writing all collections"); it = eina_hash_iterator_data_new(ef->collection); - while (eina_iterator_next(it, (void **)&edc)) + while (eina_iterator_next(it, (void **)&ce)) { - INF("** Writing hash Edje_Part_Collection* ed->collection " - "[id: %d]", edc->id); - if(!_edje_edit_collection_save(eetf, edc)) + if (ce->ref) { - eet_close(eetf); - return EINA_FALSE; + INF("** Writing hash Edje_Part_Collection* ed->collection " + "[id: %d]", ce->id); + if(!_edje_edit_collection_save(eetf, ce->ref)) + { + eet_close(eetf); + return EINA_FALSE; + } } } eina_iterator_free(it); |
From: Enlightenment S. <no-...@en...> - 2010-08-09 23:09:32
|
Log: Check part types before casting descriptions Author: sachiel Date: 2010-08-09 16:09:24 -0700 (Mon, 09 Aug 2010) New Revision: 50949 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-09 22:32:30 UTC (rev 50948) +++ trunk/edje/src/lib/edje_edit.c 2010-08-09 23:09:24 UTC (rev 50949) @@ -58,12 +58,15 @@ #define GET_PD_OR_RETURN(RET) \ Edje *ed; \ Edje_Edit *eed; \ + Edje_Real_Part *rp; \ Edje_Part_Description_Common *pd; \ if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ return RET; \ eed = evas_object_smart_data_get(obj); \ if (!eed) return RET; \ ed = (Edje *)eed; \ + rp = _edje_real_part_get(ed, part); \ + if (!rp) return RET; \ pd = _edje_part_description_find_byname(eed, part, state, value); \ if (!pd) return RET; @@ -3165,6 +3168,16 @@ GET_PD_OR_RETURN(); + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) + { + if (r) *r = 0; + if (g) *g = 0; + if (b) *b = 0; + if (a) *a = 0; + return; + } + txt = (Edje_Part_Description_Text*) pd; if (r) *r = txt->text.color3.r; @@ -3180,6 +3193,10 @@ GET_PD_OR_RETURN(); + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) + return; + txt = (Edje_Part_Description_Text*) pd; if (r > -1 && r < 256) txt->text.color3.r = r; @@ -3236,6 +3253,9 @@ Edje_Part_Description_Image *img; \ \ GET_PD_OR_RETURN(0); \ + \ + if (rp->part->type != EDJE_PART_TYPE_IMAGE) \ + return 0; \ \ img = (Edje_Part_Description_Image*) pd; \ \ @@ -3247,6 +3267,9 @@ Edje_Part_Description_Image *img; \ \ GET_PD_OR_RETURN(); \ + \ + if (rp->part->type != EDJE_PART_TYPE_IMAGE) \ + return; \ \ img = (Edje_Part_Description_Image*) pd; \ \ @@ -3261,6 +3284,9 @@ Edje_Part_Description_Image *img; \ \ GET_PD_OR_RETURN(0); \ + \ + if (rp->part->type != EDJE_PART_TYPE_IMAGE) \ + return 0; \ \ img = (Edje_Part_Description_Image*) pd; \ \ @@ -3272,6 +3298,9 @@ Edje_Part_Description_Image *img; \ \ GET_PD_OR_RETURN(); \ + \ + if (rp->part->type != EDJE_PART_TYPE_IMAGE) \ + return; \ \ img = (Edje_Part_Description_Image*) pd; \ \ @@ -3349,6 +3378,9 @@ GET_PD_OR_RETURN(NULL); + if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) + return NULL; + external = (Edje_Part_Description_External *) pd; return external->external_params; @@ -3363,6 +3395,9 @@ GET_PD_OR_RETURN(EINA_FALSE); + if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) + return EINA_FALSE; + external = (Edje_Part_Description_External *) pd; EINA_LIST_FOREACH(external->external_params, l, p) @@ -3401,6 +3436,12 @@ GET_PD_OR_RETURN(EINA_FALSE); + if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) + { + if (val) *val = 0; + return EINA_FALSE; + } + external = (Edje_Part_Description_External *) pd; EINA_LIST_FOREACH(external->external_params, l, p) @@ -3425,6 +3466,12 @@ GET_PD_OR_RETURN(EINA_FALSE); + if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) + { + if (val) *val = 0; + return EINA_FALSE; + } + external = (Edje_Part_Description_External *) pd; EINA_LIST_FOREACH(external->external_params, l, p) @@ -3449,6 +3496,12 @@ GET_PD_OR_RETURN(EINA_FALSE); + if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) + { + if (val) *val = 0; + return EINA_FALSE; + } + external = (Edje_Part_Description_External *) pd; EINA_LIST_FOREACH(external->external_params, l, p) @@ -3473,6 +3526,12 @@ GET_PD_OR_RETURN(EINA_FALSE); + if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) + { + if (val) *val = NULL; + return EINA_FALSE; + } + external = (Edje_Part_Description_External *) pd; EINA_LIST_FOREACH(external->external_params, l, p) @@ -3497,6 +3556,12 @@ GET_PD_OR_RETURN(EINA_FALSE); + if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) + { + if (val) *val = NULL; + return EINA_FALSE; + } + external = (Edje_Part_Description_External *) pd; EINA_LIST_FOREACH(external->external_params, l, p) @@ -3530,15 +3595,15 @@ Eina_List *l; Edje_Part_Description_External *external; Edje_External_Param *p = NULL, old_p = { 0, 0, 0, 0, 0 }; - Edje_Real_Part *rp; int found = 0; GET_PD_OR_RETURN(EINA_FALSE); + if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) + return EINA_FALSE; + external = (Edje_Part_Description_External *) pd; - rp = _edje_real_part_get(ed, part); - va_start(ap, type); EINA_LIST_FOREACH(external->external_params, l, p) @@ -3664,6 +3729,10 @@ GET_PD_OR_RETURN(NULL); + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) + return NULL; + txt = (Edje_Part_Description_Text *) pd; //printf("GET TEXT of state: %s\n", state); @@ -3684,6 +3753,10 @@ if (!text) return; + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) + return; + txt = (Edje_Part_Description_Text *) pd; _edje_if_string_free(ed, txt->text.text); @@ -3699,6 +3772,10 @@ GET_PD_OR_RETURN(-1); + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) + return -1; + txt = (Edje_Part_Description_Text *) pd; //printf("GET TEXT_SIZE of state: %s [%d]\n", state, pd->text.size); return txt->text.size; @@ -3715,6 +3792,10 @@ if (size < 0) return; + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) + return; + txt = (Edje_Part_Description_Text *) pd; txt->text.size = size; @@ -3730,6 +3811,10 @@ \ GET_PD_OR_RETURN(0); \ \ + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && \ + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) \ + return 0; \ + \ txt = (Edje_Part_Description_Text *) pd; \ return TO_DOUBLE(txt->text.Value); \ } \ @@ -3740,6 +3825,10 @@ \ GET_PD_OR_RETURN(); \ \ + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && \ + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) \ + return; \ + \ txt = (Edje_Part_Description_Text *) pd; \ txt->text.Value = FROM_DOUBLE(v); \ edje_object_calc_force(obj); \ @@ -3756,6 +3845,10 @@ Edje_Part_Description_Text *txt; \ \ GET_PD_OR_RETURN(EINA_FALSE); \ + \ + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && \ + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) \ + return EINA_FALSE; \ \ txt = (Edje_Part_Description_Text *) pd; \ return txt->text.fit_##Value; \ @@ -3766,6 +3859,10 @@ Edje_Part_Description_Text *txt; \ \ GET_PD_OR_RETURN(); \ + \ + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && \ + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) \ + return; \ \ txt = (Edje_Part_Description_Text *) pd; \ txt->text.fit_##Value = fit ? 1 : 0; \ @@ -3909,7 +4006,10 @@ GET_PD_OR_RETURN(NULL); - //printf("GET FONT of state: %s [%s]\n", state, pd->text.font); + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) + return NULL; + txt = (Edje_Part_Description_Text*) pd; if (!txt->text.font) return NULL; @@ -3923,7 +4023,10 @@ GET_PD_OR_RETURN(); - //printf("SET FONT of state: %s [%s]\n", state, font); + if ((rp->part->type != EDJE_PART_TYPE_TEXT) && + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) + return; + txt = (Edje_Part_Description_Text*) pd; _edje_if_string_free(ed, txt->text.font); @@ -4221,6 +4324,9 @@ GET_PD_OR_RETURN(NULL); + if (rp->part->type != EDJE_PART_TYPE_IMAGE) + return NULL; + img = (Edje_Part_Description_Image *) pd; image = (char *)_edje_image_name_find(obj, img->image.id); @@ -4240,6 +4346,9 @@ if (!image) return; + if (rp->part->type != EDJE_PART_TYPE_IMAGE) + return; + id = _edje_image_id_find(obj, image); //printf("SET IMAGE for %s [%s]\n", state, image); @@ -4260,7 +4369,8 @@ GET_PD_OR_RETURN(NULL); - //printf("GET TWEEN LIST for %s\n", state); + if (rp->part->type != EDJE_PART_TYPE_IMAGE) + return NULL; img = (Edje_Part_Description_Image *) pd; @@ -4284,6 +4394,9 @@ GET_PD_OR_RETURN(EINA_FALSE); + if (rp->part->type != EDJE_PART_TYPE_IMAGE) + return EINA_FALSE; + id = _edje_image_id_find(obj, tween); if (id < EINA_FALSE) return 0; @@ -4318,6 +4431,9 @@ GET_PD_OR_RETURN(EINA_FALSE); + if (rp->part->type != EDJE_PART_TYPE_IMAGE) + return EINA_FALSE; + img = (Edje_Part_Description_Image *) pd; if (!img->image.tweens_count) return EINA_FALSE; @@ -4347,6 +4463,15 @@ GET_PD_OR_RETURN(); + if (rp->part->type != EDJE_PART_TYPE_IMAGE) + { + if (l) *l = 0; + if (r) *r = 0; + if (t) *t = 0; + if (b) *b = 0; + return; + } + img = (Edje_Part_Description_Image *) pd; //printf("GET IMAGE_BORDER of state '%s'\n", state); @@ -4364,6 +4489,9 @@ GET_PD_OR_RETURN(); + if (rp->part->type != EDJE_PART_TYPE_IMAGE) + return; + img = (Edje_Part_Description_Image *) pd; //printf("SET IMAGE_BORDER of state '%s'\n", state); @@ -4383,6 +4511,9 @@ GET_PD_OR_RETURN(0); + if (rp->part->type != EDJE_PART_TYPE_IMAGE) + return 0; + img = (Edje_Part_Description_Image *) pd; if (img->image.border.no_fill == 0) return 1; @@ -4398,6 +4529,9 @@ GET_PD_OR_RETURN(); + if (rp->part->type != EDJE_PART_TYPE_IMAGE) + return; + img = (Edje_Part_Description_Image *) pd; if (fill == 0) img->image.border.no_fill = 1; @@ -5408,14 +5542,10 @@ _edje_generate_source_of_state(Evas_Object *obj, const char *part, const char *state, double value, Eina_Strbuf *buf) { Eina_List *l, *ll; - Edje_Real_Part *rp; Eina_Bool ret = EINA_TRUE; GET_PD_OR_RETURN(EINA_FALSE); - rp = _edje_real_part_get(ed, part); - if (!rp) return EINA_FALSE; - BUF_APPENDF(I4"description { state: \"%s\" %g;\n", pd->state.name, pd->state.value); //TODO Support inherit |
From: Enlightenment S. <no-...@en...> - 2010-08-10 21:54:56
|
Log: Properly store data values when changing them Author: sachiel Date: 2010-08-10 14:54:50 -0700 (Tue, 10 Aug 2010) New Revision: 50976 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-10 21:11:31 UTC (rev 50975) +++ trunk/edje/src/lib/edje_edit.c 2010-08-10 21:54:50 UTC (rev 50976) @@ -1243,6 +1243,7 @@ old_value = eina_hash_find(ed->collection->data, key); if (old_value) { + value = eina_stringshare_add(value); eina_hash_modify(ed->collection->data, key, value); _edje_if_string_free(ed, old_value); return EINA_TRUE; @@ -1261,9 +1262,14 @@ if (!itemname || !value || !ed->file || !ed->file->data) return EINA_FALSE; - old = eina_hash_modify(ed->file->data, itemname, eina_stringshare_add(value)); + old = eina_hash_find(ed->file->data, itemname); if (old) - return EINA_TRUE; + { + value = eina_stringshare_add(value); + eina_hash_modify(ed->file->data, itemname, value); + _edje_if_string_free(ed, old); + return EINA_TRUE; + } return EINA_FALSE; } |
From: Enlightenment S. <no-...@en...> - 2010-08-12 17:49:34
|
Log: Fix usage of data_set/get/etc in Edje_Edit Author: sachiel Date: 2010-08-12 10:49:28 -0700 (Thu, 12 Aug 2010) New Revision: 51052 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-12 16:32:12 UTC (rev 51051) +++ trunk/edje/src/lib/edje_edit.c 2010-08-12 17:49:28 UTC (rev 51052) @@ -1146,6 +1146,8 @@ EAPI Eina_Bool edje_edit_group_data_add(Evas_Object *obj, const char *key, const char *value) { + Edje_String *es; + GET_ED_OR_RETURN(EINA_FALSE); if (!key || !ed->file || !ed->collection) @@ -1157,12 +1159,25 @@ if (eina_hash_find(ed->collection->data, key)) return EINA_FALSE; - return eina_hash_add(ed->collection->data, key, eina_stringshare_add(value)); + es = calloc(1, sizeof(Edje_String)); + if (!es) + return EINA_FALSE; + es->str = eina_stringshare_add(value); + + if (!eina_hash_add(ed->collection->data, key, es)) + { + eina_stringshare_del(es->str); + free(es); + return EINA_FALSE; + } + return EINA_TRUE; } EAPI Eina_Bool edje_edit_data_add(Evas_Object *obj, const char *itemname, const char *value) { + Edje_String *es; + GET_ED_OR_RETURN(EINA_FALSE); if (!itemname || !ed->file) @@ -1171,15 +1186,24 @@ if (eina_hash_find(ed->file->data, itemname)) return EINA_FALSE; - eina_hash_add(ed->file->data, itemname, eina_stringshare_add(value)); + es = calloc(1, sizeof(Edje_String)); + if (!es) + return EINA_FALSE; + es->str = eina_stringshare_add(value); + if (!eina_hash_add(ed->file->data, itemname, es)) + { + eina_stringshare_del(es->str); + free(es); + return EINA_FALSE; + } return EINA_TRUE; } EAPI Eina_Bool edje_edit_group_data_del(Evas_Object *obj, const char *key) { - const char *value; + Edje_String *value; GET_ED_OR_RETURN(EINA_FALSE); @@ -1189,25 +1213,38 @@ value = eina_hash_find(ed->collection->data, key); if (!value) return EINA_FALSE; - _edje_if_string_free(ed, value); - return eina_hash_del(ed->collection->data, key, value); + eina_hash_del(ed->collection->data, key, value); + _edje_if_string_free(ed, value->str); + free(value); + + return EINA_TRUE; } EAPI Eina_Bool edje_edit_data_del(Evas_Object *obj, const char *itemname) { + Edje_String *value; + GET_ED_OR_RETURN(EINA_FALSE); if (!itemname || !ed->file || !ed->file->data) return 0; - return eina_hash_del(ed->file->data, itemname, NULL); + value = eina_hash_find(ed->file->data, itemname); + if (!value) + return EINA_FALSE; + + eina_hash_del(ed->file->data, itemname, value); + _edje_if_string_free(ed, value->str); + free(value); + + return EINA_TRUE; } EAPI const char * edje_edit_group_data_value_get(Evas_Object * obj, char *key) { - const char *value; + Edje_String *value; GET_ED_OR_RETURN(NULL); @@ -1215,37 +1252,45 @@ return NULL; value = eina_hash_find(ed->collection->data, key); - if (value) value = eina_stringshare_add(value); - return value; + if (!value) + return NULL; + + return eina_stringshare_add(edje_string_get(value)); } EAPI const char * edje_edit_data_value_get(Evas_Object * obj, char *itemname) { + Edje_String *value; + GET_ED_OR_RETURN(NULL); if (!itemname || !ed->file || !ed->file->data) return NULL; - return eina_stringshare_add(eina_hash_find(ed->file->data, itemname)); + value = eina_hash_find(ed->file->data, itemname); + if (!value) + return NULL; + + return eina_stringshare_add(edje_string_get(value)); } EAPI Eina_Bool edje_edit_group_data_value_set(Evas_Object *obj, const char *key, const char *value) { - const char *old_value; + Edje_String *es; GET_ED_OR_RETURN(EINA_FALSE); if (!key || !value || !ed->file || !ed->collection) return EINA_FALSE; - old_value = eina_hash_find(ed->collection->data, key); - if (old_value) + es = eina_hash_find(ed->collection->data, key); + if (es) { - value = eina_stringshare_add(value); - eina_hash_modify(ed->collection->data, key, value); - _edje_if_string_free(ed, old_value); + _edje_if_string_free(ed, es->str); + es->str = eina_stringshare_add(value); + es->id = 0; return EINA_TRUE; } @@ -1255,19 +1300,19 @@ EAPI Eina_Bool edje_edit_data_value_set(Evas_Object *obj, const char *itemname, const char *value) { - const char *old; + Edje_String *es; GET_ED_OR_RETURN(EINA_FALSE); if (!itemname || !value || !ed->file || !ed->file->data) return EINA_FALSE; - old = eina_hash_find(ed->file->data, itemname); - if (old) + es = eina_hash_find(ed->file->data, itemname); + if (es) { - value = eina_stringshare_add(value); - eina_hash_modify(ed->file->data, itemname, value); - _edje_if_string_free(ed, old); + _edje_if_string_free(ed, es->str); + es->str = eina_stringshare_add(value); + es->id = 0; return EINA_TRUE; } return EINA_FALSE; @@ -1276,43 +1321,24 @@ EAPI Eina_Bool edje_edit_group_data_name_set(Evas_Object *obj, const char *key, const char *new_key) { - const char *value; - GET_ED_OR_RETURN(EINA_FALSE); if (!key || !new_key || !ed->file || !ed->collection) { return EINA_FALSE; } - value = eina_hash_find(ed->collection->data, key); - if (value) - { - eina_hash_del(ed->collection->data, key, value); - return eina_hash_add(ed->collection->data, new_key, value); - } - - return EINA_FALSE; + return eina_hash_move(ed->collection->data, key, new_key); } EAPI Eina_Bool edje_edit_data_name_set(Evas_Object *obj, const char *itemname, const char *newname) { - const char *value; - GET_ED_OR_RETURN(EINA_FALSE); if (!itemname || !newname || !ed->file || !ed->file->data) return EINA_FALSE; - /* Get value and prevent it's destruction */ - value = eina_hash_find(ed->file->data, itemname); - value = eina_stringshare_add(value); - if (!value) return EINA_FALSE; - - eina_hash_del(ed->file->data, itemname, NULL); - eina_hash_add(ed->file->data, itemname, value); - - return EINA_TRUE; + return eina_hash_move(ed->file->data, itemname, newname); } /***********************/ |
From: Enlightenment S. <no-...@en...> - 2010-08-13 20:39:03
|
Log: Using edje_string_get in group's gen code Author: sachiel Date: 2010-08-13 13:38:57 -0700 (Fri, 13 Aug 2010) New Revision: 51096 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-13 20:07:12 UTC (rev 51095) +++ trunk/edje/src/lib/edje_edit.c 2010-08-13 20:38:57 UTC (rev 51096) @@ -5993,8 +5993,8 @@ } EINA_ITERATOR_FOREACH(it, tuple) - BUF_APPENDF(I3"item: \"%s\" \"%s\";\n", (char *)tuple->key, - (char *)tuple->data); + BUF_APPENDF(I3"item: \"%s\" \"%s\"; \n", (char *)tuple->key, + edje_string_get(tuple->data)); eina_iterator_free(it); BUF_APPEND(I2"}\n\n"); |
From: Enlightenment S. <no-...@en...> - 2010-08-13 20:39:50
|
Log: constifying (Edje_String)->str Author: sachiel Date: 2010-08-13 13:39:43 -0700 (Fri, 13 Aug 2010) New Revision: 51097 Modified: trunk/edje/src/lib/edje_private.h Modified: trunk/edje/src/lib/edje_private.h =================================================================== --- trunk/edje/src/lib/edje_private.h 2010-08-13 20:38:57 UTC (rev 51096) +++ trunk/edje/src/lib/edje_private.h 2010-08-13 20:39:43 UTC (rev 51097) @@ -202,7 +202,7 @@ struct _Edje_String { - char *str; + const char *str; unsigned int id; }; |
From: Enlightenment S. <no-...@en...> - 2010-08-13 20:40:33
|
Log: Shuting up GCC warnings! Author: sachiel Date: 2010-08-13 13:40:27 -0700 (Fri, 13 Aug 2010) New Revision: 51098 Modified: trunk/edje/src/lib/edje_embryo.c Modified: trunk/edje/src/lib/edje_embryo.c =================================================================== --- trunk/edje/src/lib/edje_embryo.c 2010-08-13 20:39:43 UTC (rev 51097) +++ trunk/edje/src/lib/edje_embryo.c 2010-08-13 20:40:27 UTC (rev 51098) @@ -2368,7 +2368,7 @@ text = (Edje_Part_Description_Text*) rp->custom->description; - s = text->text.text.str; + s = (char *)text->text.text.str; SETSTRALLOCATE(s); break; @@ -2400,7 +2400,7 @@ text = (Edje_Part_Description_Text*) rp->custom->description; - s = text->text.font.str; + s = (char *)text->text.font.str; SETSTRALLOCATE(s); break; @@ -2415,7 +2415,7 @@ text = (Edje_Part_Description_Text*) rp->custom->description; - s = text->text.style.str; + s = (char *)text->text.style.str; SETSTRALLOCATE(s); break; |
From: Enlightenment S. <no-...@en...> - 2010-08-18 14:38:34
|
Log: Also change group name in the Edje smart data Author: sachiel Date: 2010-08-18 07:38:27 -0700 (Wed, 18 Aug 2010) New Revision: 51279 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-18 13:56:34 UTC (rev 51278) +++ trunk/edje/src/lib/edje_edit.c 2010-08-18 14:38:27 UTC (rev 51279) @@ -1069,6 +1069,7 @@ pce->entry = eina_stringshare_add(new_name); pc->part = pce->entry; + eina_stringshare_replace(&ed->group, new_name); return EINA_TRUE; } |
From: Enlightenment S. <no-...@en...> - 2010-08-24 14:35:47
|
Log: Fixing {font,image}_del's ret when file not exist When a file not exist, now, we're returning EINA_FALSE. It's according with eina_hash_del()'s behavior. By Fabiano Fidencio Author: sachiel Date: 2010-08-24 07:35:37 -0700 (Tue, 24 Aug 2010) New Revision: 51614 Modified: trunk/edje/src/lib/Edje_Edit.h trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/Edje_Edit.h =================================================================== --- trunk/edje/src/lib/Edje_Edit.h 2010-08-24 14:17:17 UTC (rev 51613) +++ trunk/edje/src/lib/Edje_Edit.h 2010-08-24 14:35:37 UTC (rev 51614) @@ -2288,7 +2288,8 @@ * @param obj Object being edited. * @param alias The font alias * - * @return EINA_TRUE if font deleted, EINA_FALSE otherwise. + * @return EINA_TRUE if succesful, EINA_FALSE otherwise (including the + * case when the alias is not valid). */ EAPI Eina_Bool edje_edit_font_del(Evas_Object *obj, const char* alias); @@ -2358,7 +2359,8 @@ * @param obj Object being edited. * @param name The name of the image file to include in the edje. * - * @return EINA_TRUE if succesful, EINA_FALSE otherwise. + * @return EINA_TRUE if succesful, EINA_FALSE otherwise (including the + * case when the name is not valid). */ EAPI Eina_Bool edje_edit_image_del(Evas_Object *obj, const char *name); Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-24 14:17:17 UTC (rev 51613) +++ trunk/edje/src/lib/edje_edit.c 2010-08-24 14:35:37 UTC (rev 51614) @@ -4024,7 +4024,7 @@ if (!fnt) { WRN("Unable to find font entry part \"%s\"", alias); - return EINA_TRUE; + return EINA_FALSE; } /* Erase font to edje file */ @@ -4226,6 +4226,8 @@ /* Create Image_Directory if not exist */ if (!ed->file->image_dir) + goto invalid_image; + return EINA_TRUE; for (i = 0; i < ed->file->image_dir->entries_count; ++i) @@ -4238,10 +4240,7 @@ } if (i == ed->file->image_dir->entries_count) - { - WRN("Unable to find image entry part \"%s\"", name); - return EINA_TRUE; - } + goto invalid_image; { char entry[PATH_MAX]; @@ -4278,6 +4277,10 @@ de->entry = NULL; return EINA_TRUE; + +invalid_image: + WRN("Unable to find image entry part \"%s\"", name); + return EINA_FALSE; } EAPI Eina_Bool |
From: Enlightenment S. <no-...@en...> - 2010-08-24 14:36:17
|
Log: Fixing return of edje_edit_fonts_list_get The fuction was returning a private type (as _Edje_Font_Directory_Entry) and an EAPI should *never* return and private type. By Fabiano Fidencio Author: sachiel Date: 2010-08-24 07:36:07 -0700 (Tue, 24 Aug 2010) New Revision: 51615 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-24 14:35:37 UTC (rev 51614) +++ trunk/edje/src/lib/edje_edit.c 2010-08-24 14:36:07 UTC (rev 51615) @@ -3935,7 +3935,7 @@ if (!it) return NULL; EINA_ITERATOR_FOREACH(it, f) - fonts = eina_list_append(fonts, f); + fonts = eina_list_append(fonts, eina_stringshare_add(f->entry)); eina_iterator_free(it); @@ -6049,8 +6049,10 @@ Eina_Strbuf *buf; Eina_List *l, *ll; + Eina_Iterator *it; + Edje_Font_Directory_Entry *fnt; + char *entry; - Edje_Font_Directory_Entry *fnt; Eina_Bool ret = EINA_TRUE; GET_ED_OR_RETURN(NULL); @@ -6097,23 +6099,24 @@ } /* Fonts */ - if ((ll = edje_edit_fonts_list_get(obj))) + it = eina_hash_iterator_data_new(ed->file->fonts); + if (it) { - BUF_APPEND(I0"fonts {\n"); + BUF_APPEND(I0"fonts {\n"); - EINA_LIST_FOREACH(ll, l, fnt) - BUF_APPENDF(I1"font: \"%s\" \"%s\";\n", fnt->file, - fnt->entry); + EINA_ITERATOR_FOREACH(it, fnt) + BUF_APPENDF(I1"font: \"%s\" \"%s\";\n", fnt->file, + fnt->entry); - BUF_APPEND(I0"}\n\n"); - eina_list_free(ll); + BUF_APPEND(I0"}\n\n"); + eina_list_free(ll); - if (!ret) - { - ERR("Generating EDC for Fonts"); - eina_strbuf_free(buf); - return NULL; - } + if (!ret) + { + ERR("Generating EDC for Fonts"); + eina_strbuf_free(buf); + return NULL; + } } /* Data */ |
From: Enlightenment S. <no-...@en...> - 2010-08-24 14:36:35
|
Log: Leak-- By Fidencio Author: sachiel Date: 2010-08-24 07:36:29 -0700 (Tue, 24 Aug 2010) New Revision: 51616 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-24 14:36:07 UTC (rev 51615) +++ trunk/edje/src/lib/edje_edit.c 2010-08-24 14:36:29 UTC (rev 51616) @@ -4001,6 +4001,8 @@ if (!_edje_import_font_file(ed, path, entry)) { eina_hash_del(ed->file->fonts, fnt->entry, fnt); + eina_stringshare_del(fnt->file); + eina_stringshare_del(fnt->entry); return EINA_FALSE; } |
From: Enlightenment S. <no-...@en...> - 2010-08-27 12:21:06
|
Log: Bring back (corrected) second check. Author: sachiel Date: 2010-08-27 05:20:58 -0700 (Fri, 27 Aug 2010) New Revision: 51676 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-27 10:45:06 UTC (rev 51675) +++ trunk/edje/src/lib/edje_edit.c 2010-08-27 12:20:58 UTC (rev 51676) @@ -5889,7 +5889,8 @@ effects[edje_edit_part_effect_get(obj, part)]); //Dragable - if (edje_edit_part_drag_x_get(obj, part)) + if (edje_edit_part_drag_x_get(obj, part) || + edje_edit_part_drag_y_get(obj, part)) { BUF_APPEND(I4"dragable {\n"); BUF_APPENDF(I5"x: %d %d %d;\n", |
From: Enlightenment S. <no-...@en...> - 2010-08-31 19:32:14
|
Log: Avoiding access in NULL hash and little fixes. If there isn't a font, the hash is NULL. So, just check before to avoid problems. Moreover, removing one line that had been lost in code generate of fonts parts and moving it declaration for the right context By: Fabiano Fidencio <fid...@pr...> Author: sachiel Date: 2010-08-31 12:32:08 -0700 (Tue, 31 Aug 2010) New Revision: 51786 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-08-31 19:21:26 UTC (rev 51785) +++ trunk/edje/src/lib/edje_edit.c 2010-08-31 19:32:08 UTC (rev 51786) @@ -6051,7 +6051,6 @@ Eina_Strbuf *buf; Eina_List *l, *ll; - Eina_Iterator *it; Edje_Font_Directory_Entry *fnt; char *entry; @@ -6101,23 +6100,28 @@ } /* Fonts */ - it = eina_hash_iterator_data_new(ed->file->fonts); - if (it) + if (ed->file->fonts) { - BUF_APPEND(I0"fonts {\n"); + Eina_Iterator *it; - EINA_ITERATOR_FOREACH(it, fnt) - BUF_APPENDF(I1"font: \"%s\" \"%s\";\n", fnt->file, - fnt->entry); + it = eina_hash_iterator_data_new(ed->file->fonts); + if (it) + { + BUF_APPEND(I0"fonts {\n"); - BUF_APPEND(I0"}\n\n"); - eina_list_free(ll); + EINA_ITERATOR_FOREACH(it, fnt) + BUF_APPENDF(I1"font: \"%s\" \"%s\";\n", fnt->file, + fnt->entry); - if (!ret) - { - ERR("Generating EDC for Fonts"); - eina_strbuf_free(buf); - return NULL; + BUF_APPEND(I0"}\n\n"); + eina_iterator_free(it); + + if (!ret) + { + ERR("Generating EDC for Fonts"); + eina_strbuf_free(buf); + return NULL; + } } } |
From: Enlightenment S. <no-...@en...> - 2010-09-01 17:16:00
|
Log: Eina Error messages in Edje Edit This first commit only includes errors ocurred during group deletion By: Thiago Ribeiro Masaki <ma...@pr...> Author: sachiel Date: 2010-09-01 10:15:52 -0700 (Wed, 01 Sep 2010) New Revision: 51817 Modified: trunk/edje/src/lib/Edje_Edit.h trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/Edje_Edit.h =================================================================== --- trunk/edje/src/lib/Edje_Edit.h 2010-09-01 14:37:18 UTC (rev 51816) +++ trunk/edje/src/lib/Edje_Edit.h 2010-09-01 17:15:52 UTC (rev 51817) @@ -3371,7 +3371,19 @@ EAPI const char * edje_edit_script_get(Evas_Object *obj); +//@} +/******************************************************************************/ +/************************** ERROR API ***********************************/ +/******************************************************************************/ +/** @name Error API + * to deal with error messages (see @ref edcref). + */ //@{ +EAPI extern Eina_Error EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED; +EAPI extern Eina_Error EDJE_EDIT_ERROR_GROUP_REFERENCED; +EAPI extern Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST; + + #ifdef __cplusplus } #endif Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-09-01 14:37:18 UTC (rev 51816) +++ trunk/edje/src/lib/edje_edit.c 2010-09-01 17:15:52 UTC (rev 51817) @@ -30,7 +30,14 @@ #include "edje_private.h" +static const char EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED_STR[] = "Current group cannot be deleted"; +static const char EDJE_EDIT_ERROR_GROUP_REFERENCED_STR[] = "Group still in use"; +static const char EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST_STR[] = "Group does not exist"; +EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED = 0 ; +EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_REFERENCED = 0; +EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0; + /* Get ed(Edje*) from obj(Evas_Object*) */ #define GET_ED_OR_RETURN(RET) \ Edje *ed; \ @@ -176,9 +183,25 @@ return _edje_edit_parent_sc->file_set(obj, file, group); } +static void +_edje_edit_error_register(void) +{ + EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = + eina_error_msg_static_register(EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST_STR); + EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED = + eina_error_msg_static_register(EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED_STR); + EDJE_EDIT_ERROR_GROUP_REFERENCED = + eina_error_msg_static_register(EDJE_EDIT_ERROR_GROUP_REFERENCED_STR); +} + EAPI Evas_Object * edje_edit_object_add(Evas *e) { + eina_error_set(0); + + if (!EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST) + _edje_edit_error_register(); + return evas_object_smart_add(e, _edje_edit_smart_class_new()); } /* End of Edje_Edit smart stuff */ @@ -821,6 +844,7 @@ EAPI void edje_edit_string_list_free(Eina_List *lst) { + eina_error_set(0); //printf("FREE LIST: \n"); while (lst) { @@ -833,12 +857,16 @@ EAPI void edje_edit_string_free(const char *str) { + eina_error_set(0); + if (str) eina_stringshare_del(str); } EAPI const char* edje_edit_compiler_get(Evas_Object *obj) { + eina_error_set(0); + GET_ED_OR_RETURN(0); return eina_stringshare_add(ed->file->compiler); } @@ -874,6 +902,8 @@ int search; //Code *cd; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); //printf("ADD GROUP: %s \n", name); @@ -980,25 +1010,40 @@ Eet_File *eetf; char buf[32]; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); /* if (eina_hash_find(ed->file->collection_hash, group_name)) */ /* return EINA_FALSE; */ - if (strcmp(ed->group, group_name) == 0) return EINA_FALSE; + if (strcmp(ed->group, group_name) == 0) + { + eina_error_set(EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED); + return EINA_FALSE; + } - _edje_edit_group_references_update(obj, group_name, NULL); - e = eina_hash_find(ed->file->collection, group_name); - if (!e) return EINA_FALSE; + if (!e) + { + eina_error_set(EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST); + return EINA_FALSE; + } - if (e->id == ed->collection->id) return EINA_FALSE; + if (e->id == ed->collection->id) + { + eina_error_set(EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED); + return EINA_FALSE; + } + if (e->ref) { - ERR("EEK: Group \"%s\" still in use !", group_name); + eina_error_set(EDJE_EDIT_ERROR_GROUP_REFERENCED); return EINA_FALSE; } + _edje_edit_group_references_update(obj, group_name, NULL); + EINA_LIST_FOREACH(ed->file->collection_cache, l, g) if (g->id == e->id) { @@ -1034,6 +1079,8 @@ EAPI Eina_Bool edje_edit_group_exist(Evas_Object *obj, const char *group) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (eina_hash_find(ed->file->collection, group)) @@ -1047,6 +1094,8 @@ Edje_Part_Collection_Directory_Entry *pce; Edje_Part_Collection *pc; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!new_name) return EINA_FALSE; @@ -1078,6 +1127,7 @@ EAPI int \ edje_edit_group_##Class##_##Value##_get(Evas_Object *obj) \ { \ + eina_error_set(0); \ GET_ED_OR_RETURN(-1); \ if (!ed->collection) return -1; \ return ed->collection->prop.Class.Value; \ @@ -1085,6 +1135,7 @@ EAPI void \ edje_edit_group_##Class##_##Value##_set(Evas_Object *obj, int v) \ { \ + eina_error_set(0); \ GET_ED_OR_RETURN(); \ ed->collection->prop.Class.Value = v; \ } @@ -1105,6 +1156,8 @@ Eina_List *datas = NULL; const char *key; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!ed->file || !ed->collection || !ed->collection->data) @@ -1128,6 +1181,8 @@ Eina_List *datas = NULL; const char *key; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!ed->file || !ed->file->data) @@ -1148,6 +1203,8 @@ { Edje_String *es; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!key || !ed->file || !ed->collection) @@ -1178,6 +1235,8 @@ { Edje_String *es; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!itemname || !ed->file) @@ -1205,6 +1264,8 @@ { Edje_String *value; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!key || !ed->file || !ed->collection) @@ -1225,6 +1286,8 @@ { Edje_String *value; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!itemname || !ed->file || !ed->file->data) @@ -1246,6 +1309,8 @@ { Edje_String *value; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!key || !ed->file || !ed->collection) @@ -1263,6 +1328,8 @@ { Edje_String *value; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!itemname || !ed->file || !ed->file->data) @@ -1280,6 +1347,8 @@ { Edje_String *es; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!key || !value || !ed->file || !ed->collection) @@ -1302,6 +1371,8 @@ { Edje_String *es; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!itemname || !value || !ed->file || !ed->file->data) @@ -1321,6 +1392,9 @@ EAPI Eina_Bool edje_edit_group_data_name_set(Evas_Object *obj, const char *key, const char *new_key) { + + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!key || !new_key || !ed->file || !ed->collection) { @@ -1333,6 +1407,9 @@ EAPI Eina_Bool edje_edit_data_name_set(Evas_Object *obj, const char *itemname, const char *newname) { + + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!itemname || !newname || !ed->file || !ed->file->data) @@ -1352,6 +1429,8 @@ Eina_List *l; Edje_Color_Class *cc; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!ed->file || !ed->file->color_classes) @@ -1369,6 +1448,8 @@ Eina_List *l; Edje_Color_Class *cc; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!ed->file || !ed->file->color_classes) @@ -1403,6 +1484,8 @@ Eina_List *l; Edje_Color_Class *cc; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!ed->file || !ed->file->color_classes) @@ -1438,6 +1521,8 @@ Edje_Color_Class *c; Edje_Color_Class *cc; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!name || !ed->file) @@ -1466,6 +1551,8 @@ Eina_List *l; Edje_Color_Class *cc; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!name || !ed->file || !ed->file->color_classes) @@ -1488,6 +1575,8 @@ Eina_List *l; Edje_Color_Class *cc; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!ed->file || !ed->file->color_classes) @@ -1517,6 +1606,8 @@ Eina_List *l; Edje_Style *s; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!ed->file || !ed->file->styles) @@ -1532,6 +1623,9 @@ edje_edit_style_add(Evas_Object * obj, const char* style) { Edje_Style *s; + + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); //printf("ADD STYLE '%s'\n", style); @@ -1553,6 +1647,8 @@ { Edje_Style *s; + eina_error_set(0); + GET_ED_OR_RETURN(); //printf("DEL STYLE '%s'\n", style); @@ -1591,6 +1687,8 @@ Edje_Style *s; Edje_Style_Tag *t; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!ed->file || !ed->file->styles || !style) return NULL; @@ -1609,6 +1707,8 @@ { Edje_Style_Tag *t; + eina_error_set(0); + GET_ED_OR_RETURN(); //printf("SET TAG NAME for '%s' FOR STYLE '%s'\n", tag, style); @@ -1626,6 +1726,8 @@ { Edje_Style_Tag *t; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); //printf("GET TAG '%s' FOR STYLE '%s'\n", tag, style); @@ -1644,6 +1746,8 @@ { Edje_Style_Tag *t; + eina_error_set(0); + GET_ED_OR_RETURN(); //printf("SET TAG VALUE for '%s' FOR STYLE '%s'\n", tag, style); @@ -1662,6 +1766,8 @@ Edje_Style *s; Edje_Style_Tag *t; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); //printf("ADD TAG '%s' IN STYLE '%s'\n", tag_name, style); @@ -1687,6 +1793,8 @@ Edje_Style *s; Edje_Style_Tag *t; + eina_error_set(0); + GET_ED_OR_RETURN(); //printf("DEL TAG '%s' IN STYLE '%s'\n", tag, style); @@ -1712,6 +1820,8 @@ Eina_List *externals = NULL; unsigned int i; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!ed->file || !ed->file->external_dir) @@ -1731,6 +1841,8 @@ unsigned int freeid; unsigned int i; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); e = _edje_edit_external_get(ed, external); @@ -1771,6 +1883,8 @@ { Edje_External_Directory_Entry *e; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); e = _edje_edit_external_get(ed, external); @@ -1792,6 +1906,8 @@ Eina_List *parts = NULL; unsigned int i; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); //printf("EE: Found %d parts\n", ed->table_parts_size); @@ -1811,6 +1927,8 @@ EAPI Eina_Bool edje_edit_part_name_set(Evas_Object *obj, const char* part, const char* new_name) { + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); if (!new_name) return EINA_FALSE; @@ -1829,12 +1947,14 @@ EAPI const char * \ edje_edit_part_api_##Value##_get(Evas_Object *obj, const char *part) \ { \ + eina_error_set(0); \ GET_RP_OR_RETURN(NULL); \ return eina_stringshare_add(rp->part->api.Value); \ } \ EAPI Eina_Bool \ edje_edit_part_api_##Value##_set(Evas_Object *obj, const char *part, const char *s) \ { \ + eina_error_set(0); \ GET_RP_OR_RETURN(EINA_FALSE); \ _edje_if_string_free(ed, rp->part->api.Value); \ rp->part->api.Value = eina_stringshare_add(s); \ @@ -2002,6 +2122,8 @@ EAPI Eina_Bool edje_edit_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type) { + eina_error_set(0); + if (type == EDJE_PART_TYPE_EXTERNAL) return EINA_FALSE; return _edje_edit_real_part_add(obj, name, type, NULL); @@ -2010,6 +2132,8 @@ EAPI Eina_Bool edje_edit_part_external_add(Evas_Object *obj, const char *name, const char *source) { + eina_error_set(0); + if (!source) return EINA_FALSE; return _edje_edit_real_part_add(obj, name, EDJE_PART_TYPE_EXTERNAL, source); @@ -2025,6 +2149,8 @@ unsigned int id; unsigned int i; + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); //printf("REMOVE PART: %s\n", part); @@ -2120,6 +2246,8 @@ EAPI Eina_Bool edje_edit_part_exist(Evas_Object *obj, const char *part) { + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); return EINA_TRUE; } @@ -2129,6 +2257,8 @@ { Edje_Real_Part *prev; + eina_error_set(0); + GET_RP_OR_RETURN(0); if (rp->part->id < 1) return NULL; @@ -2143,6 +2273,8 @@ { Edje_Real_Part *next; + eina_error_set(0); + GET_RP_OR_RETURN(0); if ((unsigned int) rp->part->id >= ed->table_parts_size - 1) return 0; @@ -2159,6 +2291,8 @@ Edje_Real_Part *prev; Edje_Part *swap; + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); //printf("RESTACK PART: %s BELOW\n", part); @@ -2189,6 +2323,8 @@ Edje_Real_Part *next; Edje_Part *swap; + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); //printf("RESTACK PART: %s ABOVE\n", part); @@ -2217,6 +2353,9 @@ EAPI Edje_Part_Type edje_edit_part_type_get(Evas_Object *obj, const char *part) { + + eina_error_set(0); + GET_RP_OR_RETURN(0); return rp->part->type; @@ -2225,6 +2364,8 @@ EAPI const char * edje_edit_part_selected_state_get(Evas_Object *obj, const char *part, double *value) { + eina_error_set(0); + GET_RP_OR_RETURN(NULL); if (!rp->chosen_description) @@ -2242,6 +2383,8 @@ { Edje_Part_Description_Common *pd; + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); pd = _edje_part_description_find_byname(eed, part, state, value); @@ -2259,6 +2402,8 @@ { Edje_Real_Part *clip = NULL; + eina_error_set(0); + GET_RP_OR_RETURN(NULL); //printf("Get clip_to for part: %s [to_id: %d]\n", part, rp->part->clip_to_id); @@ -2276,6 +2421,8 @@ Edje_Real_Part *clip; Evas_Object *o, *oo; + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); /* unset clipping */ @@ -2331,6 +2478,8 @@ EAPI Eina_Bool edje_edit_part_mouse_events_get(Evas_Object *obj, const char *part) { + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); //printf("Get mouse_events for part: %s [%d]\n", part, rp->part->mouse_events); return rp->part->mouse_events; @@ -2339,6 +2488,8 @@ EAPI void edje_edit_part_mouse_events_set(Evas_Object *obj, const char *part, Eina_Bool mouse_events) { + eina_error_set(0); + GET_RP_OR_RETURN(); if (!rp->object) return; @@ -2362,6 +2513,8 @@ EAPI Eina_Bool edje_edit_part_repeat_events_get(Evas_Object *obj, const char *part) { + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); //printf("Get repeat_events for part: %s [%d]\n", part, rp->part->repeat_events); @@ -2371,6 +2524,8 @@ EAPI void edje_edit_part_repeat_events_set(Evas_Object *obj, const char *part, Eina_Bool repeat_events) { + eina_error_set(0); + GET_RP_OR_RETURN(); if (!rp->object) return; @@ -2388,6 +2543,8 @@ EAPI Evas_Event_Flags edje_edit_part_ignore_flags_get(Evas_Object *obj, const char *part) { + eina_error_set(0); + GET_RP_OR_RETURN(0); return rp->part->ignore_flags; @@ -2396,6 +2553,8 @@ EAPI void edje_edit_part_ignore_flags_set(Evas_Object *obj, const char *part, Evas_Event_Flags ignore_flags) { + eina_error_set(0); + GET_RP_OR_RETURN(); if (!rp->object) return; @@ -2407,6 +2566,8 @@ EAPI void edje_edit_part_scale_set(Evas_Object *obj, const char *part, Eina_Bool scale) { + eina_error_set(0); + GET_RP_OR_RETURN(); rp->part->scale = scale; @@ -2416,6 +2577,8 @@ EAPI Eina_Bool edje_edit_part_scale_get(Evas_Object *obj, const char *part) { + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); return rp->part->scale; @@ -2425,6 +2588,7 @@ edje_edit_part_source_get(Evas_Object *obj, const char *part) { //Edje_Real_Part *clip = NULL; + eina_error_set(0); GET_RP_OR_RETURN(NULL); @@ -2437,6 +2601,8 @@ EAPI Eina_Bool edje_edit_part_source_set(Evas_Object *obj, const char *part, const char *source) { + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); Evas_Object *child_obj; @@ -2468,6 +2634,8 @@ EAPI int edje_edit_part_drag_x_get(Evas_Object *obj, const char *part) { + eina_error_set(0); + GET_RP_OR_RETURN(0); //printf("Get dragX for part: %s\n", part); return rp->part->dragable.x; @@ -2476,6 +2644,8 @@ EAPI void edje_edit_part_drag_x_set(Evas_Object *obj, const char *part, int drag) { + eina_error_set(0); + GET_RP_OR_RETURN(); //printf("Set dragX for part: %s\n", part); rp->part->dragable.x = drag; @@ -2499,6 +2669,8 @@ EAPI int edje_edit_part_drag_y_get(Evas_Object *obj, const char *part) { + eina_error_set(0); + GET_RP_OR_RETURN(0); //printf("Get dragY for part: %s\n", part); return rp->part->dragable.y; @@ -2507,6 +2679,8 @@ EAPI void edje_edit_part_drag_y_set(Evas_Object *obj, const char *part, int drag) { + eina_error_set(0); + GET_RP_OR_RETURN(); //printf("Set dragY for part: %s\n", part); rp->part->dragable.y = drag; @@ -2531,12 +2705,14 @@ EAPI int \ edje_edit_part_drag_##Class##_##Value##_get(Evas_Object *obj, const char *part) \ { \ + eina_error_set(0); \ GET_RP_OR_RETURN(0); \ return rp->part->dragable.Class##_##Value; \ } \ EAPI void \ edje_edit_part_drag_##Class##_##Value##_set(Evas_Object *obj, const char *part, int v) \ { \ + eina_error_set(0); \ GET_RP_OR_RETURN(); \ rp->part->dragable.Class##_##Value = v; \ } @@ -2552,6 +2728,8 @@ { \ Edje_Real_Part *p; \ \ + eina_error_set(0); \ + \ GET_RP_OR_RETURN(NULL); \ \ if (rp->part->dragable.Id##_id < 0) \ @@ -2565,6 +2743,8 @@ { \ Edje_Real_Part *e_part; \ \ + eina_error_set(0); \ + \ GET_RP_OR_RETURN(); \ if (!e) \ { \ @@ -2589,6 +2769,8 @@ Eina_List *states = NULL; unsigned int i; + eina_error_set(0); + GET_RP_OR_RETURN(NULL); //Is there a better place to put this? maybe edje_edit_init() ? @@ -2625,6 +2807,8 @@ int part_id; int i; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); //printf("Set name of state: %s in part: %s [new name: %s]\n", // part, state, new_name); @@ -2670,6 +2854,8 @@ Edje_Part_Description_Common *pd; unsigned int i; + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); if (!edje_edit_state_exist(obj, part, state, value)) @@ -2939,6 +3125,8 @@ EAPI Eina_Bool edje_edit_state_exist(Evas_Object *obj, const char *part, const char *state, double value) { + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); return EINA_TRUE; } @@ -2949,6 +3137,8 @@ Edje_Part_Description_Common *pdfrom, *pdto; Edje_External_Param *p; + eina_error_set(0); + GET_RP_OR_RETURN(EINA_FALSE); pdfrom = _edje_part_description_find_byname(eed, part, from, val_from); @@ -3106,12 +3296,14 @@ EAPI double \ edje_edit_state_##Sub##_relative_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(0); \ return TO_DOUBLE(pd->Sub.relative_##Value); \ } \ EAPI void \ edje_edit_state_##Sub##_relative_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(); \ pd->Sub.relative_##Value = FROM_DOUBLE(v); \ edje_object_calc_force(obj); \ @@ -3122,16 +3314,18 @@ FUNC_STATE_RELATIVE_DOUBLE(rel2, x); FUNC_STATE_RELATIVE_DOUBLE(rel2, y); -#define FUNC_STATE_OFFSET_INT(Sub, Value) \ +#define FUNC_STATE_OFFSET_INT(Sub, Value) \ EAPI int \ edje_edit_state_##Sub##_offset_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(0); \ return pd->Sub.offset_##Value; \ } \ EAPI void \ edje_edit_state_##Sub##_offset_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(); \ pd->Sub.offset_##Value = TO_INT(FROM_DOUBLE(v)); \ edje_object_calc_force(obj); \ @@ -3148,6 +3342,8 @@ { \ Edje_Real_Part *rel; \ \ + eina_error_set(0); \ + \ GET_PD_OR_RETURN(NULL); \ \ if (pd->Sub.id_##Value == -1) return NULL; \ @@ -3162,6 +3358,8 @@ { \ Edje_Real_Part *relp; \ \ + eina_error_set(0); \ + \ GET_PD_OR_RETURN(); \ \ if (to) \ @@ -3188,6 +3386,7 @@ EAPI void \ edje_edit_state_##Code##_get(Evas_Object *obj, const char *part, const char *state, double value, int *r, int *g, int *b, int *a) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(); \ \ if (r) *r = pd->Code.r; \ @@ -3198,6 +3397,7 @@ EAPI void \ edje_edit_state_##Code##_set(Evas_Object *obj, const char *part, const char *state, double value, int r, int g, int b, int a) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(); \ \ if (r > -1 && r < 256) pd->Code.r = r; \ @@ -3216,6 +3416,8 @@ { Edje_Part_Description_Text *txt; + eina_error_set(0); + GET_PD_OR_RETURN(); if ((rp->part->type != EDJE_PART_TYPE_TEXT) && @@ -3241,6 +3443,8 @@ { Edje_Part_Description_Text *txt; + eina_error_set(0); + GET_PD_OR_RETURN(); if ((rp->part->type != EDJE_PART_TYPE_TEXT) && @@ -3261,12 +3465,14 @@ EAPI double \ edje_edit_state_##Class##_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(0); \ return TO_DOUBLE(pd->Class.Value); \ } \ EAPI void \ edje_edit_state_##Class##_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(); \ pd->Class.Value = FROM_DOUBLE(v); \ edje_object_calc_force(obj); \ @@ -3276,12 +3482,14 @@ EAPI int \ edje_edit_state_##Class##_##Value##_get(Evas_Object *obj, const char *part, const char *state, double value) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(0); \ return pd->Class.Value; \ } \ EAPI void \ edje_edit_state_##Class##_##Value##_set(Evas_Object *obj, const char *part, const char *state, double value, int v) \ { \ + eina_error_set(0); \ GET_PD_OR_RETURN(); \ pd->Class.Value = v; \ edje_object_calc_force(obj); \ @@ -3302,6 +3510,8 @@ { \ Edje_Part_Description_Image *img; \ \ + eina_error_set(0); \ + \ GET_PD_OR_RETURN(0); \ \ if (rp->part->type != EDJE_PART_TYPE_IMAGE) \ @@ -3316,6 +3526,8 @@ { \ Edje_Part_Description_Image *img; \ \ + eina_error_set(0); \ + \ GET_PD_OR_RETURN(); \ \ if (rp->part->type != EDJE_PART_TYPE_IMAGE) \ @@ -3333,6 +3545,8 @@ { \ Edje_Part_Description_Image *img; \ \ + eina_error_set(0); \ + \ GET_PD_OR_RETURN(0); \ \ if (rp->part->type != EDJE_PART_TYPE_IMAGE) \ @@ -3347,6 +3561,8 @@ { \ Edje_Part_Description_Image *img; \ \ + eina_error_set(0); \ + \ GET_PD_OR_RETURN(); \ \ if (rp->part->type != EDJE_PART_TYPE_IMAGE) \ @@ -3371,7 +3587,10 @@ EAPI Eina_Bool edje_edit_state_visible_get(Evas_Object *obj, const char *part, const char *state, double value) { + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); + //printf("Get state visible flag of part: %s state: %s\n", part, state); return pd->visible; } @@ -3379,6 +3598,8 @@ EAPI void edje_edit_state_visible_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool visible) { + eina_error_set(0); + GET_PD_OR_RETURN(); //printf("Set state visible flag of part: %s state: %s to: %d\n", part, state, visible); if (visible) pd->visible = 1; @@ -3389,6 +3610,8 @@ EAPI unsigned char edje_edit_state_aspect_pref_get(Evas_Object *obj, const char *part, const char *state, double value) { + eina_error_set(0); + GET_PD_OR_RETURN(0); //printf("GET ASPECT_PREF of state '%s' [%d]\n", state, pd->aspect.prefer); @@ -3398,6 +3621,8 @@ EAPI void edje_edit_state_aspect_pref_set(Evas_Object *obj, const char *part, const char *state, double value, unsigned char pref) { + eina_error_set(0); + GET_PD_OR_RETURN(); //printf("SET ASPECT_PREF of state '%s' [to: %d]\n", state, pref); @@ -3407,6 +3632,8 @@ EAPI const char* edje_edit_state_color_class_get(Evas_Object *obj, const char *part, const char *state, double value) { + eina_error_set(0); + GET_PD_OR_RETURN(NULL); //printf("Get ColorClass of part: %s state: %s\n", part, state); return eina_stringshare_add(pd->color_class); @@ -3415,6 +3642,8 @@ EAPI void edje_edit_state_color_class_set(Evas_Object *obj, const char *part, const char *state, double value, const char *color_class) { + eina_error_set(0); + GET_PD_OR_RETURN(); //printf("Set ColorClass of part: %s state: %s [to: %s]\n", part, state, color_class); _edje_if_string_free(ed, pd->color_class); @@ -3426,6 +3655,8 @@ { Edje_Part_Description_External *external; + eina_error_set(0); + GET_PD_OR_RETURN(NULL); if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) @@ -3443,6 +3674,8 @@ Edje_External_Param *p; Eina_List *l; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) @@ -3484,6 +3717,8 @@ Edje_External_Param *p; Eina_List *l; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) @@ -3514,6 +3749,8 @@ Edje_External_Param *p; Eina_List *l; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) @@ -3544,6 +3781,8 @@ Edje_External_Param *p; Eina_List *l; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) @@ -3574,6 +3813,8 @@ Edje_External_Param *p; Eina_List *l; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) @@ -3604,6 +3845,8 @@ Edje_External_Param *p; Eina_List *l; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) @@ -3647,6 +3890,8 @@ Edje_External_Param *p = NULL, old_p = { 0, 0, 0, 0, 0 }; int found = 0; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) @@ -3741,30 +3986,35 @@ EAPI Eina_Bool edje_edit_state_external_param_int_set(Evas_Object *obj, const char *part, const char *state, double value, const char *param, int val) { + eina_error_set(0); return edje_edit_state_external_param_set(obj, part, state, value, param, EDJE_EXTERNAL_PARAM_TYPE_INT, val); } EAPI Eina_Bool edje_edit_state_external_param_bool_set(Evas_Object *obj, const char *part, const char *state, double value, const char *param, Eina_Bool val) { + eina_error_set(0); return edje_edit_state_external_param_set(obj, part, state, value, param, EDJE_EXTERNAL_PARAM_TYPE_BOOL, (int)val); } EAPI Eina_Bool edje_edit_state_external_param_double_set(Evas_Object *obj, const char *part, const char *state, double value, const char *param, double val) { + eina_error_set(0); return edje_edit_state_external_param_set(obj, part, state, value, param, EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, val); } EAPI Eina_Bool edje_edit_state_external_param_string_set(Evas_Object *obj, const char *part, const char *state, double value, const char *param, const char *val) { + eina_error_set(0); return edje_edit_state_external_param_set(obj, part, state, value, param, EDJE_EXTERNAL_PARAM_TYPE_STRING, val); } EAPI Eina_Bool edje_edit_state_external_param_choice_set(Evas_Object *obj, const char *part, const char *state, double value, const char *param, const char *val) { + eina_error_set(0); return edje_edit_state_external_param_set(obj, part, state, value, param, EDJE_EXTERNAL_PARAM_TYPE_CHOICE, val); } @@ -3777,6 +4027,8 @@ { Edje_Part_Description_Text *txt; + eina_error_set(0); + GET_PD_OR_RETURN(NULL); if ((rp->part->type != EDJE_PART_TYPE_TEXT) && @@ -3794,6 +4046,8 @@ { Edje_Part_Description_Text *txt; + eina_error_set(0); + GET_PD_OR_RETURN(); //printf("SET TEXT of state: %s\n", state); @@ -3818,6 +4072,8 @@ { Edje_Part_Description_Text *txt; + eina_error_set(0); + GET_PD_OR_RETURN(-1); if ((rp->part->type != EDJE_PART_TYPE_TEXT) && @@ -3834,6 +4090,8 @@ { Edje_Part_Description_Text *txt; + eina_error_set(0); + GET_PD_OR_RETURN(); //printf("SET TEXT_SIZE of state: %s [%d]\n", state, size); @@ -3857,6 +4115,8 @@ { \ Edje_Part_Description_Text *txt; \ \ + eina_error_set(0); \ + \ GET_PD_OR_RETURN(0); \ \ if ((rp->part->type != EDJE_PART_TYPE_TEXT) && \ @@ -3871,6 +4131,8 @@ { \ Edje_Part_Description_Text *txt; \ \ + eina_error_set(0); \ + \ GET_PD_OR_RETURN(); \ \ if ((rp->part->type != EDJE_PART_TYPE_TEXT) && \ @@ -3892,6 +4154,8 @@ { \ Edje_Part_Description_Text *txt; \ \ + eina_error_set(0); \ + \ GET_PD_OR_RETURN(EINA_FALSE); \ \ if ((rp->part->type != EDJE_PART_TYPE_TEXT) && \ @@ -3927,6 +4191,8 @@ Eina_List *fonts = NULL; Edje_Font_Directory_Entry *f; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!ed->file || !ed->file->fonts) return NULL; @@ -3950,6 +4216,8 @@ struct stat st; Edje_Font_Directory_Entry *fnt; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); INF("ADD FONT: %s\n", path); @@ -4014,6 +4282,8 @@ { Edje_Font_Directory_Entry *fnt; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); INF("DEL FONT: %s\n", alias); @@ -4070,6 +4340,8 @@ { Edje_Part_Description_Text *txt; + eina_error_set(0); + GET_PD_OR_RETURN(NULL); if ((rp->part->type != EDJE_PART_TYPE_TEXT) && @@ -4086,6 +4358,8 @@ { Edje_Part_Description_Text *txt; + eina_error_set(0); + GET_PD_OR_RETURN(); if ((rp->part->type != EDJE_PART_TYPE_TEXT) && @@ -4104,6 +4378,8 @@ EAPI Edje_Text_Effect edje_edit_part_effect_get(Evas_Object *obj, const char *part) { + eina_error_set(0); + GET_RP_OR_RETURN(0); //printf("GET EFFECT of part: %s\n", part); @@ -4113,6 +4389,8 @@ EAPI void edje_edit_part_effect_set(Evas_Object *obj, const char *part, Edje_Text_Effect effect) { + eina_error_set(0); + GET_RP_OR_RETURN(); //printf("SET EFFECT of part: %s [%d]\n", part, effect); @@ -4131,6 +4409,8 @@ Eina_List *images = NULL; unsigned int i; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!ed->file) return NULL; @@ -4152,6 +4432,8 @@ int free_id = -1; char *name; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!path) return EINA_FALSE; @@ -4220,6 +4502,8 @@ Edje_Image_Directory_Entry *de; unsigned int i; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!name) return EINA_FALSE; @@ -4290,6 +4574,8 @@ { Edje_Image_Directory_Entry *de; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); if (!name) return EINA_FALSE; @@ -4318,6 +4604,8 @@ EAPI int edje_edit_image_id_get(Evas_Object *obj, const char *image_name) { + eina_error_set(0); + return _edje_image_id_find(obj, image_name); } @@ -4327,6 +4615,8 @@ Edje_Image_Directory_Entry *de = NULL; unsigned int i; + eina_error_set(0); + GET_ED_OR_RETURN(-1); if (!ed->file) return -1; @@ -4368,6 +4658,8 @@ Edje_Image_Directory_Entry *de; unsigned int i; + eina_error_set(0); + GET_ED_OR_RETURN(-1); // Gets the Image Entry @@ -4391,6 +4683,8 @@ Edje_Part_Description_Image *img; char *image; + eina_error_set(0); + GET_PD_OR_RETURN(NULL); if (rp->part->type != EDJE_PART_TYPE_IMAGE) @@ -4411,6 +4705,8 @@ Edje_Part_Description_Image *img; int id; + eina_error_set(0); + GET_PD_OR_RETURN(); if (!image) return; @@ -4436,6 +4732,8 @@ const char *name; unsigned int i; + eina_error_set(0); + GET_PD_OR_RETURN(NULL); if (rp->part->type != EDJE_PART_TYPE_IMAGE) @@ -4461,6 +4759,8 @@ Edje_Part_Image_Id *i; int id; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); if (rp->part->type != EDJE_PART_TYPE_IMAGE) @@ -4498,6 +4798,8 @@ unsigned int i; int search; + eina_error_set(0); + GET_PD_OR_RETURN(EINA_FALSE); if (rp->part->type != EDJE_PART_TYPE_IMAGE) @@ -4530,6 +4832,8 @@ { Edje_Part_Description_Image *img; + eina_error_set(0); + GET_PD_OR_RETURN(); if (rp->part->type != EDJE_PART_TYPE_IMAGE) @@ -4556,6 +4860,8 @@ { Edje_Part_Description_Image *img; + eina_error_set(0); + GET_PD_OR_RETURN(); if (rp->part->type != EDJE_PART_TYPE_IMAGE) @@ -4578,6 +4884,8 @@ { Edje_Part_Description_Image *img; + eina_error_set(0); + GET_PD_OR_RETURN(0); if (rp->part->type != EDJE_PART_TYPE_IMAGE) @@ -4596,6 +4904,8 @@ { Edje_Part_Description_Image *img; + eina_error_set(0); + GET_PD_OR_RETURN(); if (rp->part->type != EDJE_PART_TYPE_IMAGE) @@ -4638,6 +4948,8 @@ Eina_List *progs = NULL; int i; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); //printf("EE: Found %d programs\n", ed->table_programs_size); @@ -4659,6 +4971,8 @@ Edje_Program *epr; Edje_Part_Collection *pc; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); //printf("ADD PROGRAM [new name: %s]\n", name); @@ -4723,6 +5037,8 @@ int id, i; int old_id = -1; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -4797,6 +5113,8 @@ EAPI Eina_Bool edje_edit_program_exist(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); return EINA_TRUE; @@ -4805,6 +5123,8 @@ EAPI Eina_Bool edje_edit_program_run(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -4815,6 +5135,8 @@ EAPI Eina_Bool edje_edit_program_name_set(Evas_Object *obj, const char *prog, const char* new_name) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -4833,6 +5155,8 @@ EAPI const char * edje_edit_program_source_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(NULL); if (!epr->source) return NULL; @@ -4843,6 +5167,8 @@ EAPI Eina_Bool edje_edit_program_source_set(Evas_Object *obj, const char *prog, const char *source) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -4866,6 +5192,8 @@ EAPI const char * edje_edit_program_filter_part_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(NULL); if (!epr->filter.part) return NULL; @@ -4875,6 +5203,8 @@ EAPI Eina_Bool edje_edit_program_filter_part_set(Evas_Object *obj, const char *prog, const char *filter_part) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -4889,6 +5219,8 @@ EAPI const char * edje_edit_program_filter_state_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(NULL); if (!epr->filter.state) return NULL; @@ -4898,6 +5230,8 @@ EAPI Eina_Bool edje_edit_program_filter_state_set(Evas_Object *obj, const char *prog, const char *filter_state) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -4912,6 +5246,8 @@ EAPI const char * edje_edit_program_signal_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(NULL); if (!epr->signal) return NULL; @@ -4922,6 +5258,8 @@ EAPI Eina_Bool edje_edit_program_signal_set(Evas_Object *obj, const char *prog, const char *signal) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -4945,6 +5283,8 @@ EAPI const char * edje_edit_program_state_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(NULL); if (!epr->state) return NULL; @@ -4955,6 +5295,8 @@ EAPI Eina_Bool edje_edit_program_state_set(Evas_Object *obj, const char *prog, const char *state) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -4969,6 +5311,8 @@ EAPI const char * edje_edit_program_state2_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(NULL); if (!epr->state2) return NULL; @@ -4979,6 +5323,8 @@ EAPI Eina_Bool edje_edit_program_state2_set(Evas_Object *obj, const char *prog, const char *state2) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -4993,6 +5339,8 @@ EAPI double edje_edit_program_value_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(-1); //printf("GET VALUE for program: %s [%s %.2f]\n", prog, epr->state, epr->value); @@ -5002,6 +5350,8 @@ EAPI Eina_Bool edje_edit_program_value_set(Evas_Object *obj, const char *prog, double value) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); //printf("SET VALUE for program: %s [%.2f]\n", prog, value); @@ -5012,6 +5362,8 @@ EAPI double edje_edit_program_value2_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(-1); //printf("GET VALUE2 for program: %s [%s %.2f]\n", prog, epr->state2, epr->value2); @@ -5021,6 +5373,8 @@ EAPI Eina_Bool edje_edit_program_value2_set(Evas_Object *obj, const char *prog, double value) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); //printf("SET VALUE for program: %s [%.2f]\n", prog, value); @@ -5031,6 +5385,8 @@ EAPI double edje_edit_program_in_from_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(0); //printf("GET IN.FROM for program: %s [%f]\n", prog, epr->in.from); @@ -5040,6 +5396,8 @@ EAPI Eina_Bool edje_edit_program_in_from_set(Evas_Object *obj, const char *prog, double seconds) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); //printf("SET IN.FROM for program: %s [%f]\n", prog, epr->in.from); @@ -5050,6 +5408,8 @@ EAPI double edje_edit_program_in_range_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(0); //printf("GET IN.RANGE for program: %s [%f]\n", prog, epr->in.range); @@ -5059,6 +5419,8 @@ EAPI Eina_Bool edje_edit_program_in_range_set(Evas_Object *obj, const char *prog, double seconds) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); //printf("SET IN.RANGE for program: %s [%f]\n", prog, epr->in.range); @@ -5069,6 +5431,8 @@ EAPI Edje_Tween_Mode edje_edit_program_transition_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(-1); //printf("GET TRANSITION for program: %s [%d]\n", prog, epr->tween.mode); @@ -5078,6 +5442,8 @@ EAPI Eina_Bool edje_edit_program_transition_set(Evas_Object *obj, const char *prog, Edje_Tween_Mode transition) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); //printf("GET TRANSITION for program: %s [%d]\n", prog, epr->tween.mode); @@ -5088,6 +5454,8 @@ EAPI double edje_edit_program_transition_time_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(-1); //printf("GET TRANSITION_TIME for program: %s [%.4f]\n", prog, epr->tween.time); @@ -5097,6 +5465,8 @@ EAPI Eina_Bool edje_edit_program_transition_time_set(Evas_Object *obj, const char *prog, double seconds) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); //printf("GET TRANSITION_TIME for program: %s [%.4f]\n", prog, epr->tween.time); @@ -5107,6 +5477,8 @@ EAPI Edje_Action_Type edje_edit_program_action_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(-1); //printf("GET ACTION for program: %s [%d]\n", prog, epr->action); @@ -5116,6 +5488,8 @@ EAPI Eina_Bool edje_edit_program_action_set(Evas_Object *obj, const char *prog, Edje_Action_Type action) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); //printf("SET ACTION for program: %s [%d]\n", prog, action); @@ -5131,6 +5505,8 @@ Eina_List *l, *targets = NULL; Edje_Program_Target *t; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); GET_EPR_OR_RETURN(NULL); @@ -5164,6 +5540,8 @@ EAPI Eina_Bool edje_edit_program_targets_clear(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); while (epr->targets) @@ -5184,6 +5562,8 @@ int id; Edje_Program_Target *t; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -5224,6 +5604,8 @@ Eina_List *l; Edje_Program_Target *t; + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -5263,6 +5645,8 @@ Eina_List *l, *afters = NULL; Edje_Program_After *a; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); GET_EPR_OR_RETURN(NULL); @@ -5284,6 +5668,8 @@ EAPI Eina_Bool edje_edit_program_afters_clear(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); while (epr->after) @@ -5304,6 +5690,8 @@ Edje_Program *af; Edje_Program_After *a; + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); af = _edje_program_get_byname(obj, after); @@ -5326,6 +5714,8 @@ Edje_Program_After *a; Eina_List *l; + eina_error_set(0); + GET_EPR_OR_RETURN(EINA_FALSE); af = _edje_program_get_byname(obj, after); @@ -5344,6 +5734,8 @@ EAPI const char * edje_edit_program_api_name_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(NULL); return eina_stringshare_add(epr->api.name); @@ -5352,6 +5744,8 @@ EAPI const char * edje_edit_program_api_description_get(Evas_Object *obj, const char *prog) { + eina_error_set(0); + GET_EPR_OR_RETURN(NULL); return eina_stringshare_add(epr->api.description); @@ -5360,6 +5754,8 @@ EAPI Eina_Bool edje_edit_program_api_name_set(Evas_Object *obj, const char *prog, const char* name) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -5372,6 +5768,8 @@ EAPI Eina_Bool edje_edit_program_api_description_set(Evas_Object *obj, const char *prog, const char *description) { + eina_error_set(0); + GET_ED_OR_RETURN(EINA_FALSE); GET_EPR_OR_RETURN(EINA_FALSE); @@ -5389,6 +5787,8 @@ { Embryo_Program *script = NULL; + eina_error_set(0); + GET_ED_OR_RETURN(NULL); if (!ed->collection) return NULL; @@ -6475,12 +6875,16 @@ EAPI Eina_Bool edje_edit_save(Evas_Object *obj) { + eina_error_set(0); + return _edje_edit_internal_save(obj, 1); } EAPI Eina_Bool edje_edit_save_all(Evas_Object *obj) { + eina_error_set(0); + return _edje_edit_internal_save(obj, 0); } @@ -6491,6 +6895,8 @@ unsigned int i; int j; + eina_error_set(0); + GET_ED_OR_RETURN(); _edje_generate_source(obj); |
From: Enlightenment S. <no-...@en...> - 2010-09-03 14:37:54
|
Log: Don't put nulls in the list of programs, makes little sense. Author: sachiel Date: 2010-09-03 07:37:42 -0700 (Fri, 03 Sep 2010) New Revision: 51863 Modified: trunk/edje/src/lib/edje_edit.c Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-09-03 13:39:53 UTC (rev 51862) +++ trunk/edje/src/lib/edje_edit.c 2010-09-03 14:37:42 UTC (rev 51863) @@ -4959,6 +4959,9 @@ Edje_Program *epr; epr = ed->table_programs[i]; + /* XXX: bad, we miss programs this way, but since you can't access + * them in any way without a name, better ignore them. */ + if (!epr->name) continue; progs = eina_list_append(progs, eina_stringshare_add(epr->name)); } |
From: Enlightenment S. <no-...@en...> - 2010-09-22 14:52:30
|
Log: Don't include Edje_Edit.h in edje_private.h and make it obvious at compile time that this API is not meant to be used outside of editors. Author: sachiel Date: 2010-09-22 07:52:23 -0700 (Wed, 22 Sep 2010) New Revision: 52593 Modified: trunk/edje/src/lib/Edje_Edit.h trunk/edje/src/lib/edje_edit.c trunk/edje/src/lib/edje_private.h Modified: trunk/edje/src/lib/Edje_Edit.h =================================================================== --- trunk/edje/src/lib/Edje_Edit.h 2010-09-22 14:21:55 UTC (rev 52592) +++ trunk/edje/src/lib/Edje_Edit.h 2010-09-22 14:52:23 UTC (rev 52593) @@ -1,6 +1,10 @@ #ifndef _EDJE_EDIT_H #define _EDJE_EDIT_H +#ifndef EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT +#error "Do not use the Edje_Edit API unless you know what you are doing. It's meant only for writing editors and nothing else." +#endif + #include <Edje.h> #ifdef EAPI Modified: trunk/edje/src/lib/edje_edit.c =================================================================== --- trunk/edje/src/lib/edje_edit.c 2010-09-22 14:21:55 UTC (rev 52592) +++ trunk/edje/src/lib/edje_edit.c 2010-09-22 14:52:23 UTC (rev 52593) @@ -30,6 +30,9 @@ #include "edje_private.h" +#define EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT +#include "Edje_Edit.h" + static const char EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED_STR[] = "Current group cannot be deleted"; static const char EDJE_EDIT_ERROR_GROUP_REFERENCED_STR[] = "Group still in use"; static const char EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST_STR[] = "Group does not exist"; Modified: trunk/edje/src/lib/edje_private.h =================================================================== --- trunk/edje/src/lib/edje_private.h 2010-09-22 14:21:55 UTC (rev 52592) +++ trunk/edje/src/lib/edje_private.h 2010-09-22 14:52:23 UTC (rev 52593) @@ -35,7 +35,6 @@ #include <sys/time.h> #include "Edje.h" -#include "Edje_Edit.h" #include <lua.h> #include <lualib.h> |
From: Enlightenment S. <no-...@en...> - 2010-10-01 17:10:43
|
Log: Fix animators, don't run the program twice. Author: sachiel Date: 2010-10-01 10:10:37 -0700 (Fri, 01 Oct 2010) New Revision: 52953 Modified: trunk/edje/src/lib/edje_var.c Modified: trunk/edje/src/lib/edje_var.c =================================================================== --- trunk/edje/src/lib/edje_var.c 2010-10-01 16:49:31 UTC (rev 52952) +++ trunk/edje/src/lib/edje_var.c 2010-10-01 17:10:37 UTC (rev 52953) @@ -132,7 +132,6 @@ ed->file->path, embryo_program_max_cycle_run_get(ed->collection->script)); } - embryo_program_run(ed->collection->script, fn); embryo_program_data_set(ed->collection->script, pdata); embryo_program_vm_pop(ed->collection->script); _edje_recalc(ed); |
From: Enlightenment S. <no-...@en...> - 2010-10-07 14:46:06
|
Log: Cheking if start.layout is set before using it. When evas_object_show is called with a elm_layout object before resizing it the layout function is called before edje calc function, so the start layout is not yet set. By: Otavio Pontes <ot...@pr...> Author: sachiel Date: 2010-10-07 07:45:57 -0700 (Thu, 07 Oct 2010) New Revision: 53144 Modified: trunk/edje/src/lib/edje_box_layout.c Modified: trunk/edje/src/lib/edje_box_layout.c =================================================================== --- trunk/edje/src/lib/edje_box_layout.c 2010-10-07 14:14:02 UTC (rev 53143) +++ trunk/edje/src/lib/edje_box_layout.c 2010-10-07 14:45:57 UTC (rev 53144) @@ -99,9 +99,12 @@ Edje_Part_Box_Animation *anim = data; if (anim->progress < 0.01) { - evas_object_box_padding_set(obj, anim->start.padding.x, anim->start.padding.y); - evas_object_box_align_set(obj, TO_DOUBLE(anim->start.align.x), TO_DOUBLE(anim->start.align.y)); - anim->start.layout(obj, priv, anim->start.data); + if (anim->start.layout) + { + evas_object_box_padding_set(obj, anim->start.padding.x, anim->start.padding.y); + evas_object_box_align_set(obj, TO_DOUBLE(anim->start.align.x), TO_DOUBLE(anim->start.align.y)); + anim->start.layout(obj, priv, anim->start.data); + } return; } |
From: Enlightenment S. <no-...@en...> - 2010-10-29 17:15:06
|
Log: B-B-B-B-BETA BREAKER! As for Evas callbacks, let's have a del_full() version for the Edje signals. Author: sachiel Date: 2010-10-29 10:14:55 -0700 (Fri, 29 Oct 2010) New Revision: 53997 Modified: trunk/edje/src/lib/Edje.h trunk/edje/src/lib/edje_program.c Modified: trunk/edje/src/lib/Edje.h =================================================================== --- trunk/edje/src/lib/Edje.h 2010-10-29 16:45:03 UTC (rev 53996) +++ trunk/edje/src/lib/Edje.h 2010-10-29 17:14:55 UTC (rev 53997) @@ -542,6 +542,7 @@ /* edje_program.c */ EAPI void edje_object_signal_callback_add (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data); EAPI void *edje_object_signal_callback_del (Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func); + EAPI void *edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data); EAPI void edje_object_signal_emit (Evas_Object *obj, const char *emission, const char *source); EAPI void edje_object_play_set (Evas_Object *obj, Eina_Bool play); EAPI Eina_Bool edje_object_play_get (const Evas_Object *obj); Modified: trunk/edje/src/lib/edje_program.c =================================================================== --- trunk/edje/src/lib/edje_program.c 2010-10-29 16:45:03 UTC (rev 53996) +++ trunk/edje/src/lib/edje_program.c 2010-10-29 17:14:55 UTC (rev 53997) @@ -150,6 +150,7 @@ * pointer that was passed to this call will be returned. * * @see edje_object_signal_callback_add(). + * @see edje_object_signal_callback_del_full(). * */ EAPI void * @@ -195,6 +196,68 @@ } /** + * @brief Remove a signal-triggered callback from an object. + * + * @param obj A valid Evas_Object handle. + * @param emission The emission string. + * @param source The source string. + * @param func The callback function. + * @param data The user data passed to the callback. + * @return The data pointer + * + * This function removes a callback, previously attached to the + * emittion of a signal, from the object @a obj. The parameters @a + * emission, @a sourcei, @a func and @a data must match exactly those + * passed to a previous call to edje_object_signal_callback_add(). The data + * pointer that was passed to this call will be returned. + * + * @see edje_object_signal_callback_add(). + * @see edje_object_signal_callback_del(). + * + */ +EAPI void * +edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data) +{ + Edje *ed; + Eina_List *l; + Edje_Signal_Callback *escb; + + if ((!emission) || (!source) || (!func)) return NULL; + ed = _edje_fetch(obj); + if (!ed) return NULL; + if (ed->delete_me) return NULL; + EINA_LIST_FOREACH(ed->callbacks, l, escb) + { + if ((escb->func == func) && (escb->data == data) && + ((!escb->signal && !emission[0]) || + (escb->signal && !strcmp(escb->signal, emission))) && + ((!escb->source && !source[0]) || + (escb->source && !strcmp(escb->source, source)))) + { + void *data; + + data = escb->data; + if (ed->walking_callbacks) + { + escb->delete_me = 1; + ed->delete_callbacks = 1; + } + else + { + _edje_callbacks_patterns_clean(ed); + + ed->callbacks = eina_list_remove_list(ed->callbacks, l); + if (escb->signal) eina_stringshare_del(escb->signal); + if (escb->source) eina_stringshare_del(escb->source); + free(escb); + } + return data; + } + } + return NULL; +} + +/** * @brief Send a signal to an edje object. * * @param obj A valid Evas_Object handle. |
From: Enlightenment S. <no-...@en...> - 2010-10-29 18:15:17
|
Log: And as discussed on IRC, for the sake of API consistency (and we'll eventually need it), also del_full() for the text filters. And since I'm there, some documentation. Author: sachiel Date: 2010-10-29 11:15:09 -0700 (Fri, 29 Oct 2010) New Revision: 54003 Modified: trunk/edje/src/lib/Edje.h trunk/edje/src/lib/edje_util.c Modified: trunk/edje/src/lib/Edje.h =================================================================== --- trunk/edje/src/lib/Edje.h 2010-10-29 17:32:16 UTC (rev 54002) +++ trunk/edje/src/lib/Edje.h 2010-10-29 18:15:09 UTC (rev 54003) @@ -605,6 +605,7 @@ EAPI void edje_object_text_insert_filter_callback_add (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data); EAPI void *edje_object_text_insert_filter_callback_del (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func); + EAPI void *edje_object_text_insert_filter_callback_del_full (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data); EAPI Eina_Bool edje_object_part_swallow (Evas_Object *obj, const char *part, Evas_Object *obj_swallow); EAPI void edje_object_part_unswallow (Evas_Object *obj, Evas_Object *obj_swallow); Modified: trunk/edje/src/lib/edje_util.c =================================================================== --- trunk/edje/src/lib/edje_util.c 2010-10-29 17:32:16 UTC (rev 54002) +++ trunk/edje/src/lib/edje_util.c 2010-10-29 18:15:09 UTC (rev 54003) @@ -2146,10 +2146,28 @@ } /** - * @brief XX + * Add a filter function for newly inserted text. * + * Whenever text is inserted (not the same as set) into the given @p part, + * the list of filter functions will be called to decide if and how the new + * text will be accepted. + * There are three types of filters, EDJE_TEXT_FILTER_TEXT, + * EDJE_TEXT_FILTER_FORMAT and EDJE_TEXT_FILTER_MARKUP. + * The text parameter in the @p func filter can be modified by the user and + * it's up to him to free the one passed if he's to change the pointer. If + * doing so, the newly set text should be malloc'ed, as once all the filters + * are called Edje will free it. + * If the text is to be rejected, freeing it and setting the pointer to NULL + * will make Edje break out of the filter cycle and reject the inserted + * text. + * + * @see edje_object_text_insert_filter_callback_del + * @see edje_object_text_insert_filter_callback_del_full + * * @param obj A valid Evas_Object handle * @param part The part name + * @param func The callback function that will act as filter + * @param data User provided data to pass to the filter function */ EAPI void edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data) @@ -2168,10 +2186,19 @@ } /** - * @brief XX + * Delete a function from the filter list. * + * Delete the given @p func filter from the list in @p part. Returns + * the user data pointer given when added. + * + * @see edje_object_text_insert_filter_callback_add + * @see edje_object_text_insert_filter_callback_del_full + * * @param obj A valid Evas_Object handle * @param part The part name + * @param func The function callback to remove + * + * @return The user data pointer if succesful, or NULL otherwise */ EAPI void * edje_object_text_insert_filter_callback_del(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func) @@ -2198,6 +2225,48 @@ } /** + * Delete a function and matching user data from the filter list. + * + * Delete the given @p func filter and @p data user data from the list + * in @p part. + * Returns the user data pointer given when added. + * + * @see edje_object_text_insert_filter_callback_add + * @see edje_object_text_insert_filter_callback_del + * + * @param obj A valid Evas_Object handle + * @param part The part name + * @param func The function callback to remove + * @param data The data passed to the callback function + * + * @return The same data pointer if succesful, or NULL otherwise + */ +EAPI void * +edje_object_text_insert_filter_callback_del_full(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data) +{ + Edje *ed; + Edje_Text_Insert_Filter_Callback *cb; + Eina_List *l; + + ed = _edje_fetch(obj); + if ((!ed) || (!part)) return NULL; + EINA_LIST_FOREACH(ed->text_insert_filter_callbacks, l, cb) + { + if ((!strcmp(cb->part, part)) && (cb->func == func) && + (cb->data == data)) + { + void *data = cb->data; + ed->text_insert_filter_callbacks = + eina_list_remove_list(ed->text_insert_filter_callbacks, l); + eina_stringshare_del(cb->part); + free(cb); + return data; + } + } + return NULL; +} + +/** * @brief Swallows an object into the edje. * * @param obj A valid Evas_Object handle |