Commit Graph

3992 Commits

Author SHA1 Message Date
Xavi Artigas a28b2ff1d3 Efl.Image_Animation_Controller* (from Efl.Image.Animated*)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:38 -07:00
Xavi Artigas 7be849c63e Efl.Gfx.Size_Hint* (from Efl.Gfx.Size.Hint*)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:36 -07:00
Xavi Artigas 0f355f257d Efl.Gfx.Gradient_* (from Efl.Gfx.Gradient.*)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:34 -07:00
Xavi Artigas 55bd097a3d Efl.Gfx.Entity (from Efl.Gfx)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:32 -07:00
Xavi Artigas a217d4b455 Efl.Canvas.Vg.Object (from Efl.Canvas.Vg)
Also, Efl.Canvas.Vg.* (from Efl.Canvas.VG.*)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:30 -07:00
Xavi Artigas a26fbbbc66 Efl.Canvas.Text_* (from Efl.Canvas.Text.*)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:29 -07:00
Xavi Artigas 8e02f3137c Efl.Canvas.Surface_* (from Efl.Canvas.Surface.*)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:29 -07:00
Xavi Artigas 80db4c0c22 Efl.Canvas.Event_Grabber (from Efl.Canvas.Object.Event.Grabber)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:28 -07:00
Xavi Artigas 5d81ae9dfb Efl.Canvas.Image_Internal (from Efl.Canvas.Image.Internal)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:27 -07:00
Xavi Artigas 5374512383 Efl.Canvas.Animation_* (from Efl.Canvas.Animation.*)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:25 -07:00
Xavi Artigas 65ee277a66 Efl.Canvas.Scene (from Efl.Canvas)
Ref https://phab.enlightenment.org/T6847

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-24 09:03:23 -07:00
Myoungwoon Roy, Kim 83f326009e evas_map: Fix a bug about wrong map point colors
Summary: evas_map_point_color_get returns wrong rgbs values always because of error label.

Test Plan: Execute test suite

Reviewers: raster, Hermet, cedric, jpeg, stefan_schmidt, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5983
2018-04-24 16:25:24 +09:00
Jaehyun Cho e3315baaa3 efl_canvas_object: Add events for state changes of object's animation
Add events to notice the state changes of canvas object's animation.
anim_started, anim_running, and anim_ended events are added.
2018-04-19 23:39:32 +09:00
Daniel Kolesa fcae7cab27 eolian gen: enable constness generation on property getter impls
This changes a lot of things all across the EFL. Previously,
methods tagged @const had both their external prototype and
internal impl generated with const on object, while property
getters only had const on the external API. This is now changed
and it all has const everywhere.

Ref T6859.
2018-04-17 20:31:55 +02:00
Wonki Kim 34216aa9eb Fix a shutdown logic to be reachable in some case
Summary:
move evas_async_events_shutdown: to out of EVAS_CSERVE2 ifdef block
to make it reachable.

Reviewers: cedric, woohyun

Differential Revision: https://phab.enlightenment.org/D5926

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-04-16 11:18:29 -07:00
Carsten Haitzler 3d6fa02540 evas - loading extension query - fix to not skip small extensions
since this can take an extension as well as a file path (extension
being .gif or .jpeg etc.) it would skip if passed a small extension
only (5 chars or less). fix and this fixes e's thumbnailing too for
some files.

@fix
2018-04-12 20:56:48 +09:00
Youngbok Shin 4c36461233 evas: apply fribidi bracket types to show paired bracket properly
Summary:
The fribidi couldn't reorganize paired brackets (Ex. '(', ')')
when there is RTL + LTR text. According to TR9(http://www.unicode.org/reports/tr9/),
it has to be shown properly without LRM or RLM.

Also, from the fribidi 1.0.0, fribidi_get_par_embedding_levels() was deprecated.
It is replaced with fribidi_get_par_embedding_levels_ex() which is including
paired brankets rules from TR9.

@feature

Test Plan:
1. Create a elm_entry.
2. Set a text by calling text_set.
   elm_entry_entry_set(entry, "مرحبا Hello (40)");
3. Run and see the results.
   - Without this patch or fribidi 1.X.X, it will show text like this...
     "(Hello (40 مرحبا"

   - With this patch and fribidi >= 1.0.0
     "Hello (40) مرحبا"

Reviewers: raster, cedric, herdsman, woohyun

Reviewed By: herdsman

Differential Revision: https://phab.enlightenment.org/D5921
2018-04-12 12:55:26 +03:00
Jaehyun Cho e4fbab8b47 efl_canvas_object: Change parameter name of property event_animation
Change the parameter name of property event_animation from "event_type"
to "desc" to synchronize with other APIs.
(The parameter type is Efl.Event.Description)
2018-04-12 12:55:49 +09:00
Cedric Bail 664c1c8eb4 evas: we directly use the main loop, we do not need external integration anymore. 2018-04-10 14:42:54 -07:00
Cedric Bail f1f1a8c996 evas: protection during canvas shutdown. 2018-04-10 14:42:54 -07:00
Jaehyun Cho 5351070a4d efl_canvas_animation_player: Reset map after animation is finished
Previously, beginning state of animation is applied after animation is
finished if final_state_keep_get() is false.

Now, map is reset (no animation is applied) after animation is finished
if final_state_keep_get() is false.
2018-04-10 22:38:40 +09:00
Jaehyun Cho 503bb0c8f9 efl_canvas_animation_player: Change Running_Event_Info to Event_Running
To synchronize other types of event info,
Efl_Canvas_Animation_Player_Running_Event_Info is changed to
Efl_Canvas_Animation_Player_Event_Running.

Remove unused struct.
2018-04-10 22:38:32 +09:00
Hermet Park d62ee3bea1 evas: improve evas map anti-alising rendering quality.
Old version algorithm was imperfection a bit, quality was poor at some specific
degrees, specifically, when pixel increment pattern on the diagonal lines is
unstable.

This revised version was better than old one even source code is much cleaner
and simpler.

See belows.

*NonAA vs AA:
https://ibb.co/bCNfMc

*Compare the worst case aa in the old version:
https://ibb.co/bEJsZx

*Test video:
https://youtu.be/Wn20Tym5lfg
2018-04-10 11:19:19 +09:00
junsu choi 982ad90f57 evas: add null check
Summary:
this commit add null check.
In EVAS_OBJECT_DATA_SAFE_GET, if eo_obj is null, obj can also be null.
and In _efl_canvas_output_async_block() can return null.

Test Plan: N/A

Reviewers: woohyun, kimcinoo, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5870

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-04-09 10:36:43 -07:00
Cedric Bail 6e0c86eb67 evas: when passed an Evas_Object, we should try to access it directly so that during destructor Evas is still accessible. 2018-04-06 11:32:21 -07:00
Cedric Bail 5ebe5bb62c evas: by moving lifecycle management to be handle by the death of the parent, there should be no call to efl_del. 2018-04-05 11:52:47 -07:00
Cedric Bail 53378d6a6b evas: the life cycle of an object inside an hash can not rely on the parent destroying, use ref/unref properly. 2018-04-05 11:52:12 -07:00
Cedric BAIL 0578079927 evas: we should always sync the canvas before destroying the object. 2018-04-05 11:50:52 -07:00
Shinwoo Kim 3cd2243028 Fix static analysis result
[Dereference after null check]

(1) src/lib/ecore/ecore_main.c
 - _efl_loop_handler_efl_object_finalize checks if pd->loop_data is NULL.
   After that, _handler_reset > _handler_clear > _ecore_main_fd_handler_del >
   _ecore_main_fdh_pool_del is directly dereferencing pd->pool_data.
 - _efl_loop_handler_efl_object_parent_set checks if pd->loop_data as well.
   Then it calls _handler_reset as well.

(2) src/lib/ecore_wayland/ecore_wl_dnd.c
  - ecore_wl_dnd_selection_set checks if t - result of wl_array_add - is NULL.
    And it is dereferecing t directly for wl_data_source_offer.

(3) src/lib/elementary/efl_ui_dnd.c
 - Third parameter const char *data could be NULL.
   In this case strlen dereferences NULL. The data should be non NULL value.
   I have checked this with Mr. Thiep Ha.

(4) src/lib/evas/canvas/evas_object_inform.c
 - _efl_canvas_object_efl_gfx_stack_stack_below checks if obj->layer is NULL.
   So it could call evas_object_inform_call_call_restack which is dereferencing
   obj->layer directly.
2018-04-05 19:40:57 +09:00
Carsten Haitzler 3a12a6c4a5 evas - plug in dirty + pixels get hold in "is inside" for images
this should fix T6791

@fix
2018-04-05 18:52:57 +09:00
WooHyun Jung 3bc65be44d evas textblock: add null check to avoid segfault 2018-04-05 10:55:44 +09:00
Cedric BAIL 55adae23ec evas: remove useless/buggy line most likely due to left over during merging patch. 2018-04-03 14:26:59 -07:00
Cedric BAIL 6d3a8a1e32 evas: we should actually continue the chain of interpolation up to the next parent. 2018-04-03 14:26:59 -07:00
Hermet Park 63b6d9c17f evas: fix Evas Map AA changes the alpha flag of an image issue.
Evas map supports anti-alias(aa) rendering on sw backened.
When aa is toggled on, map forcely turns alpha channel on while it draws on the surface.
Actually, it was intended to blend polygon edges with destination,
but it breaks one case if the original source image alpha channel were turned off.

Simply, it fixed the issue, new implmentation removes the alpha channel switching,
instead fill the alpha values with 255 when map + aa + alpha_off is drawing on it.

@fix T1975
2018-04-03 19:23:52 +09:00
Hermet Park cbd9ab686d evas - remove wrong flag.
obviously, this parameter is being used.
2018-04-02 20:25:22 +09:00
Hermet Park f21aedce22 evas - correct evas map anti-alias rendering to perform properly.
Evas map anti-aliasing haven't worked at all if the smooth scaling were disabled.

evas map rendering has a lot of corner-cases, previous call-position was wrong,
(by mistake maybe) shouldn't be in a certian case.

Let aa post-processing function be performed in universally.
2018-04-02 20:23:25 +09:00
Cedric BAIL 79b283ab94 evas: fix lifecycle of Ector renderer.
Ector renderer are created by a factory pattern which return a reference.
The possible logic improvement from here would be to rely on setting the
parent of the object to the Ector_Surface and manage a cache by intercepting
efl_noref to trigger an efl_del of the object or a temporary cache of it.
That's for later.
2018-03-29 14:07:54 -07:00
Cedric BAIL c515ee36e6 evas: parent of an Efl.Vg.Node can also be a Efl.Canvas.VG 2018-03-29 14:07:54 -07:00
Carsten Haitzler 2fb5cc3ad0 efl_add_ref - fis to use efl_add properly with a parent.
fixes bc18b7e7ad and
168849e8a0
2018-03-29 13:30:55 +09:00
Cedric BAIL bc18b7e7ad efl: replace efl_del with efl_unref for cases where no parent exists
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:57 -07:00
Cedric BAIL 4c4177ac20 efl: use efl_add_ref to create objects which have no parent
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:56 -07:00
Cedric Bail 2c336d3063 evas: use efl_add_ref for the container, might consider using a parent later on. 2018-03-19 15:36:58 -07:00
Cedric Bail 90bae9b271 evas: technically the evas canvas is using the main loop, so let's make canvas depend on it for their lifecycle. 2018-03-19 15:36:18 -07:00
Derek Foreman b55b8110a9 evas_render: Don't render from norender
commit 4dee873a appears to have accidentally flipped a flag in
_evas_canvas_norender causing it to actually try to render.
2018-03-14 16:08:07 -05:00
Wonki Kim 59c0246eea evas: add null check logic on evas_object_smart_attach
Summary:
this commit add null check logic on evas_object_smart_attach
because a segmentation fault occurs once the argument is not valid (eg. null).

Test Plan:
	1. invoke evas_object_smart_add(obj, NULL)
	2. see the application crashes

Reviewers: woohyun, cedric

Differential Revision: https://phab.enlightenment.org/D5817

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2018-03-06 19:05:57 -08:00
Carsten Haitzler 6d9d978faf evas cache - fix return val to fix warning
fix return val if cache is null (something bad happening)
2018-03-05 23:29:37 +09:00
Carsten Haitzler 91086fca39 evas cache image - protect against null cache ptrs
ok. i can't find the root cause because all i have is a backtrace from
ApBBB and he says he can't reproduce it and i know im->cache is
null... if i could reproduce ... i'd be hunting the root cause. but
the best i can do is check for null im->cvache ptrs and be safe.
crashes are bad. especially for end users.
2018-03-05 19:04:42 +09:00
Carsten Haitzler 1bdd9e4dd1 ecore - a different take on efl.app class as a super class to efl.loop
so the MAIN loop is actually an efl.app object. which inherits from
efl.loop. the idea is that other loops in threads will not be efl.app
objects. thread on the creator side return an efl.thread object.
inside the thread, like the mainloop, there is now an efl.appthread
object that is for all non-main-loop threads.

every thread (main loop or child) when it spawns a thread is the
parent. there are i/o pipes from parnet to child and back. so parents
are generally expected to, if they want to talk to child thread, so
use the efl.io interfaces on efl.thread, and the main loop's elf.app
class allows you to talk to stdio back to the parent process like the
efl.appthread does the same using the efl.io interfaces to talk to its
parent app or appthread. it's symmetrical

no tests here - sure. i have been holding off on tests until things
settle. that's why i haven't done them yet. those will come back in a
subsequent commit

for really quick examples on using this see:

https://phab.enlightenment.org/F2983118
https://phab.enlightenment.org/F2983142

they are just my test code for this.

Please see this design document:

https://phab.enlightenment.org/w/efl-loops-threads/
2018-03-03 13:40:33 +09:00
Carsten Haitzler 1c74aaa7e9 Revert "cxx: Fix manual code after efl_app change."
This reverts commit 135154303b.

Revert "efl: move signal events from efl.loop to efl.app"
This reverts commit 3dbca39f98.

Revert "efl: add test suite for efl_app"
This reverts commit 3e94be5d73.

Revert "efl: create Efl.App class, the parent of Efl.Loop"
This reverts commit 28fe00b94e.

Go back to before efl.app because I think this should be done with
superclassing here not a parent object. reasons?

1. multiple loops per single thread make no sense. so if multilpe loop
objects they wont be contained in a single app object and then deleted
like this.
2. the app object is not really sharable in this design so it cant be
accessed from other threads
3. it makes it harder to get the main loop or app object (well 2 func
calls one calling the other and more typing. it is longer to type and
more work where it is not necessary, and again it can't work from
other threads unless we go duplicating efl.app per thread and then
what is the point of splittyign out the signal events from efl.loop
then?)

etc.
2018-03-03 13:40:33 +09:00
Derek Foreman 9111811b83 evas: Check for NEON via eina_cpu_features if possible
On linux we can do this test without firing a SIGILL and trapping it,
if getauxval() is present.

ref T6711
2018-02-28 18:07:53 -06:00
Chris Michael 25e689a6f5 evas: minor formatting fix
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-02-27 09:31:45 -05:00
Mike Blumenkrantz f535a88d54 evas: fix nolegacy builds with evas headers 2018-02-26 14:47:57 -05:00
Mike Blumenkrantz 28fe00b94e efl: create Efl.App class, the parent of Efl.Loop 2018-02-26 14:02:51 -05:00
Mike Blumenkrantz 77b31ba023 evas event_grabber: fix child ordering when adding non-top children
another ref 0516cdc0f9

@fix
2018-02-22 15:42:40 -05:00
Mike Blumenkrantz 561bfbc55b evas: include legacy vg header instead of manually declaring typedef
fix T6720
2018-02-22 08:50:43 -05:00
Cedric Bail 635448a0a9 evas: readjust pushed engine geometry without the output offset. 2018-02-21 11:55:25 -08:00
Mike Blumenkrantz bbbdfbecc4 Efl.Gesture: rename to Efl.Canvas.Gesture
most C api remains unchanged

ref T6714
ref T6716
2018-02-21 14:43:37 -05:00
Mike Blumenkrantz a0a80fc74a Efl.Animator: rename to Efl.Canvas.Animator
most C api remains unchanged

ref T6714
ref T6716
2018-02-21 14:06:43 -05:00
Mike Blumenkrantz 7eb0375c0e efl_vg: namespace moves
efl.vg -> efl.canvas.vg.node
efl.vg.* -> efl.canvas.vg.*

ref T6714
2018-02-21 14:04:59 -05:00
Cedric Bail 4959286c29 evas: add output coordinate debug. 2018-02-21 09:39:04 -08:00
Marcel Hollerbach 09fd1c273c evas: use new bs static lib 2018-02-17 21:17:58 +01:00
Mike Blumenkrantz 1e522cc71d Efl.Text.Cursor: cursor -> text_cursor 2018-02-15 13:11:00 -05:00
Mike Blumenkrantz 76eb02303a efl: rename player.position property -> player.pos
position conflicts with gfx.position; this could maybe be named better?
2018-02-15 13:11:00 -05:00
Mike Blumenkrantz 005f3ef955 evas_textgrid: size -> grid_size
this conflicted with efl_ui_base.size
2018-02-15 13:11:00 -05:00
Mike Blumenkrantz e87567c683 evas_table: remove mirrored property
use efl_ui_base.mirrored instead
2018-02-15 13:11:00 -05:00
Mike Blumenkrantz f19da9b4a8 evas_grid: size -> grid_size
this conflicted with efl_ui_base.size
2018-02-15 13:11:00 -05:00
Mike Blumenkrantz 2caaf09ea2 evas_grid: remove mirrored property
use efl_ui_base property
2018-02-15 13:11:00 -05:00
Mike Blumenkrantz f903665957 evas: move smart_objects_calculating to Efl_Canvas 2018-02-15 13:11:00 -05:00
Mike Blumenkrantz ee689bb000 evas: remove Evas_Canvas.smart_objects_calculate
also implement Efl_Canvas method
2018-02-15 13:11:00 -05:00
Mike Blumenkrantz 1813c2084c evas: move more canvas method implementations into evas_main.c 2018-02-15 13:11:00 -05:00
Mike Blumenkrantz 099f9ba8a9 evas: remove Evas_Canvas.object_top_in_rectangle_get
also implement Efl_Canvas method
2018-02-15 13:11:00 -05:00
Mike Blumenkrantz 17687f4066 evas: remove Evas_Canvas.objects_in_rectangle_get
also implement Efl_Canvas method
2018-02-15 13:11:00 -05:00
Mike Blumenkrantz 7bfaf6b63d evas: remove Evas_Canvas.object_top_at_xy_get
also implement Efl_Canvas method
2018-02-15 13:10:59 -05:00
Mike Blumenkrantz 420ba4691d evas: remove Evas_Canvas.objects_at_xy_get
also implement Efl_Canvas.objects_at_xy_get

note that any function which returns an iterator cannot be @const since
it's necessary to wref the object to ensure the iterator's lifetime
2018-02-15 13:10:59 -05:00
Mike Blumenkrantz 3789e3e1dc efl: merge list->iterator creation function into evas_main.c and reuse
this deduplicates a large amount of code
2018-02-15 13:10:59 -05:00
Mike Blumenkrantz 0a9bb2543f evas: move more canvas functions into evas_main.c
typechecking is an important part of compilation
2018-02-15 13:10:59 -05:00
Mike Blumenkrantz 4b91654e5f evas: move evas_stack.c -> evas_stack.x
this file contains canvas methods which should be subject to compiler
type checking, requiring that they be included in the file which contains
the eolian generated code
2018-02-15 13:10:59 -05:00
Mike Blumenkrantz 59583a6f89 evas: properly implement evas_image_max_size_get() as a wrapper
ref 457dc16cffdd5f9c6ce42e72beddad06fa36f0c0
2018-02-15 13:10:59 -05:00
Mike Blumenkrantz 29f035cef8 evas: move canvas eolian functions from image.c -> main.c
this reveals existing breakage which went unnoticed due to the compiler
being unable to do type checks since the generated eolian code was not included
2018-02-15 13:10:59 -05:00
subhransu mohanty 44c23ddec3 evas/vg: reset the path data in destructor.
Summary: As the gfx_path mixin class destructor is not called hence explicit call of reset.

Reviewers: jpeg, SanghyeonLee

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5803

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2018-02-14 12:47:40 -08:00
Mike Blumenkrantz f9ef210005 efl_gesture_manager: free hash in destructor
every canvas object has had this leak for some time:

==25217== 64 bytes in 1 blocks are definitely lost in loss record 1,669 of 3,515
==25217==    at 0x4C2FB6B: malloc (vg_replace_malloc.c:299)
==25217==    by 0x688D839: eina_hash_new (eina_hash.c:755)
==25217==    by 0x688D940: eina_hash_string_superfast_new (eina_hash.c:791)
==25217==    by 0x6265F8C: _efl_gesture_manager_efl_object_constructor (efl_gesture_manager.c:66)
2018-02-13 17:23:44 -05:00
Wonki Kim 8988a02744 evas_polygon: Fix segfault while creating the object
Summary:
Calling evas_object_polygon_add(NULL) cause segmentation fault,
because there has been removed null check logic in evas_object_polygon_add(0ff7429)

This patch fix the problem.

Test Plan:
	1. Call evas_object_polygon_add(NULL)
	2. Check segmentation fault happen

Reviewers: cedric, jpeg, woohyun, jypark

Differential Revision: https://phab.enlightenment.org/D5801
2018-02-13 13:15:19 +09:00
Mike Blumenkrantz 536bfb7613 evas_vg: implement interpolate from Efl.Gfx.Path 2018-02-12 17:14:34 -05:00
Mike Blumenkrantz 09f2fab144 interfaces: merge all bounds_get methods into efl.gfx.path
ref 884fc35160
2018-02-12 16:59:48 -05:00
Mike Blumenkrantz 27ae060633 evas3d: use a type setter function with finalize instead of a custom constructor
resolves a conflict with the 'constructor' method name
2018-02-12 16:47:41 -05:00
Mike Blumenkrantz 87d741052b evas3d: add "unknown" node type for use with errors 2018-02-12 16:47:40 -05:00
Mike Blumenkrantz f85325d924 interfaces: remove Efl.Text.Properties
this is provided in Efl.Text.Font
2018-02-12 16:38:51 -05:00
Mike Blumenkrantz a03bcd34af efl_vg: use efl.object's name property instead of implementing a new one 2018-02-12 15:56:46 -05:00
Mike Blumenkrantz adc2be188c eolian: convert all of cedric's tabs to spaces in .eo files 2018-02-12 12:59:05 -05:00
WooHyun Jung d8aa950a38 evas_object_textblock: add null checks for EAPIs 2018-02-07 14:19:46 +09:00
Hosang Kim 24b0ae0df5 ecore/evas: add NULL checks to handle argument is NULL.
Summary:
ecore_pipe_read_fd/ecore_pipe_write_fd
evas_engine_info_set/get

Reviewers: woohyun, Jaehyun, Jaehyun_Cho, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5790
2018-02-06 17:58:44 +09:00
WooHyun Jung 1accec4ce1 evas: add null checks to handle when e->engine.func is not set yet 2018-02-05 22:19:44 +09:00
Shinwoo Kim 8aaa350262 Use ERR instead of CRI if *DATA_GET* returns NULL
This patch set is for remains.
2018-02-01 14:20:57 +09:00
Daniel Kolesa 5651b2e586 eolian: deferred parsing of inherits + better static checks
This change finally introduces deferred parsing of inherits to
Eolian, after a long time and many iterations. That means instead
of parsing inherits directly as part of the main file's parse pass,
they're pushed into a queue and parsed later. The validation engine
was modified to properly fill in the remaining info afterwards.

This may introduce breakages but I haven't noticed any. It also
properly unlocks cyclic dependency support in Eolian.

Additionally, this also introduces checks for duplicates in class
inherits (class Foo(Bar, Bar) is no longer possible) and it adds
stricter name checks, so you can no longer have a class Foo.Bar
and refer to it as Foo_Bar in implements. This was actually never
meant to be supported, but the check was previously broken.

@feature
2018-01-30 17:08:44 +01:00
Daniel Hirt 4a905a22a4 Canvas image: add Efl.Canvas.Text.Factory + use in Ui.Text
This interface has a simple 'create' method to create Efl.Canvas.Object
given a key.
This is used higher-up in Ui.Text in the next commit.

Ui text: add ability to set item factories

Added API to set an item factory object.
This is similar to the previous item providers (that worked with
callbacks).

You instantiate a factory object and set it on the Ui.Text object.
Each factory implements the "create" method from
Efl.Canvas.Text.Item_Factory.

This also includes 3 public factories (Image, Emoticon and Fallback):
  - Image factory: creates images from added entries (key strings)
  - Emoticon factory: creates emoticons by querying the theme
  - Fallback: creates image, then falls back to emoticon

If no factory is set, then the fallback (internal) factory is used.

See the added "Ui.text Item Factory" test in elementary_test for an
example of usage.

@feature
2018-01-18 10:20:28 -08:00
Vincent Torri f5b01ac5ce all: Simplify definition of EAPI
This will help in the transition from Autotools to Meson. This has been
tested on Windows for which EFL_XXX_BUILD were first introduced.
2018-01-18 18:04:03 +09:00
Jean-Philippe Andre 71ee800521 efl: Merge Flipable and Orientation
No need to split: those two are used in all the same classes, since the
split between Orientation and Ui.Dir.

Note that the enum types remain in the main namespace.
2018-01-18 17:29:28 +09:00
Jean-Philippe Andre 24447641d3 evas gl: Properly verify that Evas GL works
For SW engine we need to verify that OSMesa is present. The patch
fb048e7312 broke the logic.

Tested by temporarily removing OSMesa from my system.

Fixes T6617 (again)
2018-01-17 15:22:46 +09:00
YeongJong Lee 2bad31bdc4 efl_animation: fix typo
Test Plan: make

Reviewers: Jaehyun_Cho

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5746
2018-01-17 12:51:31 +09:00
Daniel Kolesa dd2e579fec eolian: do not require unit for expr eval APIs
The necessary information is now stored directly in the expr
during database validation.

Also enable expr validation for params.
2018-01-16 16:37:52 +01:00
Jean-Philippe Andre f1dd333e81 animation: Fix some warnings including a real one
Real issue here:

.../efl_animation_group.c:120:40: warning: for loop has empty body [-Wempty-body]
   EINA_LIST_FREE(pd->animations, anim);
2018-01-16 22:04:55 +09:00
Sungtaek Hong 588995da31 efl_playable: split Efl.Player interface to Efl.Playable interface
Summary:
Efl.Player interface simply provides play functions,
but another interface which indicates Efl.Player will play is also
needed.

Test Plan: Run elementary_test->Efl.Animation tests

Reviewers: woohyun, conr2d, Jaehyun_Cho, jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5662
2018-01-16 22:04:55 +09:00
Jean-Philippe Andre f47f8dcf82 evas: Remove stupid warning 2018-01-16 18:37:04 +09:00
Carsten Haitzler f32f0d89f4 mmap memory allocation - do not used when under valgrind
we can't sensibly use things like massif to track memory if we bypass
itr with mmaping -1 fd anonymous memory... so if built with valgrind
support and running under valgrind, use malloc/calloc and free so
these tools actually do something useful for these bits of memory.
2018-01-12 03:02:43 +09:00
Carsten Haitzler f8c9b0d71e warning remove - ignoring const (returning obj handle)
cast to fix
2018-01-06 19:01:05 +09:00
Vincent Torri 4ae6eeb2cf efl: remove _MSC_VER (Visual Studio macro) usage in source code 2018-01-04 12:59:47 -08:00
Cedric BAIL 526415d903 eo: make efl_provider_find a @const function. 2018-01-04 11:45:10 -08:00
Carsten Haitzler 9bedda14b3 efl loop - rename ecore_main_loop_get to efl_main_loop_get
ecore_main_loop_get() is really a new "eo api" but it's using our old
ecore_* namespace, so move to the new efl namespace.
2018-01-02 16:13:54 +09:00
Andy Williams 6ecad5b873 docs: Update evas canvas eo files for grammar and readability
Author: Nate Drake
2017-12-22 13:45:48 +00:00
Amitesh Singh 9db0ec554b interface: add Efl.Gfx.Color interface for color related APIs
This would eventually turn into mixin class later after adding
more color related helper functions.
2017-12-22 13:29:20 +09:00
Daniel Hirt 4bde4ceada Canvas image: fix endless call to 'load_error_get'
Fixes a bug introduce with c8c4572d70.
My guess is that the true intention was to query the Efl.File mixin
first, and the check the specific load_error.

Basically a call to 'efl_file_load_error_get' on an
Efl.Canvas.Image triggered this.
2017-12-20 09:40:52 -08:00
Jean Guyomarc'h a1e05aa089 evas/elm: fix visibility of some symbols
Public symbols were defined internal to Evas/Elementary on macOS, making
the link of external modules unfeasible.

- EAPI was messed up by an invalid inclusion of evas_text_utils.h, making
  some symbols private instead of public.
- A similar issue was present in evas_font_draw.c, where the symbols
  were directly imported without the proper definition of EAPI.
- Elementary.h did include some eo-generated headers, but for windows
  only. It should not been restricted to windows, as it allows to export
  symbols to external modules.

Fixes T6448.
2017-12-19 15:08:46 +01:00
Jean Guyomarc'h f71444baa8 evas: include missing header
This fixes a compilation warning telling a function was used without
prior declaration.
2017-12-19 14:30:23 +01:00
Jean-Philippe Andre 0f1469280d win: Show windows created by efl_add with a job
This fixes efl_add(WIN) on wayland, using an internal API.
Test scenario:
  ELM_DISPLAY=wl elementary_test -to "Part Shadow"
2017-12-19 20:37:25 +09:00
Cedric Bail dd4be85d7e evas: forgotten adjustement to handle the output geometry offset. 2017-12-14 10:56:49 -08:00
Jean-Philippe Andre 88bfba1fdd evas filters: Add "alphaonly" flag for blend and blur
This is very useful to specify precisely which kind of RGBA -> Alpha
conversion you want. If all you wanted was the alpha layer to use as a
mask, set this flag to true.

@feature
2017-12-14 18:03:49 +09:00
Jean-Philippe Andre 8bb03d8170 evas: Avoid invalid call to efl_file
If not legacy, the object does not accept files, resulting in an ERR
message.
2017-12-14 18:03:48 +09:00
Jean-Philippe Andre fc82281603 evas: Fix potential crash with draw context
Using filters I end up in situations where this function returns NULL
and all hell breaks loose. I guess the spinlock is what makes this
possible (race condition).

@fix
2017-12-14 18:03:48 +09:00
Amitesh Singh 3726af8313 efl.image.load: fix eolian redefine warnings for load_error{}
load_error{} was defined in efl.file as well.
remove load_error{} from efl.image.load intf and implement
Efl.File.load_error{} instead.

Ref T6514
2017-12-14 14:16:13 +09:00
Cedric BAIL df032058fd ecore: rename Efl.Loop_User to Efl.Loop.Consumer. 2017-12-13 14:54:57 -08:00
Ross Vandegrift 71e5c74eb6 efl: drop deprecated Encoding key from desktop files
Summary:
The Encoding key is no longer required, all desktop files are assumed to
be UTF-8 encoded.  See details at:
https://standards.freedesktop.org/desktop-entry-spec/1.1/apc.html

Fix various typos and misspellings

lintian, Debian's package checker, uses strings to check for common typos
in compiled binaries.  This change fixes the ones it identified in 1.20.6.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5584

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-12-13 10:27:48 -08:00
Jean-Philippe Andre 1fdbb00e22 efl: Move VG-specific change event to efl.gfx.path 2017-12-13 13:47:48 +09:00
Amitesh Singh 1264fb4af2 Efl.Canvas.Object: add legacy APIs for pointer_coords_inside_get()
fix the b0rkage after 8fb49de5eb
2017-12-13 13:43:02 +09:00
Andy Williams 03ea9ff79c docs: Fix referencing format
All except references to Efl.Ui.Win_Inline
2017-12-12 17:50:13 +00:00
Amitesh Singh 8fb49de5eb Efl.Canvas.Object: rename pointer_coords_inside_get to coords_inside property.
Also change the signature of the function. Pass Eina_Position2D instead.
2017-12-12 17:09:32 +09:00
Pawel Aksiutowicz a9a31715d9 evas: clean code of evas_common_cpu_can_do() in common/evas_cpu
Reviewers: stanluk, lukasz.stanislawski, jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5602
2017-12-11 17:18:55 +09:00
Amitesh Singh 196b6f1ba4 interface: rename Efl.Dup to Efl.Duplicate.
dup is considered too short and maybe confusing,
hence rename it to duplicate instead.
2017-12-11 15:25:31 +09:00
Stefan Schmidt 2ed7084456 docs: fill in missing documentation ein efl_gesture* eo classes 2017-12-08 16:17:27 +01:00
Stefan Schmidt 7bc3ea400c docs: add last missing documentation in efl_animation_object 2017-12-08 16:17:27 +01:00
Amitesh Singh 39793f4cd5 evas_event: add missing comments about code. 2017-12-08 22:58:34 +09:00
Amitesh Singh b734c132f9 efl.canvas.object: implement pointer_inside of Efl.Canvas.Pointer.
remove eo apis pointer_in, pointer_device_in, pointer_inside_get &
pointer_inside_by_device_get and add legacy APIs for
pointer_inside_get & pointer_inside_by_device_get.
These four APIs do almost same things.
2017-12-08 20:13:31 +09:00
Amitesh Singh 80463f0e2e interface: add Efl.Canvas.Pointer intf for pointer related functions.
and remove pointer_inside function from Efl.Canvas{}
2017-12-08 20:13:31 +09:00
Jean-Philippe Andre e4797e75f7 eo: Move unnecessary eina type out of the EO file 2017-12-07 11:22:11 +09:00
Amitesh Singh b3715d30bb Efl.Canvas.Object.eo: indent correction 2017-12-06 11:17:09 +09:00
Jean-Philippe Andre f47bb54f4f cxx: Fix evas compile test and Evas.hh
The c++ header was checking the wrong header guard. Fixing that would
break the compilation test, as it was doing the wrong thing. Also I
think config.h should not be included for compilation tests. This should
make things slightly better.
2017-12-05 10:14:03 +09:00
Stefan Schmidt 2631fabcac docs: fill in missing docs for efl_animation_ eo classes 2017-12-04 16:43:12 +01:00
Stefan Schmidt c13e2f2be0 docs: fill in missing docs for efl_animation eo class 2017-12-04 16:33:57 +01:00
Amitesh Singh 10103b9b45 efl.gfx: move scale{} from efl.ui.base to efl.gfx 2017-12-04 14:38:39 +09:00
Amitesh Singh ad28bdfb5a Efl.Gfx.Shape: implement Gfx.Path.interpolate{}
This fixes the Eolian 'interpolate' redefine warning.
2017-11-30 16:09:37 +09:00
Jean-Philippe Andre d957e0a6e4 evas: Animation is a property not method set+get 2017-11-30 11:03:49 +09:00
Jean-Philippe Andre bd5b76508b efl: Introduce interface Efl.Dup
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-30 10:48:24 +09:00
Jean-Philippe Andre 8803040484 evas: Implement scale API in proper EO fashion
This removes the internal function pointer for scale_update. This makes
all relevant classes implement the scale API in EO.

This removes the duplicate function in Efl.Canvas.Object and only uses
the one from Efl.Ui.Base interface.

This *seems* to be working as expected. Fingers crossed!

PS: I don't like the name Efl.Ui.Base. It's an interface for a few
common API's between Gfx, Canvas and UI levels... Maybe scale simply
doesn't belong there.
2017-11-30 10:48:24 +09:00
Yeongjong Lee c1e9d9f2f0 evas: Remove duplicated code
Reviewers: raster, cedric

Reviewed By: raster

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5552
2017-11-29 11:59:54 +09:00
Ross Vandegrift 31ce5250cb evas: Fix sign mismatch in evas between.c and .h definitions
Summary:
Parameters w and h are declared as int for evas_common_rgba_image_from_data
and evas_common_rgba_image_from_copied_data in evas_image_data.c.  This
does not match the prototypes in evas_image_private.h which declares them
unsigned.

Original report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748026

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5540
2017-11-27 17:36:58 +09:00
Pawel Aksiutowicz de135a459d evas: fix typos for canvas
Reviewers: stanluk, lukasz.stanislawski

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5516

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-11-23 15:38:02 -08:00
Pawel Aksiutowicz 63f8071c7d evas: fix typos in canvas/evas_object_textblock
Reviewers: lukasz.stanislawski, stanluk, jpeg

Reviewed By: lukasz.stanislawski

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5456
2017-11-20 12:03:52 +09:00
Cedric BAIL 5017f06a72 evas: disable unecessary lock when not using evas_render2
Calling this lock for no good reason result in a 2% slow down. Easy
enough to disable as we do not use evas_render2 at all. Might be
something to consider if we ever develop evas_render2 further.
2017-11-13 14:39:08 -08:00
Daniel Hirt 58ce1d654b Canvas text: change halign/valign to use doubles
There are use cases where you would want to align by a value.

The wordy alignment values are thus removed.
This commit also separates auto-modes (none, normal, locale) for
horizontal alignment to its own API.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:30:00 -08:00
Daniel Hirt 941fe1ffbd Canvas text: adjust bottom padding at edge of text
Now the edges include both the top AND bottom paddings.
Also fixes vertical alignment.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:53 -08:00
Daniel Hirt 45d3614345 Canvas text: fix width calculation with style effects
There are multiple places in the code where both the padded item's
width and the maximum style padding (at the edges) are accounted for.
For the sake of making calculations for wrapping/ellipsis we should
only use the maximum style padding.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:49 -08:00
Daniel Hirt 0725ff620b Canvas text: update style pad when no format nodes are present
This updates the style pad even if there are no format nodes.
An example of this is having a default style set to the object.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:44 -08:00
Daniel Hirt 20ecea1615 Canvas text: fix applying effects
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:39 -08:00
Daniel Hirt a80209a59e Canvas text: favor font name parsing over set properties
Since font names can also specify styles like weight, width etc, we
should parse the font name AFTER setting the respective properties to
the font description, so it can override some if required.

This allows, for example, the following operation:

efl_text_font_weight_set(obj, EFL_TEXT_FONT_WEIGHT_NORMAL);
efl_text_font_set(obj, "Sans:Bold");

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-11-10 10:29:27 -08:00
subhransu mohanty 41062cb15d evas/vg: use surface cache for efl vg canvas 2017-11-10 11:20:38 +09:00
subhransu mohanty f0b8c37d80 evas/vg: refactor ector engine api and backend . 2017-11-10 11:20:38 +09:00
subhransu mohanty befb7701a7 evas/engine: added new engine api for ector 2017-11-10 11:20:38 +09:00
subhransu mohanty aacf277c3a evas/vg: added support for engine surface cache. 2017-11-10 11:20:38 +09:00
subhransu mohanty d4a2b2025b evas/common: added a generic cache in evas common. 2017-11-10 11:20:38 +09:00
Andy Williams d5dbcdabd1 eo: Rename efl_ref_get to efl_ref_count 2017-11-08 09:30:42 +00:00
subhransu mohanty 8952c3e524 evas/vg: changed the efl_vg_dup api signature.
Reviewers: jpeg, cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5440
2017-11-08 15:55:52 +09:00
Cedric BAIL fa3e1dc784 evas: rely on ecore to reset evas rendering thread on fork. 2017-11-07 16:08:39 -08:00
Cedric BAIL d125892601 evas: rely on ecore to reset upscaler thread on fork. 2017-11-07 16:08:39 -08:00
Cedric BAIL 73e6404b1a evas: rely on ecore to reset ecore_pipe for evas_async_events.
Ecore being a dependency of evas, let's make our life easier and
rely on ecore to tell us when to reset pipe due to a fork instead
of trying to guess.
2017-11-07 16:08:39 -08:00
Jean-Philippe Andre 0076f54112 evas: Yet another OSX build fix...
Please tell me this is the last one
2017-11-07 21:53:45 +09:00
Jean-Philippe Andre 12fa8caec5 evas: Another attempt at fixing OSX build
Build failed with LKI not found, as a symbol, but it's a macro.
Copy & pasted from evas_common_private.h
How can this work on one platform and not another? I don't get it...
2017-11-07 20:18:52 +09:00
Jean-Philippe Andre a438e9382c evas: Fix make check
Because of this I couldn't test my previous patches properly and now
realized that I also broke make check... >_<

See D5419
2017-11-07 14:57:14 +09:00
Vitalii Vorobiov 7d9c1256a3 vg_savers/svg: empty (for now) module that will save svg in original file
Just as a starter to make a working background that, later on, will go
through Svg_Node's and build a certain source code to be saved in SVG
picture as a file
2017-11-07 11:54:09 +09:00
Vitalii Vorobiov 3f75c92ca9 evas_vg_cache: load svg from any file, not from defined only
so it doesn't only load from eet or edj only
but also from those any extensions who is ACTUALLY eet, but named as,
for example, like, "file_with_svg.dev"

@fix
2017-11-07 11:54:08 +09:00
Jean-Philippe Andre d4a3d2f5de evas: Fix invalid header protector
clang is smart enough to warn about this.
I've mentioned it multiple times...
2017-11-07 11:54:08 +09:00
subhransu mohanty b038d7df25 Remove evas internal dependency from the evas_font module
Summary:
dev branch : devs/subhransu/font

The Final goal is to move the evas_font module to ector so that both ector and evas can reuse the code.
make the api simple so that sam eapi can be used by evas_textblock and ector text.

This is the 1st stage to achive that gola, first remove the evas internal dependancy as much as possible before moving to ector library.

Reviewers: jpeg, raster, herdsman, cedric, id213sin

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5419
2017-11-07 11:34:53 +09:00
Jean-Philippe Andre 066f2c5cb7 evas: Add some crash prevention checks
This could happen if objects still have references while evas is being
shut down (a bad situation).
2017-11-07 09:57:24 +09:00
Jean-Philippe Andre 4f98b54915 cxx: Add beta define to Evas.hh
This is probably temporary as well, but it's necessary to make examples
compile (with rectangle).
2017-11-07 09:57:24 +09:00
Chris Michael 12947e01e8 evas-object-main: Fix potential null dereference
Coverity reports that EVAS_OBJECT_DATA_SAFE_GET returns NULL here (184
out of 188 times). As such, we should not be calling
_event_animation_object_get with a null object so add a null check here.

Fixes Coverity CID1381713

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 10:17:29 -05:00
Chris Michael 6c76fdb824 evas-object-main: Fix null dereference
Coverity reports that EVAS_OBJECT_DATA_SAFE_GET returns NULL here (184
out of 188 times). The _all_animation_objects_cancel function
directly dereferences the obj parameter passed into it, so lets null check it
before calling that function.

Fixes Coverity CID1381711

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 10:13:08 -05:00
Chris Michael 04d1fe7299 evas-object-main: Fix null dereference
Coverity reports that EVAS_OBJECT_DATA_SAFE_GET returns NULL here (184
out of 188 times). The _all_animation_objects_cancel function directly
dereferences the obj parameter passed into it, so lets null check it
before calling that function.

Fixes Coverity CID1381710

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-06 10:10:50 -05:00
Youngbok Shin a386597ad9 evas textblock: handle ellipsis when text's height exceed its area by "br"
Summary:
Textblock's ellipsis feature only worked when text's width exceeds its area.
So, it didn't work when text's height exceeds its area by "br" tags.
This patch will do ellipsis when only ellipsis=1.0 is set.
@fix

Test Plan: make check

Reviewers: herdsman, raster, cedric, jpeg, sohyun

Reviewed By: raster

Subscribers: woohyun

Differential Revision: https://phab.enlightenment.org/D5412
2017-11-06 11:29:43 +09:00
Daniel Kolesa 4f5b72a3ed eo files: convert various to use @cref 2017-11-02 16:41:01 +01:00
Daniel Kolesa cf63573e73 eolian: only allow reference (ownable) types in containers 2017-11-02 13:51:02 +01:00
Chris Michael 1ed8e4c84e evas: Minor formatting fixes
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-01 12:38:58 -04:00
Jean-Philippe Andre 9cec14918c evas: Move evas_canvas.eo to legacy-only
This isn't meant to be installed. The canvas API in EO is based around
the interfaces Efl.Canvas and the widget Efl.Ui.Win. Anything else is
not EO (eg: ecore_evas, evas, ...)

Note: evas_canvas3d is the last remaining thing that is installed along
EO files, but those are all beta APIs.
2017-11-01 11:22:33 +09:00
Jean-Philippe Andre b8ca1272ae evas: Add seat argument to 'pointer_inside' (EO)
This merges pointer_inside and pointer_inside_by_device.
Affects only EO.
2017-11-01 11:22:33 +09:00
Jean-Philippe Andre ebe945c8d8 evas: Remove specific pointer_inside API
This is a name clash. It doesn't matter too much since Evas.Canvas isn't
meant to be exposed to the EO API.
2017-11-01 11:22:33 +09:00
Chris Michael 20acefb419 evas: Remove erroneous EINA_UNUSED
'output' variable is actually used in this function, so remove
EINA_UNUSED from function parameter

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-10-31 10:02:40 -04:00
Jaehyun Cho a47ecc8713 efl_animation: Change protected methods to be internal methods
target_state_save, target_state_reset, target_map_reset methods are used
internally.
Therefore, those methods become internal methods.
2017-10-31 20:36:49 +09:00
Youngbok Shin a191a052b8 evas: add a missing description for a newly added parameter
Summary:
A new parameter "width_offset" was added to
evas_common_font_query_last_up_to_pos() internal function.
But, internal documentation was not updated.
So, it adds a simple description for the new parameter.

Test Plan: N/A

Reviewers: jpeg, cedric, herdsman, shilpasingh

Differential Revision: https://phab.enlightenment.org/D5035
2017-10-27 12:12:25 -07:00
JinYong Park 162d1b0577 evas: fix typo in eo file
Summary:
Change the first letter of the sentence from lowercase to uppercase,
and fix typo "top be" to "to be"

Reviewers: cedric, jpeg, stefan_schmidt, myoungwoon, Jaehyun_Cho, conr2d

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D5398

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-27 12:12:25 -07:00
Jean-Philippe Andre ec1acca74d evas vg: Add FIXME and fix strbuf use
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-27 14:58:38 +09:00
subhransu mohanty ad4e133e08 evas/vg: Added file handling support in vg canvas. 2017-10-27 14:58:38 +09:00
subhransu mohanty 64231ae699 evas/vg: Added vg tree caching support 2017-10-27 14:58:38 +09:00
Subhransu Mohanty 48c1c4850a static_lib: added vg_common static lib
Features:
 Copied vg eet descriptor from edje_data
 Copied convert func  from Svg_Node to Efl_VG from edje
 added  convert function from Efl_VG to Svg_Node
2017-10-27 14:58:38 +09:00
Cedric BAIL 84907e719d evas: allow to suspend the rendering of an output. 2017-10-26 13:35:27 -07:00
Jean-Philippe Andre 132876afed Revert "evas: Fix C++ compilation"
@felipealmeida says this cyclic dependency is fixed!
This is awesome. :)

This reverts commit 60e31101a6.
2017-10-26 12:29:54 +09:00
Youngbok Shin 9906cd211f evas textblocke: add align=end for putting a text at the opposite side of LTR/RTL
Summary:
There is a requirement for putting text at right side for LTR and at left side for RTL.
It satisfies that reqirement easily.

It also add "start" keywork for "align" tag. "start" will be same with "auto".
Intuitionally, developer will try "align=start" if they once saw "align=end" in elsewhere.
On the other hand, it only add "END" as new enumeration value for efl interface.
@feature

Test Plan: N/A

Reviewers: herdsman, cedric, jpeg, raster

Reviewed By: raster

Subscribers: woohyun

Differential Revision: https://phab.enlightenment.org/D5342
2017-10-26 11:40:44 +09:00
subhransu mohanty 57ba3318dc evas/vg: Added align, viewbox and fill_mode property to the vg canvas
Summary:
viewbox, fill_mode and align property required to scale the vg tree that
we get from the svg file or manually created depending on the vg canvas
size.

Reviewers: jpeg, cedric

Subscribers: jenkins, cedric

Differential Revision: https://phab.enlightenment.org/D5358
2017-10-25 20:17:20 +09:00
Jaehyun Cho 9d1fad8dc1 efl_animation: Remove duration_only_set and total_duration_set methods
Remove unnecessary methods, duration_only_set and total_duration_set.
2017-10-25 15:04:59 +09:00
Jean-Philippe Andre 98f81f5cbf evas: Fix oopsie in previous patch (evas vg)
Ref 880dd63a0c
2017-10-24 16:03:00 +09:00
subhransu mohanty 880dd63a0c evas/vg: renamed the evas_vg class to efl_canvas_vg
Reviewers: jpeg

Subscribers: jenkins, cedric

Differential Revision: https://phab.enlightenment.org/D5357
2017-10-24 15:19:53 +09:00
subhransu mohanty d267595557 evas: add set function for root_node property.
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: https://phab.enlightenment.org/D5347

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-23 11:05:38 -07:00
Jaehyun Cho 74155b6e34 efl_animation: Remove unnecessary macro 2017-10-23 15:05:08 +09:00
Cedric BAIL 33d860f60d evas: propagate object data to evas_object_inform_call_changed_size_hints instead of fetching it again. 2017-10-19 16:32:54 -07:00
Cedric BAIL 8bcd960e70 evas: propagate object data to evas_object_inform_call_restack instead of fetching it again. 2017-10-19 16:32:54 -07:00
Cedric BAIL b55c96fe04 evas: propagate object data to evas_object_inform_call_resize instead of fetching it again. 2017-10-19 16:32:54 -07:00
Cedric BAIL 93c570b5dd evas: propagate object data to evas_object_inform_call_hide instead of fetching it again. 2017-10-19 16:32:51 -07:00
Cedric BAIL dad34967df evas: propagate object data to evas_object_inform_call_show instead of fetching it again. 2017-10-19 16:32:26 -07:00
Jean-Philippe Andre 0a13e15c7d evas/gesture: Fix up a couple of APIs, add some FIXME
Some things have clearly not been tested. Some APIs have not been
modified after repeated review comments. C++ failed to build due to
"long" being used as a namespace.

Remaining issues:
 - The original finger_list API was broken by design. I didn't try to
   replace it yet.
 - Long tap is also broken by design: if no move happens the recognizer
   gets no event, and doesn't trigger anything when the timeout is
   reached. An API or event is lacking here.
 - Only 2 very basic gestures have been implemented. All the gestures
   from elm_gesture_layer need to be covered. None of the multi touch
   support has been really implemented, except for a single bool flag.
 - The configuration must be loaded from elm_config, passed on to the
   recognizers.
 - Some micro optimization may be required, especially if the input
   device is high frequency (eg. 1KHz gaming mouse).
2017-10-19 12:25:57 +09:00
smohanty 20fad2e78e evas/gesture: Enabled efl_provider_get() to find gesture manager 2017-10-19 10:33:12 +09:00
smohanty d5f72053fd evas/gesture: Added long_tap gesture to gesture framework 2017-10-19 10:33:12 +09:00
smohanty 28869a9395 evas/gesture: Integrated gesture framework to evas. 2017-10-19 10:33:12 +09:00
smohanty 9da7a7f0d2 evas/gesture: Added gesture manager implementaion. 2017-10-19 10:33:12 +09:00
smohanty 4b997e89e5 evas/gesture: added recognizer and tap recognizer implementation 2017-10-19 10:33:12 +09:00
smohanty 5af499b01b evas/gesture: Added gesture and tap gesture implementation. 2017-10-19 10:33:12 +09:00
smohanty e65f18ef3e evas/gesture: Added touch accumulator class implementation. 2017-10-19 10:33:12 +09:00
smohanty a403023242 evas/gesture: Added gesture_private header file. 2017-10-19 10:33:12 +09:00
smohanty b1c6915ab4 evas/gesture: Added Eo classes for evas gesture framework. 2017-10-19 10:33:12 +09:00
Godly T.Alias 295403769b evas: removing unwanted operation in interface create
Summary: Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in>

Reviewers: cedric, raster, rajeshps, prince.dubey

Reviewed By: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5288

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 11:59:46 -07:00
Godly T.Alias 3ad9ac8926 evas: buffer is not used in the case where destination and source dimension is different
Summary: Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in>

Reviewers: cedric, raster, rajeshps, prince.dubey

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5286

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 11:58:59 -07:00
Jaehyun Cho 4dae43e4d1 efl_animation: Fix to set Efl_Event_Description for event animation
Any event represented by Efl_Event_Description can be registered for
event animation. (e.g. EFL_GFX_EVENT_SHOW, EFL_GFX_EVENT_HIDE, etc.)
2017-10-13 22:56:33 +09:00
Jaehyun Cho 6857f349b0 efl_animation: Fix shadowing local variable warning 2017-10-13 15:37:58 +09:00
Jean-Philippe Andre 94d0967fad evas: Fix crash when object is not fully created
This fixes make check.
2017-10-13 14:29:15 +09:00
Jean-Philippe Andre 60e31101a6 evas: Fix C++ compilation
Efl.Animation and Efl.Canvas.Object need each other, and introduce a
cyclic dependency. Eolian doesn't complain... but C++ fails to compile,
as one header must be included before the other, and vice-versa.

Do we have other cyclic dependencies? I remember we lifted the
limitation in eolian itself, but can't remember exactly how it should be
handled...

Ping @q66 @felipealmeida
2017-10-13 14:15:52 +09:00
Jean-Philippe Andre ccee1c0944 eo: Simplify debug_name_override
Simply pass in the strbuf and don't expect the callee to own it. This
makes things simpler and safer (it'll crash only if the callee frees
said strbuf, and shouldn't leak). efl_ebug_name is new in the upcoming
release, EFL 1.21.

Realised this after talking with Amitesh. Thanks.

See 999dbd9764
And c4769ff898
2017-10-13 10:57:00 +09:00
Jaehyun Cho 39cc542d7f efl_animation: Add interpolator property
Interpolator property is added to apply interpolation function.
2017-10-12 21:03:49 +09:00
Jaehyun Cho e83facfb37 efl_animation: Add repeat_mode property
To not display original state when the reverse repeat starts, the
animators in group parallel and group sequential are deleted.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 595f47e202 efl_animation: Add start_delay property
Add start_delay property to delay the given amount of time in seconds
from when the animation starts until the animation is animated.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 108994d383 efl_animation: Add repeat_count property 2017-10-12 21:03:49 +09:00
Jaehyun Cho 87a14507b2 efl_animation: Add pause and resume methods
Add target_map_reset method to fix flicking issue when animation is
paused and resumed.
2017-10-12 21:03:49 +09:00
Jaehyun Cho a6e03da5f0 efl_animation: Support event animation
Register an animation for an event.
Start the animation when the event happens.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 4112a68e32 efl_animation: Add sequential group animation and object
Efl.Animation.Group.Sequential is a class for animations started in
sequence.
Efl.Animation.Object.Group.Sequential is a class which provides
methods for an object of Efl.Animation.Group.Sequential.
The objects added into the sequential group animation object start
in sequence.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 923a5b02eb efl_animation: Add parallel group animation and object
Efl.Animation.Group.Parallel is a class for animations started in
parallel.
Efl.Animation.Object.Group.Parallel is a class which provides methods
for an object of Efl.Animation.Group.Parallel.
The objects added into the parallel group animation object start in
parallel.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 861a90415c efl_animation: Add group animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho e1a73fffb9 efl_animation: Add group animation
Efl.Animation.Group is an abstract class which provides methods for
group animations such as parallel and sequential group animations.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 5a1147d643 efl_animation: Add translate animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho f01c96e542 efl_animation: Add translate animation 2017-10-12 21:03:49 +09:00
Jaehyun Cho 5540520846 efl_animation: Add scale animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho c3865609c9 efl_animation: Add scale animation 2017-10-12 21:03:49 +09:00
Jaehyun Cho 29917e4e91 efl_animation: Add rotate animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho d4f96f9728 efl_animation: Add rotate animation 2017-10-12 21:03:49 +09:00
Jaehyun Cho 58dd0bebaa efl_animation: Add alpha animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho 31ed27f002 efl_animation: Add alpha animation 2017-10-12 21:03:49 +09:00
Jaehyun Cho b4d4e2a2cc efl_animation: Add animation object
Efl.Animation.Object is a class which starts or cancels animation.
Efl.Animation.Object instance is created by Efl.Animation instance.
So Efl.Animation.Object instance contains animation properties from
Efl.animation instance.

Animation properties are set by using Efl.Animation instance and the
animation is started or cancelled by using Efl.Animation.Object.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 5038223b61 efl_animation: Add efl_animation
Efl.Animation is a class which contains basic properties of animation
for Efl.Canvas.Object.
2017-10-12 21:03:49 +09:00
Jean-Philippe Andre ca581e00ba evas: Implement support for different H/V font DPI
This is modifying how a rarely used environment variable that sets the
DPI used for font sizing is parsed. The previous form remains valid, of
course. Note that EFL tends to use "scaling" instead of this DPI. The
font DPI is useful for me to open up a terminology window with almost
the same size as my IDE's code viewer.

Use case:

  export EVAS_FONT_DPI=95x94 terminology

Note:
I still don't get a 1:1 match with Qt's rendering, and in fact
94x95 works better than what 95x94 (which is reported by xdpyinfo).
Interesting though :)

@feature
2017-10-12 15:25:05 +09:00
Chris Michael 7d36ef88bc evas: Compile out unused functions
These timestamp functions are not currently being called, perhaps they
were intended for something later?, but for now just #if 0 them out as
they are not used

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-10-11 09:17:35 -04:00
Jean-Philippe Andre e021e25c85 evas: Override del() for evas objects
This makes EAPI evas_object_del() and EO API efl_del() work the same on
evas objects, i.e. a del() implies an immediate call to hide() and mark
the object as "delete_me".

If the refcount remains > 0 the object won't be actually deleted, thus
EFL_EVENT_DEL won't be triggered. I think it would probably be a good
idea to have a new event "del,request", to signal reference owners that
this object "wants" to die.

Ping @raster @zmike
2017-10-10 18:44:35 +09:00
Subodh Kumar a8e7cf74b1 evas: there is no effect of variable assignment while clean up.
Summary:
There is no effect of assingning a variable while clean up.
@fix

Reviewers: raster, cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5272

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-09 16:41:23 -07:00
Subodh Kumar 8d880d7f41 evas: there is no effect of variable assignment outside the function.
Summary:
Variable assigned is not used anywhere else, making it unused.
@fix

Test Plan: Na

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5263

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-10-06 09:52:45 -07:00
Godly T.Alias 10f26f143a evas: fix for sscanf use with save flags input.
Summary:
As 'flags' can be supplied by application, in case application is supplying
a big string(error case), it can cause crash in some version of glibc.

Setting maximum possible input (0x64) length as width specifier

Fix for static code analyzer warnings
- scanf without field width limits can crash with huge input data on some versions of libc

Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in>

Test Plan: Run SonarQube

Reviewers: cedric, raster, Princekrdubey, rajeshps

Reviewed By: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D5266

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-10-06 09:49:03 -07:00
Cedric BAIL 08deba98f8 evas: make sure we always open the file and look at its header before trying to load data. 2017-10-05 16:02:47 -07:00
Cedric BAIL ee3f4e0529 evas: remove unused function evas_cache_image_request. 2017-10-05 09:42:36 -07:00
Cedric BAIL 90e1ca7154 evas: remove unused function evas_cache_engine_image_request. 2017-10-05 09:41:41 -07:00
Cedric BAIL 7672d1050e evas: remove unused function evas_common_load_image_from_file. 2017-10-05 09:37:07 -07:00
Cedric Bail 867d826395 evas: remove image_load from the engine. 2017-10-04 21:48:26 -07:00
Cedric Bail a6dcaa0f9a evas: remove use of engine image_load from Evas.Canvas3D.Texture. 2017-10-04 21:32:22 -07:00
Cedric Bail c8c4572d70 evas: remove duplicated code and rely on Efl.File { get; set; }
We can almost remove image_load from the engine backend after this patch.
One little bit left in Evas_3D.
2017-10-04 21:01:35 -07:00
Marcel Hollerbach 935722aac1 evas_focus: skip focus set if the focus state is the same 2017-09-30 20:29:07 +02:00
Youngbok Shin 26b58098bc evas font: check returned value of FcPatternGet function
Summary:
Evas should add font when only FcPatternGet function gives matched result.
@fix

Test Plan: N/A

Reviewers: raster, cedric, herdsman, jpeg

Differential Revision: https://phab.enlightenment.org/D5236
2017-09-29 15:16:21 +09:00
Daniel Hirt e34efbed96 Canvas text: use EINA_UNUSED for unused variables
Nothing special here. No need to for the "(void) eo_obj".
2017-09-28 19:32:02 +03:00
Daniel Hirt 69d0646b33 Efl text: add Efl.Text.Markup interface
Adds basic markup operations for text objects, and implements it in
Efl.Canvas.Text.

Also, this adds the Efl.Text.Markup_Util class.
This utility class allows basic text-markup conversions.

@feature
2017-09-28 19:32:02 +03:00
Jean-Philippe Andre 76ab8e3f54 efl: Remove @owned tag from pack/content APIs
Refer to the previous commits for more context.

When an evas object is given to a container, be it with a variant of
efl_pack() or efl_content_set(), its "ownership" is given to the new
parent container. But ownership here means that the new container may
delete the child when it sees fit (i.e. when the container itself dies,
for instance). This does not mean that a reference was passed from the
calling context to the container. The actual EO owner of the child is
always the canvas or another canvas object, even if it the object is
unpacked.

Note: This means that invalid calls to efl_pack or efl_content_set will
not automatically delete the child object. This is the same as legacy,
and results in floating objects. Just check the return value! :)

Hopefully this is correct for bindings.
2017-09-28 17:29:03 +09:00
Jean-Philippe Andre f7a7a29cc0 evas: Give a parent to duplicated event objects
This comes back to an earlier situation where the fake event objects
created by efl_input_dup() had a parent (it should be the evas or maybe
the window). But that led to issues as efl_unref() would print error
messages. Using efl_allow_parent_unref_set() we hide the error message,
because in this situation we want the caller to use efl_unref() and not
efl_del() (eg. think of bindings...).

See d3436af616
See 6bed255fc4
See 96d94e0076 <-- main commit
2017-09-28 16:45:45 +09:00
Carsten Haitzler e095562ea1 evas font loading - fix possible divide by 0 when font size is 0
fix coverity CID 1381446
2017-09-28 15:28:00 +09:00
Jean-Philippe Andre 96d94e0076 evas: Fix dangling references with input devices
This solves issues with efl_input_dup() which didn't properly give a
reference to the caller, resulting in dangling eo ids.

Note: This may trigger leaks (instead of invalid refs), but this now
actually reflects the meaning of @owned. This should work with bindings
and C API users should know to call efl_unref().

This patch is the reason for the previous improvements on eo_debug.

@fix
2017-09-28 12:30:36 +09:00
jiin.moon 98147ce097 evas : Improve the performance by reusing map surface
Summary:
If object just has update of map point without other changes included child,
the map surface can be reused.

Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5181
2017-09-28 12:30:36 +09:00
Youngbok Shin 42ac2136b0 evas textblock: use main font's ascent/descent as minimum value
Summary:
The patch will adjust ascent/descent with considering main font's ascent/descent
as minimum value. Actually, this patch re-apply D5217 with resolving linegap issue
on the _layout_format_ascent_descent_adjust() function.
@fix

Test Plan: Put a text which will load smaller font. And put a text which will load primary font.

Reviewers: raster, cedric, herdsman, jpeg

Differential Revision: https://phab.enlightenment.org/D5227
2017-09-26 14:33:11 +03:00
Jean-Philippe Andre 3d2551175d evas: Fix shutdown of async cmd cache
The incomplete reset (array to NULL but max not reset) triggers errors
in evas_thread_queue_append() where eina_inarray_grow() returns NULL.

This shows up in:
   CK_FORK=no elm_suite

@fix
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre 8557fe818f input: Move pointer props to Canvas
efl_input_pointer_position is defined by two classes... bad!

Fixes T6066
2017-09-26 17:58:07 +09:00
Daniel Hirt bfa7d2a3b2 Evas textblock: fix ascent/descent calc
This is a follow-up to 4d4401f3a6.
The format line adjustment (e.g. linegap) should calculate the current
item's ascent/descent, and then update c->ascent/c->descent.
Otherwise we accumulate calculations like linegap values

ref D5217
2017-09-26 10:52:38 +03:00
Youngbok Shin 4d4401f3a6 evas textblock: use primary font's size as minimum size of a line
Summary:
Textblock uses ascent, descent from primary font when there is no text.
If a text is set which need other font, Textblock uses ascent, descent from
actually loaded font. If loaded font has smaller size, text cursor and text
looks jerky in elm_entry. At least, primary font's size should be respected
as minimum size of a line for avoiding this issue.
In addition, the patch will allow negative line gap values.
@fix

Test Plan:
Put your hamburger(🍔) in Ecrire. And put an english character.
(Put a text which will load smaller font. And put a text which will load primary font.)

Reviewers: raster, cedric, herdsman, jpeg, woohyun

Reviewed By: raster

Differential Revision: https://phab.enlightenment.org/D5217
2017-09-26 11:31:31 +09:00
Youngbok Shin 1750410650 evas: Add scale feature for embedded bitmap fonts.
Summary:
When evas selects a strike of embedded bitmap font,
calculate ratio and use it for scaling embedded bitmap.
@feature

Reviewers: jpeg, tasn, woohyun, raster, herdsman

Reviewed By: raster

Subscribers: charlesmilette, Francesco149, cedric

Differential Revision: https://phab.enlightenment.org/D2713
2017-09-26 11:31:31 +09:00
Daniel Hirt 4f77eca4e1 Canvas text: don't generate legacy for new api
This is part of the new Canvas.Text.
2017-09-25 12:51:49 +03:00
Daniel Hirt b7b5d08929 Canvas text: use eina_value_set and not eina_value_pset
CID 1381327
2017-09-25 12:51:49 +03:00
Daniel Kolesa f36e5bd543 eolian: add mstring
This is a new type representing a mutable string (no const).
Regular strings cannot be made mutable with @owned because
they might be hidden behind typedefs.
2017-09-22 17:10:42 +02:00
Daniel Kolesa fdd27cadf8 eo: make more freefuncs implicit 2017-09-22 16:17:19 +02:00
Vincent Torri 0cdd501246 EFL For WIN32: Replace HAVE_EVIL define with _WIN32 2017-09-22 05:06:10 -05:00
Jean-Philippe Andre 28b387821d elm: Split off text and content for efl_part
This is VERY tricky.
For legacy, just create an internal class that has both. It's easier
this way. For parts that are handled by Layout directly, we know from
Edje which type to return.

For EO objects we should know from the part name which kind of part we
are dealing with:
 - text (overridden by the widget)
 - content (overridden by the widget)
 - special (new efl_part based functions)
 - generic (handled by Layout)

Note: Efl.Ui.Slider was handling "span size" on ALL parts. That's bad...
This is now limited to "span" only.
2017-09-21 12:27:34 +09:00
Daniel Hirt b63c3620df Canvas text async: add async layout functionality
This adds the 'async_layout' method.
The 'async layout' method is similar to 'size_formatted_get', but done
outside of the mainloop. When a call is made to this method, a thread
is created (after some preparation like updating the logical text
items), and the visual layout is offloaded to that thread. The result
is returned as Eina.Future.

The mainloop is blocked for operations that manipulate the object, if a
thread has already been created but hasn't complete its work.
Consecutive calls for async layout for the same object are not handled
simultaneously. Each time the threads has complete its work, the next
(if exists) layout will be dispatched.

@feature
2017-09-20 14:50:09 +03:00
Marcel Hollerbach 525b6bb1d9 evas_object_main: fallback to other usage instead of returning NULL
Even if a object is on deleting or doesnt have a layer, it still can be
found in a higher hirachy.
2017-09-19 10:34:22 +02:00
Hosang Kim 425c98289d evas_events: add checking state of point
Summary:
When multi down or multi move occur, state of touch point changes to EVAS_TOUCH_POINT_STILL.
So I add condition, "state == EVAS_TOUCH_POINT_STILL"

Reviewers: jypark, woohyun, cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5157
2017-09-19 17:22:48 +09:00
jiin.moon 4f8fe4889f evas_event: Fix missing case when check the event area
Summary:
If the object is outside the parent geometry because of map,
this object would be ignored in determining object is in the event area.

Please refer to below case
1) There are some button in the box object
2) A button has map with 90 degree.
   It would be placed outside the box geometry
3) If you press the button part outside the box,
   the button event does not work.

Test Plan: sample code

Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5180
2017-09-19 16:59:16 +09:00
Bryce Harrington d94a4d8d89 evas: Document Textgrid objects API
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5179
2017-09-19 16:55:47 +09:00
Bryce Harrington c955625c44 evas: Textgrid doxygen grammar/spelling cleanup
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5177
2017-09-19 16:55:37 +09:00
Bryce Harrington 007b0a6659 evas: Eo Textgrid doc grammar cleanup
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5178
2017-09-19 16:55:25 +09:00
Jean-Philippe Andre 5b2ffb6bde evas: Fix invalid call to intercept
This fixes scrolling in rage.

Lessons learnt:
 - Do not trust raster's bisecting skills ^^,
 - Do not blame GCC until you're 100% positive about the exact code
   triggering an issue,
 - va_arg is unsafe, and can lead to crazy issues like this one,
 - va_arg passes (int x, int y) differently from Eina_Size2D sz, and
   optimization flags may also affect how that's done, or at least what
   kind of garbage data is used.
2017-09-19 16:35:28 +09:00
Jean-Philippe Andre 1f447f3a87 evas: Remove remnants from EO 1 internal API 2017-09-19 11:59:10 +09:00
Jean-Philippe Andre 0a2282f7d7 polygon: Use Eina.Position2D for point_add 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 3617053547 win: Use Eina.Size2D for pointer position
Also rename the function for more consistency.
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 8bf06f95fe evas: Use Eina.Rect for load_region 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre a3250f975a efl: Use Eina.Size2D for image load size 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 89a7d9ea8e efl: Use Eina.Size2D for image size 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 986e5e8827 efl: Add precise_position for input events
The previous commit removed useless delta
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre e28aba0542 efl: Use Eina.Position2D for input events 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre b19ee757e5 efl: Use Eina.Size2D in Gfx.View 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 2df8ad36b4 evas: Use Eina.Slice on the stack (gfx.buffer) 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 1f242afdef evas: Use Eina.Size2D for gfx.buffer
For consistency.
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre bfd9487b94 efl: Use Eina.Size2D for Efl.Canvas.max_image_size
Rarely use
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre d8eea084fb efl: Use Eina.Size2D for size hint aspect 2017-09-18 16:50:58 +09:00
Jean-Philippe Andre a72f3ec64e efl: Use Eina.Size2D for size hint combined min
For this patch I decided to add a pseudo legacy wrapper as the function
is called in a very large number of places. Fixing all those calls to
use the size2d form is a lot of work and a greater risk of b0rking
something.
2017-09-18 16:33:33 +09:00
Jean-Philippe Andre 7d2b4b6916 efl: Use Eina.Size2D for size hint restricted min
This is the "internal" or "intrinsic" minimum size, to be set by EFL and
not by applications.
2017-09-18 14:57:52 +09:00
Jean-Philippe Andre 3bff7363b5 efl: Use Eina.Size2D for size hint min 2017-09-18 14:42:52 +09:00
Jean-Philippe Andre d24dcb3c24 efl: Use Eina.Size2D for size hint max 2017-09-18 14:20:03 +09:00