Summary: This will help cleaninup the EFL# API.
Test Plan: run test suite
Reviewers: YOhoho, felipealmeida, segfaultxavi, woohyun, brunobelo
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10365
Summary:
Also removed uneeded methods.
Slice also may need some API love to be actually useful later.
ref T8292
Reviewers: segfaultxavi, felipealmeida, brunobelo, woohyun
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8292
Differential Revision: https://phab.enlightenment.org/D10327
Summary:
Added more docs alongside the since information.
For items that should be skipped from the end user of the binding but
must stay public for generated code,
`EditorBrowsable(EditorBrowsableState.Never)` was used.
ref T8293
Reviewers: brunobelo, felipealmeida, woohyun, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8293
Differential Revision: https://phab.enlightenment.org/D10313
Summary:
Instead of using a lock block in every method definition, we just need
them inside the actual methods adding/removing the handlers.
Kudos to @herb for the suggestion.
Reviewers: felipealmeida, herb, brunobelo
Reviewed By: brunobelo
Subscribers: cedric, #reviewers, herb, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9758
Summary:
The LoadFunctionPointer relied on leaks of NativeModules by not
disposing them. Instead do direct loading without instantiating
unnecessary objects.
Reviewers: lauromoura, woohyun, brunobelo
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10258
Summary:
Instead of receiving a callback that compares two intptrs (which is
still used internally), expose a more C#-friendly delegate which is
wrapped into the native one.
Test Plan: run test suite
Reviewers: felipealmeida, segfaultxavi, brunobelo
Reviewed By: felipealmeida
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10253
Summary:
Sometimes, valid Eo objects of private classes can be returned from
methods. Currently we try to wrap in a minimal `Efl.Object` instance,
but as it is an abstract class, we can't instantiate directly.
This commits adds a dummy `Efl.ObjectRealized` to be instantiated when
wrapping such classes alongside a test case.
Fixes: T8258
Reviewers: felipealmeida, brunobelo, segfaultxavi, Jaehyun_Cho
Reviewed By: brunobelo
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10101
Summary:
C# language binding generates C# method name beginning with verb by
checking verb list in name_helpers.hh.
Some verbs used in eo method are missing in the current verb list. So
they are added into the verb list.
In this scheme, there is a problem that some words can be used as a verb
in some methods but they also can be used as a noun in other methods.
(e.g. drag_start as a verb / cursor_word_start as a noun)
So "start" and "scroll" are not added to verb list in this patch.
To resolve the above problem, we may need a new eo syntax to rename or
reverse the name in language bindings.
Test Plan: Check C# method names in .eo.cs files if the name begins with verb.
Reviewers: felipealmeida, SanghyeonLee, woohyun, Jaehyun_Cho, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10001
Summary:
The C function `eina_hash_del_by_data` requires the same value that was
passed to the `add` function. As C# hashes store stuff through pointers
due to marshalling, this makes it hard to pass the same pointer for it.
So this functionality is implemented at C# level instead of relying on
the native function directly.
Fixes T8198
Thanks to @brunobelo and @singh.amitesh for the test case.
Reviewers: singh.amitesh, felipealmeida, brunobelo
Reviewed By: brunobelo
Subscribers: cedric, #reviewers, #committers, singh.amitesh, brunobelo
Tags: #efl
Maniphest Tasks: T8198
Differential Revision: https://phab.enlightenment.org/D9853
Summary:
Eolian allows non-public members in interfaces and mixins (usually
@protected). As both kinds are converted to C# interfaces, this
causes problem as non-public members are forbidden in C# interfaces.
This commit changes eolian_mono by removing those members from the C#
interfaces. If a generated class implements the interface, the method is
generated as if it were a protected member of the class directly.
For mixed properties like `Efl.Io.Reader.CanRead { get; set @protected; }`,
the interface has only the public getter and the the implementing class has both
the public getter and the protected setter.
With this, C# devs won't be able to directly implement protected Eo
methods from interfaces. (But this really does not make sense from the
C# point of view).
ref T7494
Reviewers: segfaultxavi, felipealmeida, YOhoho
Reviewed By: YOhoho
Subscribers: cedric, brunobelo, Jaehyun_Cho, #reviewers, woohyun, #committers
Tags: #efl
Maniphest Tasks: T7494
Differential Revision: https://phab.enlightenment.org/D9800
Summary:
WIN32 should use a allocator and deallocator different from EFL, sometimes, when
freeing a pointer, it should use win32_free. To stardardize, A custommarshaler
is used to fix this problem.
Fixes T8201
Reviewers: lauromoura, felipealmeida
Reviewed By: lauromoura
Subscribers: cedric, brunobelo, felipealmeida, #reviewers, lauromoura, #committers
Tags: #efl
Maniphest Tasks: T8201
Differential Revision: https://phab.enlightenment.org/D9842
Summary:
Duplicated interface's NativeMethods code will be removed. they are called in
`GetInterfaces`.
Size of efl_mono.dll
6,587,392 bytes(6.6MB) -> 4,112,384 bytes (4.1MB)
Test Plan: ninja test
Reviewers: felipealmeida, lauromoura, vitor.sousa
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, woohyun, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9752