platform/upstream/efl.git
4 years agoFix textblock style when "lang=x" is presented
a.srour [Wed, 18 Dec 2019 08:33:30 +0000 (08:33 +0000)]
Fix textblock style when "lang=x" is presented

This patch should fix `textblock`'s style issue when `lang` property presented, also fix leak when changing font_lang property in `Efl.Canvas.Text`

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10896

4 years agoRemove @beta from Efl.Canvas.Animation classes
Xavi Artigas [Tue, 17 Dec 2019 13:17:00 +0000 (13:17 +0000)]
Remove @beta from Efl.Canvas.Animation classes

Ref T8436

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10894

4 years agoRemove @beta from Efl.Interpolator classes
Xavi Artigas [Tue, 17 Dec 2019 13:15:33 +0000 (13:15 +0000)]
Remove @beta from Efl.Interpolator classes

All of them, except the divisor interpolator, because I still don't
know what it does.
Ref T8445

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10893

4 years agoeina_hash: Move hash_free_cb to avoid memory leak.
Woochanlee [Thu, 19 Dec 2019 09:43:36 +0000 (09:43 +0000)]
eina_hash: Move hash_free_cb to avoid memory leak.

Call hash_free_cb after finish deletion.

ref T8530

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10918

4 years agoFix invalid XML comment in efl_mono.dll.config
Felipe Magno de Almeida [Wed, 4 Dec 2019 01:27:56 +0000 (01:27 +0000)]
Fix invalid XML comment in efl_mono.dll.config

Use <!-- and --> to comment the license files

Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D10790

4 years agoefl_wearable: add @since tag for placeholder item 91/220691/1
Yeongjong Lee [Fri, 20 Dec 2019 08:24:14 +0000 (17:24 +0900)]
efl_wearable: add @since tag for placeholder item

Change-Id: I77e665157f16f35078093226b62826deab89c150

4 years agoector software: catch up losing tasks among the threads. 78/220578/2
Hermet Park [Thu, 19 Dec 2019 11:27:11 +0000 (20:27 +0900)]
ector software: catch up losing tasks among the threads.

This is a subsequent change after 8465904c19ea3de2c94c25259ca6a75d0241b4f1.

The major change is almost same but just for gradient stuff.

Change-Id: I2d8e177953d225bb05ee3d60c9a3806bdd180047

4 years agoefl_content: equip the tests with more lifetime checks accepted/tizen/unified/20191220.123157 submit/tizen/20191219.212039
Marcel Hollerbach [Thu, 19 Dec 2019 09:50:52 +0000 (10:50 +0100)]
efl_content: equip the tests with more lifetime checks

this can be used to detect more lifetime issues, which catched errors in
efl.ui.panel and efl.ui.scroller.

ref T8536

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10921

4 years agoefl_ui_scroller: remove from the sub_object list on unset
Marcel Hollerbach [Thu, 19 Dec 2019 09:50:25 +0000 (10:50 +0100)]
efl_ui_scroller: remove from the sub_object list on unset

this should fix lifetime issues with Efl.Ui.Scroller

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10920

4 years agoefl_ui_panel: fix Efl.Content implementation
Marcel Hollerbach [Thu, 19 Dec 2019 09:46:16 +0000 (10:46 +0100)]
efl_ui_panel: fix Efl.Content implementation

It appears that content has been deleted, even if it has been unset
before. This also fixes event emission on content_unset.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10919

4 years agoelementary: make sure Efl.Ui.Multi_Selectable_Index_Range use unsigned int for index...
Cedric BAIL [Wed, 18 Dec 2019 19:34:00 +0000 (11:34 -0800)]
elementary: make sure Efl.Ui.Multi_Selectable_Index_Range use unsigned int for index too.

T8469

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10910

4 years agoefl.text.cursor: clean eo files from comments
Ali Alzyod [Thu, 19 Dec 2019 15:07:12 +0000 (16:07 +0100)]
efl.text.cursor: clean eo files from comments

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8454

Differential Revision: https://phab.enlightenment.org/D10926

4 years agoector software: catch up losing tasks among the threads.
Hermet Park [Thu, 19 Dec 2019 11:27:11 +0000 (20:27 +0900)]
ector software: catch up losing tasks among the threads.

This is a subsequent change after 8465904c19ea3de2c94c25259ca6a75d0241b4f1.

The major change is almost same but just for gradient stuff.

4 years agoevas textblock - use snprintf to limit buffer and have buffer big enough
Carsten Haitzler (Rasterman) [Thu, 19 Dec 2019 10:33:37 +0000 (10:33 +0000)]
evas textblock - use snprintf to limit buffer and have buffer big enough

the buffer wasn't big enough for all possible content anyway and it
didn't use snprintf, so large values of i could overflow... pointed to
by warning. fix that warning.

4 years agoscroller: add missing efl_content_unset
Hosang Kim [Thu, 19 Dec 2019 06:14:15 +0000 (06:14 +0000)]
scroller: add missing efl_content_unset

When efl_content_unset(scroller) is called, efl_content_unset for Efl.Ui.Pan class should be called also.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10906

4 years agoefl: add @since tags for stabilized classes
Yeongjong Lee [Thu, 19 Dec 2019 08:42:55 +0000 (09:42 +0100)]
efl: add @since tags for stabilized classes

Summary: Add missing @since tags.

Test Plan: meson build

Reviewers: bu5hm4n, cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: q66, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10917

4 years agoector software: catch up losing tasks among the threads.
Hermet Park [Thu, 19 Dec 2019 08:01:25 +0000 (17:01 +0900)]
ector software: catch up losing tasks among the threads.

Summary:
ector sw uses thread pool internally to process rle job parallel.

First of all, we lost task handles which allocated to each threads,
we must free the task data after thread done.

Secondly, tasks can be managed by one shape instance,
the instance can't catch upon multiple instances alive.
only last task can be attached to the shape instance.

Thus, obvisouly the instance doesn't expect to handle multiple tasks
at the same time, one instance only take care of one task on threading pool.

Reviewers: jsuya, cedric, smohanty, kimcinoo

Reviewed By: jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10916

Change-Id: Ie83102879e82e9cc04456d89ac7f025883b691a7

4 years agocsharp: remove unused code in workaround
Yeongjong Lee [Thu, 19 Dec 2019 07:30:53 +0000 (16:30 +0900)]
csharp: remove unused code in workaround

Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true

Reviewers: lauromoura, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10914

4 years agoeolina_mono: prevent empty ExtensionMethods class
Yeongjong Lee [Thu, 19 Dec 2019 07:30:48 +0000 (16:30 +0900)]
eolina_mono: prevent empty ExtensionMethods class

Test Plan:
Check the code below is removed from `efl_ui_box_stack.eo.cs`.
```
#if EFL_BETA
#pragma warning disable CS1591
public static class CoreUI_UIBoxStack_ExtensionMethods {
}
#pragma warning restore CS1591
#endif
```

Reviewers: lauromoura, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10905

4 years agoefl_ui : remove @beta for wearable placeholder item 46/220546/1
SangHyeon Jade Lee [Thu, 19 Dec 2019 09:58:15 +0000 (18:58 +0900)]
efl_ui : remove @beta for wearable placeholder item

Change-Id: I9a380a066fb579459cbc9d7070bd657a4155a404

4 years agoector software: catch up losing tasks among the threads. 33/220533/1
Hermet Park [Thu, 19 Dec 2019 08:01:25 +0000 (17:01 +0900)]
ector software: catch up losing tasks among the threads.

Summary:
ector sw uses thread pool internally to process rle job parallel.

First of all, we lost task handles which allocated to each threads,
we must free the task data after thread done.

Secondly, tasks can be managed by one shape instance,
the instance can't catch upon multiple instances alive.
only last task can be attached to the shape instance.

Thus, obvisouly the instance doesn't expect to handle multiple tasks
at the same time, one instance only take care of one task on threading pool.

Reviewers: jsuya, cedric, smohanty, kimcinoo

Reviewed By: jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10916

Change-Id: I529b567cdda99eac2847b1c4758e113f358cd93d

4 years agoefl_ui_win: add beta tag for Win_Effect_Type, Win_Conformant_Property beta 27/220527/1
Yeongjong Lee [Thu, 19 Dec 2019 07:13:21 +0000 (16:13 +0900)]
efl_ui_win: add beta tag for Win_Effect_Type, Win_Conformant_Property beta

They didn't have any dependencies in eo-world.

@tizen_fix

Change-Id: I92d17ba2246ac0f0d524d6281f1a221e90da690e

4 years agoefl_input_device: remove unused Efl.Input.Device_Subtype 21/220521/1
Yeongjong Lee [Thu, 19 Dec 2019 06:34:31 +0000 (15:34 +0900)]
efl_input_device: remove unused Efl.Input.Device_Subtype

since 16ebf472fd9534196e553373adf876da487547d9,
`Efl.Input.Device_Subtype` was removed.

@tizen_fix

Change-Id: Icd586b9f148d80eaa3c9e1ee5d6c78419536d24d

4 years agoefl_ui_widget: stablized tizen focus methods 94/220494/1
Yeongjong Lee [Wed, 18 Dec 2019 12:10:09 +0000 (21:10 +0900)]
efl_ui_widget: stablized tizen focus methods

`focus_next_object_set`
`focus_next_object_get`
`focused_object`
`focus_move_policy`
`focus_cycle`
Those methods will be used in csharp.

@tizen_fix

Change-Id: I1cd4ea57c680e60faf23b6233a0375f52661ef06

4 years agoefl_ui_widget: add widget_focus property to handle focus 93/220493/1
Yeongjong Lee [Wed, 18 Dec 2019 12:00:03 +0000 (21:00 +0900)]
efl_ui_widget: add widget_focus property to handle focus

`WidgetFocus` will change to `Focus` in csharp.

@tizen_fix

Change-Id: I163f0475182731fb033cf8e4a0e60ed8cae7de69

4 years agoefl_ui_format: make this usable with the standard behaviour of accessors accepted/tizen/unified/20191219.143707 submit/tizen/20191218.210005
Marcel Hollerbach [Wed, 18 Dec 2019 16:18:35 +0000 (17:18 +0100)]
efl_ui_format: make this usable with the standard behaviour of accessors

a accessor is never delivering a value, only the pointer to a value.
This makes format working with accessors for list array carray.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10909

4 years agoeina_accessor: make carray accessor work properly
Marcel Hollerbach [Wed, 18 Dec 2019 16:15:09 +0000 (17:15 +0100)]
eina_accessor: make carray accessor work properly

a accessor is not really helpfull if it operates like the carray
accessor before this commit. What it was doing is to fill the content of
the "current line" into the data pointer. In a carray the
"current line" is the content of its carray-member.

However, accessors like for inarray array list or inlist do work
completly differently. They are returning the pointer to the "current
line" not the value of the current line.

The only case where this worked is efl_ui_format.c which was only tested
with this accessor, and this accessor also only worked with this
accessor.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10908

4 years agoefl: make sure all index for Efl_Model are unsigned int.
Cedric BAIL [Fri, 13 Dec 2019 01:13:30 +0000 (17:13 -0800)]
efl: make sure all index for Efl_Model are unsigned int.

T8469

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10869

4 years agotests/ecore_wl2: Fix memory leak
Chris Michael [Wed, 18 Dec 2019 15:28:06 +0000 (10:28 -0500)]
tests/ecore_wl2: Fix memory leak

Coverity reports that we leak 'ret_rots' here because
ecore_wl2_window_available_rotations_get allocates space for the
return, so we should free this here.

Fixes CID1408025

4 years agodocs: Formatting issues in Efl.Text.Attribute.Factory
Xavi Artigas [Wed, 18 Dec 2019 15:10:17 +0000 (16:10 +0100)]
docs: Formatting issues in Efl.Text.Attribute.Factory

4 years agodocs: Fix typos and whitespace in Efl.Text_Cursor
Xavi Artigas [Wed, 18 Dec 2019 15:06:15 +0000 (16:06 +0100)]
docs: Fix typos and whitespace in Efl.Text_Cursor

4 years agodocs: Polish Efl.Text_Interactive docs
Xavi Artigas [Wed, 18 Dec 2019 14:17:28 +0000 (15:17 +0100)]
docs: Polish Efl.Text_Interactive docs

Ref T8521
Ref D10711

4 years agoelm_test: small whitespace issue
Xavi Artigas [Wed, 18 Dec 2019 14:03:05 +0000 (15:03 +0100)]
elm_test: small whitespace issue

4 years agocsharp: Fix passing acessor with ownership
Lauro Moura [Wed, 18 Dec 2019 13:36:29 +0000 (10:36 -0300)]
csharp: Fix passing acessor with ownership

Summary:
When passing an owned acessor from a converted collection we need a way
to unpin the passed data when the accessor is freed.

This commits adds a thin wrapper around the CArray accessor that unpins
the data when freed.

Depends on D10900

Reviewers: YOhoho, felipealmeida

Reviewed By: YOhoho

Subscribers: cedric, #reviewers, #committers, jptiz, brunobelo

Tags: #efl

Maniphest Tasks: T8486

Differential Revision: https://phab.enlightenment.org/D10901

4 years agocsharp: Fix accessor IEnumerable implementation.
Lauro Moura [Tue, 17 Dec 2019 17:34:01 +0000 (14:34 -0300)]
csharp: Fix accessor IEnumerable implementation.

Summary:
Fixed after `data_get` marshalling changed (correctly) the data
parameter to `out IntPtr` instead of manually marshalling the double
pointer.

The existing test (`basic_accessor_list`) passed due to the empty
enumerable behavior, which made the `foreach` running no iterations.

Reviewers: brunobelo, jptiz, felipealmeida, YOhoho

Reviewed By: jptiz, YOhoho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10900

4 years agoevas vg: fix memory leak.
Hermet Park [Wed, 18 Dec 2019 12:51:54 +0000 (21:51 +0900)]
evas vg: fix memory leak.

Change-Id: Ib25cb4e801b50593ecb56fdff01c82023b80a0d5

4 years agoci: refactor the early exit on specific build jobs
Stefan Schmidt [Thu, 12 Dec 2019 10:05:16 +0000 (11:05 +0100)]
ci: refactor the early exit on specific build jobs

Should be no functional change only making all early checks a bit
shorter.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10866

4 years agoci: refactor configuration script
Stefan Schmidt [Mon, 9 Dec 2019 13:41:17 +0000 (14:41 +0100)]
ci: refactor configuration script

Re-factor if-else block for easier reading, update comments and check
that we are on osx when executing that part.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10865

4 years agoci: travis: merge two if clauses
Stefan Schmidt [Thu, 12 Dec 2019 08:30:13 +0000 (09:30 +0100)]
ci: travis: merge two if clauses

A left-over from the various works in this file. All of these commands
are under the same conditions.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10864

4 years agoci: enable benchmark target again
Stefan Schmidt [Fri, 15 Nov 2019 08:29:24 +0000 (09:29 +0100)]
ci: enable benchmark target again

It only runs after efl is installed and we need to ensure running with
Elm buffer engine in our docker build for the graphical collection
benchmark.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10848

4 years agobenchmarks: increase timeout value for running elementary benchmarks
Stefan Schmidt [Mon, 9 Dec 2019 15:39:34 +0000 (16:39 +0100)]
benchmarks: increase timeout value for running elementary benchmarks

Default is 30s and I run into timeouts all the time. Increasing it to
60s for the elementary benchmarks. On my local machine its around 45s
for the slower one.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10847

4 years agoevas vg: fix memory leak. 79/220479/1
Hermet Park [Wed, 18 Dec 2019 12:51:54 +0000 (21:51 +0900)]
evas vg: fix memory leak.

Change-Id: Iccf1217e14a1c3e62e8cbb97f3b7ce2df74a9e7c

4 years agoEvas_GL: Update tizen document URL 75/220475/2
Seoyeon Kim [Wed, 18 Dec 2019 10:44:06 +0000 (19:44 +0900)]
Evas_GL: Update tizen document URL

- According to the address change of tizen documents,
  the site URL in Evas_GL.h should be updated.

Change-Id: I4ff4ce1f35b5fe860e917922b78301b1dec5923c
Signed-off-by: Seoyeon Kim <seoyeon2.kim@samsung.com>
4 years agoefl.text.format: rename methods and properties accepted/tizen/unified/20191218.120956 submit/tizen/20191217.213954
Ali Alzyod [Tue, 17 Dec 2019 14:54:49 +0000 (15:54 +0100)]
efl.text.format: rename methods and properties

Summary:
efl.text.format: rename methods and properties

this change will avoid conflict in the future with other interfaces or class methods.

T8533

Reviewers: woohyun, segfaultxavi, zmike, bu5hm4n

Reviewed By: segfaultxavi

Subscribers: cedric, #committers, #reviewers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10895

4 years agocsharp : add move tag info to EinaAccessor, EinaIterator converter
Yeongjong Lee [Tue, 17 Dec 2019 14:34:41 +0000 (11:34 -0300)]
csharp : add move tag info to EinaAccessor, EinaIterator converter

Summary:
Included commits in devs/lauromoura/remove_eina_mono-rebased
```
commit ed6679db1901c710cc6ddb50e7001cfd20caa77a
Author: Lauro Moura <lauromoura@expertisesolutions.com.br>
Date:   Mon Dec 2 13:58:04 2019 -0300

    csharp: add move information to EnumerableToAccessor

    Still need to fix the converted accessor ownership, maybe by creating a
    custom accessor class that released the pinned memory when is freed.
```

ref T8486

Depends On D10878

Co-authored-by: Lauro Moura <lauromoura@expertisesolutions.com.br>
Test Plan: meson build -Dbindings=mono,cxx -Dmono-beta=true

Reviewers: YOhoho

Reviewed By: YOhoho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8486

Differential Revision: https://phab.enlightenment.org/D10879

4 years agoeina_mono: replace EinaAccessor and EinaIerator with IEnumerable
Yeongjong Lee [Tue, 17 Dec 2019 14:34:30 +0000 (11:34 -0300)]
eina_mono: replace EinaAccessor and EinaIerator with IEnumerable

Summary:
Eina.Accessor<T> => System.Collections.IEnumerable<T>
Eina.Iterator<T> => System.Collections.IEnumerable<T>

Unit test will work with D10879.

ref T8486

Test Plan: meson build -Dbindings=mono,cxx -Dmono-beta=true

Reviewers: lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8486

Differential Revision: https://phab.enlightenment.org/D10878

4 years agoexamples: js: fix variable name
Stefan Schmidt [Tue, 17 Dec 2019 14:33:45 +0000 (11:33 -0300)]
examples: js: fix variable name

Summary:
Simple mispell in the example.

Depends on D10882
Reported-By: https://lgtm.com/projects/g/Enlightenment/efl
Reviewers: felipealmeida, lauromoura

Reviewed By: felipealmeida

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10883

4 years agocsharp: Suppressing non-events Raise methods.
Bruno da Silva Belo [Tue, 17 Dec 2019 14:00:09 +0000 (11:00 -0300)]
csharp: Suppressing non-events Raise methods.

Summary: ref T8390

Reviewers: lauromoura, felipealmeida, YOhoho, jptiz

Reviewed By: jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8390

Differential Revision: https://phab.enlightenment.org/D10717

4 years agocsharp:Suppressing Warning and Add suffix collection.
Bruno da Silva Belo [Tue, 17 Dec 2019 13:56:42 +0000 (10:56 -0300)]
csharp:Suppressing Warning and Add suffix collection.

Summary: ref T8408

Reviewers: lauromoura, felipealmeida, YOhoho, jptiz

Reviewed By: jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8408

Differential Revision: https://phab.enlightenment.org/D10669

4 years agodocs: Add detailed text styling information
Xavi Artigas [Fri, 13 Dec 2019 10:47:47 +0000 (11:47 +0100)]
docs: Add detailed text styling information

Summary:
More detailed descriptions for each attribute.
Relationship between attributes.
Default values.
Links to direct API methods for the corresponding property.
General text overhaul and formatting.

Test Plan: Builds and passes tests. Generate docgen or DocFX documentation and enjoy your new Text styling descriptions!

Reviewers: ali.alzyod

Reviewed By: ali.alzyod

Subscribers: AbdullehGhujeh, cedric, #reviewers, #committers, woohyun, bu5hm4n

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10873

4 years agodocs: Add missing docs for Efl.Canvas.Object_Animation
Xavi Artigas [Tue, 17 Dec 2019 12:53:25 +0000 (13:53 +0100)]
docs: Add missing docs for Efl.Canvas.Object_Animation

4 years agocsharp: apply same form of "Since EFL" to all manual bindings .cs files
Jaehyun Cho [Tue, 17 Dec 2019 11:04:01 +0000 (20:04 +0900)]
csharp: apply same form of "Since EFL" to all manual bindings .cs files

The following form of "Since EFL" is applied to descriptions of all
manual bindings .cs files.
/// <para>Since EFL 1.XX.</para>

4 years agoecore_evas: add double header include safety
Stefan Schmidt [Wed, 27 Nov 2019 08:43:11 +0000 (09:43 +0100)]
ecore_evas: add double header include safety

Reported-By: https://lgtm.com/projects/g/Enlightenment/efl
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10887

4 years agoevas mapping: fix memory leak.
Hermet Park [Tue, 17 Dec 2019 08:17:34 +0000 (17:17 +0900)]
evas mapping: fix memory leak.

These two dynamically allocated properties were not freed.
free them when cow data is reset.

4 years agoelementary: sync code with upstream 26/220326/1
Hermet Park [Tue, 17 Dec 2019 07:40:13 +0000 (16:40 +0900)]
elementary: sync code with upstream

fix trivial diff.

Change-Id: If60b27378e63cc5e8f3d7537add93c72e56cee5d

4 years agoGenlist: Loop feature implementation for genlist accepted/tizen/unified/20191217.122938 submit/tizen/20191216.213443
godlytalias14573465 [Mon, 9 Dec 2019 12:32:47 +0000 (18:02 +0530)]
Genlist: Loop feature implementation for genlist

Change-Id: I9338ad4f2b70a779db520e2dc81f6edea335894e
Signed-off-by: godlytalias14573465 <godly.talias@samsung.com>
4 years agoefl_canvas_textblock: allow style_apply with wrap=none
Ali Alzyod [Mon, 16 Dec 2019 18:10:36 +0000 (19:10 +0100)]
efl_canvas_textblock: allow style_apply with wrap=none

Summary:
1- passing style_apply("wrap=none") had no effect previously, and now disable wraping
2- style_all_get() by default return "wrap=word", but now return  "wrap=none"

refer to T8523

Reviewers: segfaultxavi, woohyun, cedric

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10888

4 years agoelm_test: workarounds for canvas_textblock style
Xavi Artigas [Mon, 16 Dec 2019 10:35:35 +0000 (11:35 +0100)]
elm_test: workarounds for canvas_textblock style

The horizontally scrollable single-line text input box does not currently visible.
This patch turns it into a vertically scrollable multiline input box, with an
arbitrary minsize.
Also, make the label unselectable.

4 years agoelm_slider: remove unused file
WooHyun Jung [Mon, 16 Dec 2019 09:29:18 +0000 (10:29 +0100)]
elm_slider: remove unused file

Summary:
Just removed elm_slider_eo.legacy.h which did not
have any dependency with other files

Test Plan:
1. sudo ninja install
2. elementary_test
3. Slider

Reviewers: segfaultxavi, bu5hm4n, zmike

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10876

4 years agoui position_manager: fix doc typo.
Hermet Park [Mon, 16 Dec 2019 08:23:50 +0000 (17:23 +0900)]
ui position_manager: fix doc typo.

4 years agoefl_ui : stablized factory classes.
SangHyeon Jade Lee [Wed, 11 Dec 2019 06:54:27 +0000 (15:54 +0900)]
efl_ui : stablized factory classes.

Summary:
for mvvm publizing,
caching factory and layout factory need to be out of beta.

Reviewers: cedric, bu5hm4n, segfaultxavi

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10855

4 years ago[OneUI 1.5] Screen-reader: Crash issue fix accepted/tizen/unified/20191216.222241 submit/tizen/20191216.034120
Shilpa Singh [Thu, 12 Dec 2019 10:42:20 +0000 (16:12 +0530)]
[OneUI 1.5] Screen-reader: Crash issue fix

Change-Id: I2fecc73c147cb6b4d431033936003032af2b4f04
Signed-off-by: Nihar Raichada <n.raichada@samsung.com>
4 years ago[OneUI1.5] select_mode_popup: Add reading for select_mode popup
Shilpa Singh [Thu, 12 Dec 2019 11:32:15 +0000 (17:02 +0530)]
[OneUI1.5] select_mode_popup: Add reading for select_mode popup

Change-Id: I65e101eed5e9ab0b2527d27c9eafa94b84e27030
Signed-off-by: Nihar Raichada <n.raichada@samsung.com>
4 years ago[OneUI1.5] elm_genlist: Add read_only state for title item
Prasoon Singh [Mon, 9 Dec 2019 13:16:12 +0000 (18:46 +0530)]
[OneUI1.5] elm_genlist: Add read_only state for title item

Change-Id: I168825b34c6ab9d35ff9916a94f7e9756c1ce5aa
Signed-off-by: Prasoon Singh <prasoon.16@samsung.com>
4 years agoedje_entry: real part protection check
ali [Fri, 13 Dec 2019 23:23:15 +0000 (23:23 +0000)]
edje_entry: real part protection check

Fix T8524

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10875

4 years agoefl_ui: docuement code
Marcel Hollerbach [Fri, 13 Dec 2019 17:11:17 +0000 (18:11 +0100)]
efl_ui: docuement code

there was the request that this needs to be documented, here we are.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10874

4 years agoefl_ui_widget: do not execute up handler when on destruction
Marcel Hollerbach [Mon, 9 Dec 2019 20:51:02 +0000 (21:51 +0100)]
efl_ui_widget: do not execute up handler when on destruction

otherwise we would cause an error.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10846

4 years agoevas_focus: protect against faulty focus object
Marcel Hollerbach [Mon, 9 Dec 2019 20:40:10 +0000 (21:40 +0100)]
evas_focus: protect against faulty focus object

the problem is that we only remove ourselfs from the focused list in the
invalidator. However, we allowed invalidated objects to be part of this
hash, which made everything go boom.

With this commit you at least only get one error and you should fix up
this case.

This fixes random errors in enlightenment (That are appearing theire
since seats have been introduced to evas, the problem before invalidate
was that the object was already destructor called, but not fully
destructed yet).

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10845

4 years agoefl_ui_spotlight_manager_*: do not keep ptr of dead pointer
Marcel Hollerbach [Mon, 9 Dec 2019 20:02:26 +0000 (21:02 +0100)]
efl_ui_spotlight_manager_*: do not keep ptr of dead pointer

when content is deleted, we should not keep a dangling pointer of it.
Setting it to NULL here is enough, as later on a swtich_to reuest will
be sent.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10844

4 years agoefl_datetime_manager: how did that ever work?
Marcel Hollerbach [Mon, 9 Dec 2019 18:25:18 +0000 (19:25 +0100)]
efl_datetime_manager: how did that ever work?

seriously, it sometimes might be worth at least *reading* what code
does, this was initializating a private data struct on one single global
boolean flag. How was that ever intended to work ? How could that ever
slip through review ?

This is not the only madness in these widget arround time and date, you
cannot even select hours in 24h mode, you also cannot cannot select the
0 hour, which is kind of normal for the one or another region? the
datetimemanager (which is IMO a complete misconcept) is full of FIXMEs
and API calls that are defined and never called at all. Again what is
this ? And how did that ever get into the codebase ?!

With this commit the widget *finally* can be created more than once
without exploding and erroring one.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10843

4 years agoefl_ui_spec_test: make this test work
Marcel Hollerbach [Mon, 9 Dec 2019 17:45:37 +0000 (18:45 +0100)]
efl_ui_spec_test: make this test work

I do not know what i was thinking when i initially wrote that test.
It never worked, the test created a widget captured all elements, deleted
the widget, then checked if there are elements left that are not knon on
the canvas yet.
Not the test first captures all elements, then creates the widget, then
deletes the widget, and checks if there are more elements than expected.
This found all the fix leaks prior to this leak.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10842

4 years agoefl_ui_collection: do not leak
Marcel Hollerbach [Mon, 9 Dec 2019 17:42:02 +0000 (18:42 +0100)]
efl_ui_collection: do not leak

this fixes leaking of membership to a pan object, additionally this also
fixes the leaking of the pan object. This code was written with the
thought that edje deletes its children, long story short: no it does
not. While fixing the leak of the pan object, the error was found that
the membership of the item to the pan object was leaked, which ended up
in the item beeing deleted, even if its not part of the object anymore.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10841

4 years agoefl_ui_scroller: free pan object correctly
Marcel Hollerbach [Mon, 9 Dec 2019 17:36:55 +0000 (18:36 +0100)]
efl_ui_scroller: free pan object correctly

we need to free the object in the invalidate, not in the destructor.
Otherwise we might leak objects in bindings.

Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10840

4 years agocollection_view: free pan object correctly
Marcel Hollerbach [Mon, 9 Dec 2019 17:36:24 +0000 (18:36 +0100)]
collection_view: free pan object correctly

edje will not take over this part, edje will just reparent it to the ML
and go on.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10839

4 years agoefl_ui_pan: stop leaking content
Marcel Hollerbach [Mon, 9 Dec 2019 17:27:37 +0000 (18:27 +0100)]
efl_ui_pan: stop leaking content

pans implementation of Efl.Content is different to each other
implementation, setting the content to NULL is not really deleting the
obejct, since this is done at those widgets that are actaully using the
pan. This is weird and fine in the same way, as the pan is only
internal. However, when we are shutting down, we must free the content
here.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10838

4 years agoefl_canvas_textblock: multiline enabled by default
Ali Alzyod [Fri, 13 Dec 2019 14:12:25 +0000 (15:12 +0100)]
efl_canvas_textblock: multiline enabled by default

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, tasn, bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10859

4 years agopo: remove empty ChangeLog file for translations
Stefan Schmidt [Wed, 24 May 2017 11:43:02 +0000 (13:43 +0200)]
po: remove empty ChangeLog file for translations

This was never used.

Reviewed-by: Massimo Maiurana <maiurana@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10871

4 years agoelm_test: Remove unused variable in test_win_stack
Xavi Artigas [Fri, 13 Dec 2019 11:37:27 +0000 (12:37 +0100)]
elm_test: Remove unused variable in test_win_stack

4 years agoevas vg: revise buffer caching method.
Hermet Park [Fri, 13 Dec 2019 08:22:54 +0000 (17:22 +0900)]
evas vg: revise buffer caching method.

for better precise buffer cache key,
We make a unique key name combining root node + size + frame index.

Now, we can reuse the root node for animation and caching buffers.

Change-Id: I30d65ec8c6cba17ab8a71ab2fc8aa7b48b23f144

4 years agoefl_canvas_text: event emitting
Ali Alzyod [Fri, 13 Dec 2019 06:10:32 +0000 (15:10 +0900)]
efl_canvas_text: event emitting

Summary:
1- Emitting changed event when adding text using cursors.
2- remove attribute,changed event since it is not used now
3- Emitting layout,finished event when finish layouting

Reviewers: woohyun, cedric, bu5hm4n

Reviewed By: cedric

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10834

4 years agoevas vg: fix memory corruption for user entry.
Hermet Park [Fri, 13 Dec 2019 02:52:15 +0000 (11:52 +0900)]
evas vg: fix memory corruption for user entry.

Container must have a set parent after construction.
efl_add_ref() with a parent won't work this case
because container needs some jobs in overriding parent_set() after proper intialization.

Change-Id: I69f321eaf954c9ad838e305bd2c3ce427b865efc

4 years agoefl_ui_internal_text_interactive: prevent from freed memory accessing
WooHyun Jung [Fri, 13 Dec 2019 01:33:00 +0000 (10:33 +0900)]
efl_ui_internal_text_interactive: prevent from freed memory accessing

If node_format_remove_pair frees node, then next for loop can lead
invalid memory accessing. This patch prevents from that case by keeping
the next node before freeing.

4 years agocsharp: This test requires Beta stuff
Lauro Moura [Thu, 12 Dec 2019 22:38:42 +0000 (19:38 -0300)]
csharp: This test requires Beta stuff

4 years agoeolian_mono: proper parsing of doc notes and paragraphs
Xavi Artigas [Thu, 12 Dec 2019 22:00:38 +0000 (19:00 -0300)]
eolian_mono: proper parsing of doc notes and paragraphs

Summary:
The documentation tokenizer relies on proper separation of paragraphs,
and we were not doing that. This fixes detection of Note:, Warning:,
Remark: and TODO: tags.
Additionally, we were removing the blank line between the summary and
the description, artificially joining them.

Test Plan: Everything builds and passes tests, and docs with `Note:` tags are correctly rendered (like `Efl.Loop_Consumer.new_promise`, for example)

Reviewers: lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10868

4 years agocsharp: Implement Deconstruct for structs.
João Paulo Taylor Ienczak Zanette [Thu, 12 Dec 2019 21:32:31 +0000 (18:32 -0300)]
csharp: Implement Deconstruct for structs.

Summary:
Usage example:

```
var (x, y) = somePos2D;
```

Not available on Mono environment due to [`mcs` not implementing
it](https://github.com/mono/mono/blob/a3de0304a190c54124df3486ce9c34b6262787a8/mcs/mcs/tuples.cs#L590).
To keep tests from breaking because of it, a `MONO` preprocessor variable is
defined and checked during test compilation.

Ref T8489.

Reviewers: brunobelo, lauromoura, segfaultxavi

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8489

Differential Revision: https://phab.enlightenment.org/D10809

4 years agoevas vg: revise buffer caching method. 23/220123/1
Hermet Park [Fri, 13 Dec 2019 08:22:54 +0000 (17:22 +0900)]
evas vg: revise buffer caching method.

for better precise buffer cache key,
We make a unique key name combining root node + size + frame index.

Now, we can reuse the root node for animation and caching buffers.

Change-Id: I4370b8b234dd47279370edbb557194b8f6d925c3

4 years agoevas vg: fix memory corruption for user entry. 86/220086/1
Hermet Park [Fri, 13 Dec 2019 02:52:15 +0000 (11:52 +0900)]
evas vg: fix memory corruption for user entry.

Container must have a set parent after construction.
efl_add_ref() with a parent won't work this case
because container needs some jobs in overriding parent_set() after proper intialization.

Change-Id: I105d55ddfa0352fbd95a00f7f72df31c95e19517

4 years agobuild: resolve migration build error submit/tizen/20191212.210604
Jongmin Lee [Thu, 12 Dec 2019 21:04:40 +0000 (06:04 +0900)]
build: resolve migration build error

Change-Id: Ifd38a4c49709f08a27f7477b1f48a2853895ffd0

4 years agoedje: resolve possible resource leak
Jongmin Lee [Thu, 12 Dec 2019 09:31:56 +0000 (18:31 +0900)]
edje: resolve possible resource leak

Change-Id: Ie3432157802ada565fc38a1ba922eba25366678d

4 years agoefl_ui: cleanup elm headers
Yeongjong Lee [Thu, 12 Dec 2019 01:37:16 +0000 (01:37 +0000)]
efl_ui: cleanup elm headers

since e2980cd9812113fc4a216749eb23d7611b02fd55, `efl.ui.text` doesn't need
`elm_general.h`.

This partially reverts commit 96be3cd83d3426c5a9eb8d903245c51927567dc6.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10849

4 years agoelementary_test: Fix efl_add_ref to efl_add for window autodel
JunsuChoi [Thu, 12 Dec 2019 07:29:19 +0000 (07:29 +0000)]
elementary_test: Fix efl_add_ref to efl_add for window autodel

Fix this error message
ERR<15404>:eo ../src/lib/eo/eo_base_class.c:710 efl_del()
 Calling efl_del on object Efl.Ui.Win@0x400000a4b774[2]:hidden:children=0:'(null)':'(null)' with
 no parent is not advised any more.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10863

4 years agocsharp: Add implicit conversion from tuples to structs.
João Paulo Taylor Ienczak Zanette [Thu, 12 Dec 2019 16:16:22 +0000 (13:16 -0300)]
csharp: Add implicit conversion from tuples to structs.

Summary:
Also generates implicit conversion for 1-field structs.
Usage examples:

```
// With tuples
Point2D p = (1, 2);
obj.SetPoint((1, 2));

// With 1-field structs
StringWrapper sw = "Must be handled by wrapper.";
```

Due to limitations of MSC compiler, implicit conversions are generated
only if struct has 4 fields or less.

Ref T8489.

Reviewers: brunobelo, cedric, lauromoura, segfaultxavi

Reviewed By: lauromoura

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8489

Differential Revision: https://phab.enlightenment.org/D10801

4 years agomono: suppress unused parameter warning
Xavi Artigas [Thu, 12 Dec 2019 15:38:04 +0000 (16:38 +0100)]
mono: suppress unused parameter warning

4 years agomono-docs: Nicer formatting for notes
Xavi Artigas [Thu, 12 Dec 2019 15:25:43 +0000 (16:25 +0100)]
mono-docs: Nicer formatting for notes

This has never been tested because so far EO "Note:" tags are only recognized
when they appear at the beginning of a comment block.
It turns out the note already includes the "Note:" prefix so we were adding it
twice.
This patch removes one of the prefixes and used a nicer formatting.

Also works for "Warning:", "Remark:" and "TODO:".

4 years agomono-docs: Allow property refs with keys
Xavi Artigas [Thu, 12 Dec 2019 15:02:14 +0000 (16:02 +0100)]
mono-docs: Allow property refs with keys

When an EO property had multiple values or keys the C# generator
didn't generate a wrapping C# property. Therefore property references
in the documentation were changed to references to the getter.
Now multiple values are handled through tuples so the wrapping properties
ARE generated.
This patch removes the restriction for multiple values to doc refs
can more naturally reference the property instead of the getter method.
Properties with keys still reference the getter, since these are not wrapped.

4 years agoevas_object_textblock: add support for variation sequences
Ali Alzyod [Thu, 12 Dec 2019 07:22:12 +0000 (16:22 +0900)]
evas_object_textblock: add support for variation sequences

Summary: update font processing to handle variation sequences unicodes to select proper glypg in respect to variation seqences

Test Plan:
```
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Eina.h>
#include <Efl.h>
#include <Elementary.h>

EAPI_MAIN int
elm_main(int argc, char **argv)
{
   Evas_Object *win, *textblock;

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   win = elm_win_util_standard_add("Main", "");
   elm_win_autodel_set(win, EINA_TRUE);
   textblock = evas_object_textblock_add(win);
   efl_canvas_text_style_set(textblock,NULL,"DEFAULT='font=DejaVuSans font_fallbacks=SamsungColorEmoji color=#000 font_size=20'");
   evas_object_textblock_text_markup_set(textblock, "8&#xfe0f;&#x20E3;&#x262a;&#xfe0f;AAA&#x262a;&#xfe0E;1234567&#xfe0f;&#x20E3;");

   evas_object_size_hint_weight_set(textblock, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(textblock, EVAS_HINT_FILL, EVAS_HINT_FILL);
   evas_object_show(textblock);
   evas_object_move(textblock, 0, 0);
   evas_object_resize(textblock, 320, 320);
   evas_object_resize(win, 320, 320);
   evas_object_show(win);
   elm_run();
   return 0;

}

ELM_MAIN()

```

Reviewers: woohyun, bowonryu, segfaultxavi, cedric, bu5hm4n

Reviewed By: woohyun, cedric

Subscribers: raster, bu5hm4n, subodh6129, herdsman, segfaultxavi, zmike, cedric, #committers, #reviewers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9053

4 years agocsharp: remove Efl.IText.Text from the blacklist
Yeongjong Lee [Thu, 12 Dec 2019 07:07:41 +0000 (16:07 +0900)]
csharp: remove Efl.IText.Text from the blacklist

Summary:
There is no conflict anymore.

ref T8093

Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true

Reviewers: lauromoura, woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8093

Differential Revision: https://phab.enlightenment.org/D10861

4 years agoc#: Implement IList<T> to Eina.List.
Bruno da Silva Belo [Wed, 11 Dec 2019 21:47:45 +0000 (18:47 -0300)]
c#: Implement IList<T> to Eina.List.

Summary:
Container can have three configuration over `Own` and `OwnContent`:
`Own = true` and `OwnContent = true`;
`Own = true` and `OwnContent = false`;
`Own = false`and `OwnContent = false;
If someone try to instanciate the container with `Own = false` and `OwnContent = true`, a exception raises.

There is two Ownerships' behaviours in c#, where `IsReadOnly` is responsible and `IsReadOnly = !OwnContent`:
Full Ownership: User can use modify/Add/Remove operations over the container, this is implemented with `OwnContent = true`.
No Ownership: User **cannot** use modify/Add/Remove operations, this is implemented with `OwnContent = false`.

For the memory, `Own` frees the node, while `OwnContent` frees the data portion.
ref T8487

Reviewers: lauromoura, felipealmeida, YOhoho, segfaultxavi, jptiz

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8487

Differential Revision: https://phab.enlightenment.org/D10742

4 years agoevas_textblock: content fit feature 79/219979/2
Ali Alzyod [Thu, 12 Dec 2019 05:22:45 +0000 (14:22 +0900)]
evas_textblock: content fit feature

Summary:
**Content Fit Feature for Evas_Object_Textblock**

This Feature is available at **Evas **object level.  And **Edje **level (where it is internally use evas functionality)
This feature will allow text block to fit its content font size to proper size to fit its area.

**Main Properties:**
Fit Modes        :   None=Default, Width, Height, All [Width+Height]
Fit Size Range :   Contains maximum and minimum font size to be used (and in between).
Fit Step Size    :   Step(Jump) value when trying fonts sizes between Size_Range max and min.
Fit Size Array   :   Other way to resize font, where you explicitly select font sizes to be uses    (for example [20, 50, 100] it will try 3 sizes only)

Text Fit feature was available in Edje but:
1- It doesn't effected by ellipsis or warping in font style (or do not handle the in right way)
2- Accuracy is not good (specially if you have fix pixel size elements (spaces,tabs,items))
3- No (Step size, Size Array) available.

Test Plan:
To check the Feature
> elementary_test
> fit
> textbock fit
You can modify all the modes and properties

These are two examples, One using Evas other uses Edje

**Evas**

```

enum BUTTON{
   BUTTON_MODE             = 0,
   BUTTON_MAX              = 1,
   BUTTON_MIN              = 2,
   BUTTON_STEP             = 3,
   BUTTON_ARRAY            = 4,
   BUTTON_CONTENT          = 5,
   BUTTON_STYLE            = 6,
   BUTTON_ALL              = BUTTON_STYLE+1,
};

char* BUTTON_STR[BUTTON_ALL] ={
   "MODE",
   "MAX",
   "MIN",
   "STEP",
   "ARRAY",
   "CONTENT",
   "STYLE",
};

char *contents[] = {
   "Hello World",
   "This is Line<br>THis is other Line",
   "This text contains <font_size=20 color=#F00>SPECIFIC SIZE</font_size> that does not effected by fit mode"
   };

char *styles[] = {
   "DEFAULT='font=sans font_size=30 color=#000 wrap=mixed ellipsis=1.0'",
   "DEFAULT='font=sans font_size=30 color=#000 wrap=mixed'",
   "DEFAULT='font=sans font_size=30 color=#000 ellipsis=1.0'",
   "DEFAULT='font=sans font_size=30 color=#000'",
   };

char *styles_names[] = {
   "wrap=<color=#F00>mixed</color> ellipsis=<color=#F00>1.0</color>",
   "wrap=<color=#F00>mixed</color> ellipsis=<color=#F00>NONE</color>",
   "wrap=<color=#F00>NONE</color> ellipsis=<color=#F00>1.0</color>",
   "wrap=<color=#F00>NONE</color> ellipsis=<color=#F00>NONE</color>",
   };

typedef struct _APP
{
   Evas_Object *win, *box, *txtblock,*bg, *boxHor, *boxHor2;
   Eo *btn[BUTTON_ALL];
   Eo *lbl_status;
   char * str;
   unsigned int i_contnet, i_style;
} APP;
APP *app;

char * get_fit_status(Eo * textblock);

static void _btn_clicked(void *data EINA_UNUSED, Eo *obj, void *eventInfo EINA_UNUSED){
   if (obj == app->btn[BUTTON_MODE])
     {
        unsigned int options;
        evas_textblock_fit_options_get(app->txtblock, &options);
        if (options == TEXTBLOCK_FIT_MODE_NONE)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_HEIGHT);
        else if (options == TEXTBLOCK_FIT_MODE_HEIGHT)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_WIDTH);
        else if (options == TEXTBLOCK_FIT_MODE_WIDTH)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_ALL);
        else if (options == TEXTBLOCK_FIT_MODE_ALL)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_NONE);
     }
   else if (obj == app->btn[BUTTON_MAX])
     {
        unsigned int min, max;
        evas_textblock_fit_size_range_get(app->txtblock, &min, &max);
        max -= 5;
        evas_textblock_fit_size_range_set(app->txtblock, min, max);
     }
   else if (obj == app->btn[BUTTON_MIN])
     {
        unsigned int min, max;
        evas_textblock_fit_size_range_get(app->txtblock, &min, &max);
        min += 5;
        evas_textblock_fit_size_range_set(app->txtblock, min, max);
     }
   else if (obj == app->btn[BUTTON_STEP])
     {
        unsigned int step;
        evas_textblock_fit_step_size_get(app->txtblock, &step);
        step++;
        evas_textblock_fit_step_size_set(app->txtblock, step);
     }
   else if (obj == app->btn[BUTTON_ARRAY])
     {
        unsigned int font_size[] = {10, 50, 100 ,150};
        evas_textblock_fit_size_array_set(app->txtblock,font_size,4);
     }
   else if (obj == app->btn[BUTTON_CONTENT])
     {
        app->i_contnet++;
        if(app->i_contnet>=sizeof(contents)/sizeof(char*))
           app->i_contnet=0;
        evas_object_textblock_text_markup_set(app->txtblock,contents[app->i_contnet]);
     }
   else if (obj == app->btn[BUTTON_STYLE])
     {
        app->i_style++;
        if(app->i_style>=sizeof(styles)/sizeof(char*))
           app->i_style=0;

        Evas_Textblock_Style *style = evas_object_textblock_style_get(app->txtblock);
        evas_textblock_style_set(style,styles[app->i_style]);
     }

   elm_object_text_set(app->lbl_status, get_fit_status(app->txtblock));
}

char * get_fit_status(Eo * textblock)
{
   static char status[0xFFF];
   unsigned int options,min,max,step,size_array[256];
   size_t size_array_len;
   evas_textblock_fit_options_get(textblock,&options);
   evas_textblock_fit_size_range_get(textblock,&min,&max);
   evas_textblock_fit_step_size_get(textblock,&step);
   evas_textblock_fit_size_array_get(textblock,NULL,&size_array_len,0);
   if (size_array_len>255)
      size_array_len = 255;
   evas_textblock_fit_size_array_get(textblock,size_array,NULL,size_array_len);

   strcpy(status,"Mode : ");
   if (options == TEXTBLOCK_FIT_MODE_NONE)
      strcat(status,"MODE_NONE");
   else if (options == TEXTBLOCK_FIT_MODE_HEIGHT)
      strcat(status,"MODE_HEIGHT");
   else if (options == TEXTBLOCK_FIT_MODE_WIDTH)
      strcat(status,"MODE_WIDTH");
   else if (options == TEXTBLOCK_FIT_MODE_ALL)
      strcat(status,"MODE_ALL");

   strcat(status,"<br>");
   sprintf(status + strlen(status),"Max   : %d<br>",max);
   sprintf(status + strlen(status),"Min   : %d<br>",min);
   sprintf(status + strlen(status),"Step  : %d<br>",step);
   sprintf(status + strlen(status),"Array  : [ ");
   for (size_t i = 0 ; i < 10 ; i++)
     {
        if(i<size_array_len)
           sprintf(status + strlen(status)," %d,",size_array[i]);
     }

   if(10<size_array_len)
      sprintf(status + strlen(status)," ... ");
   sprintf(status + strlen(status)," ]");

   sprintf(status + strlen(status),"<br>");
   sprintf(status + strlen(status),"%s",styles_names[app->i_style]);

   return status;
}

int elm_main(int argc, char **argv)
{
  app = calloc(sizeof(APP), 1);

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   app->win = elm_win_util_standard_add("Main", "App");
   elm_win_autodel_set(app->win, EINA_TRUE);

   app->box = elm_box_add(app->win);
   app->boxHor = elm_box_add(app->box);
   app->boxHor2 = elm_box_add(app->box);
   app->txtblock = evas_object_textblock_add(app->box);
   app->bg = elm_bg_add(app->box);
   elm_bg_color_set(app->bg,255,255,255);

   Evas_Textblock_Style *style = evas_textblock_style_new();
   evas_textblock_style_set(style,styles[0]);
   evas_object_textblock_style_set(app->txtblock,style);
   evas_object_textblock_text_markup_set(app->txtblock,contents[0]);

   elm_box_horizontal_set(app->boxHor, EINA_TRUE);
   elm_box_horizontal_set(app->boxHor2, EINA_TRUE);

   evas_object_size_hint_weight_set(app->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->box, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_size_hint_weight_set(app->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->box, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_show(app->txtblock);
   evas_object_show(app->bg);
   evas_object_show(app->box);
   evas_object_show(app->boxHor);
   evas_object_show(app->boxHor2);

   elm_box_pack_end(app->box, app->bg);
   elm_box_pack_end(app->box, app->boxHor);
   elm_box_pack_end(app->box, app->boxHor2);

   elm_object_content_set(app->bg,app->txtblock);

   elm_win_resize_object_add(app->win, app->box);
   evas_object_resize(app->win, 320, 480);

   for(int i = 0 ; i < BUTTON_ALL ; i++)
     {
        app->btn[i] = elm_button_add(app->boxHor);
        evas_object_smart_callback_add(app->btn[i], "clicked", _btn_clicked, NULL);
        elm_object_text_set(app->btn[i], BUTTON_STR[i]);
        elm_box_pack_end(app->boxHor, app->btn[i]);
        evas_object_show(app->btn[i]);
     }

   app->lbl_status = elm_label_add(app->boxHor2);
   elm_object_text_set(app->lbl_status, get_fit_status(app->txtblock));
   elm_box_pack_end(app->boxHor2, app->lbl_status);
   evas_object_show(app->lbl_status);

   evas_object_size_hint_weight_set(app->txtblock, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->txtblock, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_size_hint_weight_set(app->bg, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->bg, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_show(app->win);
   elm_run();
   return 0;
}

ELM_MAIN()
```

**Edje**

```
// compile: edje_cc source.edc
// run: edje_player source.edje
collections {
   styles
   {
      style
      {
         name: "text_style";
         base: "font=sans font_size=30 color=#FFF wrap=mixed ellipsis=1.0";
         tag: "br" "\n";
         tag: "ps" "ps";
         tag: "tab" "\t";
         tag: "b" "+ font_weight=Bold";
      }
   }
   group {
      name: "my_group"; // must be the same as in source.c
      parts {

         part
         {
            name: "background";
            type: RECT;
            scale: 1;
            description
            {
               color: 0 0 0 0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
            }
         }

         part
         {
            name: "text";
            type: TEXTBLOCK;
            scale: 1;
            entry_mode: NONE;
            effect: OUTLINE_SHADOW;
            description
            {
               state: "default" 0.0;
               rel1.to : "background";
               rel1.relative: 0.0 0.0;
               rel2.to : "background";
               rel2.relative: 1.0 1.0;
               text
               {
                  style: "text_style";
                  align: 0.0 0.0;
                  text: "Hello World This is Me";
                  fit: 1 1;
                  fit_step: 1;
                  size_range: 30 200;
                  //fit_size_array: 20 40 60 80 100 200;
               }
            }
         }
      }
   }
}
```

Found Task T5724 relative to this Feature

Reviewers: woohyun, bowonryu, cedric, raster

Reviewed By: woohyun

Subscribers: a.srour, #committers, #reviewers, cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9280

Change-Id: I0fab88e03c77966c6b2fd0fb4c40a1e9e55bd803

4 years ago[Genlist] Optimization for genlist memory operation 14/218014/6
Godly Thekkethottiyil Alias [Mon, 18 Nov 2019 15:18:47 +0000 (20:48 +0530)]
[Genlist] Optimization for genlist memory operation

Replaced malloc operations with eina mempool for better performance

Change-Id: I073e2d69547b700235eb96859b8eea37a53f231d
Signed-off-by: Godly Thekkethottiyil Alias <godly.talias@samsung.com>