Commit Graph

60657 Commits

Author SHA1 Message Date
Hermet Park 484354a3b8 elementary animation_view: correct max frame number. 2019-01-17 19:33:02 +09:00
Hermet Park a05f4f66fb evas vg: correct max frame number. 2019-01-17 19:32:40 +09:00
Hermet Park bff0cfd0a4 evas vg: improve caching mechanism.
json loader doesn't proper to share the file loader data,
since the loader need to track animation frame data.

If some instances open a same resource, but have different animation frames,
This won't be the best.

So, don't share file loader instance by loader demand.
2019-01-17 18:00:29 +09:00
junsu choi 346a21ef1c Elm_Animation_View : Change some EAPI to EOAPI
Summary:
enum Elm_Animation_View_State -> enum Elm.Animation_View.State
elm_animation_view_state_get -> Elm.Animation_View.state.get
elm_animation_view_is_playing_back -> Elm.Animation_View.is_playing_back
elm_animation_view_frame_count_get -> Elm.Animation_View.frame_count.get

Test Plan: N/A

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, SanghyeonLee, #reviewers, smohanty, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7632
2019-01-16 18:52:12 +09:00
Hermet Park 83a254434a elementary animation_view: updated doc.
frame number is more clear than frame index.
2019-01-16 10:37:49 +09:00
junsu choi ca715ad43f Elm_Animation_View : Add elm_animation_view_frame_set/get apis
Summary:
   elm_animation_view_frame_set is index of frame of animation view.
   Range of frame value is 0 to elm_animation_view_fame_count - 1.
   This value calculated with keyframe value.

   elm_animation_view_frame_get return index of current frame.

Test Plan:
   setenv("ECTOR_BACKEND", "default", 1);
   setenv("ELM_ACCEL", "gl", 1);

   elm_init(argc, argv);

   Eo *win = elm_win_util_standard_add(NULL, "test");
   evas_object_smart_callback_add(win, "delete,request", win_del, 0);
   elm_win_autodel_set(win, 1);

   //Animation View
   Evas_Object *anim_view = elm_animation_view_add(win);
   elm_animation_view_auto_repeat_set(anim_view, 1);
   elm_animation_view_file_set(anim_view, "a.json", NULL);
   evas_object_show(anim_view);

   evas_object_size_hint_align_set(anim_view, EVAS_HINT_FILL, EVAS_HINT_FILL);
   evas_object_size_hint_weight_set(anim_view, 1, 1);

   elm_win_resize_object_add(win, anim_view);

   evas_object_resize(win, WIDTH, HEIGHT);
   evas_object_show(win);

   printf("Get frame count : %d\n", elm_animation_view_frame_count_get(anim_view));
   printf("Set frame : 35\n");
   elm_animation_view_frame_set(anim_view  , 35);
   printf("Get frame : %d\n", elm_animation_view_frame_get(anim_view));
   printf("Get keyframe : %f\n", elm_animation_view_keyframe_get(anim_view));

   printf("Set frame : 0\n");
   elm_animation_view_frame_set(anim_view  , 0);
   printf("Get frame : %d\n", elm_animation_view_frame_get(anim_view));
   printf("Get keyframe : %f\n", elm_animation_view_keyframe_get(anim_view));

   printf("Set keyframe : 0.5\n");
   elm_animation_view_keyframe_set(anim_view  , 0.5);
   printf("Get keyframe : %f\n", elm_animation_view_keyframe_get(anim_view));
   printf("Get frame : %d\n", elm_animation_view_frame_get(anim_view));

   elm_run();
   elm_shutdown();

Reviewers: Hermet

Subscribers: YOhoho, cedric, SanghyeonLee, #reviewers, smohanty, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7624
2019-01-16 10:28:00 +09:00
Hermet Park 849d457f25 evas vg: improve cache logic.
1. drop cached surface if the size is changed,
2. only cache target needs to acquire cached surface.
2019-01-15 20:22:29 +09:00
Hermet Park 1ce86269ae Merge branch 'master' into devs/hermet/lottie 2019-01-15 13:32:33 +09:00
Xavi Artigas 130fe0bf78 efl-mono: Fix autotools make check
This adds autotools support for files added in 49d4d44926
Fixes D7538
2019-01-14 16:14:19 +01:00
junsu choi 0d3591b21c Elm_Animation_View: Add elm_animation_view_frame_count_get api
Summary:
elm_animation_view_frame_count_get is return
to the total number of frames of vector.

Test Plan: N/A

Reviewers: Hermet

Subscribers: cedric, #reviewers, #committers, smohanty, SanghyeonLee

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7616
2019-01-14 18:59:26 +09:00
Lauro Moura ede219c453 efl-mono: Fix marshalling of struct in event data.
Summary:
Previously, we just converted through PtrToStructure, which didn't have
the full marshalling info converting from the internal one to the
external.

This fixes the usage of the Efl.Loop.arguments event.

Also renamed the ToExternal methods to ToManaged, to make clearer that
the output struct is the one intended to be used from the managed code.

Also fixed a minor styling in the generated code (making it easier to be
inspected).

Depends on D7538

Reviewers: segfaultxavi, felipealmeida, bu5hm4n

Reviewed By: bu5hm4n

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7539
2019-01-14 16:18:05 +09:00
Lauro Moura 49d4d44926 efl-mono: Share test data among other files.
Summary: Will make easier running/compiling tests in isolation.

Reviewers: segfaultxavi, felipealmeida, bu5hm4n

Reviewed By: bu5hm4n

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7538
2019-01-14 16:16:18 +09:00
Jaehyun Cho 81317305e0 efl_mono: remove '_' from type for C# naming convention
Summary:
"type" in .eo is converted to "struct" in .eo.cs.
Since the type name in .eo is the same with the struct name .eo.cs,
'_' is removed from the converted struct in .eo.cs for C# naming
convention.

For example, Efl.Callback_Priority is defined in efl_object.eo and
the name is converted to Efl.CallbackPriority in efl_object.eo.cs.

Efl.Access.StateSet in workaround.cs causes duplicated definition
with this patch so Efl.Access.StateSet in workaround.cs is removed.

Test Plan: Compile with autogen.sh --enable-csharp-bindings

Reviewers: lauromoura, segfaultxavi, felipealmeida

Reviewed By: felipealmeida

Subscribers: segfaultxavi, cedric, #reviewers, #committers, woohyun

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7597
2019-01-14 15:36:14 +09:00
Carsten Haitzler f90c5b7376 elm - dnd - restore to working as drop targets
so drop taregts liek rage stopped working - something was wrong with
type handling and fetching selections at all and so on... i've kicked
it back into working again. it's not perfect but it's improved. at
least simple thgins like being a dnd target for dnd from a filemanager
work again which is probably the biggest use case.

@fix
2019-01-12 14:44:03 +00:00
Carsten Haitzler 1e6d77af90 efl net - connman - fix correct param for promise cancel
the consumer is the obj and the obj is not the pending - it is the
promise data, so warning pointed out an actual bug waiting to happen.
2019-01-12 01:52:38 +00:00
Christopher Michael b4f8315e1a elementary: Add missing EINA_UNUSED for efl_ui_image_factory_connect
Eo *obj is unused in this function, so mark it as such
2019-01-11 09:27:53 -05:00
Michael Bouchaud (yoz) 61179964c3 elm_map: Add new overlay content to the list of smart members of wigdget
Summary: Without this a new overlay content aren't displayed into the map widget.

Reviewers: zmike, devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7457
2019-01-11 09:21:19 -05:00
Christopher Michael e676c989d1 ecore_fb: Add missing tslib dependency
If EFL is built with tslib support, which is used by ecore_fb, then we
need to add a dependency on tslib else the build will fail to compile
(undefined reference to ts_open function).
2019-01-11 09:20:07 -05:00
Christopher Michael f85c261509 elementary: Add missing EINA_UNUSED for efl_ui_layout_factory_connect
Eo *obj is unused in this function, so mark it as such
2019-01-11 09:20:07 -05:00
Xavi Artigas 48b303eeb5 efl-mono: Add extra constructors to Eina.Value
Summary:
new Eina.Value(0) is a special case. The 0 is silently converted
to an enum (Eina.ValueType) and therefore the call is ambiguous
with the 0 being first converted to an Eina.Value via the implicit
conversion operator (calling the Eina.Value deep copy constructor).
Adding constructors for all supported types solves the problem because
they have higher priority. Also, they avoid one deep copy of the
Eina.Value.

Includes test case to catch this problem in the future. This was discovered
in the tutorials, where new Eina.Value(0) is being used.

Test Plan:
The src/efl_reference_core_event.exe example from the examples repo was
not compiling before, and now it is.
make check and make examples still work as expected.

Reviewers: lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7598
2019-01-11 14:51:22 +01:00
Marcel Hollerbach 3ddd577fb0 efl: refactor all mixins
Differential Revision: https://phab.enlightenment.org/D7585
2019-01-11 12:37:27 +01:00
Marcel Hollerbach 455dedd49d eolian: introduce the keyword required
This introduces a new keyword called required. It only works on mixins.
You can specify a list of regular/abstract classes in there.
Classes specified after the required keyword are later used to verify
the usage of the mixin. With this feature a mixin can define a list of
types that the inheriting object (the object that inherits from a mixin)
needs to fullfill, if one class that is required is not in the
implemented classes, then eolian will bail out.

Differential Revision: https://phab.enlightenment.org/D7584
2019-01-11 12:37:27 +01:00
Lauro Moura c998af19fc efl-csharp: Temporarily blacklist forwarder function.
Depends on support for constants that will come with T7506
Differential Revision: https://phab.enlightenment.org/D7596
2019-01-11 11:40:35 +01:00
Larry Lira 54287d67d4 Efl.Ui.List_View: precise layout async
Summary:
fixed precise layouter to work with create asynchronous
fixed example theme signal

Reviewers: cedric, felipealmeida, SanghyeonLee, lauromoura

Reviewed By: SanghyeonLee

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7476
2019-01-11 17:21:19 +09:00
Jaehyun Cho 766f8151fc evas textblock update calculation - account for clipped color changes
if clipped color changed and not object color on textblock objects, then
the updates could be missed. This bug seems to have been here a while
unnoticed.

This patch refers the patch 4e044fd9c2.
2019-01-11 11:19:59 +09:00
Daniel Zaoui bc6b9ff935 meson: correct option description
Copy-paste has done its work here :-)
2019-01-10 21:51:01 +02:00
Cedric BAIL b8e352cde7 eo: improve documentation for event forwarder.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7532
2019-01-10 11:13:49 -08:00
Ali Alzyod f78ef852da optimize glyph images data copy into 4 byte aligned images
Differential Revision: https://phab.enlightenment.org/D7461
2019-01-10 13:05:17 -06:00
Youngbok Shin 9201fc5a65 evas: remove memory leaks from deleted Textblock objects
Even if a object is deleted, its render_pre function could be called.
Especially, Evas Textblock is calling relayout() function if there are
any changes. In relayout() function, it creates at least one paragraph
and one line. Normally, all of paragraphs and its line should be removed
when Evas Textblock object is deleted. But, paragraphs and lines which are
created after deleting its object never be free'd.

@fix
Differential Revision: https://phab.enlightenment.org/D7427
2019-01-10 13:05:17 -06:00
Shinwoo Kim b447a37ed8 efl_ui_win: make win work for evas_norender
The evas_norender updates the canvas internal objects.
But efl_ui_win does not evaluate its internal objects, when evas_norender is
called before showing, after resizing as below.

   evas_object_resize(win, 300, 600);
   evas_norender(evas_object_evas_get(win));
   evas_object_show(win);

This problem could be verified by checking if a resize function of internal
object is called or not.

minw,h is 0 in _elm_win_resize_objects_eval but deferred_resize_job is TRUE.

   evas_norender -> _window_layout_stack ->  _elm_win_resize_objects_eval

So if _elm_win_resize_objects_eval does not return if deferred_resize_job is
TRUE even if minw,h is 0, and calls _elm_win_resize_job, then it will work.

   _elm_win_resize_objects_eval -> _elm_win_resize_job ->
   evas_object_geometry_set  -> _efl_canvas_group_group_need_recalculate_set ->
   _window_layout_stack -> evas_object_geometry_set -> resize function.

I have checked this behavior without elementary. It seems that evas_norender
works between resize and show in this case. Let me share examples.

   ecore_evas_resize(ee, 100, 100);
   evas_norender(evas);
   ecore_evas_show(ee);
Differential Revision: https://phab.enlightenment.org/D7425
2019-01-10 13:05:17 -06:00
Wonki Kim b73a5ed704 meson: add a option to config the base directory name for elm data
There is a option(--with-elementary-base-dir) on autotools
this patch provides the exactly same thing that autotools does on meson
Differential Revision: https://phab.enlightenment.org/D7580
2019-01-10 19:44:01 +01:00
Wonki Kim 3376e7cbd2 meson: Add a option for hyphen dictionaries directory
this patch provides a way to config hyphen dictionaries dir on meson.
Differential Revision: https://phab.enlightenment.org/D7581
2019-01-10 19:44:01 +01:00
Wonki Kim 15620ecc7c meson: define HAVE_TSLIB once tslib option is set
Nowhere refers to the tslib option
This patch provides a way to set HAVE_TSLIB
Differential Revision: https://phab.enlightenment.org/D7582
2019-01-10 19:44:01 +01:00
Stefan Schmidt edfa0f44fd meson: elm: add pie and fPIC cflags and ldflags to elm binaries
My use case here is having elementary_test being loaded by exactness.
That has been working fine with our autotools based build system but no
longer with meson.

Bringing fPIC and pie back as options allows exactness to dlopen the
binary and work again.

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

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
2019-01-10 19:44:01 +01:00
Marcel Hollerbach abf3fcf261 efl_loop: remove FIXME that is done
Summary:
ref T7514

Depends on D7508

Reviewers: zmike, segfaultxavi, cedric

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7514

Differential Revision: https://phab.enlightenment.org/D7509
2019-01-10 13:04:31 +01:00
Marcel Hollerbach a570d6b25c efl_task: remove NOP / unimplement funtions
Summary:
this makes efl_task abstract which ensures that it cannot be
instanciated. Further more, functions that needs to be implement are now
pure_virtual.

ref T7514

Reviewers: zmike, segfaultxavi, cedric

Reviewed By: segfaultxavi, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7514

Differential Revision: https://phab.enlightenment.org/D7508
2019-01-10 13:01:26 +01:00
Lauro Moura a5b338ded3 cxx: Add class get name attribute.
Summary:
C# generator was mistakenly reimplementing it assuming everything was
*_class_get.

Test Plan: run cxx/csharp tests

Reviewers: felipealmeida, cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7522
2019-01-10 12:47:58 +01:00
Wonki Kim 2ce9744754 meson: fix a potentionally unexpected behavior
lidrm is defined in different locations, which causes a unexpected behavior.
this patch fixes it in advance.
Differential Revision: https://phab.enlightenment.org/D7567
2019-01-10 10:57:42 +01:00
Wonki Kim ee39639294 meson: refactor meson.build for ecore_wl2
this patch cleans emson.build for ecore_wl2 up little.
Differential Revision: https://phab.enlightenment.org/D7565
2019-01-10 10:57:42 +01:00
Wonki Kim 8d58ef48bd meson: modify options for enabling the bindings
bindings are added as subdir by foreaching a array defined in meson.build at root.
then meson checks a option which has the same name of the binding.
this patch appends a new option for selecting bindings to build.

[howto]
*as-is
meson build.asis/ -Dmono=false -Dcxx=true
ninja -C build.asis/

*to-be
menson build.tobe/ -Dbindings=luajit,cxx
ninja -C build.tobe/

it is imposibble to use this wrongly because meson raise a error if arguments are not in a predefined list that described in meson_options.txt.
for more information, refer to https://mesonbuild.com/Build-options.html and also take a look at meson_options.txt please.
Differential Revision: https://phab.enlightenment.org/D7563
2019-01-10 10:57:42 +01:00
Wonki Kim 2c2f93dc1a meson: excludes stuffs related with gst if gst is disabled
if a option for gstreamer is disabled,
stuffs related with gstreamer should not be compiled.
this patch excludes the stuffs.
Differential Revision: https://phab.enlightenment.org/D7566
2019-01-10 10:57:42 +01:00
Hermet Park 845c0f8908 evas doc: fix minor typos. 2019-01-10 15:48:37 +09:00
Hermet Park 98c8ddd2fe evas doc: fix minor typos. 2019-01-10 15:40:58 +09:00
Hermet Park d4abf223bd elementary: introduce a new widget - elm_animation_view
Elm_Animation_View is designed to display Efl_Canvas_Vg Animation (Lottie),

has a set of animation control functions.

@feature
2019-01-10 15:35:04 +09:00
Hermet Park bcdc48b326 evas vg: expose a set of lottie feature legacy apis.
evas_object_vg_animated_frame_count_get()
evas_object_vg_animated_frame_duration_get()
evas_object_vg_file_set()
evas_object_vg_mmap_set()
evas_object_vg_animated_frame_set()
evas_object_vg_animated_frame_get()
2019-01-10 15:25:54 +09:00
Hermet Park b7465d6ece evas json: add lottie animation example. 2019-01-10 15:03:46 +09:00
YoungBok Shin 5cd22b8c11 edje: add json file support feature
It also starts to support following new edc properties.
This is backported patch from Tizen 5.0

1. frame
desc { "default"
   vector {
      frame: 0.5; // 0.0 ~ 1.0
   }
}

2. actions
program { "vector_animation";
   // VG_ANIM_PLAY, VG_ANIM_PLAY_BACK, VG_ANIM_LOOP,
   // VG_ANIM_STOP, VG_ANIM_PAUSE, VG_ANIM_RESUME
   action: VG_ANIM_PLAY;
   target: "your_vector_part";
}

@feature
2019-01-10 14:42:02 +09:00
Hermet Park a5040e029d evas vg: clear mask buffer properly.
when mask buffer is reused, it must be cleared first.
2019-01-10 14:20:53 +09:00
Hermet Park 111d1c018f evas vg: clear mask buffer properly.
when mask buffer is reused, it must be cleared first.
2019-01-10 14:15:07 +09:00
Hermet Park 5b0c43cbbc evas json: introduce lottie animation in efl.
lottie animation is a new format of animation data
that works based on vector graphics and key frames.

lottie-player is a standalone library that manipulate
lottie animation scenes. Since lottie animation file format
is json, evas json loader is added here and it parses json data
using lottie player and construct vector nodes graphs
by accessing lottie-player interfaces.

Since evas vector is designed for static image,
here changes vg object interfaces to newly afford animation controller
by expanding Gfx.Image.Animation_Controller and expand vg cache routines
for caching first and last frame images which is mostly used repeatedly
in common scenarios.

@feature
2019-01-10 14:13:16 +09:00