efl/src/tests
Lauro Moura 1e22db1150 csharp: Make classes abstract and rework casting
Summary:
Abstract Eo classes are now proper C# abstract classes.

As a side effect, returning Eo instances from native code was reworked
to return instances of their actual Eo classes instead of previous
behavior of returning a generic Efl.Object and using static_cast.

Instead of `var window = Efl.Ui.Win.static_cast(widget.GetParent());`
Use `var window = widget.GetParent() as Efl.Ui.Win;`

Another side effect was that `efl_constructor` was removed from the list
of supported `Efl.Object` overrides. It is invoked inside
`efl_add_internal_start`, before the bindings makes the association of
the newly created EoId with the C# instance that created it, making the
managed delegate meaningless. C# users then can use regular C#
constructors to initialize fields.

Also changed to set the private data of C#-inherited classes before the
call to constructing methods (aka constructor parameters) so C# classes
can override them correctly.

Fixes T7778
Fixes T7757

Reviewers: vitor.sousa, felipealmeida, segfaultxavi

Reviewed By: vitor.sousa, segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7778, T7757, T7702

Differential Revision: https://phab.enlightenment.org/D8550
2019-04-05 19:56:42 -03:00
..
ecore tests: unset eina log callback at end of each efl_app promise test 2019-04-02 08:34:18 -04:00
ecore_audio_cxx eolian-cxx: Remove .Base requirement 2016-04-21 18:31:53 -03:00
ecore_con eolian: drop class function overriding 2019-02-13 16:59:58 +01:00
ecore_cxx meson: here comes cxx bindings 2018-10-24 12:05:58 +02:00
ector cmake: remove! 2018-12-20 20:07:26 +01:00
edje meson: correctly use the correct dependency 2019-04-05 08:15:39 -04:00
edje_cxx meson: here comes cxx bindings 2018-10-24 12:05:58 +02:00
eet cmake: remove! 2018-12-20 20:07:26 +01:00
eet_cxx meson: here comes cxx bindings 2018-10-24 12:05:58 +02:00
eeze cmake: remove! 2018-12-20 20:07:26 +01:00
efl efl: improve Efl.Container_Model test to have proper lifecycle. 2019-02-23 08:58:07 -05:00
efl_js eolian: implement new syntax for inheritance 2018-11-23 13:57:07 +01:00
efl_mono csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
efreet efreet test - use correct free func prototype for desktyp type add 2018-11-09 11:43:59 +00:00
eina Eina: implement strtod in C locale and remove linkl against msvcr100. 2019-02-28 14:36:42 +01:00
eina_cxx meson: use eolian_gen with -S 2018-12-03 19:00:26 +01:00
eio eio: add test to ensure proper lifecycle of Efl_Io object and futures. 2019-03-27 15:03:31 -07:00
eldbus cmake: remove! 2018-12-20 20:07:26 +01:00
eldbus_cxx meson: here comes cxx bindings 2018-10-24 12:05:58 +02:00
elementary efl_ui_test_callback: Removed defined but unused function 2019-04-03 13:08:59 -04:00
elementary_cxx meson: here comes cxx bindings 2018-10-24 12:05:58 +02:00
elocation tests: add instrumentation to existing tests to find slow tests 2018-04-05 11:10:25 +02:00
elput here comes meson 2018-10-02 17:22:50 +02:00
elua elua tests: fix distcheck 2019-02-27 18:40:10 +01:00
emile cmake: remove! 2018-12-20 20:07:26 +01:00
emotion meson: correctly use the correct dependency 2019-04-05 08:15:39 -04:00
eo eo: make reflection getter const function. 2019-03-08 14:31:08 -08:00
eo_cxx meson: here comes cxx bindings 2018-10-24 12:05:58 +02:00
eolian eo: make reflection getter const function. 2019-03-08 14:31:08 -08:00
eolian_cxx eolian: add event type call convention checks for non-beta classes 2019-03-21 16:00:18 +01:00
eolian_js eolian: implement new syntax for inheritance 2018-11-23 13:57:07 +01:00
evas evas_events: prevent double event_freeze in evas_object_freeze_events_set 2019-03-15 11:23:09 -04:00
evas_cxx meson: here comes cxx bindings 2018-10-24 12:05:58 +02:00
evil evil: Fix test compilation. 2018-06-13 10:09:16 -04:00
.gitignore tests: add failsafe timeout for tests running in fork mode 2018-08-16 09:59:58 +02:00
efl_check.h efl_check: add API to expect a error 2019-04-02 08:56:28 -04:00
meson.build here comes meson 2018-10-02 17:22:50 +02:00
timeout.c tests: add failsafe timeout for tests running in fork mode 2018-08-16 09:59:58 +02:00