efl/src/tests/efl_mono
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
..
.gitignore
BasicDirection.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Eina.cs csharp: Raise exception when Array is null. 2019-04-02 16:48:39 +02:00
EinaTestData.cs efl-mono: Share test data among other files. 2019-01-14 16:16:18 +09:00
Eldbus.cs efl_mono: Fix eldbus warnings and typo. 2018-05-17 16:56:18 -03:00
Eo.cs csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
EoPromises.cs efl_app: introduce app_main for getting the app object 2018-12-20 12:56:54 +01:00
Errors.cs efl_mono: move Eina.Error.Init() to a static constructor 2019-01-16 14:24:12 +01:00
Events.cs mono-tests: Fix after latest changes to eolian 2019-03-21 17:20:13 +01:00
FunctionPointerMarshalling.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
FunctionPointers.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Inheritance.cs efl-csharp: Add back I prefix for interfaces. 2019-03-21 14:48:33 -03:00
Main.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Parts.cs efl-csharp: Respect beta for classes and other stuff. 2019-03-11 16:08:04 -03:00
Promises.cs efl_app: introduce app_main for getting the app object 2018-12-20 12:56:54 +01:00
Strbuf.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Strings.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
StructHelpers.cs efl-csharp: Remove generated inlist/inarray support 2019-02-28 12:21:56 -03:00
Structs.cs efl-mono: Share test data among other files. 2019-01-14 16:16:18 +09:00
TestUtils.cs efl-csharp: Add back I prefix for interfaces. 2019-03-21 14:48:33 -03:00
Value.cs efl-csharp: Fix Eina.Value containing arrays and lists 2019-03-01 19:24:12 -03:00
ValueEolian.cs efl-mono: Add extra constructors to Eina.Value 2019-01-11 14:51:22 +01:00
dummy_child.eo efl-csharp: Respect beta in constructor parameters. 2019-03-07 13:03:33 +01:00
dummy_inherit_helper.eo efl-mono: Add proper test for interface inheritance 2019-01-17 21:36:27 +09:00
dummy_inherit_iface.eo efl-mono: Add proper test for interface inheritance 2019-01-17 21:36:27 +09:00
dummy_numberwrapper.eo csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
dummy_part_holder.eo efl-csharp: Respect beta for classes and other stuff. 2019-03-11 16:08:04 -03:00
dummy_test_iface.eo csharp: Remove test about conflicting events. 2019-03-20 18:44:02 +01:00
dummy_test_object.eo csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
efl-mono-suite.runtimeconfig.json efl-mono: Add support for dotnet core 2019-03-01 23:58:56 -03:00
libefl_mono_native_test.c csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
meson.build csharp: Remove test about conflicting events. 2019-03-20 18:44:02 +01:00
mono_test_driver.sh efl_mono: fix test and example compilation on Windows 2017-12-15 22:26:30 -02:00