path: root/src/lib/edje/edje_calc.c (unfollow)
AgeCommit message (Collapse)Author
2018-04-24Efl.Gfx.Entity (from Efl.Gfx)Xavi Artigas
Ref Reviewed-by: Cedric Bail <>
2018-04-24Efl.Canvas.Vg.Object (from Efl.Canvas.Vg)Xavi Artigas
Also, Efl.Canvas.Vg.* (from Efl.Canvas.VG.*) Ref Reviewed-by: Cedric Bail <>
2018-02-28edje: add ability to reference images from other edje filesMike Blumenkrantz
this uses the just-added "id" property to allow referencing images by name from that theme. example: =FILE1= id: "myfile"; images.image: "someimage.png" COMP; =FILE2= requires: "myfile"; images.image: "someimage.png" EXTERNAL "myfile"; FILE2 will now load someimage.png from FILE1 at runtime if FILE1 is currently opened in edje, and FILE1 will be kept open until FILE2 is closed @feature
no functional changes, just a confusing define rename
2018-02-12evas_vg: implement interpolate from Efl.Gfx.PathMike Blumenkrantz
2018-01-16ecore/edje/elm: Fix a few WRN from calls to NULLJean-Philippe Andre
This fixes some of the warnings generated by calling functions on NULL objects. One of the main remaining points is to avoid unwanted warnings on non-existing parts. Ref T6326
2017-12-11interface: rename Efl.Dup to Efl.Duplicate.Amitesh Singh
dup is considered too short and maybe confusing, hence rename it to duplicate instead.
2017-12-07edje: Rename events according to recent renameJean-Philippe Andre
Ref T5315
2017-11-30efl: Introduce interface Efl.DupJean-Philippe Andre
A few classes allow their objects to be duplicated, so they should all use the same interface. Also, rename VG's dup to copy_from as it's not conforming to the definition of dup.
2017-11-13edje: add event for inform about circular dependencyVyacheslav Reutskiy
This commit add the event "circular,dependency" for edje object. Given event is called when edje found the circular dependency between parts in object. This event will be usefull and informative paired with Edje_Edit API.
2017-11-11Revert "Edje: use textblock by default"Carsten Haitzler (Rasterman)
This reverts commit ef3d2120bfa58f9247a441602bd30f13cc7f225a. This breaks E. pager ono my right screen looks like: on my left screen shellf keeps swapping between 2 dizes wobbling back and forth every frame eating cpu and making it "blurry"... note - theme is the flat one in devs/raster/theme/flat2 branch. so this change certainly breaks something...
2017-11-10Edje: use textblock by defaultDaniel Hirt
As most of you know, TEXT part was, up to this point, an Evas.Text object. This patch merges TEXT and TEXTBLOCK both to use Efl.Canvas.Text. Code is added to emulate what TEXT did that TEXTBLOCK did not. I believe we can move forward with TEXT, and deperacate TEXTBLOCK from the EDC. You can also set markup to TEXT parts. Exactness seems to show some differences, but further examination shows that it's due to difference in how width is calculated in Efl.Canvas.Text. The results seem correct. Be sure to report of any breakage via Phabricator or contact me directly. I am running E with this and did not stumble upon any crashes or visual bugs. Signed-off-by: Cedric BAIL <>
2017-11-10Edje: move textblock handling to a separate sourceDaniel Hirt
Signed-off-by: Cedric BAIL <>
2017-11-08evas/vg: changed the efl_vg_dup api signature.subhransu mohanty
Reviewers: jpeg, cedric Subscribers: cedric, jpeg Differential Revision:
2017-10-27evas vg: Add FIXME and fix strbuf useJean-Philippe Andre
This is the result of a really quick review of the new VG code. Most of it was moved around, but this merge includes the following: - Move logic from edje to evas - Create static lib for common VG handling - Add file_set() API - Add a basic VG cache in evas side - Add savers modules, implement loaders and savers.
2017-10-27edje: use the file_set api from vg canvas to load and parse svg file.subhransu mohanty
2017-10-23evas: add set function for root_node property.subhransu mohanty
Summary: Currently user ask for the root_node from the evas_vg object and then attach its tree by setting the root node as parent. With this change this process will be explicit. user has to set the root node to the evas_vg object and the object will take the ownership of the tree. User can query the current vg_tree by root_node_get api. Test Plan: Fixed the test app to reflects this change. Reviewers: jpeg, cedric Reviewed By: jpeg, cedric Subscribers: cedric Differential Revision: Signed-off-by: Cedric Bail <>
2017-10-18edje: correct the usage of EINA_SIZE2DThiep Ha
The usage of EINA_SIZE2D macro as left hand side variable does not save the size value. The Eina_Size2D should be used.
2017-10-04evas: remove use of engine image_load from Evas.Canvas3D.Texture.Cedric Bail
2017-09-28edje - fix check return of _edje_fetchCarsten Haitzler (Rasterman)
fixes CID 1381326
2017-09-18efl: Use Eina.Size2D for size hint restricted minJean-Philippe Andre
This is the "internal" or "intrinsic" minimum size, to be set by EFL and not by applications.
2017-09-18efl: Use Eina.Size2D for Efl.Gfx.sizeJean-Philippe Andre
Big patch as a lot of things call or reimplement size_set. Hopefully I got it right... fingers crossed.
2017-09-18efl: Use Eina.Position2D for Efl.Gfx.positionJean-Philippe Andre
Note: This is a little bit more cumbersome in some places but in most it's more convenient than (x,y).
2017-09-18efl: Introduce Eina.Rect and switch EO APIs to itJean-Philippe Andre
It's a complex struct but defined in EO as a simple struct. ABI-wise it's equivalent to Eina_Rectangle. Some macros that use Eina_Rectangle also work on Eina_Rect out of the box, most of the code dealing with x,y,w,h will require no modifications either. But Eina_Rect provides direct access to a size or position 2d component, as well as the usual x,y,w,h. The field "rect" is provided as a convenience for code dealing with both Eina_Rectangle and Eina_Rect. We may or may not require it. Note: Size2D could use unsigned values but I have spotted a few places in the code that actually use -1 to indicate invalid size (as opposed to 0x0). @feature
2017-09-13efl_gfx_fill: Use Eina.Rectangle for fill (EO)Jean-Philippe Andre
2017-09-13edje: Remove use of smart clipped dataJean-Philippe Andre
This removes dependency on a legacy structure. Edje object does not change the smart data, unlike evas box and grid.
2017-07-20slider: fix jumping handler bug.Hosang Kim
Summary: Actual slider value is not changed. So when user release mouse or touch, slider value is returned to the value by user set. This is a partial revert of f41e2761608fff7b070d630a738 Fixes T5745 Test Plan: elementary_test -> slider Reviewers: jpeg Subscribers: cedric Maniphest Tasks: T5745 Differential Revision:
2017-07-11slider: Allow range limitationsHosang Kim
Summary: When user drags slider, slider value cannot be changed by API. However the necessity of above behavior has emerged. Because sometimes applications want limitation of slider value. Test Plan: elementary_test -> slider -> Limited Reviewers: woohyun, cedric, SanghyeonLee, singh.amitesh, jpeg Reviewed By: jpeg Subscribers: cedric, jpeg Differential Revision:
2017-07-04edje: support legacy Textblock calculation logic for 1.18 edje fileYoungbok Shin
Summary: From EFL 1.19, Edje Textblock calculation logic was fixed according to Edje documents. But, it broke old edje files which ignored text.min option for minimum width. Even if the old edje files were wrong, we need to support them as discussed from T5548. Also, this patch will change default efl_version to 1.18 from 1.19. So, without efl_version property, edje file will run on the legacy logic. Fixes T5548 Test Plan: Turn on/off presentation mode in Enlightenment. Reviewers: herdsman, cedric, jpeg, zmike, raster Subscribers: stefan_schmidt Maniphest Tasks: T5548 Differential Revision: Adjusted by @jpeg
2017-06-09Revert "Revert "Edje calc: Fix textblock size calculation logic""Mike Blumenkrantz
This reverts commit 0392cd3c489ee1c69dc768b2c3e8ac01ba1854c1. oops this was supposed to just be local
2017-06-09Revert "Edje calc: Fix textblock size calculation logic"Mike Blumenkrantz
This reverts commit a6fff5bc1e5e30a946e435369bcbaa406dd5d5ba.
2017-06-05edje: object have small difference and we use switch case fallthrough to ↵Cedric BAIL
reuse code.
2017-05-31edje: Reshuffle a bit edje_object.eoJean-Philippe Andre
This changes a few method names: - freeze -> calc_freeze - thaw -> calc_thaw - update_hints -> calc_update_hints Otherwise this is mostly about reshuffling the EO file itself and changing documentation. Ref T5315
2017-05-08edje: null checking the return value of a function eina_mempool_mallocMinchul Lee
Summary: The return value of the function eina_mempool_malloc was dereferenced without checking. I added the checking code similar to the other codes. @fix Reviewers: raster, cedric, jpeg, herdsman, woohyun, stefan_schmidt Subscribers: stefan_schmidt Differential Revision:
2017-04-25edje_cc: introduce "Anchors" - easy way to set parts relationshipJeeyong Um
Test Plan: compile src/examples/edc-anchors.c and run Reviewers: zmike, raster, cedric, jpeg Reviewed By: raster, jpeg Subscribers: raster, barbieri, zmike, SanghyeonLee, taxi2se, Jaehyun_Cho Differential Revision: Signed-off-by: Cedric BAIL <>
2017-04-10edje: Add workaround for misuses of clip_setJean-Philippe Andre
An unfortunately very common misuse of clip is as follows: - Layout A is created (edje object / elm_layout) - Object B is swallowed inside A - Clipper C is set to clip B This is a invalid usage, as layout A takes control over the clip property of B (just like it does for geometry, visibility, color...). Since 75ec3a7338c9c2406d4 edje_recalc resets the clip at every calc loop, as it can change between states. In the past, edje_recalc did not reset the clip so anyone could (wrongly) swallow an object and then change its clip from C to modify its color, mask it, blend it, etc... Even though this was not proper use of the API, this is not very clearly documented, and since it worked, it has been (ab)used a lot already. The result now is that a clipper set from C will become visible as an opaque white rectangle covering the entire UI. Booh. This patch is a workaround that should have no impact on well written applications. As a bonus this avoids an extra call to clip_set() from edje. @fix
2017-03-14edje: Move prev_description out of ephysics ifdefJean-Philippe Andre
prev_description was used when HAVE_EPHYSICS is set, which is the default, but I also added a use in 7072fbc2bfe25881 where the map was not properly reset. This removes an ugly #ifdef and opens the door to other fixes similar to that map one.
2017-02-21edje: Fix a major issue with recalc loopJean-Philippe Andre
With the new Efl.Ui.Clock widget, which implements Datetime, most parts are relative to each other, and trigger a near-inifinite recalc of all the parts. Indeed edje was recalculating a part even if it had already calculated it (flag is set). This seemingly simple patch fixes Datetime and probably a lot of other edje widgets. Fixes T4909 @fix
2017-02-14Edje calc: Fix textblock size calculation logicYoungbok Shin
Summary: In singleline textblock, using "text.min: 1 0" and min, max width, Edje allows to use expandable text with ellipsis. It shows ellipsis when only text's width reach the max width. But, Edje couldn't support same feature on multiline textblock. Edje dose not use max height or text.max properly if ellipsis is enabled. This feature is very useful to make a layout with dynamically aligned text. @fix Reviewers: cedric, tasn, woohyun, raster, herdsman Subscribers: z-wony, eagleeye, jpeg Differential Revision:
2017-01-25edje - fix border scale by interpolationCarsten Haitzler (Rasterman)
several theme elements uses transitioning border scale by for animation and this has been broken for quite some time now. the theme sall looked wrong for ages. i just never junted down exactly why, but i know... i wrote the themes that made use of scale by animation interpolating from like 0.1 to 1 and so on to make for example a shadow go from sharp to blurry... the theme hasnt changed. edje did. it broke. this fixes it back to where it was. interpolation now works. i left a comment so no one tries to "fix it". @fix
2016-12-20edje: fix float comparison warning in edje calc.Cedric BAIL
2016-12-16edje: handle case when strdup would be NULL.Cedric BAIL
alternate solution to D4488. Would be better to have a buffer and recycle it.
2016-12-14edje_calc: remove redundant checkingThiep Ha
We check amin > ZERO && amax > ZERO, so no need to do it them again.
2016-11-30edje_calc: round the scaled value when it is casted to int type.Jaehwan Kim
It rounds the value for the more precious calculation when the scaled value is casted to int type.
2016-10-11edje_calc: add rounding pixel calculation for transition.Hosang Kim
Summary: when transition animation is working, sometimes one pixels loss occurs. Reviewers: cedric, woohyun, jpeg, raster Subscribers: jpeg Differential Revision:
2016-08-26Efl Object: remove legacy callback calls from event_callback_callVitor Sousa
Efl.Object.event_callback_call no longer calls legacy smart callbacks; calling only event callbacks registered with the given event description pointer. Create the method Efl.Object.event_callback_legacy_call to inherit the old behavior from Efl.Object.event_callback_call, calling both Efl.Object events and legacy smart callbacks. Update all other files accordingly in order to still supply legacy callbacks while they are necessary.
2016-08-22edje: fix warning raised by clangJean Guyomarc'h
Clang was not happy with the initialization of the structure.
2016-08-21edje - fix missing vector field frees, copies, handling etc.Carsten Haitzler (Rasterman)
it seems vector type parts were not handled all that well. we had at least one mem leak with the vector mempool never being freed... so i filled in various missing points where vector parts were not being handled right. @fix
2016-08-21edje - reduce anothr 400k or so of memory usage (esp hello world)Carsten Haitzler (Rasterman)
so edje was allocating 32 pointers per collection. this is per collection inside an edje file even if we just use one collection from that edje file. it consumes 32 pointers. on 64bit thats 256 bytes... just for pointers to mempools so we can "optimize" freeing and allocation of parts. this was simply rediculous. i moved it to a sub-struct allocated on demand (so now only for collections we actually use) and this nuked 400k of "base memory usage youcant get rid of). note that our current default theme has something like 1100 or so images, 1500 or so collections in it. as theme gorws, memory footprint goes up if we dont allocation only on demand (when needed/used) and we aren't careful about the size of our data structs and their content. @optimize
2016-08-18ejde - fix recalc single min n edje for h evalCarsten Haitzler (Rasterman)
this fixes a seemingly small typo that would only turn up with fixed point, but not floats as we have by default whwere we had x = 999; instead of x = FROM_INT(999); shouldn't be visibule unless you disable float support and use fixed point in edje.