Commit Graph

62000 Commits

Author SHA1 Message Date
Xavi Artigas 479488335c mono-docs: Properly indent code examples
First code line was indented differently by DocFX because of tabs,
whitespace or who knows what. This adds a newline after the <code>
tag so all code lines have the same indentation.
2019-04-11 13:18:33 +02:00
junsu choi b849ad9022 efl_canvas_vg_container : Support mask tree for multiple mask.
Summary:
If another mask is set in the mask source, the rendering of the mask is performed in order.
The mask will render one buffer in order.
And depending on some types, the initial values of the buffers may be different. (alpha zero or 255).

If the implementation for masking is
efl_canvas_vg_node_mask_set(layer, mask1, MASKADD);
efl_canvas_vg_node_mask_set(mask1, mask2, MASKSUBSTRACT);
efl_canvas_vg_node_mask_set(mask3, mask4, MASKINTERSECT);
Supports rendering for consecutive masks.

Reviewers: Hermet, cedric

Reviewed By: Hermet

Subscribers: #reviewers, #committers, smohanty, kimcinoo

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8517
2019-04-11 19:20:03 +09:00
junsu choi 83d5ea1a42 ector_software_rasterizer: Implement mask blending function.
Summary:
Add Mask blend function(Add, Substract, Intersect, Difference)
this blending function only use mask blending case.

Test Plan: N/A

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, kimcinoo, #reviewers, smohanty, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8509
2019-04-11 19:17:10 +09:00
Xavi Artigas 04a41a3712 mono-docs: Allow embedding external examples
Summary:
New option added to eolian_gen: -e <dir>
This specifies a directory to search for examples. If a file is found with the
same name as an EFL C# class (e.g. Efl.Ui.Button.cs) or as an EFL C# method or
property (e.g. Efl.IText.Text.cs, Efl.IText.SetText.cs) its full
contents will be embedded in the documentation for that class or method within
<example> and <code> tags. This is, in turn, is parsed by DocFX and shown
in Example boxes in the generated pages.
If an example file is not found, no examples are embedded for that object.
If -e is not used, no examples are embedded for any object.

New option added to meson: mono-examples-dir to point to the examples directory.
This directory is then passed to eolian_mono through -e.
Do not use it (or define it to nothing) to disable example embedding.

No performance drop has been observed because of these extra tests.

Right now examples can only be given for base classes, not for derived ones
(i.e. Efl.IText.Text but not Efl.Ui.Button.Text). This will be addressed in a
later commit.

Feature
Depends on D8587

Test Plan:
Create an examples folder and put some files in it:
```
mkdir /tmp/examples
echo 'var button = new Efl.Ui.Button();' > /tmp/examples/Efl.Ui.Button.cs
echo 'button.AutoRepeatEnabled = true;' > /tmp/examples/Efl.Ui.IAutorepeat.AutorepeatEnabled.cs
echo 'button.SetAutoRepeatEnabled(true);' > /tmp/examples/Efl.Ui.IAutorepeat.SetAutorepeatEnabled.cs
```
Configure meson to embed examples and build:
```
meson configure -Dmono-examples-dir=/tmp/examples
ninja
```
Examine the generated efl_ui_button.eo.cs file to see embedded <example> tags,
or run DocFX and bask in the glory of documentation pages with examples:
```
cd doc/docfx
./gendoc.sh
```

Reviewers: lauromoura, felipealmeida, vitor.sousa, zmike, bu5hm4n

Reviewed By: vitor.sousa

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8592
2019-04-11 10:39:09 +02:00
Xavi Artigas 748070125f efl-mono: Allow doc XML tags to be nested
Summary:
This allows inserting nested tags like:
<example><code>bla bla bla</code></example>

The generate_tag_example() is currently unused but serves as an example.

Depends on D8585

Test Plan:
Not much, unless you want to manually call generate_tag_example()
(Which I have done, and it works, I promise).

Reviewers: lauromoura, vitor.sousa

Reviewed By: vitor.sousa

Subscribers: vitor.sousa, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8587
2019-04-11 10:37:45 +02:00
Xavi Artigas c3907032b6 efl-mono: Allow generating doc refs for methods without class
Summary:
Methods without a class (global) make the previous code crash because
func.klass contains something (it cannot be NULL because it is a reference)
but you cannot make much calls on this something.

Test Plan: Currently there are no such references, but I need this working for upcoming patches.

Reviewers: lauromoura, vitor.sousa

Reviewed By: vitor.sousa

Subscribers: vitor.sousa, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8585
2019-04-11 10:37:11 +02:00
junsu choi 9dc611784e svg_parse: Support gradient when <defs/> is not declared.
Summary:
Even if linear or radius gradient is declared,
it will not be output if there is no <defs/>
It can be supported because it stores the declared gradient in loader.gradient.

Test Plan: N/A

Reviewers: Hermet, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8591
2019-04-11 17:18:10 +09:00
junsu choi b736697ec7 vg_common_svg : Add missing eet data descriptor
Summary:
Add descriptor to get the value of user_space,
which is a member of Svg_Style_Gradient.

Test Plan: N/A

Reviewers: Hermet, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8594
2019-04-11 14:48:05 +09:00
Boris Faure 4f7c06e8a9 ecore_imf: do not loop forever on shutdown when there is no more a display
@fix
2019-04-10 22:46:27 +02:00
Boris Faure e3cdec0ad0 meson: set ENABLE_XIM if the xim module is compiled 2019-04-10 22:44:59 +02:00
Boris Faure 27bb81cc03 ecore_imf: better to check whether the module is compiled 2019-04-10 22:44:14 +02:00
Boris Faure 7cc0e3ea05 meson: skip trailing dot if any + more posix compliant 2019-04-10 22:42:59 +02:00
Lauro Moura feaf0e9299 csharp: Fix GetUserMethods and NativeClass
Summary:
- Should only search for methods locally.
- dotnet requires passing false to GetAttributes
- Also added a check when the class overrides no Eo ops.

Reviewers: felipealmeida, vitor.sousa, woohyun

Reviewed By: felipealmeida, vitor.sousa

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8588
2019-04-10 15:12:47 -03:00
Carsten Haitzler e2b56fe71d ecore drm2 - handle possible NULL fb when doing a flip 2019-04-10 16:49:47 +01:00
Xavi Artigas 7b483cb548 efl-mono: Fix eolian_mono help
It was a blatant copy&paste of eolian_cxx :D
2019-04-10 16:23:38 +02:00
Xavi Artigas 8985bcd269 docs: Remove silly [[[ typos 2019-04-10 16:09:15 +02:00
Carsten Haitzler 910a935fd7 meson - oops - used sh not dash 2019-04-10 15:03:21 +01:00
Carsten Haitzler 8b05f1eaf6 meson - evas loader confg install script - make it /bin/sh compliant 2019-04-10 15:02:47 +01:00
Carsten Haitzler d9d0a6cc57 edje example edc - remove misleading signals that aren't used 2019-04-10 11:17:32 +01:00
junsu choi 8ef6c422af svg_parse: Change initial value of gradientUnits of linearGradient
Summary:
The initial value of gradientUnits is objectBoundingBox.
If userSpaceOnUse is declared, change user_space to true.
We do not have to recalculate each value by this change.
The default unit for linear x1, y1, x2, y2 is percentages.
This can be a value from 0 to 1. If svg want to use a value between 0 and 100, it must have a '%' symbol

That is accroding to gradientUnits in here
https://www.w3.org/TR/2015/WD-SVG2-20150915/pservers.html#LinearGradientElementGradientUnitsAttribute

Test Plan:
cd ./src/examples/edje
edje_cc -beta svg.edc && gcc -o svg-test svg-test.c `pkg-config --libs --cflags evas ecore ecore-evas edje`

Reviewers: Hermet, smohanty

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8589
2019-04-10 18:03:05 +09:00
junsu choi 96e6d307b8 svg_parse: The percentage gradient value divide by view's size
Summary:
The default unit of gradient value is percentage.
This can be a value from 0 to 1.
If svg use the '%' symbol, we must divide by 100.
And it must be calculated the same as any other case.

Test Plan: N/A

Reviewers: Hermet, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8590
2019-04-10 17:39:36 +09:00
Felipe Magno de Almeida 0afd19ba62 efl-mono: Add test and fix problem with private dynamic types passed as parameters
Summary:
The code that searches the type dynamically fails instead of falling
back to Efl.Object. Now it fallbacks to Efl.Object.

Fixes T7783

Reviewers: bu5hm4n, vitor.sousa, segfaultxavi, woohyun, Jaehyun_Cho, YOhoho, lauromoura

Reviewed By: vitor.sousa, lauromoura

Subscribers: lauromoura, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7783

Differential Revision: https://phab.enlightenment.org/D8574
2019-04-09 18:40:00 -03:00
Lauro Moura e7e1d777f1 csharp: Add some null checks.
Summary:
- Check for nullness when getting stuff from C# to C
- We should return null when wrapping a NULL pointer instead of throwing
  an exception

Reviewers: felipealmeida, vitor.sousa, woohyun

Reviewed By: vitor.sousa

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8580
2019-04-09 16:26:50 -03:00
Felipe Magno de Almeida df3b28b0ab efl-mono: Make override of methods only for methods that are defined by the user
Summary:
Instead of overriding every method and making the callback to C, we
just override the methods that are found by reflection on the type.

Reviewers: bu5hm4n, vitor.sousa, segfaultxavi, woohyun, Jaehyun_Cho, YOhoho, lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8579
2019-04-09 11:18:10 -03:00
Felipe Magno de Almeida b1f0031b55 efl-mono: Fix --enable-mono-beta for tests
Reviewers: bu5hm4n, vitor.sousa, segfaultxavi, woohyun, Jaehyun_Cho, YOhoho, lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8573
2019-04-09 11:08:30 -03:00
Vincent Torri cbea302b8f unit tests: fix warnings when fork() is not available, fix evil's unit tests compilation
Summary:
* some variables were defined, only when fork() was available
* since Eina.h is included unconditionally, add Eina path in Makefile_Evil.am

Test Plan: compilation

Reviewers: zmike, cedric, raster, devilhorns

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl_build

Differential Revision: https://phab.enlightenment.org/D8586
2019-04-09 10:05:18 -04:00
Vincent Torri 246ab7b254 eldbus unit test: fix warnings
Summary: include libgen.h so that basename() is declared

Test Plan: compilation

Reviewers: cedric, raster, zmike, devilhorns

Subscribers: #reviewers, #committers

Tags: #efl_build

Differential Revision: https://phab.enlightenment.org/D8583
2019-04-09 12:34:19 +01:00
Jaehyun Cho 660eba496f configure: fix build error of efl_custom_exports_mono.c
Reviewers: woohyun, lauromoura, akanad

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8577
2019-04-08 16:29:44 +02:00
Jaeun Choi 998e9a8f68 elm_panel/efl_ui_panel: disable scrolling when obj is disabled
panels were still scrollable while disabled.
this patch fixes it.
2019-04-08 18:48:34 +09:00
Hermet Park dc1e1a652c evas map: disable anti_aliasing.
We need a proper interface to toggle high-quality mapping,
until that, we disable the anti_aliasing feature.
Since adjecent polygons(such as textpath) shouldn't get this aa feature.
2019-04-08 15:02:47 +09:00
Hermet Park d5551bdda3 evas map: remove redundant code.
Remove old anti-alias code since high quality map is replaced with new one.
New anti-aliasing is logically same but having a regression bug,
it should be stablized.
2019-04-08 14:56:42 +09:00
Hermet Park 84e162b01f canvas map: introduce a new texture mapping for better quality.
Summary:
This new implementation of evas map texture mapping
 is designed for high quality rendering same level to GL.

If you use a high-end device, performance is not too bad, you can turn this on.
You might have practical image quality even in software rendering.

Since this implementation still have a few optimization points (+simd)
and stablizings, it may be useful in somewhat limited envrionments right now.
However the functionality definitely works fine, so please turn this on by
demand (anti_alias + smooth) for a while.

{F3667773} {F3667776} {F3667778}

Reviewers: #committers, devilhorns, raster

Reviewed By: #committers, raster

Subscribers: raster, devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8106
2019-04-08 13:21:08 +09:00
Mike Blumenkrantz 15c3843b55 tests: add evas render test for callbacks
Summary:
verify that all callbacks can be incrementally added and triggered during a
sync render (which is the rendering used in unit testing)

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl_tests

Differential Revision: https://phab.enlightenment.org/D8505
2019-04-08 13:19:56 +09:00
Hermet Park 31cf281bdd efl_ui_textpath : enable anti-alising for better quality.
Summary:
Current textpath on sw rendering is too jiggled,
quaility is very poor to use.

This option uses better quality texture mapping logic
in order to improve the image quality.

Depends on D8106

Reviewers: #committers

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8465
2019-04-08 13:16:25 +09:00
Hermet Park 6b4953b468 canvas vg: code refactoring.
Summary: Remove unnecessary argument of an internal function.

Reviewers: #committers, jsuya, cedric

Reviewed By: #committers, cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8530
2019-04-08 13:15:45 +09:00
Carsten Haitzler 2178258105 tests - remove one of the eina strtod tests as libc is failing
see the comments above the test explaining why it's removed (libc
fails, not eina and having our tests fail because eina is a bit more
robust than libc is not a sane thing to have). but here is the comment
for git history spelunking:

this test isn't viable because libc actually fails the conversion (testing
glibc 2.28 on arch linux). either libc doesn't like the space at the start
thus doesn't skip it but assumes END of numbver string thus not converting
and returning NULL, or it doesn't like InFiNiTyfoo in some way, but either
way this test shows eina to be more robust and do some kind of conversion
and libc to fail and return NULL from strtod into the string pointer. it
also doesnt return an infinite fp thus hitting the default: case and thus
failing etc. ... so all in all remove the test as all it does it cause
failures and if anything shows libc to be failing more than eina.

@fix
2019-04-07 14:47:35 +01:00
Carsten Haitzler 1f402946a2 tests - fix check header to always include eina due to windows
windows means HAVE_FORK is false... thus missing eina.h and now we
have macros that use eina calls always... so this fixes nbuild of
tests on windows

@fix
2019-04-07 14:16:55 +01:00
Carsten Haitzler 954a534bc0 remove vpath test for user dir the test was broken and fixing is insane
so this test fails on windows as getuid isn't there... so this fixes
the windows bild: fix T7728 ... but it also would have failed if $HOME
didn't match what was in the passwd file, and other fallback cases if
they were triggered.

but ... to make this test stay it would have to also change the logic
- check $HOME env first, then pwent entry, if that fails /tmp/UID and
if that fails use /tmp ... the test would effectively be a copy &
paste of the vpath code at which point this is really pointless where
testing is copying the exact (or almost exat) same code into the test.
this is ignoring the #ifdef fun of martching ifdefs that vary on
windows.

the problem is this kind of api is defined very much by the system it
runs on and the environment and situation, so the test has to be as
complex. realistically, instead of copying & pasting the code across
and now having 2 bits of code to possibly mantain (change the lib src
then the test needs changes too as it's a copy & paste), it's just
saner not to have a test for this kind of siutation and accept the
reality of the situation.

@fix
2019-04-07 13:18:25 +01:00
Cedric BAIL 40867cd0b8 eio: do not fail in case of early ECANCEL.
Actually with directory that contain a lot of file and the right order for them,
you would end up getting what you are looking for before you have triggered all
the future callback. In that case, all the future callback are cancelled and
we will get that notification. The test is not failing in this case as we already
got what we wanted.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8541
2019-04-06 13:13:41 -07:00
Cedric BAIL 9afd12324b elementary: fix error path during shutdown of fileselector.
During shutdown, sometimes, we can have an error generated on the object
while it is invalidating, but before it is invalidated. This lead to
properties on the object to change to an error state and trigger the
properties changed logic. At this point, the parent has already been
destroyed and we don't really have anything more to do. So let's not
do anything.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8502
2019-04-06 13:13:38 -07:00
Cedric BAIL 589fca7540 elementary: it seems I forgot to initialize some meaningful boolean.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8501
2019-04-06 13:13:36 -07:00
Jaehyun Cho a6cc943211 elementary: fix not to call duplicate theme set
Theme is set during finalize in Efl.Ui.Layout_Base.
Therefore, it is not necessary to call theme set function if the widget
inherits Efl.Ui.Layout_Base and its klass is properly set.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8559
2019-04-06 12:52:57 -07:00
Mike Blumenkrantz 3e7017e6a8 add EFL_VERSION_1_23 define 2019-04-05 20:17:27 -04:00
Mike Blumenkrantz a5e3d2c455 add EFL_VERSION_1_22 defines
whoops
2019-04-05 20:16:44 -04:00
Mike Blumenkrantz e35503ab8d back to dev mode 2019-04-05 20:13:54 -04:00
Mike Blumenkrantz 54d5481d02 release: Update NEWS and bump version for 1.22.0 release 2019-04-05 19:12:33 -04:00
Vitor Sousa 7c28762f15 efl-csharp: fix crash when events trigger after C# object `Dispose`
Summary:
Rework general event handling to check individually each event call, if the
object is not alive then the event will not be propagated.
WeakReferences (and lambdas capturing those WeakRefs) are used to ensure this.

Dispose methods in object now take care of checking if efl libraries are still
initialized and thread-safely unregister each event before performing an
efl_unref on the Eo object.

Event handling in C# is now centered around a single dictionary inside the
object: `EoEvents`.

C# event triggers now properly trigger events on C too.

Standardize C# event-triggering methods names (remove underscores).

Some diminished use of static memory due events no longer requiring static key
objects to be registered/unregistered.

Some fixing of white space generation for generated events.

Depends on D8431

Reviewers: lauromoura, felipealmeida, segfaultxavi

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8564
2019-04-05 19:59:47 -03:00
Vitor Sousa 1c22a3d819 efl-csharp: fix resource deallocation causing errors everywhere
Summary:
This commit mainly fixes errors caused by deallocating resources in the garbage
collector thread. Using `ecore_main_loop_thread_safe_call_async` to queue
resource deallocation in the main thread seems to solve it.

Also, some `efl_ref` calls are added in places they were missing, mainly
objects that unref in the destructor thus taking ownership if efl_ref is not
called.

Also fix improper resource deallocation in tests that were causing it to crash,
enabling it to call Efl.All.Shutdown again. This allocation and the deallocation
process was moved from the Eo class constructor to static class methods that are
called in the test 'set up' and 'tear down' methods.

Queuing resource deallocation in the main thread make it mandatory that tests
call `Efl.App.AppMain.Iterate()` if they want to check proper resource
deallocation (like TestFunctionPointers.set_callback_inherited_called_from_c).

Extras:
Remove duplicated declaration of 'eflcustomexportsmono' in meson in order to fix
some linking problems.

Remove some unused code around deallocation functions that had to be reworked.

Object allocation is now supplied with the call site information it expects
(file name and line for _efl_add_start).

Depends on D8550

Test Plan: meson test

Reviewers: felipealmeida, lauromoura, cedric, segfaultxavi

Reviewed By: lauromoura

Subscribers: segfaultxavi

Tags: #efl_language_bindings, #do_not_merge

Differential Revision: https://phab.enlightenment.org/D8431
2019-04-05 19:58:19 -03:00
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
Marcel Hollerbach 4edf8036e0 meson: correctly use the correct dependency
Summary:
edje_cc calls epp, so we should not only add edje_cc to the depends on
target, but rather also ensure that epp is availble. Additionally, this
removes unneccessary depends on declarations when we do cross compile.
Depends on D8561

Reviewers: zmike, segfaultxavi, cedric

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8562
2019-04-05 08:15:39 -04:00