Commit Graph

3086 Commits

Author SHA1 Message Date
Xavi Artigas 8b25bc41b3 mono-tests: Fix build after DnD changes
The test struct used to check mono bindings struct pack/unpack
is no longer available. Used a different one, and checked the same things.

Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11219
2020-03-08 11:01:21 +01:00
Marcel Hollerbach 165f6f0ae2 rewrite efl cnp and dnd handling
the previous commits introduced a abstraction for drag in drop which can
be now used for this here. With this commit all the direct protocol
handling in efl.ui is removed, and only the ecore evas API is used.

Additionally, this lead to a giant refactor of how APIs do work. All
Efl.Ui. interfaces have been removed except Efl.Ui.Selection and
Efl.Ui.Dnd, these two have been restructored.
A small list of what is new:
- In general no function pointers are used anymore. They feel very
  uncompftable in bindings and in C. For us its a lot easier to just
listen to a event when a drop enters or leaves, there is no need to
register custom functions for that.
- Asynchronous data transphere is handled via futures, which proved to
  be more error safe.
- Formats and actions are handled as mime types / strings.
- 0 is the default seat if you do not know what else to take.
- Content is in general passes as a content container from eina, this
  also allows applications to pass custom types

The legacy dnd and cnp API is implemented based on that.
All cnp related things are in elm_cnp.c the dnd parts are in elm_dnd.c

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11190
2020-03-08 10:59:40 +01:00
Marcel Hollerbach 39f3ce42dc ecore_evas: Introduce cnp / dnd API for ecore evas
The idea of copy and paste here is:
- The user specifies the content he wants to have in the selection
  buffer with a Eina_Content, these content pointer ownerships are
  passed to the called. Internally ecore_evas code will memorieze the
  pointer, and pass on function callbacks to the modules, which then do
  not have to deal with the ownership.

- In case the module does not specify these APIs, the callback
  implementation will be called, which only works for cnp *not* dnd.

- Action and mime types are handled as strings, which allows way better
  custom organisations.

(The docs needs improvement)

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11192
2020-03-08 10:59:25 +01:00
Marcel Hollerbach 40a62ddf94 eina: introduce Eina_Abstract_Content
A little abstraction to have abstract data content bound to a type.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11018
2020-03-08 10:59:22 +01:00
Marcel Hollerbach f7e0a55d52 eo: print debug information when a call cannot be resolved
that is usefull esp. on parts.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11462
2020-03-06 15:11:20 +01:00
Mike Blumenkrantz 565fa76a11 tests/evas: verify loading and mmap values for efl.file are correct with skip_head
ensure that these functions are still usable with async load

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11424
2020-03-06 13:30:52 +01:00
Stefan Schmidt 120c0e4032 tests_: elementary: remove not used allocation in collection view test
Allocated but never used (and never freed). Seems like a copy and paste
bug to me.

CID: 1412363

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11442
2020-03-03 10:55:44 +01:00
Stefan Schmidt 57adf37303 tests_: elementary: free memory in error path
Make sure we free the iterator here as well.

CID: 1409658

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11441
2020-03-03 10:55:40 +01:00
Mike Blumenkrantz 677b507281 tests/gesture: add test for gesture sequence
ensure that tap continues working after complex gestures

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11440
2020-03-03 10:54:42 +01:00
Mike Blumenkrantz 6d9f8416e7 tests/gesture: add a couple rotate gesture tests
these end up triggering a lot of corner cases in other recognizers too,
but the tests themselves are fairly minimal

Differential Revision: https://phab.enlightenment.org/D11391
2020-03-03 10:54:38 +01:00
Mike Blumenkrantz 6aa9299cc9 tests/gesture: verify rotate gesture event counting in existing tests
these magically pass already

Differential Revision: https://phab.enlightenment.org/D11390
2020-03-03 10:54:37 +01:00
Mike Blumenkrantz db5fcd13db tests/elm: add util function for doing a multi-press drag around
same as existing function, but takes a finger id

Differential Revision: https://phab.enlightenment.org/D11389
2020-03-03 10:54:36 +01:00
Mike Blumenkrantz 7f6dfbac80 tests/elm: fix drag_around helper to handle negative angles
oops

Differential Revision: https://phab.enlightenment.org/D11388
2020-03-03 10:54:34 +01:00
Mike Blumenkrantz 322fdba5f0 efl/gesture: fix momentum gesture recognizer to properly continue its gestures
it's not enough to just check the value for this in the recognizer; we need to
always modify the recognizer property here to correctly manage object lifetimes
and generate the correct events (e.g., not emitting momentum gestures while
multiple fingers are moving simultaneously)

also update a couple existing unit test checks which were wrong

Differential Revision: https://phab.enlightenment.org/D11386
2020-03-03 10:54:32 +01:00
Mike Blumenkrantz 641c9427ef efl/gesture: rename long_tap -> long_press
this is consistent with the rest of efl naming

ref T8503

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11376
2020-03-03 10:54:26 +01:00
Mike Blumenkrantz d481cbe83c tests/gesture: add custom gesture to custom recognizer test
this adds a simple custom gesture implementation with basic motion
accumulator properties to verify (and give an example of) the custom
gesture capability that can be used by apps alongside custom recognizers

Differential Revision: https://phab.enlightenment.org/D11352
2020-03-03 10:54:17 +01:00
junsu choi 062bded1a7 test/suite_helpers : Fix warnings about use to uninitialized value.
Summary:
remove warnings.
../src/tests/elementary/suite_helpers.c:779:86: warning: ?idy2? may be used uninitialized in this function [-Wmaybe-uninitialized].
...

Test Plan: N/A

Reviewers: YOhoho, Hermet, Jaehyun_Cho

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11417
2020-02-26 16:34:44 +09:00
Mike Blumenkrantz 526b1e2c72 tests/elm: verify image file_set -> memfile_set -> file_set
Summary:
ref D11392
Depends on D11397

Reviewers: kimcinoo, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11398
2020-02-25 09:23:46 -05:00
Mike Blumenkrantz 1b5ad4740e tests/elm: fix elm_icon test
Summary:
* this was left as a duplicated efl_ui_image test
* elm_image doesn't have a legacy api for setting icons
* elm_icon doesn't actually have any tests for icon loading
Depends on D11396

Reviewers: kimcinoo, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11397
2020-02-25 09:23:44 -05:00
Marcel Hollerbach 74491e8781 eina: introduce eina_iterator_process
this brings a functional-map function to the iterator implementations.
https://en.wikipedia.org/wiki/Map_(higher-order_function)

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D11062
2020-02-19 16:34:05 +01:00
Marcel Hollerbach 090c351d38 elementary: use array instead of list for subchildren
this safes in the runtime of elm_test round about 9kb (*).
Additionally, using a array here is jumping way fewer times arround in
memory, as we do not need to jump from node to node in a list.

Additionally, this commit replaces a few abort disabler macros with a
error checking macro. (which cleans the log).

*: explanation: we have round about 600 widgets in elm_test, every
widget is normally refered once, every list node has 4 pointer, makes
round about 9600 bytes or rougly 9 KB. So the messured savings are more
or less explaining the reality.

Reviewed-by: Carsten Haitzler (Rasterman) <rasterman.com>
Differential Revision: https://phab.enlightenment.org/D11374
2020-02-19 16:28:11 +01:00
Felipe Magno de Almeida df0715a9aa C#: Add error checking for Eina.Success_Flag return type
When a get and/or set from property is defined to return, explicitly,
a Eina.Success_Flag, the mono generator will check the return value
and generate an exception if the call fails.
Resolves T8383.

Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11281
2020-02-18 17:53:19 -03:00
João Paulo Taylor Ienczak Zanette eba07471a0 csharp: Add IntPtr to/from IEnumerable conversion for "accessor" types
Adds a special case for "accessor" complex types in `implicit operator` for
structs and `IntPtr`s, in which an IEnumerator must be converted to/from an
IntPtr.

Reviewed-by: YeongJong Lee <cleanlyj@naver.com>
Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11210
2020-02-18 16:52:59 -03:00
Felipe Magno de Almeida 595cb754b3 eolian-mono: Make Get/Set internal for generated properties
Make Get and Set methods internal for properties that get the
property syntax generated.

Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11252
2020-02-18 16:47:38 -03:00
Mike Blumenkrantz 7768b54043 tests/evas: add simple test for skip_head property
Summary:
when using this property, there should be no mmap loaded after a call
to evas_object_image_file_set, and we want to make sure the image is
eventually loaded

ref T8378

Depends on D11340

Reviewers: raster

Reviewed By: raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8378

Differential Revision: https://phab.enlightenment.org/D11341
2020-02-14 08:33:49 -05:00
Mike Blumenkrantz f145b53892 efl/gesture: api renames for Efl.Canvas.Gesture_Touch
ref T8554

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11300
2020-02-14 09:21:03 +01:00
Mike Blumenkrantz c0453132df tests/gesture: add another tap test to check finger size works
add some move events in to shake up the recognizers and check whether
taps are still working

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11292
2020-02-14 09:20:56 +01:00
Mike Blumenkrantz 28b7ea6f0c efl/gesture: rework gesture_recognizer::add to be a 'type' property
this simplifies (and optimizes) a bunch of code by letting gesture recognizers
return directly the type of gesture they recognize for use internally

ref T8503

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11267
2020-02-14 09:20:42 +01:00
Mike Blumenkrantz 151ec0748a efl/config: merge all gesture manager config code into efl.config
this is all just duplicated code, so we can deduplicate it with minimal
effort to clean up the api

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11251
2020-02-14 09:20:30 +01:00
Marcel Hollerbach f57b24b86b efl-check: do not print expected errors
that is just a waste of log space.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11297
2020-02-14 09:01:10 +01:00
Marcel Hollerbach e84c1b6bf8 eina-suite: do not print that many errors
we should expect errors in these conditions, this also safes a lot of
space in logs.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11296
2020-02-14 09:01:06 +01:00
João Paulo Taylor Ienczak Zanette 651517808c csharp: Generating documentation for tuple-value properties.
Adds documentation for tuple-value properties (properties with
multiple values), so the following Eo:

```
@property multi_valued_prop {
   [[ A multi valued property. ]]
   get {}
   set {}
   values {
     prop1: int; [[ Dummy property's first element. ]]
     prop2: int; [[ Dummy property's second element. ]]
   }
}
```

Generates the following documentation:

```
/// <summary>A multi valued property.<br/>
/// Since EFL *current version*.</summary>
/// <value>A tuple containing the following information:
/// <list type="bullet">
/// <item><description><c>prop1</c> (<c>Item0</c>): Dummy property&apos;s first element.</description></item>
/// <item><description><c>prop2</c> (<c>Item1</c>): Dummy property&apos;s second element.</description></item>
/// </list></value>
```

Note: This commit also adds a default separator between tag name and
parameters in `generate_opening_tag`.

Ref T8468.

Differential Revision: https://phab.enlightenment.org/D10889
2020-02-13 15:38:42 -03:00
Lucas Cavalcante de Sousa 4f3b3a33f5 efl_mono: Create insert list/array c# wrapper for eina_value.
Implements Insert() method to eina.Value containers (array/list). The
Insert() (src/bindings/mono/eina_mono/eina_value.cs) method wraps native functions implemented with c
(src/lib/eina/eina_inline_value.x).
Resolves T7402

Differential Revision: https://phab.enlightenment.org/D11298
2020-02-13 15:26:50 -03:00
Mike Blumenkrantz cc777c05f8 tests/layout: modify api ordering test to verify theme signal emission
ensure that signals queued during construction are always emitted

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11162
2020-02-12 16:04:48 +01:00
Ali Alzyod 4f99a37aee efl.canvas.textblock: allow all white spaces in style string not just space
Summary:
style string can contain any kind of white spaces and it will be fine

For example
```
"font=sans font_size=30 color=red "
```
Is the same as
```
"font=sans\tfont_size=30\n  color=red "
```

Reviewers: woohyun, segfaultxavi, tasn, zmike

Reviewed By: segfaultxavi

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8532

Differential Revision: https://phab.enlightenment.org/D11303
2020-02-11 12:10:00 +01:00
Lucas Cavalcante de Sousa fdbc2a5b32 efl: `eina_value_list_vinsert` assumes that the position is always valid
Summary:
The eina_value_list_vinsert at src/lib/eina_inline_value.x was not checking if the desired position was valid:
When inserting in an empty list in any out of bounds position it actually createded a list with the head being the desired value.
When inserting in a non-empty list in an out of bounds position caused a c error.
Now both cases return EINA_FALSE

Ref T8611

Test Plan:
Meson configured with -Dbindings=mono,cxx -Dmono-beta=true, and tests runned
with ninja test all.

Reviewers: felipealmeida, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8611

Differential Revision: https://phab.enlightenment.org/D11301
2020-02-07 13:52:15 -05:00
abdulleh Ghujeh f5e13284d7 Evas Textblock: update obstacle test
Summary:
Update the test to check that the first character is rendered after the obstacle.
To ensure that the obstacle feature keeps working correctly.

Reviewers: ali.alzyod, woohyun

Reviewed By: ali.alzyod

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11033
2020-02-06 15:36:30 +09:00
Marcel Hollerbach e710d42fc0 eolian_cxx: fix a last few since errors
sinace has to be > 1.22 and the tests need to reflect that.
2020-02-05 19:42:44 +01:00
Xavi Artigas debc17e4b4 docs: Remove incorrect doc tag
This was breaking build with cxx bindings enabled.
2020-02-05 18:53:43 +01:00
Ali Alzyod 3560b0f62f evas_object_textbox: deal with <br> <tab> without closing '/'
This causes many issues because textbox functions deals with <br> <tab> differently depending that user write them with or without '/' at the end (for example <br> vs <br/>)
while most functionaliity are the same (like viewing <br> and <br/> are the same).
cursor dealing with these tags can be differently.
now we will assume <br> <tab> are already have there own closing tag, even if it is missing

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11293
2020-02-05 17:41:24 +01:00
Lucas Cavalcante de Sousa 269ed1ca34 bindings-cxx: fix missing @since tags at stable c#/cpp tests
Story:
This revision got landed twice, I do not know what happend, but when i
wanted to land that initially with git phab, something reseted the state
of this revision to the initial version, and also changed the
authorship. This time, this commit contains all changes, and the correct
authorship, sorry for the noise.

Summary:
Add @since tags at stable (not tagged with @beta) `.eo` c#/c++ tests. Doing so,
eolian_enforce_since shouldn't accuse at stable tests.
Depends on D11264
Resolves T8600

Reviewers: zmike, segfaultxavi, woohyun, bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8600

Differential Revision: https://phab.enlightenment.org/D11265
2020-02-05 17:15:33 +01:00
Marcel Hollerbach 33681f8087 eolian: fix all remaining since errors
eolian checked for since tags that are invalid by its own rules. This is
now fixed.
2020-02-05 16:30:57 +01:00
Marcel Hollerbach e52d871859 bindings: fix missing @since tags & docs
summary_: Depends on D11264

Reviewers: zmike, segfaultxavi, woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11265
2020-02-05 16:30:56 +01:00
Mike Blumenkrantz d8ed195916 tests/gesture: add second custom recognizer test
ensure that this functionality works

Differential Revision: https://phab.enlightenment.org/D11239
2020-02-05 10:10:53 +01:00
Mike Blumenkrantz cd5a15bf5c tests/elm: add explicit printf for event cb assert failure
efl explodes when this assert fails and presents bizarre errors which
obscure the actual test failure, so add a more explicit message as a
reminder to check this instead of trying to dive into insanity

Differential Revision: https://phab.enlightenment.org/D11238
2020-02-05 10:10:51 +01:00
Mike Blumenkrantz 6cc4fee1a4 tests/gesture: add custom recognizer test
adds a very small implementation of a custom recognizer, registers it,
verifies events are processing as they should, then removes it

Differential Revision: https://phab.enlightenment.org/D11224
2020-02-05 10:10:50 +01:00
Mike Blumenkrantz cd9b56b714 tests/gesture: change random momentum cb to be useful momentum cb
verify that we get 1 event here and also that callback removal works

Differential Revision: https://phab.enlightenment.org/D11220
2020-02-05 10:10:40 +01:00
Mike Blumenkrantz 3011e5ed11 tests/gesture: add a 10-touch tap test
this tests the robustness of existing gesture recognizers

Differential Revision: https://phab.enlightenment.org/D11209
2020-02-05 10:10:38 +01:00
Mike Blumenkrantz f2347354f3 tests/gesture: add zoom and pinch tests
basic tests verifying completion of the gestures

Differential Revision: https://phab.enlightenment.org/D11170
2020-02-05 10:10:02 +01:00
Mike Blumenkrantz f5e7625af8 tests/elm: add util function for doing pinch motions
simple function which takes start points and vectors for 2 touches

Differential Revision: https://phab.enlightenment.org/D11166
2020-02-05 10:09:52 +01:00