path: root/src/lib/emotion (follow)
Commit message (Collapse)AuthorAgeFilesLines
* efl: Use Eina.Size2D for image load sizeJean-Philippe Andre2017-09-191-7/+8
* efl: Use Eina.Size2D for Efl.Gfx.sizeJean-Philippe Andre2017-09-181-8/+8
| | | | | Big patch as a lot of things call or reimplement size_set. Hopefully I got it right... fingers crossed.
* efl: Use Eina.Position2D for Efl.Gfx.positionJean-Philippe Andre2017-09-181-4/+4
| | | | | Note: This is a little bit more cumbersome in some places but in most it's more convenient than (x,y).
* emotion: Make it a clipped smart objectJean-Philippe Andre2017-09-132-68/+9
| | | | | This reduces code. And probably adds new bugs.
* emotion: Fix refcounts related to eio useJean-Philippe Andre2017-09-131-111/+78
| | | | | | | | | | | | | | | | | | | Inside emotion, if Eio is compiled, some asynchronous functions are used and a refcounted struct was used to ensure safety of the code. Unfortunately the logic didn't make much sense as emotion's private data is used. The refcount becomes useless, the lifecycle of the data being bound to the object itself. Note that an actual crash is almost impossible because: - eio is actually quite fast - evas objects are kept alive for 2 frames - eina_freeq is used to keep eo objects' data alive for some more time But this in theory fixes the events, as they were sent on the wrong object. "obj" is the image object, "smartobj" was the emotion object. This is fixed with a weak ref. I don't think it is necessary to backport this.
* evas: Fix crash with smart objectsJean-Philippe Andre2017-09-131-1/+1
| | | | This is due to the previous patches.
* evas: Add internal API to make smart obj (un)clippedJean-Philippe Andre2017-09-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduction to the problem: - Efl.Canvas.Group has a method member_add() to add sub objects. - Efl.Canvas.Group (simple smart object) does NOT actually delete the objects on deletion. But: - Efl.Canvas.Group.Clipped is a direct subclass and WILL delete the sub objects on deletion. Semantically, all smart objects (at least in EO and Elementary) will own and delete sub objects automatically. Some exceptions are: - Edje object (smart clipped) does not delete swallowed objects. Edje object is a "clipped" smart object but it pops out all swallowed children before getting deleted. - Evas box/table/grid also pop out their children before deletion. Those classes are all legacy & internal only. - Elm.Widget will "manually" delete all its sub objects at deletion, as it inherits from Efl.Canvas.Group but basically takes full ownership of the sub objects. Note that member_add shouldn't be used on a widget, the widgets do it themselves. Also, smart clipped objects are much more convenient to use as they will handle some things for you: color, visibility, moving and ownership. So, the API member_add needs to be marked as own(). But right now Efl.Canvas.Group does not own. Thus, here's the plan: - Mark clipped objects as such with an internal API - Merge clipped smart object features directly inside the standard smart object. - Get rid of Efl.Canvas.Group.Clipped entirely and watch all hell break loose. Ref T5301
* evas,edje,elm: Mark all legacy objects as suchJean-Philippe Andre2017-07-071-3/+1
* evas/elm: Make group_add/group_del internal functionsJean-Philippe Andre2017-05-192-2/+6
| | | | This hides those two legacy functions from the EO API.
* evas: Make Efl.Canvas.Object.type internalJean-Philippe Andre2017-05-191-0/+2
* Fix sed error that changed "video" to "videfl"Derek Foreman2017-04-174-5/+5
| | | | | | commit c662934be8bcbaba60d1688e77533acbea5d09b9 seems to have accidentally renamed a few instances of _video_ to _videfl_, this hopefully changes them all back.
* emotion: avoid crash during shutdown due to Ecore_Event queue.Cedric BAIL2017-03-091-5/+12
* group: Track calls to group_delJean-Philippe Andre2017-02-151-1/+1
| | | | | | | | After a long search I found that fileselector was not calling super.group_del on deletion, leading to the use of dangling pointers. So let's verify that group_del is properly called. See T4598
* emotion: add since tag to new emotion_file_meta_artwork_get APIStefan Schmidt2017-02-141-1/+3
* vpath file - add a keey property to know if obj should be kept aroundCarsten Haitzler (Rasterman)2017-02-131-8/+31
| | | | | | | | | | | | if its a file downloading (to a tmp location) or a zip/tar/whatever file being extracted also to a tmp location and that tmp file needs to be removed after ...you need to keep the obj around to know when to delete the file. this makes the keeping optional and you query if the vpath obj is meant to be kept or not. if it's not it's safe to del immediately. this cuts down 1 obj per image obj/edje obj when generally unused. save some mem.
* ifdef RUN_IN_TREE logic.Gustavo Sverzut Barbieri2017-02-031-0/+2
| | | | | This logic is only needed for autotools, cmake will replicate the installation file structure and thus eina_prefix works out of box.
* emotion: add support for obtaining embedded artwork from media files with ↵Al Poole2017-01-125-2/+46
| | | | | | | | | | | | gstreamer1 backend. Reviewers: raster, cedric Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4550 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
* eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ.Cedric BAIL2017-01-061-7/+7
* emotion: use new property impl syntaxDaniel Kolesa2016-12-271-22/+16
* emotion: remove float comparison warningsChris Michael2016-12-201-6/+7
| | | | Signed-off-by: Chris Michael <cp.michael@samsung.com>
* docs: emotion: add last missing docs for emotion eo fileStefan Schmidt2016-11-101-1/+3
* evas: Fix masks of masks and clippers of clippers in generalJean-Philippe Andre2016-11-091-0/+2
| | | | | | | The root cause was simple: smart object clipped was not calling efl_super() on clip_set. Fixes T4813 (and probably a whole lot of other bugs)
* emotion - add vpath support for file_set on emotion objectsCarsten Haitzler (Rasterman)2016-10-251-1/+12
| | | | | | this completes my todo list for vpath path support at least for now (evas images, edje objects and emotion objects). now vpath's work for these too.
* docs: emotion: add missing docs for efl canvas video eventsStefan Schmidt2016-10-241-20/+20
| | | | Also make use of $true keyword while being there.
* Emotion: prefer ratio to calculate sizesDave Andreoli2016-10-161-3/+13
| | | | | | | | Instead of calculate the ratio from the sizes, calc the width from the ratio, as ratio seems always accurate. Fallback to the old code if ratio not available (tbh I never see this case) @Fix EMOTION_ASPECT_KEEP_BOTH with some rare strams, mostly DVD and online stuff
* evas: Mark group_add/del as internalJean-Philippe Andre2016-10-121-0/+2
| | | | | | | | | | | | | Lacking a proper internal tag, I'm using both protected (it is in fact a protected access function) and beta (to mark as unstable, not real API). New smart objects based on EO only should rely on constructor, finalize and destructor exclusively. In theory, this should be fine. Unfortunately it may be impossible to inherit from the Efl.Ui.Win class as it uses a really bad hack and calls super.constructor inside the finalize method.
* evas/elm: Remove function group_resizeJean-Philippe Andre2016-10-122-2/+7
| | | | | | | | | | | | | | | | | | | This is an override of efl_gfx_size_set. Same as before, the order of operations matter so it is possible that a corner case will break. In particular, legacy code was: - intercept - smart resize (do stuff), super, super, super - evas object resize The new code is more like: - intercept - super, super, super, evas object resize - do stuff But unfortunately this broke elm_widget (read: all widgets) as the internal resize was done before the object resize. So, inside the resize event cb, the resize_obj size would not match the smart object size. >_<
* evas/elm: Remove function group_moveJean-Philippe Andre2016-10-122-3/+8
| | | | | | | | | | | | | | | | | | This is an override of efl_gfx_position_set. As for the other patches, I hope I didn't break anything. A problem likely to happen is that the super call was inserted too early or too late in the call flow. For instance: _myclass_position_set(obj, x, y) { position_set(super(obj), x, y); position_get(obj, &prevx, &prevy); do_something_with_delta_xy(); } The above code flow is obvisouly wrong, but may have crept in this patch (such a bug sneaked in inside smart object, breaking everything at first).
* evas/elm: Remove group_show and group_hideJean-Philippe Andre2016-10-122-15/+15
| | | | | | | | | | | | These should be just overrides of Efl.Gfx.visible.set. Many widgets were handling smart show() and hide() manually, which means this patch is quite large. Hopefully this doesn't break anything, obviously. But here are some widgets known to be problematic, as the old code flow was really strange (sometimes not calling the efl_super function): - window - notify
* evas: Move clip_unset to legacy, remove group_clipJean-Philippe Andre2016-10-122-12/+5
| | | | | | | | | | | | Similarly to group_color_set, group_clip_[un]set should not exist and should be a result of efl_super and inheritance. This patch also removes clip_unset from the EO API and keeps only clip_set(NULL). The reason is that it will avoid bad overrides of clip_unset() vs. clip_unset(NULL). This also simplifies the code a bit. Ideally we should be able to reintroduce clip_unset in EO if we can have a "@final" tag (like java's final keyword), to prevent overrides.
* evas: Remove method group_color_setJean-Philippe Andre2016-10-122-2/+6
| | | | | | | | | | Widgets should simply override efl_gfx_color_set and call super all the way up to evas object. Legacy compatibility with call interceptors and early call abortion (eg. delete_me or obj->layer == NULL) are implemented with an internal call. See the previous commit introducing the API.
* Emotion: modify the playback finish behavior as beforeDaniel Zaoui2016-09-251-6/+2
| | | | | | | The callbacks are never invoked due to sd->play equal to 0. The function _emotion_decode_stop is called before and resets this field. Before the change to Efl.Canvas.Video, sd->play was not checked.
* emotion: convert Emotion_Object into Efl.Canvas.VideoYeshwanth Reddivari2016-09-214-182/+217
| | | | | | | | Reviewers: singh.amitesh, raster, jpeg, cedric Differential Revision: https://phab.enlightenment.org/D3994 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
* Efl Object: remove legacy callback calls from event_callback_callVitor Sousa2016-08-261-23/+23
| | | | | | | | | | | | | 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.
* Eo: Finish the renaming of Eo to the EFL.Tom Hacohen2016-08-154-11/+11
| | | | | | | This renames all the rest of the API to the EFL namespace except for Eo_Event that will follow soon. Obviously breaks both API and ABI.
* Change the EFL to follow the new Eo rename.Tom Hacohen2016-08-112-26/+26
* emotion modules -0 check return value of eina_module_load and print errCarsten Haitzler (Rasterman)2016-08-081-2/+7
| | | | | this should inform the user via eina log errors that a module load failed. this fixes CID 1360954
* evas: Rename Evas.Object to Efl.Canvas.ObjectJean-Philippe Andre2016-06-211-2/+2
| | | | | One step closer to make the EO inheritance tree look like it's all Efl.
* Evas: Rename smart object into Efl.Canvas.GroupJean-Philippe Andre2016-06-172-19/+19
* Evas: Add smart_ prefix to all smart functions (eo)Jean-Philippe Andre2016-06-172-18/+18
| | | | | This is a first step at separating legacy smart object features away from standard efl interfaces.
* Evas: Mark type as legacy and protectedJean-Philippe Andre2016-06-171-0/+2
| | | | | | Only set() is allowed for EO, and it's a constructor, protected function. Unfortunately, this means a lot of #define EVAS_OBJECT_PROTECTED
* eolian: utilize the new builtin string type across eo filesDaniel Kolesa2016-05-311-3/+3
* eolian: add event_prefix and have classes follow that or eo_prefix by defaultDaniel Kolesa2016-05-171-0/+1
| | | | | | | | | | Previously events used to use class name as a prefix and ignored eo_prefix when specified. This is no longer the case. Events follow eo_prefix by default now. In order to get around this for classes where this is undesirable, a new field event_prefix was added which takes priority over eo_prefix. If neither is specified, class name is used like previously. @feature
* Add legacy_prefix now that the default has changed to null.Tom Hacohen2016-05-121-0/+1
* Efl image: Fix namespacing to use . and not _.Tom Hacohen2016-05-121-2/+2
* Evas object smart: Fix namespace to use . and not _.Tom Hacohen2016-05-121-10/+10
* Efl.Gfx.Buffer: Add interface skelettonJean-Philippe Andre2016-03-152-3/+3
* Revert "Automatic migration to the new eo_add syntax."Tom Hacohen2016-03-111-1/+1
| | | | This reverts commit 4f949a2757b6332306264d7f126b15ba7bfd37d4.
* Automatic migration to the new eo_add syntax.Tom Hacohen2016-03-091-1/+1
* Fix migration script mistakes and compilation warnings.Tom Hacohen2016-03-031-10/+0
| | | | | | Mostly unused vars following the removal of eo_do_ret(). However, there are some cases where the migration script got some things wrong, and I had to manually fix them.