4 #ifndef EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT
5 #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."
15 # ifdef EFL_EDJE_BUILD
17 # define EAPI __declspec(dllexport)
20 # endif /* ! DLL_EXPORT */
22 # define EAPI __declspec(dllimport)
23 # endif /* ! EFL_EDJE_BUILD */
27 # define EAPI __attribute__ ((visibility("default")))
37 typedef enum _Edje_Edit_Image_Comp
39 EDJE_EDIT_IMAGE_COMP_RAW,
40 EDJE_EDIT_IMAGE_COMP_USER,
41 EDJE_EDIT_IMAGE_COMP_COMP,
42 EDJE_EDIT_IMAGE_COMP_LOSSY
43 } Edje_Edit_Image_Comp;
45 struct _Edje_Edit_Script_Error
47 const char *program_name; /* null == group shared script */
49 const char *error_str;
51 typedef struct _Edje_Edit_Script_Error Edje_Edit_Script_Error;
55 * @brief Functions to deal with edje internal object. Don't use in standard
56 * situations. The use of any of the edje_edit_* functions can break your
57 * theme ability, remember that the program must be separated from the interface!
59 * This was intended ONLY for use in an actual edje editor program. Unless
60 * you are writing one of these, do NOT use this API here.
62 * The API can be used to query or set every part of an edje object in real time.
63 * You can manage every aspect of parts, part states, programs, script and whatever
64 * is contained in the edje file. For a reference of what all parameter means
65 * look at the complete @ref edcref.
67 * Don't forget to free all the strings and the lists returned by any edje_edit_*()
68 * functions using edje_edit_string_free() and edje_edit_string_list_free() when
69 * you don't need anymore.
71 * Example: print all the part in a loaded edje_object
73 * Eina_List *parts, *l;
76 * parts = edje_edit_parts_list_get(edje_object);
77 * EINA_LIST_FOREACH(parts, l, part)
79 * printf("Part: %s\n", part);
81 * edje_edit_string_list_free(parts);
84 * Example: Change the color of a rect inside an edje file
88 * edje = edje_edit_object_add(evas);
89 * edje_object_file_set(edje, "edj/file/name", "group to load");
90 * edje_edit_state_color_set(edje, "MyRectName", "default", 0.00, 255, 255, 0, 255);
91 * edje_edit_save(edje);
101 /******************************************************************************/
102 /************************** GENERAL API ***********************************/
103 /******************************************************************************/
104 /** @name General API
105 * General functions that don't fit in other cateories.
108 /** Adds an editable Edje object to the canvas.
110 * An Edje_Edit object is, for the most part, a standard Edje object. Only
111 * difference is you can use the Edje_Edit API on them.
113 * @param e Evas canvas where to add the object.
115 * @return An Evas_Object of type Edje_Edit, or NULL if an error occurred.
117 EAPI Evas_Object * edje_edit_object_add(Evas *e);
119 /** Free a generic Eina_List of (char *) allocated by an edje_edit_*_get() function.
121 * @param lst List of strings to free.
123 EAPI void edje_edit_string_list_free(Eina_List *lst);
125 /** Free a generic string (char *) allocated by an edje_edit_*_get() function.
127 * @param str String to free.
129 EAPI void edje_edit_string_free(const char *str);
131 /** Get the name of the program that compiled the edje file.
132 * Can be 'edje_cc' or 'edje_edit'
134 * @param obj Object being edited.
136 * @return Compiler stored in the Edje file
138 EAPI const char * edje_edit_compiler_get(Evas_Object *obj);
140 /** Save the modified edje object back to his file.
142 * Use this function when you are done with your editing, all the change made
143 * to the current loaded group will be saved back to the original file.
145 * @note Source for the whole file will be auto generated and will overwrite
146 * any previously stored source.
148 * @param obj Object to save back to the file it was loaded from.
150 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
152 * @todo Add a way to check what the error actually was, the way Edje Load does.
154 EAPI Eina_Bool edje_edit_save(Evas_Object *obj);
156 /** Saves every group back into the file.
158 * @param obj Object to save.
160 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
162 * @see edje_edit_save()
164 EAPI Eina_Bool edje_edit_save_all(Evas_Object *obj);
166 /** Print on standard output many information about the internal status
167 * of the edje object.
169 * This is probably only useful to debug.
171 * @param obj Object being edited.
173 EAPI void edje_edit_print_internal_status(Evas_Object *obj);
177 /******************************************************************************/
178 /************************** GROUPS API ************************************/
179 /******************************************************************************/
181 * Functions to deal with groups property (see @ref edcref).
184 /** Create a new empty group in the given edje.
186 * If a group with the same name exist none is created.
188 * @param obj Object being edited.
189 * @param name Name of the new group.
191 * @return EINA_TRUE if successfully added the group, EINA_FALSE if an error
192 * occurred or if a group with the same name exists.
196 * @brief Add an edje (empty) group to an edje object's group set.
198 * @param obj The pointer to edje object.
199 * @param name The name of the group.
201 * @return 1 If it could allocate memory to the part group added
204 * This function adds, at run time, one more group, which will reside
205 * in memory, to the group set found in the .edj file which @a obj was
206 * loaded with. This group can be manipulated by other API functions,
207 * like @c edje_edit_part_add(), for example. If desired, the new
208 * group can be actually committed the respective .edj by use of @c
212 EAPI Eina_Bool edje_edit_group_add(Evas_Object *obj, const char *name);
214 /** Delete the specified group from the given edje.
216 * You can only delete a currently unused group.
217 * All the parts and the programs inside the group will be deleted as well,
218 * but not image or font embedded in the edje.
220 * @param obj Object being edited.
221 * @param group_name Name of group to delete.
223 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
227 * @brief Delete the specified group from the edje file.
229 * @param obj The pointer to the edje object.
230 * @param group_name Group to delete.
232 * @return @c EINA_TRUE on success, @c EINA_FALSE on failure.
234 * This function deletes the given group from the file @a obj is set to. This
235 * operation can't be undone as all references to the group are removed from
237 * This function may fail if the group to be deleted is currently in use.
240 EAPI Eina_Bool edje_edit_group_del(Evas_Object *obj, const char *group_name);
242 /** Check if a group with the given name exist in the edje.
244 * @param obj Object being edited.
245 * @param group Group name to check for.
247 * @return EINA_TRUE if group exists, EINA_FALSE if not.
249 EAPI Eina_Bool edje_edit_group_exist(Evas_Object *obj, const char *group);
251 /** Set a new name for the current open group.
253 * You can only rename a group that is currently loaded
254 * Note that the relative getter function don't exist as it doesn't make sense ;)
255 * @param obj Object being edited.
256 * @param new_name New name for the group.
258 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
260 EAPI Eina_Bool edje_edit_group_name_set(Evas_Object *obj, const char *new_name);
262 /** Get the group minimum width.
264 * @param obj Object being edited.
266 * @return The minimum width set for the group. -1 if an error occurred.
268 EAPI int edje_edit_group_min_w_get(Evas_Object *obj);
270 /** Set the group minimum width.
272 * @param obj Object being edited.
273 * @param w New minimum width for the group.
275 EAPI void edje_edit_group_min_w_set(Evas_Object *obj, int w);
277 /** Get the group minimum height.
279 * @param obj Object being edited.
281 * @return The minimum height set for the group. -1 if an error occurred.
283 EAPI int edje_edit_group_min_h_get(Evas_Object *obj);
285 /** Set the group minimum height.
287 * @param obj Object being edited.
288 * @param h New minimum height for the group.
290 EAPI void edje_edit_group_min_h_set(Evas_Object *obj, int h);
292 /** Get the group maximum width.
294 * @param obj Object being edited.
296 * @return The maximum width set for the group. -1 if an error occurred.
298 EAPI int edje_edit_group_max_w_get(Evas_Object *obj);
300 /** Set the group maximum width.
302 * @param obj Object being edited.
303 * @param w New maximum width for the group.
305 EAPI void edje_edit_group_max_w_set(Evas_Object *obj, int w);
307 /** Get the group maximum height.
309 * @param obj Object being edited.
311 * @return The maximum height set for the group. -1 if an error occurred.
313 EAPI int edje_edit_group_max_h_get(Evas_Object *obj);
315 /** Set the group maximum height.
317 * @param obj Object being edited.
318 * @param h New maximum height for the group.
320 EAPI void edje_edit_group_max_h_set(Evas_Object *obj, int h);
324 /******************************************************************************/
325 /************************** DATA API **************************************/
326 /******************************************************************************/
328 * Functions to deal with data embedded in the edje (see @ref edcref).
331 /** Retrieves a list with the item names inside the data block.
333 * @param obj Object being edited.
335 * @return List of strings, each being a name entry in the global data block for the file.
337 EAPI Eina_List * edje_edit_data_list_get(Evas_Object *obj);
339 /** Create a new *global* data object in the given edje file.
341 * If another data entry with the same name exists, nothing is created and
342 * EINA_FALSE is returned.
344 * @param obj Object being edited.
345 * @param itemname Name for the new data entry.
346 * @param value Value for the new data entry.
348 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
350 EAPI Eina_Bool edje_edit_data_add(Evas_Object *obj, const char *itemname, const char *value);
352 /** Delete the given data object from edje.
354 * @param obj Object being edited.
355 * @param itemname Data entry to remove from the global data block.
357 * @return EINA_TRUE on success, EINA_FALSE otherwise.
359 EAPI Eina_Bool edje_edit_data_del(Evas_Object *obj, const char *itemname);
361 /** Get the data associated with the given itemname.
363 * @param obj Object being edited.
364 * @param itemname Name of the data entry to fetch the value for.
366 * @return Value of the given entry, or NULL if not found.
368 EAPI const char * edje_edit_data_value_get(Evas_Object *obj, const char *itemname);
370 /** Set the data associated with the given itemname.
372 * @param obj Object being edited.
373 * @param itemname Name of data entry to change the value.
374 * @param value New value for the entry.
376 * @return EINA_TRUE on success, EINA_FALSE otherwise.
378 EAPI Eina_Bool edje_edit_data_value_set(Evas_Object *obj, const char *itemname, const char *value);
380 /** Change the name of the given data object.
382 * @param obj Object being edited.
383 * @param itemname Data entry to rename.
384 * @param newname New name for the data entry.
386 * @return EINA_TRUE on success, EINA_FALSE otherwise.
388 EAPI Eina_Bool edje_edit_data_name_set(Evas_Object *obj, const char *itemname, const char *newname);
390 /** Retrieves a list with the item names inside the data block at the group level.
392 * @param obj Object being edited.
394 * @return List of strings, each being a name entry in the data block for the group.
396 EAPI Eina_List * edje_edit_group_data_list_get(Evas_Object *obj);
398 /** Create a new data object in the given edje file *belonging to the current group*.
400 * If another data entry with the same name exists,
401 * nothing is created and EINA_FALSE is returned.
403 * @param obj Object being edited.
404 * @param itemname Name for the new data entry.
405 * @param value Value for the new data entry.
407 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
409 EAPI Eina_Bool edje_edit_group_data_add(Evas_Object *obj, const char *itemname, const char *value);
411 /** Delete the given data object from the group.
413 * @param obj Object being edited.
414 * @param itemname Name of the data entry to remove.
416 * @return EINA_TRUE on success, EINA_FALSE otherwise.
418 EAPI Eina_Bool edje_edit_group_data_del(Evas_Object *obj, const char *itemname);
420 /** Get the data associated with the given itemname.
422 * @param obj Object being edited.
423 * @param itemname Name of the data entry.
425 * @return Value of the data entry or NULL if not found.
427 EAPI const char * edje_edit_group_data_value_get(Evas_Object *obj, const char *itemname);
429 /** Set the data associated with the given itemname.
431 * @param obj Object being edited.
432 * @param itemname Name of the data entry to set the value.
433 * @param value Value to set for the data entry.
435 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
437 EAPI Eina_Bool edje_edit_group_data_value_set(Evas_Object *obj, const char *itemname, const char *value);
439 /** Change the name of the given data object.
441 * @param obj Object being edited.
442 * @param itemname Name of the data entry to rename.
443 * @param newname New name for the data entry.
445 * @return EINA_TRUE on success, EINA_FALSE otherwise.
447 EAPI Eina_Bool edje_edit_group_data_name_set(Evas_Object *obj, const char *itemname, const char *newname);
451 /******************************************************************************/
452 /*********************** COLOR CLASSES API ********************************/
453 /******************************************************************************/
454 /** @name Color Classes API
455 * Functions to deal with Color Classes (see @ref edcref).
458 /** Get the list of all the Color Classes in the given edje object.
460 * @param obj Object being edited.
462 * @return List of strings, each being one color class.
464 EAPI Eina_List * edje_edit_color_classes_list_get(Evas_Object *obj);
466 /** Create a new color class object in the given edje.
468 * If another class with the same name exists nothing is created and EINA_FALSE is returned.
470 * @param obj Object being edited.
471 * @param name Name for the new color class.
473 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
475 EAPI Eina_Bool edje_edit_color_class_add(Evas_Object *obj, const char *name);
477 /** Delete the given class object from edje.
479 * @param obj Object being edited.
480 * @param name Color class to delete.
482 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
484 EAPI Eina_Bool edje_edit_color_class_del(Evas_Object *obj, const char *name);
486 /** Get all the colors that compose the class.
488 * You can pass NULL to colors you are not intrested in.
490 * @param obj Object being edited.
491 * @param class_name Color class to fetch values.
492 * @param r Red component of main color.
493 * @param g Green component of main color.
494 * @param b Blue component of main color.
495 * @param a Alpha component of main color.
496 * @param r2 Red component of secondary color.
497 * @param g2 Green component of secondary color.
498 * @param b2 Blue component of secondary color.
499 * @param a2 Alpha component of secondary color.
500 * @param r3 Red component of tertiary color.
501 * @param g3 Green component of tertiary color.
502 * @param b3 Blue component of tertiary color.
503 * @param a3 Alpha component of tertiary color.
505 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
507 EAPI Eina_Bool edje_edit_color_class_colors_get(Evas_Object *obj, const char *class_name, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3);
509 /** Set the colors for the given color class.
511 * If you set a color to -1 it will not be touched.
513 * @param obj Object being edited.
514 * @param class_name Color class to fetch values.
515 * @param r Red component of main color.
516 * @param g Green component of main color.
517 * @param b Blue component of main color.
518 * @param a Alpha component of main color.
519 * @param r2 Red component of secondary color.
520 * @param g2 Green component of secondary color.
521 * @param b2 Blue component of secondary color.
522 * @param a2 Alpha component of secondary color.
523 * @param r3 Red component of tertiary color.
524 * @param g3 Green component of tertiary color.
525 * @param b3 Blue component of tertiary color.
526 * @param a3 Alpha component of tertiary color.
528 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
530 EAPI Eina_Bool edje_edit_color_class_colors_set(Evas_Object *obj, const char *class_name, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3);
532 /** Change the name of a color class.
534 * @param obj Object being edited.
535 * @param name Color class to rename.
536 * @param newname New name for the color class.
538 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
540 EAPI Eina_Bool edje_edit_color_class_name_set(Evas_Object *obj, const char *name, const char *newname);
545 /******************************************************************************/
546 /************************** TEXT STYLES *************************************/
547 /******************************************************************************/
548 /** @name Text styles API
549 * Functions to deal with text styles (see @ref edcref).
552 /** Get the list of all the text styles in the given edje object.
554 * @param obj Object being edited.
556 * @return List of strings, each being the name for a text style.
558 EAPI Eina_List * edje_edit_styles_list_get(Evas_Object *obj);
560 /** Create a new text style object in the given edje.
562 * If another style with the same name exists nothing is created and EINA_FALSE is returned.
564 * @param obj Object being edited.
565 * @param style Name for the new style.
567 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
569 EAPI Eina_Bool edje_edit_style_add(Evas_Object *obj, const char *style);
571 /** Delete the given text style and all the child tags.
573 * @param obj Object being edited.
574 * @param style Style to delete.
576 EAPI void edje_edit_style_del(Evas_Object *obj, const char *style);
578 /** Get the list of all the tags name in the given text style.
580 * @param obj Object being edited.
581 * @param style Style to get the tags for.
583 * @return List of strings, each being one tag in the given style.
585 EAPI Eina_List * edje_edit_style_tags_list_get(Evas_Object *obj, const char *style);
587 /** Get the value of the given tag.
589 * @param obj Object being edited.
590 * @param style Style containing the tag being.
591 * @param tag Tag to get the value for.
593 * @return Value of the given tag.
595 EAPI const char * edje_edit_style_tag_value_get(Evas_Object *obj, const char *style, const char *tag);
597 /** Set the value of the given tag.
599 * @param obj Object being edited.
600 * @param style Style containing the tag to change.
601 * @param tag Name of the tag to set the value for.
602 * @param new_value Value for the tag.
604 EAPI void edje_edit_style_tag_value_set(Evas_Object *obj, const char *style, const char *tag, const char *new_value);
606 /** Set the name of the given tag.
608 * @param obj Object being edited.
609 * @param style Style containing the tag to rename.
610 * @param tag Tag to rename.
611 * @param new_name New name for the tag.
613 EAPI void edje_edit_style_tag_name_set(Evas_Object *obj, const char *style, const char *tag, const char *new_name);
615 /** Add a new tag to the given text style.
617 * If another tag with the same name exists nothing is created and EINA_FALSE is returned.
619 * @param obj Object being edited.
620 * @param style Style where to add the new tag.
621 * @param tag_name Name for the new tag.
623 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
625 EAPI Eina_Bool edje_edit_style_tag_add(Evas_Object *obj, const char *style, const char *tag_name);
627 /** Delete the given tag.
629 * @param obj Object being edited.
630 * @param style Style from where to remove the tag.
631 * @param tag Tag to delete.
633 EAPI void edje_edit_style_tag_del(Evas_Object *obj, const char *style, const char *tag);
637 /******************************************************************************/
638 /************************ EXTERNALS API ***********************************/
639 /******************************************************************************/
640 /** @name Externals API
641 * Functions to deal with list of external modules (see @ref edcref).
644 /** Get the list of all the externals requested in the given edje object.
646 * @param obj Object being edited.
648 * @return List of strings, each being an entry in the block of automatically loaded external modules.
650 EAPI Eina_List * edje_edit_externals_list_get(Evas_Object *obj);
652 /** Add an external module to be requested on edje load.
654 * @param obj Object being edited.
655 * @param external Name of the external module to add to the list of autoload.
657 * @return EINA_TRUE on success (or it was already there), EINA_FALSE otherwise.
659 EAPI Eina_Bool edje_edit_external_add(Evas_Object *obj, const char *external);
661 /** Delete the given external from the list.
663 * @param obj Object being edited.
664 * @param external Name of the external module to remove from the autoload list.
666 * @return EINA_TRUE on success, EINA_FALSE otherwise.
668 EAPI Eina_Bool edje_edit_external_del(Evas_Object *obj, const char *external);
672 /******************************************************************************/
673 /************************** PARTS API *************************************/
674 /******************************************************************************/
676 * Functions to deal with part objects (see @ref edcref).
679 /** Get the list of all the parts in the given edje object.
681 * @param obj Object being edited.
683 * @return List of strings, each being the name for a part in the open group.
685 EAPI Eina_List * edje_edit_parts_list_get(Evas_Object *obj);
687 /** Create a new part in the given edje.
689 * If another part with the same name just exists nothing is created and EINA_FALSE is returned.
690 * Note that this function also create a default description for the part.
692 * @param obj Object being edited.
693 * @param name Name for the new part.
694 * @param type Type of the new part. See @ref edcref for more info on this.
696 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
698 EAPI Eina_Bool edje_edit_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type);
700 /** Create a new part of type EXTERNAL in the given edje.
702 * If another part with the same name just exists nothing is created and EINA_FALSE is returned.
703 * Note that this function also create a default description for the part.
705 * @param obj Object being edited.
706 * @param name Name for the new part.
707 * @param source The registered external type to use for this part.
709 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
711 EAPI Eina_Bool edje_edit_part_external_add(Evas_Object *obj, const char *name, const char *source);
713 /** Delete the given part from the edje.
715 * All the reference to this part will be zeroed.
717 * @param obj Object being edited.
718 * @param part Name of part to delete.
720 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
722 EAPI Eina_Bool edje_edit_part_del(Evas_Object *obj, const char *part);
724 /** Check if a part with the given name exist in the edje object.
726 * @param obj Object being edited.
727 * @param part Name of part to check for its existence.
729 * @return EINA_TRUE if the part exists, EINA_FALSE if not.
731 EAPI Eina_Bool edje_edit_part_exist(Evas_Object *obj, const char *part);
733 /** Get the name of part stacked above the one passed.
735 * @param obj Object being edited.
736 * @param part Name of part of which to check the one above.
738 * @return Name of the part above. NULL if an error occurred or if @p part is
739 * the topmost part in the group.
741 EAPI const char * edje_edit_part_above_get(Evas_Object *obj, const char *part);
743 /** Get the name of part stacked below the one passed.
745 * @param obj Object being edited.
746 * @param part Name of part of which to check the one below.
748 * @return Name of the part below. NULL if an error occurred or if @p part is
749 * the bottommost part in the group.
751 EAPI const char * edje_edit_part_below_get(Evas_Object *obj, const char *part);
753 /** Move the given part below the previous one.
755 * @param obj Object being edited.
756 * @param part Name of part to move one step below.
758 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
760 EAPI Eina_Bool edje_edit_part_restack_below(Evas_Object *obj, const char *part);
762 /** Move the given part above the next one.
764 * @param obj Object being edited.
765 * @param part Name of part to move one step above.
767 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
769 EAPI Eina_Bool edje_edit_part_restack_above(Evas_Object *obj, const char *part);
771 /** Set a new name for part.
773 * Note that the relative getter function don't exist as it don't make sense ;)
775 * @param obj Object being edited.
776 * @param part Name of part to rename.
777 * @param new_name New name for the given part.
779 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
781 EAPI Eina_Bool edje_edit_part_name_set(Evas_Object *obj, const char *part, const char *new_name);
783 /** Get api's name of a part.
785 * @param obj Object being edited.
786 * @param part Name of the part.
788 * @return name of the api if successful, NULL otherwise.
790 EAPI const char * edje_edit_part_api_name_get(Evas_Object *obj, const char *part);
792 /** Get api's description of a part.
794 * @param obj Object being edited.
795 * @param part Name of the part.
797 * @return description of the api if successful, NULL otherwise.
799 EAPI const char * edje_edit_part_api_description_get(Evas_Object *obj, const char *part);
801 /** Set api's name of a part.
803 * @param obj Object being edited.
804 * @param part Name of the part.
805 * @param name New name for the api property.
807 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
809 EAPI Eina_Bool edje_edit_part_api_name_set(Evas_Object *obj, const char *part, const char *name);
811 /** Set api's description of a part.
813 * @param obj Object being edited.
814 * @param part Name of part.
815 * @param description New description for the api property.
817 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
819 EAPI Eina_Bool edje_edit_part_api_description_set(Evas_Object *obj, const char *part, const char *description);
821 /** Get the type of a part.
823 * @param obj Object being edited.
824 * @param part Name of part to get the type of.
826 * @return Type of the part. See @ref edcref for details.
828 EAPI Edje_Part_Type edje_edit_part_type_get(Evas_Object *obj, const char *part);
830 /** Get the clip_to part.
832 * @param obj Object being edited.
833 * @param part Name of the part whose clipper to get.
835 * @return Name of the part @p part is clipped to. NULL is returned on errors and if the part don't have a clip.
837 EAPI const char * edje_edit_part_clip_to_get(Evas_Object *obj, const char *part);
839 /** Set a part to clip part to.
841 * @param obj Object being edited.
842 * @param part Part to set the clipper to.
843 * @param clip_to Part to use as clipper, if NULL then the clipping value will be cancelled (unset clipping).
845 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
847 EAPI Eina_Bool edje_edit_part_clip_to_set(Evas_Object *obj, const char *part, const char *clip_to);
849 /** Get the source of part.
851 * The meaning of this parameter varies depending on the type of the part.
852 * For GROUP parts, it's the name of another group in the Edje file which will
853 * be autoloaded and swallowed on this part.
854 * For TEXTBLOCK parts, it's the name of a group to be used for selection
855 * display under the text.
856 * For EXTERNAL parts, it's the name of the registered external widget to load
857 * and swallow on this part.
859 * @param obj Object being edited.
860 * @param part Part to get the source from.
862 * @return Content of the source parameter or NULL if nothing set or an error occurred.
864 EAPI const char * edje_edit_part_source_get(Evas_Object *obj, const char *part);
866 /** Set the source of part.
868 * @param obj Object being edited.
869 * @param part Part to set the source of.
870 * @param source Value for the source parameter.
872 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
874 * @see edje_edit_part_source_get()
876 * @note You can't change the source for EXTERNAL parts, it's akin to changing
877 * the type of the part.
879 * NOTE: This is not applied now. You must reload the edje to see the change.
881 EAPI Eina_Bool edje_edit_part_source_set(Evas_Object *obj, const char *part, const char *source);
883 /** Get the effect for a given part.
885 * Gets the effect used for parts of type TEXT. See @ref edcref for more details.
887 * @param obj Object being edited.
888 * @param part Part to get the effect of.
890 * @return The effect set for the part.
892 EAPI Edje_Text_Effect edje_edit_part_effect_get(Evas_Object *obj, const char *part);
894 /** Set the effect for a given part.
896 * @param obj Object being edited.
897 * @param part Part to set the effect to. Only makes sense on type TEXT.
898 * @param effect Effect to set for the part.
900 EAPI void edje_edit_part_effect_set(Evas_Object *obj, const char *part, Edje_Text_Effect effect);
902 /** Get the current selected state in part.
904 * @param obj Object being edited.
905 * @param part Part to get the selected state of.
906 * @param value Pointer to a double where the value of the state will be stored.
908 * @return The name of the currently selected state for the part.
910 EAPI const char * edje_edit_part_selected_state_get(Evas_Object *obj, const char *part, double *value);
912 /** Set the current state in part.
914 * @param obj Object being edited.
915 * @param part Part to set the state of.
916 * @param state Name of the state to set.
917 * @param value Value of the state.
919 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
921 EAPI Eina_Bool edje_edit_part_selected_state_set(Evas_Object *obj, const char *part, const char *state, double value);
923 /** Get mouse_events for part.
925 * @param obj Object being edited.
926 * @param part Part to get if the mouse events is accepted.
928 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
930 EAPI Eina_Bool edje_edit_part_mouse_events_get(Evas_Object *obj, const char *part);
932 /** Set mouse_events for part.
934 * @param obj Object being edited.
935 * @param part The part to set if the mouse events is accepted.
936 * @param mouse_events EINA_TRUE if part will accept mouse events, EINA_FALSE otherwise.
938 EAPI void edje_edit_part_mouse_events_set(Evas_Object *obj, const char *part, Eina_Bool mouse_events);
940 /** Get repeat_events for part.
942 * @param obj Object being edited.
943 * @param part Part to set if will pass all events to the other parts.
945 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
947 EAPI Eina_Bool edje_edit_part_repeat_events_get(Evas_Object *obj, const char *part);
949 /** Set repeat_events for part.
951 * @param obj Object being edited.
952 * @param part Part to set if will repeat all the received mouse events to other parts.
953 * @param repeat_events EINA_TRUE if the events received will propagate to other parts, EINA_FALSE otherwise
955 EAPI void edje_edit_part_repeat_events_set(Evas_Object *obj, const char *part, Eina_Bool repeat_events);
957 /** Get ignore_flags for part.
959 * @param obj Object being edited.
960 * @param part Part to get which event_flags are being ignored.
962 * @return The Event flags set to the part.
964 EAPI Evas_Event_Flags edje_edit_part_ignore_flags_get(Evas_Object *obj, const char *part);
966 /** Set ignore_flags for part.
968 * @param obj Object being edited.
969 * @param part Part to set which event flags will be ignored.
970 * @param ignore_flags The Event flags to be ignored by the part.
972 EAPI void edje_edit_part_ignore_flags_set(Evas_Object *obj, const char *part, Evas_Event_Flags ignore_flags);
974 /** Set scale property for the part.
976 * This property tells Edje that the given part should be scaled by the
979 * @param obj Object being edited.
980 * @param part Part to set scale for.
981 * @param scale Scale value to set.
983 EAPI void edje_edit_part_scale_set(Evas_Object *obj, const char *part, Eina_Bool scale);
985 /** Get scale for the part.
987 * @param obj Object being edited.
988 * @param part Part to get the scale value of.
990 * @return Whether scale is on (EINA_TRUE) or not.
992 EAPI Eina_Bool edje_edit_part_scale_get(Evas_Object *obj, const char *part);
994 /** Get horizontal dragable state for part.
996 * @param obj Object being edited.
997 * @param part Part to get if can be dragged horizontally;
999 * @return 1 (or -1) if the part can be dragged horizontally, 0 otherwise.
1001 EAPI int edje_edit_part_drag_x_get(Evas_Object *obj, const char *part);
1003 /** Set horizontal dragable state for part.
1005 * @param obj Object being edited.
1006 * @param part Part to set if should be dragged horizontally.
1007 * @param drag 1 (or -1) if the part should be dragged horizontally, 0 otherwise.
1009 EAPI void edje_edit_part_drag_x_set(Evas_Object *obj, const char *part, int drag);
1011 /** Get vertical dragable state for part.
1013 * @param obj Object being edited.
1014 * @param part Part to get if can be dragged vertically.
1016 * @return 1 (or - 1) if the part can be dragged vertically, 0 otherwise.
1018 EAPI int edje_edit_part_drag_y_get(Evas_Object *obj, const char *part);
1020 /** Set vertical dragable state for part.
1022 * @param obj Object being edited.
1023 * @param part Part to set if should be dragged vertically.
1024 * @param drag 1 (or -1) of the part shpuld be dragged vertically, 0 otherwise.
1026 EAPI void edje_edit_part_drag_y_set(Evas_Object *obj, const char *part, int drag);
1028 /** Get horizontal dragable step for part.
1030 * @param obj Object being edited.
1031 * @param part Part to get the drag horizontal step value.
1033 * @return The step value.
1035 EAPI int edje_edit_part_drag_step_x_get(Evas_Object *obj, const char *part);
1037 /** Set horizontal dragable state for part.
1039 * @param obj Object being edited.
1040 * @param part Part to set the drag horizontal step value.
1041 * @param step The step the will be dragged.
1043 EAPI void edje_edit_part_drag_step_x_set(Evas_Object *obj, const char *part, int step);
1045 /** Get vertical dragable step for part.
1047 * @param obj Object being edited.
1048 * @param part Part to get the drag vertical step value.
1050 * @return The step value.
1052 EAPI int edje_edit_part_drag_step_y_get(Evas_Object *obj, const char *part);
1054 /** Set vertical dragable state for part.
1056 * @param obj Object being edited.
1057 * @param part Part to set the drag vertical step value.
1058 * @param step The step the will be dragged.
1060 EAPI void edje_edit_part_drag_step_y_set(Evas_Object *obj, const char *part, int step);
1062 /** Get horizontal dragable count for part.
1064 * @param obj Object being edited.
1065 * @param part Part to get the drag horizontal count value.
1067 EAPI int edje_edit_part_drag_count_x_get(Evas_Object *obj, const char *part);
1069 /** Set horizontal dragable count for part.
1071 * @param obj Object being edited.
1072 * @param part Part to set the drag horizontal count value.
1073 * @param count The count value.
1075 EAPI void edje_edit_part_drag_count_x_set(Evas_Object *obj, const char *part, int count);
1077 /** Get vertical dragable count for part.
1079 * @param obj Object being edited.
1080 * @param part Part to get the drag vertical count value.
1082 EAPI int edje_edit_part_drag_count_y_get(Evas_Object *obj, const char *part);
1084 /** Set vertical dragable count for part.
1086 * @param obj Object being edited.
1087 * @param part Part to set the drag vertical count value.
1088 * @param count The count value.
1090 EAPI void edje_edit_part_drag_count_y_set(Evas_Object *obj, const char *part, int count);
1092 /** Get the name of the part that is used as 'confine' for the given draggies.
1094 * @param obj Object being edited.
1095 * @param part Part to get the name that is used as 'confine' for the given draggies.
1097 * @return The name of the confine part or NULL (if unset).
1099 EAPI const char * edje_edit_part_drag_confine_get(Evas_Object *obj, const char *part);
1101 /** Set the name of the part that is used as 'confine' for the given draggies.
1103 * @param obj Object being edited.
1104 * @param part Part to set the name that is used as 'confine' for the given draggies.
1105 * @param confine The name of the confine part or NULL to unset confine.
1107 EAPI void edje_edit_part_drag_confine_set(Evas_Object *obj, const char *part, const char *confine);
1109 /** Get the name of the part that is used as the receiver of the drag event.
1111 * @param obj Object being edited.
1112 * @param part Part to get the name that is used as the receiver of the drag event.
1114 * @return The name of the part that will receive events, or NULL (if unset).
1116 EAPI const char * edje_edit_part_drag_event_get(Evas_Object *obj, const char *part);
1118 /** Set the name of the part that will receive events from the given draggies.
1120 * @param obj Object being edited.
1121 * @param part Part to set the name that will receive events from the given draggies.
1122 * @param event The name of the part that will receive events, or NULL to unset.
1124 EAPI void edje_edit_part_drag_event_set(Evas_Object *obj, const char *part, const char *event);
1128 /******************************************************************************/
1129 /************************** STATES API ************************************/
1130 /******************************************************************************/
1131 /** @name States API
1132 * Functions to deal with part states (see @ref edcref).
1135 /** Get the list of all the states in the given part.
1137 * @param obj Object being edited.
1138 * @param part Part to get the states names list.
1140 * @return An Eina_List* of string (char *)containing all the states names found
1141 * in part, including the float value (ex: "default 0.00").
1143 * Use edje_edit_string_list_free() when you don't need it anymore.
1145 EAPI Eina_List * edje_edit_part_states_list_get(Evas_Object *obj, const char *part);
1147 /** Set a new name for the given state in the given part.
1149 * @param obj Object being edited.
1150 * @param part Part that contain state.
1151 * @param state Name of the state to rename.
1152 * @param value Value of the state to rename.
1153 * @param new_name The new name for the state.
1154 * @param new_value The new value for the state.
1156 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
1158 EAPI Eina_Bool edje_edit_state_name_set(Evas_Object *obj, const char *part, const char *state, double value, const char *new_name, double new_value);
1160 /** Create a new state to the give part.
1162 * @param obj Object being edited.
1163 * @param part Part to set the name of the new state.
1164 * @param name Name for the new state (not including the state value).
1165 * @param value The state value.
1167 * @return EINA_TRUE if successfully, EINA_FALSE otherwise.
1169 EAPI Eina_Bool edje_edit_state_add(Evas_Object *obj, const char *part, const char *name, double value);
1171 /** Delete the given part state from the edje.
1173 * @param obj Object being edited.
1174 * @param part Part that contain state.
1175 * @param state The current name of the state (not including the state value).
1176 * @param value The state value.
1178 * @return EINA_TRUE if successfully, EINA_FALSE otherwise.
1180 EAPI Eina_Bool edje_edit_state_del(Evas_Object *obj, const char *part, const char *state, double value);
1182 /** Check if a part state with the given name exist.
1184 * @param obj Object being edited.
1185 * @param part Part that contain state.
1186 * @param state The name of the state to check (not including the state value).
1187 * @param value The state value.
1189 * @return EINA_TRUE if the part state exist, EINA_FALSE otherwise.
1191 EAPI Eina_Bool edje_edit_state_exist(Evas_Object *obj, const char *part, const char *state, double value);
1193 /** Copies the state @p from into @p to. If @p to doesn't exist it will be created.
1195 * @param obj Object being edited.
1196 * @param part Part that contain state.
1197 * @param from State to copy from (not including state value).
1198 * @param val_from The value of the state to copy from.
1199 * @param to State to copy into (not including state value).
1200 * @param val_to The value of the state to copy into.
1202 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
1204 EAPI Eina_Bool edje_edit_state_copy(Evas_Object *obj, const char *part, const char *from, double val_from, const char *to, double val_to);
1206 /** Get the 'rel1 relative X' value of state.
1208 * @param obj Object being edited.
1209 * @param part Part that contain state.
1210 * @param state The name of the state to get 'rel1 relative X' (not including the state value).
1211 * @param value The state value.
1213 * @return The 'rel1 relative X' value of the part state.
1215 EAPI double edje_edit_state_rel1_relative_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1217 /** Get the 'rel1 relative Y' value of state.
1219 * @param obj Object being edited.
1220 * @param part Part that contain state.
1221 * @param state The name of the state to get 'rel1 relative Y' (not including the state value).
1222 * @param value The state value.
1224 * @return The 'rel1 relative Y' value of the part state.
1226 EAPI double edje_edit_state_rel1_relative_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1228 /** Get the 'rel2 relative X' value of state.
1230 * @param obj Object being edited.
1231 * @param part Part that contain state.
1232 * @param state The name of the state to get 'rel2 relative X' (not including the state value).
1233 * @param value The state value.
1235 * @return The 'rel2 relative X' value of the part state.
1237 EAPI double edje_edit_state_rel2_relative_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1239 /** Get the 'rel2 relative Y' value of state.
1241 * @param obj Object being edited.
1242 * @param part Part that contain state.
1243 * @param state The name of the state to get 'rel2 relative Y' (not including the state value).
1244 * @param value The state value.
1246 * @return The 'rel2 relative Y' value of the part state.
1248 EAPI double edje_edit_state_rel2_relative_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1250 /** Set the 'rel1 relative X' value of state.
1252 * @param obj Object being edited.
1253 * @param part Part that contain state.
1254 * @param state The name of the state to set 'rel1 relative X' (not including the state value).
1255 * @param value The state value.
1256 * @param x The new 'rel1 relative X' value to set'.
1258 EAPI void edje_edit_state_rel1_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x);
1260 /** Set the 'rel1 relative Y' value of state.
1262 * @param obj Object being edited.
1263 * @param part Part that contain state.
1264 * @param state The name of the state to set 'rel1 relative Y' (not including the state value).
1265 * @param value The state value.
1266 * @param y The new 'rel1 relative Y' value to set'.
1268 EAPI void edje_edit_state_rel1_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y);
1270 /** Set the 'rel2 relative X' value of state.
1272 * @param obj Object being edited.
1273 * @param part Part that contain state.
1274 * @param state The name of the state to set 'rel2 relative X' (not including the state value).
1275 * @param value The state value.
1276 * @param x The new 'rel2 relative X' value to set'.
1278 EAPI void edje_edit_state_rel2_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x);
1280 /** Set the 'rel2 relative Y' value of state.
1282 * @param obj Object being edited.
1283 * @param part Part that contain state.
1284 * @param state The name of the state to set 'rel2 relative Y' (not including the state value).
1285 * @param value The state value.
1286 * @param y The new 'rel2 relative Y' value to set'.
1288 EAPI void edje_edit_state_rel2_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y);
1290 /** Get the 'rel1 offset X' value of state.
1292 * @param obj Object being edited.
1293 * @param part Part that contain state.
1294 * @param state The name of the state to get 'rel1 offset X' (not including the state value).
1295 * @param value The state value.
1297 * @return The 'rel1 offset X' value of the part state.
1299 EAPI int edje_edit_state_rel1_offset_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1301 /** Get the 'rel1 offset Y' value of state.
1303 * @param obj Object being edited.
1304 * @param part Part that contain state.
1305 * @param state The name of the state to get 'rel1 offset Y' (not including the state value).
1306 * @param value The state value.
1308 * @return The 'rel1 offset Y' value of the part state.
1310 EAPI int edje_edit_state_rel1_offset_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1312 /** Get the 'rel2 offset X' value of state.
1314 * @param obj Object being edited.
1315 * @param part Part that contain state.
1316 * @param state The name of the state to get 'rel2 offset X' (not including the state value).
1317 * @param value The state value.
1319 * @return The 'rel2 offset X' value of the part state.
1321 EAPI int edje_edit_state_rel2_offset_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1323 /** Get the 'rel2 offset Y' value of state.
1325 * @param obj Object being edited.
1326 * @param part Part that contain state.
1327 * @param state The name of the state to get 'rel2 offset Y' (not including the state value).
1328 * @param value The state value.
1330 * @return The 'rel2 offset Y' value of the part state.
1332 EAPI int edje_edit_state_rel2_offset_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1334 /** Set the 'rel1 offset X' value of state.
1336 * @param obj Object being edited.
1337 * @param part Part that contain state.
1338 * @param state The name of the state to set 'rel1 offset X' (not including the state value).
1339 * @param value The state value.
1340 * @param x The new 'rel1 offset X' value to set'.
1342 EAPI void edje_edit_state_rel1_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x);
1344 /** Set the 'rel1 offset Y' value of state.
1346 * @param obj Object being edited.
1347 * @param part Part that contain state.
1348 * @param state The name of the state to set 'rel1 offset Y' (not including the state value).
1349 * @param value The state value.
1350 * @param y The new 'rel1 offset Y' value to set'.
1352 EAPI void edje_edit_state_rel1_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y);
1354 /** Set the 'rel2 offset X' value of state.
1356 * @param obj Object being edited.
1357 * @param part Part that contain state.
1358 * @param state The name of the state to set 'rel2 offset X' (not including the state value).
1359 * @param value The state value.
1360 * @param x The new 'rel2 offset X' value to set'.
1362 EAPI void edje_edit_state_rel2_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x);
1364 /** Set the 'rel2 offset Y' value of state.
1366 * @param obj Object being edited.
1367 * @param part Part that contain state.
1368 * @param state The name of the state to set 'rel2 offset Y' (not including the state value).
1369 * @param value The state value.
1370 * @param y The new 'rel2 offset Y' value to set'.
1372 EAPI void edje_edit_state_rel2_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y);
1374 /** Get the part name rel1x is relative to.
1376 * @param obj Object being edited.
1377 * @param part Part that contain state.
1378 * @param state The state that contain which the part name rel1x is relative to (not including the state value).
1379 * @param value The state value.
1381 * @return The part name rel1x is relative to or NULL if the part is relative to the whole interface.
1383 EAPI const char * edje_edit_state_rel1_to_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1385 /** Get the part name rel1y is relative to.
1387 * @param obj Object being edited.
1388 * @param part Part that contain state.
1389 * @param state The state that contain which the part name rel1y is relative to (not including the state value).
1390 * @param value The state value.
1392 * @return The part name rel1y is relative to or NULL if the part is relative to the whole interface.
1394 EAPI const char * edje_edit_state_rel1_to_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1396 /** Get the part name rel2x is relative to.
1398 * @param obj Object being edited.
1399 * @param part Part that contain state.
1400 * @param state The state that contain which the part name rel2x is relative to (not including the state value).
1401 * @param value The state value.
1403 * @return The part name rel2x is relative to or NULL if the part is relative to the whole interface.
1405 EAPI const char * edje_edit_state_rel2_to_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1407 /** Get the part name rel2y is relative to.
1409 * @param obj Object being edited.
1410 * @param part Part that contain state.
1411 * @param state The state that contain which the part name rel2y is relative to (not including the state value).
1412 * @param value The state value.
1414 * @return The part name rel2y is relative to or NULL if the part is relative to the whole interface.
1416 EAPI const char * edje_edit_state_rel2_to_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1418 /** Set the part rel1x is relative to.
1420 * @param obj Object being edited.
1421 * @param part Part that contain state.
1422 * @param state The name of the state to set rel1x is relative to (not including the state value).
1423 * @param value The state value.
1424 * @param rel_to The name of the part that is used as container/parent (NULL make the part relative to the whole interface).
1426 * @return The part name rel1x is relative to or NULL if the part is relative to the whole interface.
1428 EAPI void edje_edit_state_rel1_to_x_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to);
1430 /** Set the part rel1y is relative to.
1432 * @param obj Object being edited.
1433 * @param part Part that contain state.
1434 * @param state The name of the state to set rel1y is relative to (not including the state value).
1435 * @param value The state value.
1436 * @param rel_to The name of the part that is used as container/parent (NULL make the part relative to the whole interface).
1438 * @return The part name rel1y is relative to or NULL if the part is relative to the whole interface.
1440 EAPI void edje_edit_state_rel1_to_y_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to);
1442 /** Set the part rel2x is relative to.
1444 * @param obj Object being edited.
1445 * @param part Part that contain state.
1446 * @param state The name of the state to set rel2x is relative to (not including the state value).
1447 * @param value The state value.
1448 * @param rel_to The name of the part that is used as container/parent (NULL make the part relative to the whole interface).
1450 * @return The part name rel2x is relative to or NULL if the part is relative to the whole interface.
1452 EAPI void edje_edit_state_rel2_to_x_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to);
1454 /** Set the part rel2y is relative to.
1456 * @param obj Object being edited.
1457 * @param part Part that contain state.
1458 * @param state The name of the state to set rel2y is relative to (not including the state value).
1459 * @param value The state value.
1460 * @param rel_to The name of the part that is used as container/parent (NULL make the part relative to the whole interface).
1462 * @return The part name rel2y is relative to or NULL if the part is relative to the whole interface.
1464 EAPI void edje_edit_state_rel2_to_y_set(Evas_Object *obj, const char *part, const char *state, double value, const char *rel_to);
1466 /** Get the color of a part state.
1468 * @param obj Object being edited.
1469 * @param part Part that contain state.
1470 * @param state The name of the state to get color (not including the state value).
1471 * @param value The state value.
1472 * @param r A pointer to store the red value.
1473 * @param g A pointer to store the green value.
1474 * @param b A pointer to store the blue value.
1475 * @param a A pointer to store the alpha value.
1477 EAPI void edje_edit_state_color_get(Evas_Object *obj, const char *part, const char *state, double value, int *r, int *g, int *b, int *a);
1479 /** Get the color2 of a part state.
1481 * @param obj Object being edited.
1482 * @param part Part that contain state.
1483 * @param state The name of the state to get color (not including the state value).
1484 * @param value The state value.
1485 * @param r A pointer to store the red value.
1486 * @param g A pointer to store the green value.
1487 * @param b A pointer to store the blue value.
1488 * @param a A pointer to store the alpha value.
1490 EAPI void edje_edit_state_color2_get(Evas_Object *obj, const char *part, const char *state, double value, int *r, int *g, int *b, int *a);
1492 /** Get the color3 of a part state.
1494 * @param obj Object being edited.
1495 * @param part Part that contain state.
1496 * @param state The name of the state to get color (not including the state value).
1497 * @param value The state value.
1498 * @param r A pointer to store the red value.
1499 * @param g A pointer to store the green value.
1500 * @param b A pointer to store the blue value.
1501 * @param a A pointer to store the alpha value.
1503 EAPI void edje_edit_state_color3_get(Evas_Object *obj, const char *part, const char *state, double value, int *r, int *g, int *b, int *a);
1505 /** Set the color of a part state.
1507 * @param obj Object being edited.
1508 * @param part Part that contain state.
1509 * @param state The name of the state to set color (not including the state value).
1510 * @param value The state value.
1511 * @param r The red value of the color.
1512 * @param g The green value of the color.
1513 * @param b The blue value of the color.
1514 * @param a The alpha value of the color.
1516 EAPI void edje_edit_state_color_set(Evas_Object *obj, const char *part, const char *state, double value, int r, int g, int b, int a);
1518 /** Set the color2 of a part state.
1520 * @param obj Object being edited.
1521 * @param part Part that contain state.
1522 * @param state The name of the state to set color (not including the state value).
1523 * @param value The state value.
1524 * @param r The red value of the color.
1525 * @param g The green value of the color.
1526 * @param b The blue value of the color.
1527 * @param a The alpha value of the color.
1529 EAPI void edje_edit_state_color2_set(Evas_Object *obj, const char *part, const char *state, double value, int r, int g, int b, int a);
1531 /** Set the color3 of a part state.
1533 * @param obj Object being edited.
1534 * @param part Part that contain state.
1535 * @param state The name of the state to set color (not including the state value).
1536 * @param value The state value.
1537 * @param r The red value of the color.
1538 * @param g The green value of the color.
1539 * @param b The blue value of the color.
1540 * @param a The alpha value of the color.
1542 EAPI void edje_edit_state_color3_set(Evas_Object *obj, const char *part, const char *state, double value, int r, int g, int b, int a);
1544 /** Get the horizontal align value of a part state.
1546 * @param obj Object being edited.
1547 * @param part Part that contain state.
1548 * @param state The name of the state to get horizontal align (not including the state value).
1549 * @param value The state value.
1551 * @return The horizontal align value for the given state
1553 EAPI double edje_edit_state_align_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1555 /** Get the vertical align value of a part state.
1557 * @param obj Object being edited.
1558 * @param part Part that contain state.
1559 * @param state The name of the state to get horizontal align (not including the state value).
1560 * @param value The state value.
1562 * @return The vertical align value for the given state
1564 EAPI double edje_edit_state_align_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1566 /** Set the horizontal align value of a part state.
1568 * @param obj Object being edited.
1569 * @param part Part that contain state.
1570 * @param state The name of the state to get horizontal align (not including the state value).
1571 * @param value The state value.
1572 * @param align The new vertical align value.
1574 EAPI void edje_edit_state_align_x_set(Evas_Object *obj, const char *part, const char *state, double value, double align);
1576 /** Set the vertical align value of a part state.
1578 * @param obj Object being edited.
1579 * @param part Part that contain state.
1580 * @param state The name of the state to get vertical align (not including the state value).
1581 * @param value The state value.
1582 * @param align The new vertical align value.
1584 EAPI void edje_edit_state_align_y_set(Evas_Object *obj, const char *part, const char *state, double value, double align);
1586 /** Get the minimum width value of a part state.
1588 * @param obj Object being edited.
1589 * @param part Part that contain state.
1590 * @param state The name of the state to get minimum width (not including the state value).
1591 * @param value The state value.
1593 * @return The minimum width value.
1595 EAPI int edje_edit_state_min_w_get(Evas_Object *obj, const char *part, const char *state, double value);
1597 /** Set the minimum width value of a part state.
1599 * @param obj Object being edited.
1600 * @param part Part that contain state.
1601 * @param state The name of the state to set minimum width (not including the state value).
1602 * @param value The state value.
1603 * @param min_w Minimum width value.
1605 EAPI void edje_edit_state_min_w_set(Evas_Object *obj, const char *part, const char *state, double value, int min_w);
1607 /** Get the minimum height value of a part state.
1609 * @param obj Object being edited.
1610 * @param part Part that contain state.
1611 * @param state The name of the state to get minimum height (not including the state value).
1612 * @param value The state value.
1614 * @return The minimum height value.
1616 EAPI int edje_edit_state_min_h_get(Evas_Object *obj, const char *part, const char *state, double value);
1618 /** Set the minimum height value of a part state.
1620 * @param obj Object being edited.
1621 * @param part Part that contain state.
1622 * @param state The name of the state to set minimum height (not including the state value).
1623 * @param value The state value.
1624 * @param min_h Minimum height value.
1626 EAPI void edje_edit_state_min_h_set(Evas_Object *obj, const char *part, const char *state, double value, int min_h);
1628 /** Get the maximum width value of a part state.
1630 * @param obj Object being edited.
1631 * @param part Part that contain state.
1632 * @param state The name of the state to get maximum width (not including the state value).
1633 * @param value The state value.
1635 * @return The maximum width value.
1637 EAPI int edje_edit_state_max_w_get(Evas_Object *obj, const char *part, const char *state, double value);
1639 /** Set the maximum width value of a part state.
1641 * @param obj Object being edited.
1642 * @param part Part that contain state.
1643 * @param state The name of the state to set maximum width (not including the state value).
1644 * @param value The state value.
1645 * @param max_w Maximum width value.
1647 EAPI void edje_edit_state_max_w_set(Evas_Object *obj, const char *part, const char *state, double value, int max_w);
1649 /** Get the maximum height value of a part state.
1651 * @param obj Object being edited.
1652 * @param part Part that contain state.
1653 * @param state The name of the state to get maximum height (not including the state value).
1654 * @param value The state value.
1656 * @return The maximum height value.
1658 EAPI int edje_edit_state_max_h_get(Evas_Object *obj, const char *part, const char *state, double value);
1660 /** Set the maximum height value of a part state.
1662 * @param obj Object being edited.
1663 * @param part Part that contain state.
1664 * @param state The name of the state to set maximum height (not including the state value).
1665 * @param value The state value.
1666 * @param max_h Maximum height value.
1668 EAPI void edje_edit_state_max_h_set(Evas_Object *obj, const char *part, const char *state, double value, int max_h);
1670 /** Get the minimum aspect value of a part state.
1672 * @param obj Object being edited.
1673 * @param part Part that contain state.
1674 * @param state The name of the state to get minimum aspect (not including the state value).
1675 * @param value The state value.
1677 * @return The minimum aspect
1679 EAPI double edje_edit_state_aspect_min_get(Evas_Object *obj, const char *part, const char *state, double value);
1681 /** Get the maximum aspect value of a part state.
1683 * @param obj Object being edited.
1684 * @param part Part that contain state.
1685 * @param state The name of the state to get maximum aspect (not including the state value).
1686 * @param value The state value.
1688 * @return The maximum aspect
1690 EAPI double edje_edit_state_aspect_max_get(Evas_Object *obj, const char *part, const char *state, double value);
1692 /** Set the minimum aspect value of a part state.
1694 * @param obj Object being edited.
1695 * @param part Part that contain state.
1696 * @param state The name of the state to set minimum aspect (not including the state value).
1697 * @param value The state value.
1698 * @param aspect Minimum aspect value.
1700 EAPI void edje_edit_state_aspect_min_set(Evas_Object *obj, const char *part, const char *state, double value, double aspect);
1702 /** Set the maximum aspect value of a part state.
1704 * @param obj Object being edited.
1705 * @param part Part that contain state.
1706 * @param state The name of the state to set maximum aspect (not including the state value).
1707 * @param value The state value.
1708 * @param aspect Maximum aspect value.
1710 EAPI void edje_edit_state_aspect_max_set(Evas_Object *obj, const char *part, const char *state, double value, double aspect);
1712 /** Get the aspect preference of a part state.
1714 * @param obj Object being edited.
1715 * @param part Part that contain state.
1716 * @param state The name of the state to get aspect preference (not including the state value).
1717 * @param value The state value.
1719 * @return The aspect preference (0 = None, 1 = Vertical, 2 = Horizontal, 3 = Both)
1721 EAPI unsigned char edje_edit_state_aspect_pref_get(Evas_Object *obj, const char *part, const char *state, double value);
1723 /** Set the aspect preference of a part state.
1725 * @param obj Object being edited.
1726 * @param part Part that contain state.
1727 * @param state The name of the state to set aspect preference (not
1728 * including the state value).
1729 * @param value The state value.
1730 * @param pref The aspect preference to set (0 = None, 1 = Vertical, 2
1731 * = Horizontal, 3 = Both)
1733 EAPI void edje_edit_state_aspect_pref_set(Evas_Object *obj, const char *part, const char *state, double value, unsigned char pref);
1735 /** Get the fill horizontal origin relative value of a part state.
1737 * @param obj Object being edited.
1738 * @param part Part that contain state.
1739 * @param state The name of the state to get the fill horizontal origin relative to area (not including the state value).
1740 * @param value The state value.
1742 * @return The fill horizontal origin relative to area.
1744 EAPI double edje_edit_state_fill_origin_relative_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1746 /** Get the fill vertical origin relative value of a part state.
1748 * @param obj Object being edited.
1749 * @param part Part that contain state.
1750 * @param state The name of the state to get fill vertical origin relative to area (not including the state value).
1751 * @param value The state value.
1753 * @return The fill vertical origin relative to area.
1755 EAPI double edje_edit_state_fill_origin_relative_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1757 /** Get the fill horizontal origin offset value of a part state.
1759 * @param obj Object being edited.
1760 * @param part Part that contain state.
1761 * @param state The name of the state to get fill horizontal origin offset relative to area (not including the state value).
1762 * @param value The state value.
1764 * @return The fill horizontal origin offset relative to area.
1766 EAPI int edje_edit_state_fill_origin_offset_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1768 /** Get the fill vertical origin offset value of a part state.
1770 * @param obj Object being edited.
1771 * @param part Part that contain state.
1772 * @param state The name of the state to get fill vertical origin offset relative to area (not including the state value).
1773 * @param value The state value.
1775 * @return The fill vertical origin offset value.
1777 EAPI int edje_edit_state_fill_origin_offset_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1779 /** Set the fill horizontal origin relative value of a part state.
1781 * @param obj Object being edited.
1782 * @param part Part that contain state.
1783 * @param state The name of the state to set fill horizontal origin relative to area (not including the state value).
1784 * @param value The state value.
1785 * @param x The fill horizontal origin value.
1787 EAPI void edje_edit_state_fill_origin_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x);
1789 /** Set the fill horizontal origin relative value of a part state.
1791 * @param obj Object being edited.
1792 * @param part Part that contain state.
1793 * @param state The name of the state to set fill vertical origin relative to area (not including the state value).
1794 * @param value The state value.
1795 * @param y The fill vertical origin value.
1797 EAPI void edje_edit_state_fill_origin_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y);
1799 /** Set the fill horizontal origin offset value of a part state.
1801 * @param obj Object being edited.
1802 * @param part Part that contain state.
1803 * @param state The name of the state to set fill horizontal origin offset relative to area (not including the state value).
1804 * @param value The state value.
1805 * @param x The fill horizontal origin offset value.
1807 EAPI void edje_edit_state_fill_origin_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x);
1809 /** Set the fill vertical origin offset value of a part state.
1811 * @param obj Object being edited.
1812 * @param part Part that contain state.
1813 * @param state The name of the state to set fill vertical origin offset relative to area (not including the state value).
1814 * @param value The state value.
1815 * @param y The fill vertical origin offset value.
1817 EAPI void edje_edit_state_fill_origin_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y);
1819 /** Get the fill horizontal size relative value of a part state.
1821 * @param obj Object being edited.
1822 * @param part Part that contain state.
1823 * @param state The name of the state to get fill horizontal size relative to area (not including the state value).
1824 * @param value The state value.
1826 * @return The fill horizontal size relative to area.
1828 EAPI double edje_edit_state_fill_size_relative_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1830 /** Get the fill vertical size relative value of a part state.
1832 * @param obj Object being edited.
1833 * @param part Part that contain state.
1834 * @param state The name of the state to get fill vertical size relative to area (not including the state value).
1835 * @param value The state value.
1837 * @return The fill vertical size relative to area.
1839 EAPI double edje_edit_state_fill_size_relative_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1841 /** Get the fill horizontal size offset value of a part state.
1843 * @param obj Object being edited.
1844 * @param part Part that contain state.
1845 * @param state The name of the state to get fill horizontal size
1846 * offset relative to area (not including the state value).
1847 * @param value The state value.
1849 * @return The fill horizontal size offset relative to area.
1851 EAPI int edje_edit_state_fill_size_offset_x_get(Evas_Object *obj, const char *part, const char *state, double value);
1853 /** Get the fill vertical size offset value of a part state.
1855 * @param obj Object being edited.
1856 * @param part Part that contain state.
1857 * @param state The name of the state to get fill vertical size offset
1858 * relative to area (not including the state value).
1859 * @param value The state value.
1861 * @return The fill vertical size offset relative to area.
1863 EAPI int edje_edit_state_fill_size_offset_y_get(Evas_Object *obj, const char *part, const char *state, double value);
1865 /** Set the fill horizontal size relative value of a part state.
1867 * @param obj Object being edited.
1868 * @param part Part that contain state.
1869 * @param state The name of the state to set fill horizontal size
1870 * relative value (not including the state value).
1871 * @param value The state value.
1872 * @param x The horizontal size relative value.
1874 EAPI void edje_edit_state_fill_size_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x);
1876 /** Set the fill vertical size relative value of a part state.
1878 * @param obj Object being edited.
1879 * @param part Part that contain state.
1880 * @param state The name of the state to set fill vertical size
1881 * relative value (not including the state value).
1882 * @param value The state value.
1883 * @param x The vertical size relative value.
1885 EAPI void edje_edit_state_fill_size_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double x);
1887 /** Set the fill horizontal size offset value of a part state.
1889 * @param obj Object being edited.
1890 * @param part Part that contain state.
1891 * @param state The name of the state to set fill horizontal size
1892 * offset relative value (not including the state value).
1893 * @param value The state value.
1894 * @param x The horizontal size offset value.
1896 EAPI void edje_edit_state_fill_size_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, double x);
1898 /** Set the fill vertical size offset value of a part state.
1900 * @param obj Object being edited.
1901 * @param part Part that contain state.
1902 * @param state The name of the state to set fill vertical size offset
1903 * relative value (not including the state value).
1904 * @param value The state value.
1905 * @param y The vertical size offset value.
1907 EAPI void edje_edit_state_fill_size_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, double y);
1909 /** Get the visibility of a part state.
1911 * @param obj Object being edited.
1912 * @param part Part that contain state.
1913 * @param state The name of the state to get visibility (not including the state value).
1914 * @param value The state value.
1916 * @return EINA_TRUE if the state is visible, EINA_FALSE otherwise.
1918 EAPI Eina_Bool edje_edit_state_visible_get(Evas_Object *obj, const char *part, const char *state, double value);
1920 /** Set the visibility of a part state.
1922 * @param obj Object being edited.
1923 * @param part Part that contain state.
1924 * @param state The name of the state to set visibility (not including the state value).
1925 * @param value The state value.
1926 * @param visible To set state visible (EINA_TRUE if the state is visible, EINA_FALSE otherwise)
1928 EAPI void edje_edit_state_visible_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool visible);
1930 /** Get the color class of the given part state.
1932 * Remember to free the string with edje_edit_string_free()
1934 * @param obj Object being edited.
1935 * @param part Part that contain state.
1936 * @param state The name of the state to get color class (not including the state value).
1937 * @param value The state value.
1939 * @return The current color class.
1941 EAPI const char *edje_edit_state_color_class_get(Evas_Object *obj, const char *part, const char *state, double value);
1943 /** Set the color class of the given part state.
1945 * @param obj Object being edited.
1946 * @param part Part that contain state.
1947 * @param state The name of the state to set color class (not including the state value).
1948 * @param value The state value.
1949 * @param color_class The color class to assign.
1951 EAPI void edje_edit_state_color_class_set(Evas_Object *obj, const char *part, const char *state, double value, const char *color_class);
1953 /** Get the list of parameters for an external part.
1955 * DO NOT FREE THE LIST!
1957 * @param obj Object being edited.
1958 * @param part Part that contain state.
1959 * @param state The name of the state to get list of Edje_External_Param (not including the state value).
1960 * @param value The state value.
1962 * @return The list of Edje_External_Param.
1964 EAPI const Eina_List * edje_edit_state_external_params_list_get(Evas_Object *obj, const char *part, const char *state, double value);
1966 /** Get the external parameter type and value.
1968 * @param obj Object being edited.
1969 * @param part Part that contain state.
1970 * @param state The name of the state to get external parameter (not including the state value).
1971 * @param value The state value.
1972 * @param param The name of the paramter to look for.
1973 * @param type The type of the parameter will be stored here.
1974 * @param val Pointer to value will be stored here - DO NOT FREE IT!
1976 * @return EINA_TRUE if the parameter was found, EINA_FALSE otherwise.
1978 EAPI Eina_Bool edje_edit_state_external_param_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, Edje_External_Param_Type *type, void **val);
1980 /** Get external parameter of type INT.
1982 * @param obj Object being edited.
1983 * @param part Part that contain state.
1984 * @param state The name of the state to get external parameter of type INT (not including the state value).
1985 * @param value The state value.
1986 * @param param The name of the paramter.
1987 * @param val The value of the parameter.
1989 * @return EINA_TRUE if successful. EINA_FALSE if not found or is of different type.
1991 EAPI Eina_Bool edje_edit_state_external_param_int_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, int *val);
1993 /** Get external parameter of type BOOL.
1995 * @param obj Object being edited.
1996 * @param part Part that contain state.
1997 * @param state The name of the state to get external parameter of type BOOL (not including the state value).
1998 * @param value The state value.
1999 * @param param The name of the paramter.
2000 * @param val The value of the parameter.
2002 * @return EINA_TRUE if successful. EINA_FALSE if not found or is of different type.
2004 EAPI Eina_Bool edje_edit_state_external_param_bool_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, Eina_Bool *val);
2006 /** Get external parameter of type DOUBLE.
2008 * @param obj Object being edited.
2009 * @param part Part that contain state.
2010 * @param state The name of the state to get external parameter of type DOUBLE (not including the state value).
2011 * @param value The state value.
2012 * @param param The name of the paramter.
2013 * @param val The value of the parameter.
2015 * @return EINA_TRUE if successful. EINA_FALSE if not found or is of different type.
2017 EAPI Eina_Bool edje_edit_state_external_param_double_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, double *val);
2019 /** Get external parameter of type STRING.
2021 * @param obj Object being edited.
2022 * @param part Part that contain state.
2023 * @param state The name of the state to get external parameter of
2024 * type STRING (not including the state value).
2025 * @param value The state value.
2026 * @param param The name of the paramter.
2027 * @param val The value of the parameter.
2029 * @return EINA_TRUE if successful. EINA_FALSE if not found or is of
2032 EAPI Eina_Bool edje_edit_state_external_param_string_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, const char **val);
2034 /** Get external parameter of type CHOICE.
2036 * @param obj Object being edited.
2037 * @param part Part that contain state.
2038 * @param state The name of the state to get external parameter of
2039 * type CHOICE (not including the state value).
2040 * @param value The state value.
2041 * @param param The name of the paramter.
2042 * @param val The value of the parameter.
2044 * @return EINA_TRUE if successful. EINA_FALSE if not found or is of
2047 EAPI Eina_Bool edje_edit_state_external_param_choice_get(Evas_Object *obj, const char *part, const char *state, double value, const char *param, const char **val);
2049 /** Set the external parameter type and value, adding it if it didn't
2052 * @param obj Object being edited.
2054 * @param part Part that contain state.
2055 * @param state The name of the state to get external parameter (not
2056 * including the state value).
2057 * @param value The state value.
2058 * @param param The name of the paramter set.
2059 * @param type The type of the parameter.
2061 * @return EINA_TRUE if it was set, EINA_FALSE otherwise.
2065 * Arguments should have proper sized values matching their types:
2066 * - EDJE_EXTERNAL_PARAM_TYPE_INT: int
2067 * - EDJE_EXTERNAL_PARAM_TYPE_BOOL: int
2068 * - EDJE_EXTERNAL_PARAM_TYPE_DOUBLE: double
2069 * - EDJE_EXTERNAL_PARAM_TYPE_STRING: char*
2070 * - EDJE_EXTERNAL_PARAM_TYPE_CHOICE: char*
2072 * @note: The validation of the parameter will occur only if the part
2073 * is in the same state as the one being modified.
2075 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, ...);
2077 /** Set external parameter of type INT.
2079 * @param obj Object being edited.
2080 * @param part Part that contain state.
2081 * @param state The name of the state to get external parameter of
2082 * type INT (not including the state value).
2083 * @param value The state value.
2084 * @param param The name of the paramter.
2085 * @param val Value will be stored here.
2087 * @return EINA_TRUE if it was set, EINA_FALSE otherwise.
2089 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);
2091 /** Set external parameter of type BOOL.
2093 * @param obj Object being edited.
2094 * @param part Part that contain state.
2095 * @param state The name of the state to get external parameter of type BOOL (not including the state value).
2096 * @param value The state value.
2097 * @param param The name of the paramter.
2098 * @param val Value will be stored here.
2100 * @return EINA_TRUE if it was set, EINA_FALSE otherwise.
2102 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);
2104 /** Set external parameter of type DOUBLE.
2106 * @param obj Object being edited.
2107 * @param part Part that contain state.
2108 * @param state The name of the state to get external parameter of type DOUBLE (not including the state value).
2109 * @param value The state value.
2110 * @param param The name of the paramter.
2111 * @param val Value will be stored here.
2113 * @return EINA_TRUE if it was set, EINA_FALSE otherwise.
2115 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);
2117 /** Set external parameter of type STRING.
2119 * @param obj Object being edited.
2120 * @param part Part that contain state.
2121 * @param state The name of the state to get external parameter of type STRING (not including the state value).
2122 * @param value The state value.
2123 * @param param The name of the paramter.
2124 * @param val Value will be stored here.
2126 * @return EINA_TRUE if it was set, EINA_FALSE otherwise.
2128 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);
2130 /** Set external parameter of type CHOICE.
2132 * @param obj Object being edited.
2133 * @param part Part that contain state.
2134 * @param state The name of the state to get external parameter of type CHOICE (not including the state value).
2135 * @param value The state value.
2136 * @param param The name of the paramter.
2137 * @param val Value will be stored here.
2139 * @return EINA_TRUE if it was set, EINA_FALSE otherwise.
2141 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);
2145 /******************************************************************************/
2146 /************************** TEXT API ************************************/
2147 /******************************************************************************/
2149 * Functions to deal with text objects (see @ref edcref).
2152 /** Get the text of a part state.
2154 * Remember to free the returned string with edje_edit_string_free().
2156 * @param obj Object being edited.
2157 * @param part Part that contain state.
2158 * @param state The name of the state to get text (not including the state value).
2159 * @param value The state value.
2161 * @return A newly allocated string containing the text for the given state.
2163 EAPI const char * edje_edit_state_text_get(Evas_Object *obj, const char *part, const char *state, double value);
2165 /** Set the text of a part state.
2167 * @param obj Object being edited.
2168 * @param part Part that contain state.
2169 * @param state The name of the state to set text (not including the state value).
2170 * @param value The state value.
2171 * @param text The new text to assign.
2173 EAPI void edje_edit_state_text_set(Evas_Object *obj, const char *part, const char *state, double value,const char *text);
2175 /** Get font name for a given part state.
2177 * @param obj Object being edited.
2178 * @param part The name of the part to get the font of.
2179 * @param state The state of the part to get the font of.
2180 * @param value Value of the state.
2182 * @return Font used by the part or NULL if error or nothing is set.
2184 EAPI const char * edje_edit_state_font_get(Evas_Object *obj, const char *part, const char *state, double value);
2186 /** Set font name for a given part state.
2188 * Font name can be any alias of an internal font in the Edje file and,
2189 * if it doesn't match any, Edje will look for a font with the given name
2190 * in the system fonts.
2192 * @param obj Object being edited.
2193 * @param part Part to set the font of.
2194 * @param state State in which the font is set.
2195 * @param value Value of the state.
2196 * @param font The font name to use.
2198 EAPI void edje_edit_state_font_set(Evas_Object *obj, const char *part, const char *state, double value, const char *font);
2200 /** Get the text size of a part state
2202 * @param obj Object being edited.
2203 * @param part Part that contain state.
2204 * @param state The name of the state to get text size (not including the state value).
2205 * @param value The state value.
2207 * @return The text size or -1 on errors.
2209 EAPI int edje_edit_state_text_size_get(Evas_Object *obj, const char *part, const char *state, double value);
2211 /** Set the text size of a part state.
2213 * @param obj Object being edited.
2214 * @param part Part that contain state.
2215 * @param state The name of the state to set text size (not including the state value).
2216 * @param value The state value.
2217 * @param size The new font size to set (in pixel)
2219 EAPI void edje_edit_state_text_size_set(Evas_Object *obj, const char *part, const char *state, double value, int size);
2221 /** Get the text horizontal align of a part state.
2223 * The value range is from 0.0(right) to 1.0(left)
2225 * @param obj Object being edited.
2226 * @param part Part that contain state.
2227 * @param state The name of the state to get the text horizontal align (not including the state value).
2228 * @param value The state value.
2230 * @return The text horizont align value
2232 EAPI double edje_edit_state_text_align_x_get(Evas_Object *obj, const char *part, const char *state, double value);
2234 /** Get the text vertical align of a part state.
2236 * The value range is from 0.0(top) to 1.0(bottom)
2238 * @param obj Object being edited.
2239 * @param part Part that contain state.
2240 * @param state The name of the state to get the text vertical align (not including the state value).
2241 * @param value The state value.
2243 * @return The text horizont align value
2245 EAPI double edje_edit_state_text_align_y_get(Evas_Object *obj, const char *part, const char *state, double value);
2247 /** Set the text horizontal align of a part state.
2249 * The value range is from 0.0(right) to 1.0(left)
2251 * @param obj Object being edited.
2252 * @param part Part that contain state.
2253 * @param state The name of the state to set the text horizontal align (not including the state value).
2254 * @param value The state value.
2255 * @param align The new text horizontal align value
2257 EAPI void edje_edit_state_text_align_x_set(Evas_Object *obj, const char *part, const char *state, double value, double align);
2259 /** Set the text vertical align of a part state.
2261 * The value range is from 0.0(top) to 1.0(bottom)
2263 * @param obj Object being edited.
2264 * @param part Part that contain state.
2265 * @param state The name of the state to set the text vertical align (not including the state value).
2266 * @param value The state value.
2267 * @param align The new text vertical align value
2269 EAPI void edje_edit_state_text_align_y_set(Evas_Object *obj, const char *part, const char *state, double value, double align);
2271 /** Get the text elipsis of a part state.
2273 * The value range is from 0.0(right) to 1.0(left)
2275 * @param obj Object being edited.
2276 * @param part Part that contain state.
2277 * @param state The name of the state to get the text elipses value (not including the state value).
2278 * @param value The state value.
2280 * @return The text elipsis value
2282 EAPI double edje_edit_state_text_elipsis_get(Evas_Object *obj, const char *part, const char *state, double value);
2284 /** Set the text vertical align of a part state.
2286 * The value range is from 0.0(right) to 1.0(left)
2288 * @param obj Object being edited.
2289 * @param part Part that contain state.
2290 * @param state The name of the state to set the text elipses value (not including the state value).
2291 * @param value The state value.
2292 * @param balance The position where to cut the string
2294 EAPI void edje_edit_state_text_elipsis_set(Evas_Object *obj, const char *part, const char *state, double value, double balance);
2296 /** Get if the text part fit it's container horizontally
2298 * @param obj Object being edited.
2299 * @param part Part that contain state.
2300 * @param state The name of the state to get the if the text part fit it's container horizontally (not including the state value).
2301 * @param value The state value.
2303 * @return EINA_TRUE If the part fit it's container horizontally, EINA_FALSE otherwise.
2305 EAPI Eina_Bool edje_edit_state_text_fit_x_get(Evas_Object *obj, const char *part, const char *state, double value);
2307 /** Set if the text part should fit it's container horizontally
2309 * @param obj Object being edited.
2310 * @param part Part that contain state.
2311 * @param state The name of the state to set the if the text part fit it's container horizontally (not including the state value).
2312 * @param value The state value.
2313 * @param fit EINA_TRUE to make the text fit it's container horizontally, EINA_FALSE otherwise.
2315 EAPI void edje_edit_state_text_fit_x_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool fit);
2317 /** Get if the text part fit it's container vertically
2319 * @param obj Object being edited.
2320 * @param part Part that contain state.
2321 * @param state The name of the state to get the if the text part fit it's container vertically (not including the state value).
2322 * @param value The state value.
2324 * @return EINA_TRUE If the part fit it's container vertically, EINA_FALSE otherwise.
2326 EAPI Eina_Bool edje_edit_state_text_fit_y_get(Evas_Object *obj, const char *part, const char *state, double value);
2328 /** Set if the text part should fit it's container vertically
2330 * @param obj Object being edited.
2331 * @param part Part that contain state.
2332 * @param state The name of the state to set the if the text part fit it's container vertically (not including the state value).
2333 * @param value The state value.
2334 * @param fit EINA_TRUE to make the text fit it's container vertically, EINA_FALSE otherwise.
2336 EAPI void edje_edit_state_text_fit_y_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool fit);
2338 /** Get the list of all the fonts in the given edje.
2340 * Use edje_edit_string_list_free() when you don't need the list anymore.
2342 * @param obj Object being edited.
2344 * @return A list containing all the fonts names found in the edje file.
2346 EAPI Eina_List * edje_edit_fonts_list_get(Evas_Object *obj);
2348 /** Add a new font to the edje file.
2350 * The newly created font will be available to all the groups in the edje, not only the current one.
2352 * @param obj Object being edited.
2353 * @param path The file path to load the font from.
2354 * @param alias The alias for file, or NULL to use filename
2356 * @return EINA_TRUE if font cat be loaded, EINA_FALSE otherwise.
2358 EAPI Eina_Bool edje_edit_font_add(Evas_Object *obj, const char *path, const char* alias);
2360 /** Delete font from the edje file.
2362 * The font will be removed from all the groups in the edje, not only the current one.
2364 * @param obj Object being edited.
2365 * @param alias The font alias
2367 * @return EINA_TRUE if successful, EINA_FALSE otherwise (including the
2368 * case when the alias is not valid).
2370 EAPI Eina_Bool edje_edit_font_del(Evas_Object *obj, const char* alias);
2372 /** Get font path for a given font alias.
2374 * Remember to free the string with edje_edit_string_free()
2376 * @param obj Object being edited.
2377 * @param alias The font alias.
2379 * @return The path of the given font alias.
2381 EAPI const char *edje_edit_font_path_get(Evas_Object *obj, const char *alias);
2384 /** Get font name for a given part state.
2386 * Remember to free the returned string using edje_edit_string_free().
2388 * @param obj Object being edited.
2389 * @param part Part that contain state.
2390 * @param state The name of the state to get the name of the font used (not including the state value).
2391 * @param value The state value.
2393 * @return The name of the font used in the given part state.
2395 EAPI const char * edje_edit_state_font_get(Evas_Object *obj, const char *part, const char *state, double value);
2397 /** Set font name for a given part state.
2399 * @param obj Object being edited.
2400 * @param part Part that contain state.
2401 * @param state The name of the state to set the name of the font that will be used (not including the state value).
2402 * @param value The state value.
2403 * @param font The name of the font to use in the given part state.
2405 EAPI void edje_edit_state_font_set(Evas_Object *obj, const char *part, const char *state, double value, const char *font);
2409 /******************************************************************************/
2410 /************************** IMAGES API ************************************/
2411 /******************************************************************************/
2412 /** @name Images API
2413 * Functions to deal with image objects (see @ref edcref).
2416 /** Get the list of all the images in the given edje.
2417 * Use edje_edit_string_list_free() when you don't need the list anymore.
2419 * @param obj Object being edited.
2421 * @return A List containing all images names found in the edje file.
2423 EAPI Eina_List * edje_edit_images_list_get(Evas_Object *obj);
2425 /** Add an new image to the image collection
2427 * This function add the given image inside the edje. Don't add a new image part
2428 * but only put the image inside the edje file. It actually write directly to
2429 * the file so you don't have to save.
2430 * After you have to create a new image_part that use this image. Note that all
2431 * the parts in the edje share the same image collection, thus you can/must use
2432 * the same image for different part.
2434 * The format of the image files that can be loaded depend on the evas engine on your system
2436 * @param obj Object being edited.
2437 * @param path The name of the image file to include in the edje.
2439 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2441 EAPI Eina_Bool edje_edit_image_add(Evas_Object *obj, const char *path);
2443 /** Delete an image from the image collection
2445 * It actually write directly to the file so you don't have to save.
2447 * @param obj Object being edited.
2448 * @param name The name of the image file to include in the edje.
2450 * @return EINA_TRUE if successful, EINA_FALSE otherwise (including the
2451 * case when the name is not valid).
2453 EAPI Eina_Bool edje_edit_image_del(Evas_Object *obj, const char *name);
2455 /** Add an image entry to the image collection
2457 * This function adds the given image entry to the edje image collection. The
2458 * image needs to be inside the eet already, with key name "images/id". After
2459 * you have to create a new image_part that use this image, referring to it as
2460 * "name". Note that all the parts in the edje share the same image collection,
2461 * thus you can/must use the same image for different part.
2463 * @param obj Object being edited.
2464 * @param name The image entry name.
2465 * @param id The image id.
2467 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2469 EAPI Eina_Bool edje_edit_image_data_add(Evas_Object *obj, const char *name, int id);
2471 /** Get normal image name for a given part state.
2473 * @param obj Object being edited.
2474 * @param part Part that contain state.
2475 * @param state The name of the state to get the name that is being used (not including the state value).
2476 * @param value The state value.
2478 * @return The name of the image used by state.
2480 EAPI const char * edje_edit_state_image_get(Evas_Object *obj, const char *part, const char *state, double value);
2482 /** Set normal image for a given part state.
2484 * @param obj Object being edited.
2485 * @param part Part that contain state.
2486 * @param state The name of the state to set the image that will be used (not including the state value).
2487 * @param value The state value.
2488 * @param image The name of the image (must be an image contained in the edje file).
2490 EAPI void edje_edit_state_image_set(Evas_Object *obj, const char *part, const char *state, double value, const char *image);
2492 /** Get image id for a given image name.
2494 * @param obj Object being edited.
2495 * @param image_name The image name.
2497 * @return The id of the given image name.
2499 EAPI int edje_edit_image_id_get(Evas_Object *obj, const char *image_name);
2501 /** Get compression type for the given image.
2503 * @param obj Object being edited.
2504 * @param image The name of the image.
2506 * @return One of Image Compression types.
2507 * (EDJE_EDIT_IMAGE_COMP_RAW, EDJE_EDIT_IMAGE_COMP_USER, EDJE_EDIT_IMAGE_COMP_COMP, EDJE_EDIT_IMAGE_COMP_LOSSY).
2509 EAPI Edje_Edit_Image_Comp edje_edit_image_compression_type_get(Evas_Object *obj, const char *image);
2511 /** Get compression rate for the given image.
2513 * @param obj Object being edited.
2514 * @param image The name of the image.
2516 * @return The compression rate (if the imnage is @c
2517 * EDJE_EDIT_IMAGE_COMP_LOSSY) or < 0, on errors.
2519 EAPI int edje_edit_image_compression_rate_get(Evas_Object *obj, const char *image);
2521 /** Get the image border of a part state.
2523 * Pass NULL to any of [r,g,b,a] to get only the others.
2525 * @param obj Object being edited.
2526 * @param part Part that contain state.
2527 * @param state The name of the state to get the image border (not
2528 * including the state value).
2529 * @param value The state value.
2530 * @param l A pointer to store the left value
2531 * @param r A pointer to store the right value
2532 * @param t A pointer to store the top value
2533 * @param b A pointer to store the bottom value
2535 EAPI void edje_edit_state_image_border_get(Evas_Object *obj, const char *part, const char *state, double value, int *l, int *r, int *t, int *b);
2537 /** Set the image border of a part state.
2539 * Pass -1 to any of [l,r,t,b] to leave the value untouched.
2541 * @param obj Object being edited.
2542 * @param part Part that contain state.
2543 * @param state The name of the state to set the image border (not
2544 * including the state value).
2545 * @param value The state value.
2546 * @param l Left border value (or -1).
2547 * @param r Right border value (or -1).
2548 * @param t Top border value (or -1).
2549 * @param b Bottom border value (or -1).
2551 EAPI void edje_edit_state_image_border_set(Evas_Object *obj, const char *part, const char *state, double value, int l, int r, int t, int b);
2553 /** Get if the image center should be draw.
2555 * 1 means to draw the center, 0 to don't draw it.
2557 * @param obj Object being edited.
2558 * @param part Part that contain state.
2559 * @param state The name of the state to get the image border fill (not including the state value).
2560 * @param value The state value.
2562 * @return 1 if the center of the bordered image is draw, 0 otherwise.
2564 EAPI unsigned char edje_edit_state_image_border_fill_get(Evas_Object *obj, const char *part, const char *state, double value);
2566 /** Set if the image center should be draw.
2568 * 1 means to draw the center, 0 to don't draw it.
2570 * @param obj Object being edited.
2571 * @param part Part that contain state.
2572 * @param state The name of the state to set the image border fill (not including the state value).
2573 * @param value The state value.
2574 * @param fill Fill to be se. 1 if the center of the bordered image is draw, 0 otherwise.
2576 EAPI void edje_edit_state_image_border_fill_set(Evas_Object *obj, const char *part, const char *state, double value, unsigned char fill);
2578 /** Get the list of all the tweens images in the given part state.
2580 * Use edje_edit_string_list_free() when you don't need it anymore.
2582 * @param obj Object being edited.
2583 * @param part Part that contain state.
2584 * @param state The name of the state to get the list of all the tweens images (not including the state value).
2585 * @param value The state value.
2587 * @return A string list containing all the image name that form a tween animation in the given part state.
2589 EAPI Eina_List * edje_edit_state_tweens_list_get(Evas_Object *obj, const char *part, const char *state, double value);
2591 /** Add a new tween frame to the given part state.
2593 * The tween param must be the name of an existing image.
2595 * @param obj Object being edited.
2596 * @param part Part that contain state.
2597 * @param state The name of the state to add a new tween frame (not including the state value).
2598 * @param value The state value.
2599 * @param tween The name of the image to add.
2601 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2603 EAPI Eina_Bool edje_edit_state_tween_add(Evas_Object *obj, const char *part, const char *state, double value, const char *tween);
2605 /** Remove the first tween with the given name.
2607 * The image is not removed from the edje.
2609 * @param obj Object being edited.
2610 * @param part Part that contain state.
2611 * @param state The name of the state to del the tween (not including the state value).
2612 * @param value The state value.
2613 * @param tween The name of the image to del.
2615 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2617 EAPI Eina_Bool edje_edit_state_tween_del(Evas_Object *obj, const char *part, const char *state, double value, const char *tween);
2621 /******************************************************************************/
2622 /************************* SPECTRUM API ***********************************/
2623 /******************************************************************************/
2624 /** @name Spectrum API
2625 * Functions to manage spectrum (see @ref edcref).
2628 /** Get the list of all the spectrum in the given edje object.
2630 * Use edje_edit_string_list_free() when you don't need it anymore.
2632 * @param obj Object being edited.
2634 * @return A list containing all the spectra names.
2636 EAPI Eina_List * edje_edit_spectrum_list_get(Evas_Object *obj);
2638 /** Add a new spectra in the given edje object.
2640 * @param obj Object being edited.
2641 * @param name The name of the spectra to include in the edje.
2643 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2645 EAPI Eina_Bool edje_edit_spectra_add(Evas_Object *obj, const char *name);
2647 /** Delete the given spectra from the edje object.
2649 * @param obj Object being edited.
2650 * @param spectra The name of the spectra to delete.
2652 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2654 EAPI Eina_Bool edje_edit_spectra_del(Evas_Object *obj, const char *spectra);
2656 /** Change the name of the given spectra.
2658 * @param obj Object being edited.
2659 * @param spectra The name of the current spectra.
2660 * @param name The new name to assign.
2662 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2664 EAPI Eina_Bool edje_edit_spectra_name_set(Evas_Object *obj, const char *spectra, const char *name);
2666 /** Get the number of stops in the given spectra.
2668 * @param obj Object being edited.
2669 * @param spectra The name of the spectra.
2671 * @return The number of stops (or 0 on errors).
2673 EAPI int edje_edit_spectra_stop_num_get(Evas_Object *obj, const char *spectra);
2675 /** Set the number of stops in the given spectra.
2677 * @param obj Object being edited.
2678 * @param spectra The name of the spectra.
2679 * @param num The number of stops you want
2681 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2683 EAPI Eina_Bool edje_edit_spectra_stop_num_set(Evas_Object *obj, const char *spectra, int num);
2685 /** Get the colors of the given stop.
2687 * @param obj Object being edited.
2688 * @param spectra The name of the spectra.
2689 * @param stop_number The number of the stop,
2690 * @param r Where to store the red color value,
2691 * @param g Where to store the green color value,
2692 * @param b Where to store the blue color value,
2693 * @param a Where to store the alpha color value,
2694 * @param d Where to store the delta stop value,
2696 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2698 EAPI Eina_Bool edje_edit_spectra_stop_color_get(Evas_Object *obj, const char *spectra, int stop_number, int *r, int *g, int *b, int *a, int *d);
2700 /** Set the colors of the given stop.
2702 * @param obj Object being edited.
2703 * @param spectra The name of the spectra.
2704 * @param stop_number The number of the stops,
2705 * @param r The red color value to set,
2706 * @param g The green color value to set,
2707 * @param b The blue color value to set,
2708 * @param a The alpha color value to set,
2709 * @param d The delta stop value to set,
2711 EAPI Eina_Bool edje_edit_spectra_stop_color_set(Evas_Object *obj, const char *spectra, int stop_number, int r, int g, int b, int a, int d);
2715 /******************************************************************************/
2716 /************************* GRADIENT API ***********************************/
2717 /******************************************************************************/
2718 /** @name Gradient API
2719 * Functions to deal with gradient objects (see @ref edcref).
2722 /** Get the type of gradient.
2724 * Remember to free the string with edje_edit_string_free().
2726 * @param obj Object being edited.
2727 * @param part The part that contain state.
2728 * @param state The name of the state to get the gradient type (not including the state value).
2729 * @param value The state value.
2731 * @return The type of gradient used in state.
2732 * (linear, linear.diag, linear.codiag, radial, rectangular, angular, sinosoidal)
2734 EAPI const char * edje_edit_state_gradient_type_get(Evas_Object *obj, const char *part, const char *state, double value);
2736 /** Set the type of gradient.
2738 * Gradient type can be on of the following: linear, linear.diag, linear.codiag, radial, rectangular, angular, sinusoidal
2740 * @param obj Object being edited.
2741 * @param part The part that contain state.
2742 * @param state The name of the state to set the gradient type (not including the state value).
2743 * @param value The state value.
2744 * @param type The type of gradient to use.
2746 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2748 EAPI Eina_Bool edje_edit_state_gradient_type_set(Evas_Object *obj, const char *part, const char *state, double value, const char *type);
2750 /** Get if the current gradient use the fill properties or the gradient_rel as params.
2752 * @param obj Object being edited.
2753 * @param part The part that contain state.
2754 * @param state The name of the state to set the gradient type (not including the state value).
2755 * @param value The state value.
2757 * @return EINA_TRUE if gradient use the fill properties, EINA_FALSE otherwise.
2759 EAPI Eina_Bool edje_edit_state_gradient_use_fill_get(Evas_Object *obj, const char *part, const char *state, double value);
2761 /** Get the spectra used by part state.
2763 * Remember to free the string with edje_edit_string_free().
2765 * @param obj Object being edited.
2766 * @param part The part that contain state.
2767 * @param state The name of the state to get the spectra name used (not including the state value).
2768 * @param value The state value.
2770 * @return The spectra name used in state.
2772 EAPI const char * edje_edit_state_gradient_spectra_get(Evas_Object *obj, const char *part, const char *state, double value);
2774 /** Set the spectra used by part state.
2776 * @param obj Object being edited.
2777 * @param part The part that contain state.
2778 * @param state The name of the state to set the spectra (not including the state value).
2779 * @param value The state value.
2780 * @param spectra The spectra name to assign
2782 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2784 EAPI Eina_Bool edje_edit_state_gradient_spectra_set(Evas_Object *obj, const char *part, const char *state, double value, const char *spectra);
2786 /** Get the angle of the gradient.
2788 * @param obj Object being edited.
2789 * @param part The part that contain state.
2790 * @param state The name of the state to get the angle (not including the state value).
2791 * @param value The state value.
2793 * @return The angle of the gradient.
2795 EAPI int edje_edit_state_gradient_angle_get(Evas_Object *obj, const char *part, const char *state, double value);
2797 /** Set the angle of the gradient.
2799 * @param obj Object being edited.
2800 * @param part The part that contain state.
2801 * @param state The name of the state to set the angle (not including the state value).
2802 * @param value The state value.
2803 * @param angle The angle to set.
2805 EAPI void edje_edit_state_gradient_angle_set(Evas_Object *obj, const char *part, const char *state, double value, int angle);
2807 /** Get the gradient rel1 horizontal relative value
2809 * @param obj Object being edited.
2810 * @param part The part that contain state.
2811 * @param state The name of the state to get rel1 relative x value (not including the state value).
2812 * @param value The state value.
2814 * @return The gradient rel1 horizontal relative value.
2816 EAPI double edje_edit_state_gradient_rel1_relative_x_get(Evas_Object *obj, const char *part, const char *state, double value);
2818 /** Get the gradient rel1 vertical relative value
2820 * @param obj Object being edited.
2821 * @param part The part that contain state.
2822 * @param state The name of the state to get rel1 relative y value (not including the state value).
2823 * @param value The state value.
2825 * @return The gradient rel1 vertical relative value.
2827 EAPI double edje_edit_state_gradient_rel1_relative_y_get(Evas_Object *obj, const char *part, const char *state, double value);
2829 /** Get the gradient rel2 horizontal relative value
2831 * @param obj Object being edited.
2832 * @param part The part that contain state.
2833 * @param state The name of the state to get rel2 relative x value (not including the state value).
2834 * @param value The state value.
2836 * @return The gradient rel2 horizontal relative value.
2838 EAPI double edje_edit_state_gradient_rel2_relative_x_get(Evas_Object *obj, const char *part, const char *state, double value);
2840 /** Get the gradient rel2 vertical relative value
2842 * @param obj Object being edited.
2843 * @param part The part that contain state.
2844 * @param state The name of the state to get rel2 relative y value (not including the state value).
2845 * @param value The state value.
2847 * @return The gradient rel2 vertical relative value.
2849 EAPI double edje_edit_state_gradient_rel2_relative_y_get(Evas_Object *obj, const char *part, const char *state, double value);
2852 /** Set the gradient rel1 horizontal relative value
2854 * @param obj Object being edited.
2855 * @param part The part that contain state.
2856 * @param state The name of the state to set rel1 relative x value (not including the state value).
2857 * @param value The state value.
2858 * @param val The rel1 relative x to be set,
2860 * @return EINA_TRUE if successful, EINA_FALSE otherwise..
2862 EAPI Eina_Bool edje_edit_state_gradient_rel1_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double val);
2865 /** Set the gradient rel1 vertical relative value
2867 * @param obj Object being edited.
2868 * @param part The part that contain state.
2869 * @param state The name of the state to set rel1 relative y value (not including the state value).
2870 * @param value The state value.
2871 * @param val The rel1 relative y to be set,
2873 * @return EINA_TRUE if successful, EINA_FALSE otherwise..
2875 EAPI Eina_Bool edje_edit_state_gradient_rel1_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double val);
2877 /** Set the gradient rel2 horizontal relative value
2879 * @param obj Object being edited.
2880 * @param part The part that contain state.
2881 * @param state The name of the state to set rel2 relative x value (not including the state value).
2882 * @param value The state value.
2883 * @param val The rel2 relative x to be set,
2885 * @return EINA_TRUE if successful, EINA_FALSE otherwise..
2887 EAPI Eina_Bool edje_edit_state_gradient_rel2_relative_x_set(Evas_Object *obj, const char *part, const char *state, double value, double val);
2889 /** Set the gradient rel2 vertical relative value
2891 * @param obj Object being edited.
2892 * @param part The part that contain state.
2893 * @param state The name of the state to set rel2 relative y value (not including the state value).
2894 * @param value The state value.
2895 * @param val The rel2 relative y to be set,
2897 * @return EINA_TRUE if successful, EINA_FALSE otherwise..
2899 EAPI Eina_Bool edje_edit_state_gradient_rel2_relative_y_set(Evas_Object *obj, const char *part, const char *state, double value, double val);
2901 /** Get the gradient rel1 horizontal offset value
2903 * @param obj Object being edited.
2904 * @param part The part that contain state.
2905 * @param state The name of the state to get rel1 offset x value (not including the state value).
2906 * @param value The state value.
2908 * @return The gradient rel1 horizontal offset value.
2910 EAPI int edje_edit_state_gradient_rel1_offset_x_get(Evas_Object *obj, const char *part, const char *state, double value);
2912 /** Get the gradient rel1 vertical offset value
2914 * @param obj Object being edited.
2915 * @param part The part that contain state.
2916 * @param state The name of the state to get rel1 offset y value (not including the state value).
2917 * @param value The state value.
2919 * @return The gradient rel1 vertical offset value.
2921 EAPI int edje_edit_state_gradient_rel1_offset_y_get(Evas_Object *obj, const char *part, const char *state, double value);
2923 /** Get the gradient rel2 horizontal offset value
2925 * @param obj Object being edited.
2926 * @param part The part that contain state.
2927 * @param state The name of the state to get rel2 offset x value (not including the state value).
2928 * @param value The state value.
2930 * @return The gradient rel2 horizontal offset value.
2932 EAPI int edje_edit_state_gradient_rel2_offset_x_get(Evas_Object *obj, const char *part, const char *state, double value);
2934 /** Get the gradient rel2 vertical offset value
2936 * @param obj Object being edited.
2937 * @param part The part that contain state.
2938 * @param state The name of the state to get rel2 offset y value (not including the state value).
2939 * @param value The state value.
2941 * @return The gradient rel2 vertical offset value.
2943 EAPI int edje_edit_state_gradient_rel2_offset_y_get(Evas_Object *obj, const char *part, const char *state, double value);
2945 /** Set the gradient rel1 horizontal offset value
2947 * @param obj Object being edited.
2948 * @param part The part that contain state.
2949 * @param state The name of the state to set rel1 offset x value (not including the state value).
2950 * @param value The state value.
2951 * @param val The rel1 offset x value.
2953 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2955 EAPI Eina_Bool edje_edit_state_gradient_rel1_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, int val);
2957 /** Set the gradient rel1 vertical offset value
2959 * @param obj Object being edited.
2960 * @param part The part that contain state.
2961 * @param state The name of the state to set rel1 offset y value (not including the state value).
2962 * @param value The state value.
2963 * @param val The rel1 offset y value.
2965 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2967 EAPI Eina_Bool edje_edit_state_gradient_rel1_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, int val);
2969 /** Set the gradient rel2 horizontal offset value
2971 * @param obj Object being edited.
2972 * @param part The part that contain state.
2973 * @param state The name of the state to set rel2 offset x value (not including the state value).
2974 * @param value The state value.
2975 * @param val The rel2 offset x value.
2977 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2979 EAPI Eina_Bool edje_edit_state_gradient_rel2_offset_x_set(Evas_Object *obj, const char *part, const char *state, double value, int val);
2981 /** Set the gradient rel2 vertical offset value
2983 * @param obj Object being edited.
2984 * @param part The part that contain state.
2985 * @param state The name of the state to set rel2 offset y value (not including the state value).
2986 * @param value The state value.
2987 * @param val The rel2 offset y value.
2989 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
2991 EAPI Eina_Bool edje_edit_state_gradient_rel2_offset_y_set(Evas_Object *obj, const char *part, const char *state, double value, int val);
2995 /******************************************************************************/
2996 /************************* PROGRAMS API ***********************************/
2997 /******************************************************************************/
2998 /** @name Programs API
2999 * Functions to deal with programs (see @ref edcref).
3002 /** Get the list of all the programs in the given edje object.
3004 * Use edje_edit_string_list_free() when you don't need it anymore.
3006 * @param obj Object being edited.
3008 * @return A list containing all the program names.
3010 EAPI Eina_List * edje_edit_programs_list_get(Evas_Object *obj);
3012 /** Add a new program to the edje file
3014 * If a program with the same name just exist the function will fail.
3016 * @param obj Object being edited.
3017 * @param name The name of the new program.
3019 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3021 EAPI Eina_Bool edje_edit_program_add(Evas_Object *obj, const char *name);
3023 /** Remove the given program from the edje file.
3025 * @param obj Object being edited.
3026 * @param prog The name of the program to remove.
3028 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3030 EAPI Eina_Bool edje_edit_program_del(Evas_Object *obj, const char *prog);
3032 /** Check if a program with the given name exist in the edje object.
3034 * @param obj Object being edited.
3035 * @param prog The prog of the program that will be searched.
3037 * @return EINA_TRUE if the program exist, EINA_FALSE otherwise.
3039 EAPI Eina_Bool edje_edit_program_exist(Evas_Object *obj, const char *prog);
3041 /** Run the given program.
3043 * @param obj Object being edited.
3044 * @param prog The name of the program to execute.
3046 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3048 EAPI Eina_Bool edje_edit_program_run(Evas_Object *obj, const char *prog);
3050 /** Set a new name for the given program
3052 * @param obj Object being edited.
3053 * @param prog The current program name.
3054 * @param new_name The new name to assign.
3056 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3058 EAPI Eina_Bool edje_edit_program_name_set(Evas_Object *obj, const char *prog, const char *new_name);
3060 /** Get source of a given program.
3062 * Remember to free the returned string using edje_edit_string_free().
3064 * @param obj Object being edited.
3065 * @param prog The name of the program to get source.
3067 * @return The source value por program.
3069 EAPI const char * edje_edit_program_source_get(Evas_Object *obj, const char *prog);
3071 /** Set source of the given program.
3073 * @param obj Object being edited.
3074 * @param prog The name of the program to set source.
3075 * @param source The new source value.
3077 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3079 EAPI Eina_Bool edje_edit_program_source_set(Evas_Object *obj, const char *prog, const char *source);
3081 /** Get signal of a given program.
3083 * Remember to free the returned string using edje_edit_string_free().
3085 * @param obj Object being edited.
3086 * @param prog The name of the program to get the signal.
3088 * @return The signal value for program.
3090 EAPI const char * edje_edit_program_signal_get(Evas_Object *obj, const char *prog);
3092 /** Set signal of the given program.
3094 * @param obj Object being edited.
3095 * @param prog The name of the program to set the signal.
3096 * @param signal The new signal value.
3098 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3100 EAPI Eina_Bool edje_edit_program_signal_set(Evas_Object *obj, const char *prog, const char *signal);
3102 /** Get in.from of a given program.
3104 * @param obj Object being edited.
3105 * @param prog The name of the program to get the delay.
3107 * @return The delay.
3109 EAPI double edje_edit_program_in_from_get(Evas_Object *obj, const char *prog);
3111 /** Set in.from of a given program.
3113 * @param obj Object being edited.
3114 * @param prog The name of the program to set the delay.
3115 * @param seconds Number of seconds to delay the program execution
3118 EAPI Eina_Bool edje_edit_program_in_from_set(Evas_Object *obj, const char *prog, double seconds);
3120 /** Get in.range of a given program.
3122 * @param obj Object being edited.
3123 * @param prog The name of the program to get random delay.
3125 * @return The delay random.
3127 EAPI double edje_edit_program_in_range_get(Evas_Object *obj, const char *prog);
3129 /** Set in.range of a given program.
3131 * @param obj Object being edited.
3132 * @param prog The name of the program to set random delay.
3133 * @param seconds Max random number of seconds to delay.
3135 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3137 EAPI Eina_Bool edje_edit_program_in_range_set(Evas_Object *obj, const char *prog, double seconds);
3139 /** Get the action of a given program.
3141 * @param obj Object being edited.
3142 * @param prog The name of the program to get the action.
3144 * @return The action type, or -1 on errors.
3145 * Action can be one of EDJE_ACTION_TYPE_NONE, _STATE_SET, ACTION_STOP, SIGNAL_EMIT, DRAG_VAL_SET, _DRAG_VAL_STEP, _DRAG_VAL_PAGE, _SCRIPT
3147 EAPI Edje_Action_Type edje_edit_program_action_get(Evas_Object *obj, const char *prog);
3149 /** Set the action of a given program.
3151 * Action can be one of EDJE_ACTION_TYPE_NONE, _STATE_SET, ACTION_STOP, SIGNAL_EMIT, DRAG_VAL_SET, _DRAG_VAL_STEP, _DRAG_VAL_PAGE, _SCRIPT
3153 * @param obj Object being edited.
3154 * @param prog The name of the program to set the action.
3155 * @param action The new action type.
3157 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3159 EAPI Eina_Bool edje_edit_program_action_set(Evas_Object *obj, const char *prog, Edje_Action_Type action);
3161 /** Get the list of the targets for the given program.
3163 * Use edje_edit_string_list_free() when you don't need it anymore.
3165 * @param obj Object being edited.
3166 * @param prog The name of the progrem to get the list of the targets.
3168 * @return A list with all the targets names, or NULL on error.
3170 EAPI Eina_List * edje_edit_program_targets_get(Evas_Object *obj, const char *prog);
3172 /** Add a new target program to the list of 'targets' in the given program.
3174 * If program action is @c EDJE_ACTION_TYPE_ACTION_STOP, then 'target'
3175 * must be an existing program name. If it's @c
3176 * EDJE_ACTION_TYPE_STATE_SET, then 'target' must be an existing part
3179 * @param obj Object being edited.
3180 * @param prog The name of the program to add a new target.
3181 * @param target The name of the new target itself.
3183 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3185 EAPI Eina_Bool edje_edit_program_target_add(Evas_Object *obj, const char *prog, const char *target);
3187 /** Deletes a target from the list of 'targets' in the given program.
3189 * If program action is EDJE_ACTION_TYPE_ACTION_STOP then 'target' must be an existing program name.
3190 * If action is EDJE_ACTION_TYPE_STATE_SET then 'target' must be an existing part name.
3192 * @param obj Object being edited.
3193 * @param prog The name of the program to del a target from the list of targets.
3194 * @param target The name of another program or another part.
3196 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3198 EAPI Eina_Bool edje_edit_program_target_del(Evas_Object *obj, const char *prog, const char *target);
3200 /** Clear the 'targets' list of the given program
3202 * @param obj Object being edited.
3203 * @param prog The name of the program to cleaar the 'targets' list.
3205 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3207 EAPI Eina_Bool edje_edit_program_targets_clear(Evas_Object *obj, const char *prog);
3209 /** Get the list of action that will be run after the give program
3211 * Use edje_edit_string_list_free() when you don't need it anymore.
3213 * @param obj Object being edited.
3214 * @param prog The name of the program to get the list of actions
3216 * @return A list with all program names. or NULL on error.
3218 EAPI Eina_List * edje_edit_program_afters_get(Evas_Object *obj, const char *prog);
3220 /** Add a new program name to the list of 'afters' in the given program.
3222 * All the programs listed in 'afters' will be executed after program execution.
3224 * @param obj Object being edited.
3225 * @param prog The name of the program that contains the list of afters
3226 * @param after The name of another program to add to the afters list
3228 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3230 EAPI Eina_Bool edje_edit_program_after_add(Evas_Object *obj, const char *prog, const char *after);
3232 /** Delete the given program from the list of 'afters' of the program.
3234 * @param obj Object being edited.
3235 * @param prog The name of the program from where to remove the after.
3236 * @param after The name of the program to remove from the list of afters.
3238 * @return EINA_TRUE is successful or not in the list, EINA_FALSE otherwise.
3240 EAPI Eina_Bool edje_edit_program_after_del(Evas_Object *obj, const char *prog, const char *after);
3242 /** Clear the 'afters' list of the given program.
3244 * @param obj Object being edited.
3245 * @param prog The name of the program to clear the 'afters' list.
3247 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3249 EAPI Eina_Bool edje_edit_program_afters_clear(Evas_Object *obj, const char *prog);
3251 /** Get the state for the given program
3253 * In a STATE_SET action this is the name of state to set.
3254 * In a SIGNAL_EMIT action is the name of the signal to emit.
3256 * @param obj Object being edited.
3257 * @param prog The name of the program to get the state.
3259 * @return The name of the state.
3261 EAPI const char * edje_edit_program_state_get(Evas_Object *obj, const char *prog);
3263 /** Get api's name of a program.
3265 * @param obj Object being edited.
3266 * @param prog Name of program.
3268 * @return name of the api if successful, NULL otherwise.
3270 EAPI const char * edje_edit_program_api_name_get(Evas_Object *obj, const char *prog);
3272 /** Get api's description of a program.
3274 * @param obj Object being edited.
3275 * @param prog Name of program.
3277 * @return description of the api if successful, NULL otherwise.
3279 EAPI const char * edje_edit_program_api_description_get(Evas_Object *obj, const char *prog);
3281 /** Set api's name of a program.
3283 * @param obj Object being edited.
3284 * @param prog Name of the part.
3285 * @param name New name for the api property.
3287 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3289 EAPI Eina_Bool edje_edit_program_api_name_set(Evas_Object *obj, const char *prog, const char *name);
3291 /** Set api's description of a program.
3293 * @param obj Object being edited.
3294 * @param prog Name of the program.
3295 * @param description New description for the api property.
3297 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3299 EAPI Eina_Bool edje_edit_program_api_description_set(Evas_Object *obj, const char *prog, const char *description);
3301 /** Set the state for the given program
3303 * In a STATE_SET action this is the name of state to set.
3304 * In a SIGNAL_EMIT action is the name of the signal to emit.
3306 * @param obj Object being edited.
3307 * @param prog The name of the program to set a state.
3308 * @param state The nameo of the state to set (not including the state value)
3310 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3312 EAPI Eina_Bool edje_edit_program_state_set(Evas_Object *obj, const char *prog, const char *state);
3314 /** Get the value of state for the given program.
3316 * In a STATE_SET action this is the value of state to set.
3317 * Not used on SIGNAL_EMIT action.
3319 * @param obj Object being edited.
3320 * @param prog The name of the program to get the value of state.
3322 * @return The value of state for the program.
3324 EAPI double edje_edit_program_value_get(Evas_Object *obj, const char *prog);
3326 /** Set the value of state for the given program.
3328 * In a STATE_SET action this is the value of state to set.
3329 * Not used on SIGNAL_EMIT action.
3331 * @param obj Object being edited.
3332 * @param prog The name of the program to set the value of state.
3333 * @param value The vale to set.
3335 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3337 EAPI Eina_Bool edje_edit_program_value_set(Evas_Object *obj, const char *prog, double value);
3339 /** Get the state2 for the given program
3341 * In a STATE_SET action is not used
3342 * In a SIGNAL_EMIT action is the source of the emitted signal.
3344 * @param obj Object being edited.
3345 * @param prog The name of the program to get the state2.
3347 * @return The source to emit for the program.
3349 EAPI const char * edje_edit_program_state2_get(Evas_Object *obj, const char *prog);
3351 /** Set the state2 for the given program
3353 * In a STATE_SET action is not used
3354 * In a SIGNAL_EMIT action is the source of the emitted signal.
3356 * @param obj Object being edited.
3357 * @param prog The name of the program to set the state2.
3358 * @param state2 The name of the state to set.
3360 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3362 EAPI Eina_Bool edje_edit_program_state2_set(Evas_Object *obj, const char *prog, const char *state2);
3364 /** Get the value of state2 for the given program.
3366 * @param obj Object being edited.
3367 * @param prog The name of the program to get the state2 value.
3369 * @return The vale of the state2 for the program.
3371 EAPI double edje_edit_program_value2_get(Evas_Object *obj, const char *prog);
3373 /** Set the value2 of state for the given program.
3375 * This is used in DRAG_ACTION
3377 * @param obj Object being edited.
3378 * @param prog The name of the program to set the state2 value.
3379 * @param value The value of the state2 to set.
3381 EAPI Eina_Bool edje_edit_program_value2_set(Evas_Object *obj, const char *prog, double value);
3383 /** Get the type of transition to use when apply animations.
3385 * Can be one of: EDJE_TWEEN_MODE_NONE, EDJE_TWEEN_MODE_LINEAR, EDJE_TWEEN_MODE_SINUSOIDAL, EDJE_TWEEN_MODE_ACCELERATE or EDJE_TWEEN_MODE_DECELERATE.
3387 * @param obj Object being edited.
3388 * @param prog The name of the program to get the transition.
3390 * @return The type of transition used by program.
3392 EAPI Edje_Tween_Mode edje_edit_program_transition_get(Evas_Object *obj, const char *prog);
3394 /** Set the type of transition to use when apply animations.
3396 * Can be one of: EDJE_TWEEN_MODE_NONE, EDJE_TWEEN_MODE_LINEAR, EDJE_TWEEN_MODE_SINUSOIDAL, EDJE_TWEEN_MODE_ACCELERATE or EDJE_TWEEN_MODE_DECELERATE.
3398 * @param obj Object being edited.
3399 * @param prog The name of the program to set the transition.
3400 * @param transition The transition type to set
3402 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3404 EAPI Eina_Bool edje_edit_program_transition_set(Evas_Object *obj, const char *prog, Edje_Tween_Mode transition);
3406 /** Get the duration of the transition in seconds.
3408 * @param obj Object being edited.
3409 * @param prog The name of the program to get the transition time.
3411 * @return The duration of the transition.
3413 EAPI double edje_edit_program_transition_time_get(Evas_Object *obj, const char *prog);
3415 /** Set the duration of the transition in seconds.
3417 * @param obj Object being edited.
3418 * @param prog The name of the program to set the transition time.
3419 * @param seconds The duration of the transition (in seconds).
3421 * @return EINA_TRUE if successful, EINA_FALSE otherwise.
3423 EAPI Eina_Bool edje_edit_program_transition_time_set(Evas_Object *obj, const char *prog, double seconds);
3425 EAPI const char * edje_edit_program_filter_part_get(Evas_Object *obj, const char *prog);
3426 EAPI Eina_Bool edje_edit_program_filter_part_set(Evas_Object *obj, const char *prog, const char *filter_part);
3429 /******************************************************************************/
3430 /************************** SCRIPTS API ***********************************/
3431 /******************************************************************************/
3432 /** @name Scripts API
3433 * Functions to deal with embryo scripts (see @ref edcref).
3437 * Get the Embryo script for the group of the given object.
3439 * Get the shared script for the group under edition. Shared script means
3440 * the script {} block for the group, not counting what's in each program.
3441 * It returns a malloc'd duplicate of the code, so users are free to modify
3442 * the contents directly and they should remember to free() it when done.
3443 * NULL will be returned if there's no script or an error occurred.
3445 * @param obj Object being edited.
3447 * @return The shared script code for this group.
3449 EAPI char *edje_edit_script_get(Evas_Object *obj);
3452 * Set the code for the group script.
3454 * Set the Embryo source code for the shared script of the edited group.
3455 * Note that changing the code itself will not update the running VM, you
3456 * need to call edje_edit_script_compile for it to get updated.
3458 * @param obj The object being edited
3459 * @param code The Embryo source
3461 EAPI void edje_edit_script_set(Evas_Object *obj, const char *code);
3464 * Get the Embryo script for the given program.
3466 * Get the script code for the given program. Like the group script, this
3467 * function returns a duplicate of the code that the user can modify at will
3468 * and must free when done using it.
3469 * NULL will be returned if the program doesn't exist, doesn't have any
3470 * script or is not of type script.
3472 * @param obj Object being edited
3473 * @param prog Program name
3475 * @return The program script code
3477 EAPI char *edje_edit_script_program_get(Evas_Object *obj, const char *prog);
3480 * Set the Embryo script for the given program.
3482 * Set the Embryo source code for the program @p prog. It must be an
3483 * existing program of type EDJE_ACTION_TYPE_SCRIPT, or the function
3484 * will fail and do nothing.
3485 * Note that changing the code itself will not update the running VM, you
3486 * need to call edje_edit_script_compile for it to get updated.
3488 * @param obj The object being edited
3489 * @param prog The program name.
3490 * @param code The Embryo source
3492 EAPI void edje_edit_script_program_set(Evas_Object *obj, const char *prog, const char *code);
3495 * Compile the Embryo script for the given object
3497 * If required, this function will process all script code for the group and
3498 * build the bytecode, updating the running Embryo VM Program if the build
3501 * @param obj The object being edited
3504 EAPI Eina_Bool edje_edit_script_compile(Evas_Object *obj);
3507 * Get the list of errors resulting from the last script build
3509 * Get the list of errors that resulted from the last attempt to rebuild
3510 * the Embryo script for the edited group. This will be a standard Eina_List
3511 * with Edje_Edit_Script_Error pointers as its data.
3512 * The user should not do anything else but read the contents of this list.
3513 * These errors can be the output of the embryo compiler, or internal errors
3514 * generated by Edje_Edit if the preprocessing of the scripts failed.
3516 * @param obj The object being edited
3518 * @return A constant list of Edje_Edit_Script_Error, or NULL if there are none
3520 EAPI const Eina_List *edje_edit_script_error_list_get(Evas_Object *obj);
3523 /******************************************************************************/
3524 /************************** ERROR API ***********************************/
3525 /******************************************************************************/
3527 * to deal with error messages (see @ref edcref).
3530 EAPI extern Eina_Error EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED;
3531 EAPI extern Eina_Error EDJE_EDIT_ERROR_GROUP_REFERENCED;
3532 EAPI extern Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST;