summaryrefslogtreecommitdiff
path: root/src/lib/emotion/emotion_smart.c (follow)
AgeCommit message (Collapse)Author
2017-09-19efl: Use Eina.Size2D for image load sizeJean-Philippe Andre
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-13emotion: Make it a clipped smart objectJean-Philippe Andre
This reduces code. And probably adds new bugs.
2017-09-13emotion: Fix refcounts related to eio useJean-Philippe Andre
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.
2017-09-13evas: Fix crash with smart objectsJean-Philippe Andre
This is due to the previous patches.
2017-09-13evas: Add internal API to make smart obj (un)clippedJean-Philippe Andre
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
2017-07-07evas,edje,elm: Mark all legacy objects as suchJean-Philippe Andre
2017-05-19evas/elm: Make group_add/group_del internal functionsJean-Philippe Andre
This hides those two legacy functions from the EO API.
2017-05-19evas: Make Efl.Canvas.Object.type internalJean-Philippe Andre
2017-04-17Fix sed error that changed "video" to "videfl"Derek Foreman
commit c662934be8bcbaba60d1688e77533acbea5d09b9 seems to have accidentally renamed a few instances of _video_ to _videfl_, this hopefully changes them all back.
2017-02-15group: Track calls to group_delJean-Philippe Andre
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
2017-02-13vpath file - add a keey property to know if obj should be kept aroundCarsten Haitzler (Rasterman)
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.
2017-01-12emotion: add support for obtaining embedded artwork from media files with ↵Al Poole
gstreamer1 backend. Reviewers: raster, cedric Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4550 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-01-06eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ.Cedric BAIL
2016-12-20emotion: remove float comparison warningsChris Michael
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-11-09evas: Fix masks of masks and clippers of clippers in generalJean-Philippe Andre
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)
2016-10-25emotion - add vpath support for file_set on emotion objectsCarsten Haitzler (Rasterman)
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.
2016-10-16Emotion: prefer ratio to calculate sizesDave Andreoli
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
2016-10-12evas: Mark group_add/del as internalJean-Philippe Andre
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.
2016-10-12evas/elm: Remove function group_resizeJean-Philippe Andre
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. >_<
2016-10-12evas/elm: Remove function group_moveJean-Philippe Andre
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).
2016-10-12evas/elm: Remove group_show and group_hideJean-Philippe Andre
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
2016-10-12evas: Move clip_unset to legacy, remove group_clipJean-Philippe Andre
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.
2016-10-12evas: Remove method group_color_setJean-Philippe Andre
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.
2016-09-25Emotion: modify the playback finish behavior as beforeDaniel Zaoui
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.
2016-09-21emotion: convert Emotion_Object into Efl.Canvas.VideoYeshwanth Reddivari
Reviewers: singh.amitesh, raster, jpeg, cedric Differential Revision: https://phab.enlightenment.org/D3994 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
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-15Eo: Finish the renaming of Eo to the EFL.Tom Hacohen
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.
2016-08-11Change the EFL to follow the new Eo rename.Tom Hacohen
2016-06-21evas: Rename Evas.Object to Efl.Canvas.ObjectJean-Philippe Andre
One step closer to make the EO inheritance tree look like it's all Efl.
2016-06-17Evas: Rename smart object into Efl.Canvas.GroupJean-Philippe Andre
2016-06-17Evas: Add smart_ prefix to all smart functions (eo)Jean-Philippe Andre
This is a first step at separating legacy smart object features away from standard efl interfaces.
2016-06-17Evas: Mark type as legacy and protectedJean-Philippe Andre
Only set() is allowed for EO, and it's a constructor, protected function. Unfortunately, this means a lot of #define EVAS_OBJECT_PROTECTED
2016-03-15Efl.Gfx.Buffer: Add interface skelettonJean-Philippe Andre
2016-03-11Revert "Automatic migration to the new eo_add syntax."Tom Hacohen
This reverts commit 4f949a2757b6332306264d7f126b15ba7bfd37d4.
2016-03-09Automatic migration to the new eo_add syntax.Tom Hacohen
2016-03-03Fix migration script mistakes and compilation warnings.Tom Hacohen
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.
2016-03-03Automatic migration to Eo4.Tom Hacohen
I just ran my script (email to follow) to migrate all of the EFL automatically. This commit is *only* the automatic conversion, so it can be easily reverted and re-run.
2016-01-13EFL: Mark EOLIAN functions as static when possibleJean-Philippe Andre
This affects mostly evas filters.
2015-12-23efl-js: JavaScript Eolian bindingFelipe Magno de Almeida
To configure efl sources with bindings to use in nodejs add ––with-js=nodejs in configure flags to generate node files $ configure --with-js=nodejs and compile normally with: $ make $ make install To use, you have to require efl: efl = require('efl') The bindings is divided in two parts: generated and manually written. The generation uses the Eolian library for parsing Eo files and generate C++ code that is compiled against V8 interpreter library to create a efl.node file that can be required in a node.js instance. @feature
2015-06-07emotion: porting evas smart callbacks to eoAvi Levin
2015-05-20Eo: Add a return value to eo_constructor().Tom Hacohen
From now on, constructors should return a value, usually the object being worked on, or NULL (if the constructor failed). This can also be used for implementing singletons, by just always returning the same object from the constructor. This is one of the final steps towards stabilizing Eo. @feature
2015-05-06Emotion: Migrate some more of emotion to Eo/efl.player.Tom Hacohen
2015-02-23Fix code to conform to recent Eo changes.Tom Hacohen
2014-10-06emotion - limit pos set seecks to 0.0 at minumum pointCarsten Haitzler (Rasterman)
2014-09-25Eo: Change eo_add/del/unref behaviour.Tom Hacohen
Before this change eo_add() used to create an object with 1 ref, and if the object had a parent, a second ref. Now, eo_add() always returns an object with 1 ref, and eo_add_ref() preserves the old behaviour (for bindings). eo_unref now un-parents if refcount is 0, and eo_del() is an alias for eo_unref (will change to be a way to ensure an object is dead and goes to zombie-land even if still refed).
2014-09-01emotion - fix calling pos update cb for gst1 module in frame newCarsten Haitzler (Rasterman)
@fix
2014-08-27emotion - fix engine string leakCarsten Haitzler (Rasterman)
fixes CID 1232727
2014-08-22emotion - make emotion object init now optional.Carsten Haitzler (Rasterman)
if you don't init (or set engine) on an emotion object, itstill works - it chooses the default engine.. whihc i now have set as gst1. :) one less thing that HAS to be done on init. better.