Edje 1.8.0

Changes since Edje 1.7.0:
-------------------------

Additions:
    * Report type of file when listing file used by an edc.
    * Add nested parts support.
    * Add EDJE_INPUT_PANEL_RETURN_KEY_TYPE_SIGNIN
    * Add edje_codegen - A code generator to working with edje files.
    * Add more tags(preedit_sub1~4) for a variety of preediting states.
    * Add embryo function get_image_id
    * edje_player slave mode supports sending messages.
    * Add support to physics.

Improvements:
    * Change Edje to use Eo.
    * Check the number of parameter for image in edc.
    * Less memory used per part in an edje file (about 25% less).
    * O(1) lookup used when searching Part_Lookup in edje_cc.
    * O(1) lookup when generating alias of group.
    * O(1) access time for parameters in edje_cc_handler.
    * Recycle and use less memory during load time.
    * Less memory used per callbacks.
    * Don't generate an annotate file if edje_cc failed.
    * Lua 5.2 support added, still works fine with 5.1.
    * Evas now does compute Ellipsis.

Fixes:
    * fix scale_set with edje containing boxes and/or tables
    * fix scale_set with edje containing groups
    * fix edje_cc to use max, not default compression
    * fix edje_text_class_set to update the text classes correctly.
    * fix to not update map uv for proxy
    * fix build on Solaris 11.
    * fix duplicate after programs in group inheritance.
    * fix return plain string in retrive surrounding text callback of entry
    * Before cursor is moved by mouse_down, imf_context_reset should be called with current cursor position.

Edje 1.7.0

Changes since Edje 1.2.0:
-------------------------

Additions:
    * Add edje_watch to monitore change on edje source.
    * Emit ['edje,change,file', 'edje'] when the file change on disk.
    * edje_player will automatically reload the file when it change on disk.
    * Add SPACER part. This part are not putting anything into the canvas. So lighter and faster to
    process (Use it to replace RECT part that are never visible and never catch any event).
    * Add accessibility flags and API to retrieve the relevant part.
    * Emit signal when flagged part size get to zero.
    * Warn at compile time about forgotten image.
    * Stop compilation when clipping to a non RECT part.

Improvements:
    * Allocate once and reuse Evas_Map.
    * Make edje_cc faster by improving the parser, mapping file in memory and using threads.
    * Made state index optional in EDC files and Embryo scripts.
    * Improve speed of color_class lookup by using an Eina_Hash.

Fixes:
    * Add missing files in the tarballs.
    * Prevent crash when running nested edje_object_signal_emit with edje_object_signal_callback_{add,del}.
    * Do actually verify that the file on disk is different from the file we have loaded.
    * Preserve user drag, box and table information during call of edje_object_file_set.
    * Fix table and text when fixed point is turned on.
    * Clamp image tween to never underflow also.
    * [entry] display preedit string even though there is no attribute
    * Fix shutdown of Edje_Multisense.
    * Reduce potential reentrant issue when using edje_object_signal_emit.
    * Call edje_object_message_signal_process also on GROUP part Edje object.
    * Remove memory leak when alias are present in the edj file.
    * Properly destroy color_class and text_class on an Edje_Object.
    * Stop leaking memory on edje block error during signal emit.

Edje 1.2.0

Changes since Edje 1.1.0:
-------------------------

Additions:

    * "recalc" smart callback for object size changes.
    * EDJE_ASPECT_PREFER_SOURCE.
    * edje.version() Lua function.
    * minmul edc property.
    * add min: SOURCE and max: SOURCE to IMAGE and GROUP parts.
    * add broadcast_signal: bool.
    * add edje_object_part_text_imf_context_get().
    * add edje_object_update_hints_set() and edje_object_update_hints_get().
    * nee keybindings in entry flr ctrl+arrows, ctrl+del and ctrl+backspace.
    * cursor,changed,manual signal from entry.
    * undo/redo in entry + IMF.
    * HEX, TERMINAL, PASSOWORD vkbd types added.
    * recalc smart callback for object size changes back to C.
    * EDJE_ASPECT_PREFER_SOURCE.
    * Lua: edje.version().
    * minmul property.
    * edje_object_part_text_style_user_set/get().
    * min/max: SOURCE.
    * edje_object_text_markup_filter_callback_add/del/del_full().
    * edje_object_part_text_input_panel_show/hide().
    * edje_object_part_text_imf_context_reset().
    * edje_object_part_text_prediction_allow_set/get().
    * add a way to disable signal broadcasting.
    * edje_object_part_text_input_panel_language_set/get().
    * edje_object_part_text_input_panel_imdata_set/get().
    * edje_object_part_text_input_panel_return_key_type_set/get().
    * edje_object_part_text_input_panel_return_key_disabled_set/get().
    * edje_object_part_text_user_insert()
    * double click in entry selects word, triple selects line.
    * EDJE_VERSION_12 define in edc for #ifdefs handling edje 1.2 (or older)
    * edje_object_part_text_escaped_set()

Improvements:
    * speedup load time of Edje file.
    * check existence of group at compile time also.
    * reduce number of call to stat during edje_object_file_set.
    * unswallow object about to be swallowed if necessary.
    * Lua scripts now more resilient against API changes.
    * edje_cc only store the image actively used in an edje file.
    * reduction in part walking.
    * check group existence at edje_cc time.
    * edje_object_part_text_cursor_content_get() prototype fixed.
    * calling non-existant lua functions doesn't crash now.
    * make it possible to update size hints automatically

Fixes:
    * Correctly count and propagate preload signal with GROUP.
    * Fix rotation with fixed point.
    * Correctly propagate scale factor to GROUP.
    * Potential crash from buffer overflow copying map data.
    * Limits detection by edje_cc.
    * Errant free() call in loading of edje files.
    * unswallow objects that are going to be swallowed elsewhere.
    * ability to change edje source correctly inside edje callback.
    * overriding group in edje_cc.
    * filter now only valid once program affecting parts is done.
    * edje_object_part_text_input_panel_enabled_set/get if IMF doesn't exist.
    * EDJE_CALC_CACHE issues and when using relative to_x/y on separate parts.
    * filter preventing any action being triggered.
    * signal propagation when matching target GROUP exists.
    * correctly count and propagate preload signal with GROUP
    * rotation with fixed point
    * propagate scale factor to GROUPS
    * fix no number inserts even if numlock is locked

Changes since Edje 1.0.0:
-------------------------

Additions:

    * "UNDER" entry cursor mode
    * auto alignment of TEXT parts with text.alignment set to -1
    * mirroring support
    * edje_object_part_text_cursor_pos_set/get()
    * size_range propert to TEXT parts
    * proxy parts so part can source other parts including swallows
    * support explicit shadow direction with added effect param
    * edje_object_part_text_append()
    * new interpolations: ACCEL_FAC, DECEL_FAC, SIN_FAC, DIVIS, BOUNCE, SPRING
    * "entry,paste,request,1" signal (primary)
    * "entry,paste,request,3" signal (clipboard)
    * "entry,selection,all,request" signal
    * "entry,selection,none,request" signal
    * "entry,paste,request*" signals afte cursor change
    * "entry,changed,user" signal
    * collection.group.limits.horizontal/vertical
    * input panel layout setting API's
    * edje_object_signal_callback_extra_data_get()
    * group inheritance and part re-ordering with inheritance
    * add change information to "entry,changed,user"
    * add "CURRENT" option for transitions to transition from current state
    * lua color/text class, map, text, image, line, polygon and edje object API's

Fixes:

    * invalid memory access in edje alias code
    * recusive aliases fixed
    * cursor didn't change on backspace signal
    * propagation of recursive events on existing part
    * box/table signal not including name correctly
    * clicked signal on entry
    * propagation of recursive events between existing and non-existing parts
    * textblock handling in size_min_restricted_calc fixed
    * stop emitting "cursor,changed" on text set
    * external usage in sub groups now have proper parents
    * ellipsis fixed with small text parts
    * edje_shutdown() fixed if called before all edje objects are gone
    * allow -1 for description.max

Improvements:

    * built-in epp (from e16) to replace cpp/gcc pre-processor on all platforms
    * edje_decc only uses edje_cc as compiler for security paranoia
    * use smart clipper more from evas
    * text.align now works for textblock too
    * creation/deletion of edje objects should be faster with freeze and thaws
    * don't walk eina_list when deleting member classes - faster
    * part.description.max now can define just 1 axis
    * signal and message propagation is more consistent and simpler now
