efl/src/bin
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_buffer meson: modify install path of bqmgr binary 2019-02-27 21:20:31 +01:00
ecore_con cmake: remove! 2018-12-20 20:07:26 +01:00
ecore_evas here comes meson 2018-10-02 17:22:50 +02:00
edje meson: correctly use the correct dependency 2019-04-05 08:15:39 -04:00
eet meson - dont install eina bench cmp and use install_mode 2018-12-27 17:17:13 +00:00
eeze efl: remove EFL_EO_API_SUPPORT macro 2019-03-18 12:13:59 +01:00
efl efl: remove EFL_EO_API_SUPPORT macro 2019-03-18 12:13:59 +01:00
efl_js efl-js: JavaScript Eolian binding 2015-12-23 23:59:40 -02:00
efl_mono_msbuild_gen efl_mono: Add msbuild file generator 2017-12-04 15:47:51 -03:00
efl_wl meosn - fix install of scripts and bins and their timestamps and modes 2018-12-27 15:24:08 +00:00
efreet efreetd: remove a tentative global variable definition 2019-04-04 09:14:08 -04:00
eina eina - btlog - fix warnign about uninit struct field 2018-11-09 11:43:58 +00:00
eldbus ledbus - fix codegen to not conflict keys with eldbus inyternal 2019-01-09 18:57:22 +00:00
elementary Revert "test/efl_ui_pager_scroll: fix demo" 2019-04-02 16:35:12 +09:00
elua build: fix macos build 2019-02-22 08:53:20 -05:00
embryo docs: Fix assorted typos in legacy documentation 2019-01-28 13:14:20 +01:00
eolian eolian: Fix resource leak 2019-03-12 11:31:51 -04:00
eolian_cxx build: remove unused meson file 2018-12-17 17:43:06 +01:00
eolian_js evas: remove render2 2018-08-21 10:36:55 -04:00
eolian_mono csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
ethumb here comes meson 2018-10-02 17:22:50 +02:00
ethumb_client here comes meson 2018-10-02 17:22:50 +02:00