efl/src/bindings/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
..
efl_mono mono: fix space and brace warnings of StyleCop 2019-04-02 16:57:52 +02:00
eina_mono csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
eldbus_mono mono: fix space and brace warnings of StyleCop 2019-04-02 16:57:52 +02:00
eo_mono csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
eolian_mono build: make bindings cross compileable 2018-12-17 17:43:08 +01:00
efl_mono.dll.config.in efl-mono: Remove trailings from template file 2019-01-16 11:57:54 +09:00
meson.build csharp: Remove missing doc warning by filling them. 2019-03-20 11:35:58 +01:00