platform/upstream/efl.git
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>
4 years agofix wrong document on gengrid alignment. for the backward compatibility, tizen defaul... 85/216485/2
SangHyeon Jade Lee [Fri, 25 Oct 2019 09:54:21 +0000 (18:54 +0900)]
fix wrong document on gengrid alignment. for the backward compatibility, tizen default align value is 0.0

Change-Id: I8eb6d4d956a2808ae175ab3aa76e120c9723a0d5

4 years agoelementary: improve data layout for Efl.Ui.PositionManager*. 72/219972/2
Cedric BAIL [Fri, 15 Nov 2019 19:19:28 +0000 (11:19 -0800)]
elementary: improve data layout for Efl.Ui.PositionManager*.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10688

Change-Id: Id8b68e610f0cb92cb5f0b37ef543c23bbc088278

4 years agoelementary: reduce events triggered by Efl.Ui.PositionManager. 71/219971/2
Cedric BAIL [Fri, 15 Nov 2019 19:05:36 +0000 (11:05 -0800)]
elementary: reduce events triggered by Efl.Ui.PositionManager.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10687

Change-Id: I8e5a242d2bb1bef9d1bf1ee9461db053046edbcd

4 years agoefl_ui_layout: separate legacy size calculation caused by sub object 64/219964/1
Jaehyun Cho [Wed, 11 Dec 2019 12:50:39 +0000 (21:50 +0900)]
efl_ui_layout: separate legacy size calculation caused by sub object

Based on legacy size calculation, size calculation should be done
immediately when sub object's size hint is changed.

However, based on non-legacy size calculation logic, size calculation
should be done later by setting canvas group change when sub object's
size hint is changed like upstream.

Change-Id: Ib72f81c49151b97a4317dfe18d565601a81501fe

4 years agobuild: resolve build error due to renaming efl.ui.text to efl.ui.textbox accepted/tizen/unified/20191212.123644 submit/tizen/20191211.214431
Jongmin Lee [Wed, 11 Dec 2019 21:40:01 +0000 (06:40 +0900)]
build: resolve build error due to renaming efl.ui.text to efl.ui.textbox

Change-Id: I280e1d601fe27481e18db9919ccfb5196fb4f75b

4 years agoefl_ui_popup: do not leak the backwall part
Marcel Hollerbach [Mon, 9 Dec 2019 17:26:31 +0000 (18:26 +0100)]
efl_ui_popup: do not leak the backwall part

freeing it in the destructor is not enough. This has to be done at the
invalidator stage, otherwise bindings might have a blocking element on
the screen for the time the object is not gargabe collected.

Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10837

4 years agoelementary_test: Add Canvas.Textblock style test
Xavi Artigas [Wed, 11 Dec 2019 17:09:56 +0000 (17:09 +0000)]
elementary_test: Add Canvas.Textblock style test

This test accepts a style string (as defined in the style_apply method)
and continuously applies it to a sample text block.
Useful for debugging Efl.Canvas.Textblock styles.

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

4 years agoeina_rbtree: Clean array intead of flush.
Woochanlee [Wed, 11 Dec 2019 10:13:39 +0000 (10:13 +0000)]
eina_rbtree: Clean array intead of flush.

It doesn't have to flush all of the time when it iterating.

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

4 years agoNEWS: Fix minor typo that I missed during review
Chris Michael [Wed, 11 Dec 2019 15:45:47 +0000 (10:45 -0500)]
NEWS: Fix minor typo that I missed during review

4 years agoecore exe - remove useless fd closing before _exit()
Carsten Haitzler (Rasterman) [Wed, 11 Dec 2019 15:27:26 +0000 (15:27 +0000)]
ecore exe - remove useless fd closing before _exit()

we call _exit() right after closing some fd's - don't bother. they
might already be closed anyway and they will all be closed at exit
either way...

4 years agoNEWS: update file with recent removals form tree
Stefan Schmidt [Wed, 11 Dec 2019 15:04:49 +0000 (10:04 -0500)]
NEWS: update file with recent removals form tree

Summary:
We need to make sure this gets not overridden wwen we start the next
release process and auto-generate some parts of this.

Reviewers: vtorri, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoeeze: remove tizen module support from eeze sensor
Stefan Schmidt [Wed, 4 Dec 2019 16:15:09 +0000 (17:15 +0100)]
eeze: remove tizen module support from eeze sensor

This has been disabled since the move to meson and unlikely to have
built before with autotools either. Tizen never adopted this so we can
ease our maintenance burden here.

The Eeze sensor API itself is EAPI sadly and can't be removed. We will
keep the udev backend (temperature only) and the fake backend for
testing for now.

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

4 years agoefl_ui_text: unit test
Ali Alzyod [Wed, 11 Dec 2019 08:12:29 +0000 (08:12 +0000)]
efl_ui_text: unit test

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

4 years agoelementary: reduce event trigger during object creation stage in Efl.Ui.CollectionView.
Cedric BAIL [Fri, 15 Nov 2019 19:02:01 +0000 (11:02 -0800)]
elementary: reduce event trigger during object creation stage in Efl.Ui.CollectionView.

Once the object are created, the CollectionView will do a few modifiction on them before
giving this object to the position manager to deal with. Reducing events should slightly
improve performance.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10686

4 years agoelementary: reduce event generation during object creation by Efl.Ui.WidgetFactory.
Cedric BAIL [Fri, 15 Nov 2019 18:55:09 +0000 (10:55 -0800)]
elementary: reduce event generation during object creation by Efl.Ui.WidgetFactory.

We can not freeze the canvas in all scenario as we are sometime building widget fully
asynchronously which prevent holding events on the canvas. Still it is better to do it
for the case we can.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10685

4 years agoeo: add a tcase for testing forwarders
Marcel Hollerbach [Wed, 11 Dec 2019 09:23:33 +0000 (10:23 +0100)]
eo: add a tcase for testing forwarders

this just adds the newly introduced semantics from cedric.

4 years agoevas: do not call Eina_Cow GC during invalidate it is pointless.
Cedric BAIL [Fri, 6 Dec 2019 02:55:25 +0000 (18:55 -0800)]
evas: do not call Eina_Cow GC during invalidate it is pointless.

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

4 years agoeina: introduce an explicit eina_cow_done with no call to GC.
Cedric BAIL [Fri, 6 Dec 2019 02:55:06 +0000 (18:55 -0800)]
eina: introduce an explicit eina_cow_done with no call to GC.

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

4 years agoevas: avoid unecessary Eina_Cow GC during image destruction.
Cedric BAIL [Fri, 6 Dec 2019 02:54:10 +0000 (18:54 -0800)]
evas: avoid unecessary Eina_Cow GC during image destruction.

If the stretch zone are NULL to start with, there is no reason to modify
them and this should avoid us a trip to the GC.

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

4 years agoevas: reduce useless allocation during destruction of image.
Cedric BAIL [Fri, 6 Dec 2019 00:35:23 +0000 (16:35 -0800)]
evas: reduce useless allocation during destruction of image.

Evas image use a GC to reduce duplicated state accross multiple object.
Still during shutdown we do clean it up and free it. There is no point
to push that down the GC if we are to just free it after. Relying on
the fact that dynamic content will avoid triggering the GC altogether
as their content change to frequently and is expected to be uniq among
other objects, we can avoid unecessary allocation during the destruction
by just switching that early on during the destructor.

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

4 years agoevas: efl_gfx_image_stretch_region_set need access to image state before it is freed.
Cedric BAIL [Fri, 6 Dec 2019 00:01:17 +0000 (16:01 -0800)]
evas: efl_gfx_image_stretch_region_set need access to image state before it is freed.

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

4 years agoeo: only forward event if someone is listening.
Cedric BAIL [Thu, 5 Dec 2019 21:57:52 +0000 (13:57 -0800)]
eo: only forward event if someone is listening.

This limit long chain of useless event forwarding when nobody is listening
at the end of the pipe.

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

4 years agoedje_entry: Fix resource leak.
Woochanlee [Wed, 11 Dec 2019 06:49:44 +0000 (15:49 +0900)]
edje_entry: Fix resource leak.

Reviewers: Jaehyun_Cho, Hermet, ali.alzyod

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl.ui.text: rename to efl.ui.textbox
Ali Alzyod [Wed, 11 Dec 2019 00:47:50 +0000 (09:47 +0900)]
efl.ui.text: rename to efl.ui.textbox

Summary:
This patch will rename efl.ui.text into efl.ui.textbox

Effected classes:
 - efl.ui.text_async   :  efl.ui.textbox_async
 - efl.ui.text_editable   :  efl.ui.textbox_editable **will be removed anyway**

Needs consider Classes:
- efl.ui.text_part
- efl.ui.text_factory.Emoticons
- efl.ui.text_factory.Fallback
- efl.ui.text_factory.Images

Reviewers: woohyun, segfaultxavi, bu5hm4n, zmike, YOhoho

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoeina_inline: Fixed a potential dangling pointer
JunsuChoi [Wed, 11 Dec 2019 00:27:10 +0000 (09:27 +0900)]
eina_inline: Fixed a potential dangling pointer

Summary: fixed by null handling

Test Plan: N/A

Reviewers: Hermet, YOhoho, cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: I208c91caa2256d720675770a3e4406c36bb42832

4 years agoelm: do not free memory returned by elm_theme_system_dir_get() function 91/219891/2
Jongmin Lee [Wed, 11 Dec 2019 08:00:06 +0000 (17:00 +0900)]
elm: do not free memory returned by elm_theme_system_dir_get() function

Since it is a constant value, it should not be freeed by the caller

@tizen_fix

Change-Id: Idd18cec3495c730ef3e47f1e80af1c69621caf48

4 years agogbs: change upstream_branch to none 69/219869/1
Yeongjong Lee [Wed, 11 Dec 2019 05:40:20 +0000 (14:40 +0900)]
gbs: change upstream_branch to none

Wiki said,
`Reset the upstream branch as none by modifying gbs.conf, that is, make the package native.`

https://wiki.tizen.org/Analyzing_GBS_Local_Full_Build_Errors#Case_Analysis

Change-Id: Ie8dd11f48d8fbb50857de7b1a293889e3adc05b3

4 years agoefl_ui_item: fix wrong returns correctly 60/219860/2
WooHyun Jung [Wed, 11 Dec 2019 04:52:10 +0000 (13:52 +0900)]
efl_ui_item: fix wrong returns correctly

@tizen_fix

Change-Id: Ide14d19abf14f9fc7998e4c39504453528ba9e90

4 years agoeina_inline: Fixed a potential dangling pointer 44/219844/1
JunsuChoi [Wed, 11 Dec 2019 00:27:10 +0000 (09:27 +0900)]
eina_inline: Fixed a potential dangling pointer

Summary: fixed by null handling

Test Plan: N/A

Reviewers: Hermet, YOhoho, cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: I4822201dca0b7ad840128c2488e2598a1eb352fc

4 years agobuild: resolve migration build error submit/tizen/20191210.212240
Jongmin Lee [Tue, 10 Dec 2019 21:19:45 +0000 (06:19 +0900)]
build: resolve migration build error

Change-Id: Ieebfc74262f7c8d0c0fe0c709c3170eebbcecb2b

4 years agocsharp: Removed duplicated call_match implementations
Lauro Moura [Tue, 10 Dec 2019 17:01:26 +0000 (14:01 -0300)]
csharp: Removed duplicated call_match implementations

Summary:
Small refactor. Keep it in a single header that other files could use.

Ref T8515

Reviewers: brunobelo, felipealmeida, jptiz

Reviewed By: jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8515

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

4 years agoector: Fix build warning about unused variable
Ali Alzyod [Tue, 10 Dec 2019 17:02:54 +0000 (12:02 -0500)]
ector: Fix build warning about unused variable

Reviewers: bu5hm4n, Hermet, devilhorns

Reviewed By: devilhorns

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

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

4 years agomailmap: update commit name and email cleanup file
Stefan Schmidt [Wed, 20 Nov 2019 12:01:31 +0000 (13:01 +0100)]
mailmap: update commit name and email cleanup file

Keep this up to date and get more matches working. Also merge in change
from Terminology copy. This allows better statistics on our git repo.

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10832

4 years agodocs: fix to make docs contain proper images
Wonki Kim [Tue, 10 Dec 2019 11:37:49 +0000 (12:37 +0100)]
docs: fix to make docs contain proper images

Summary:
links to images that this patch is modifying would be included in doxy docs
without pre or post process something in meson definition, if we applied this patch.

Reviewers: segfaultxavi, bu5hm4n

Reviewed By: segfaultxavi

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

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

4 years agoExample: enhance efl-canvas-vg-simple
JunsuChoi [Tue, 10 Dec 2019 10:18:39 +0000 (19:18 +0900)]
Example: enhance efl-canvas-vg-simple

Summary:
- Use path reserve
- Use container object

Test Plan: ./build/src/examples/evas/efl-canvas-vg-simple

Reviewers: Hermet, kimcinoo, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl_ui_text_editable: remove class
Ali Alzyod [Tue, 10 Dec 2019 10:00:34 +0000 (19:00 +0900)]
efl_ui_text_editable: remove class

Summary:
This class is the same as efl_ui_text, efl_ui_text is editable by default.
This class should be removed

Reviewers: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoEfl.Canvas.Text rename into Efl.Canvas.Textblock
Ali Alzyod [Tue, 10 Dec 2019 08:39:59 +0000 (17:39 +0900)]
Efl.Canvas.Text rename into Efl.Canvas.Textblock

Summary:
Efl.Canvas.Text                renamed into **Efl.Canvas.Textblock**
Efl.Canvas.Text_Factory  renamed into **Efl.Canvas.Textblock_Factory**

Reviewers: woohyun, segfaultxavi, zmike, bu5hm4n, YOhoho

Reviewed By: segfaultxavi

Subscribers: cedric, #committers, #reviewers

Tags: #efl

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

4 years agoelm_config: Loading overlay theme on elm_config_init() accepted/tizen/unified/20191210.141144 submit/tizen/20191209.212738
Seungwan Woo [Tue, 3 Dec 2019 09:24:31 +0000 (18:24 +0900)]
elm_config: Loading overlay theme on elm_config_init()
we need to show OneUI theme.
so, try to load external resource for theme, color_class, text_class on elm_config

I think that we should check how to deal with OneUI theme and resources

Change-Id: I9a5fb253a0b75be0f4c96df19fd470304484156c
Signed-off-by: Seungwan Woo <s-w.woo@samsung.com>
4 years agobuild: remove elocation package
Jongmin Lee [Mon, 9 Dec 2019 21:18:26 +0000 (06:18 +0900)]
build: remove elocation package

Change-Id: I9c82720d09c4fedcd92823549ff56f0fefe41431

4 years agocsharp: Refactor annotation selection function
Lauro Moura [Mon, 9 Dec 2019 19:40:13 +0000 (16:40 -0300)]
csharp: Refactor annotation selection function

Summary:
Better names to convey their intent and formatting.

Removing the hardcoded `return` from them will also free the return list
to be used for `@out` parameters as they have similar semantics to
`return`, different from regular `@in` parameters. This change in
behavior will come in a future commit, and explains why are are keeping
both lists for now despite being essentially the same.

Ref T8515

Test Plan: Run existing tests

Reviewers: felipealmeida, brunobelo, jptiz, YOhoho

Reviewed By: jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8515

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

4 years agoeolian_mono: reduce duplicated code in OnXXXEvent
Yeongjong Lee [Mon, 9 Dec 2019 16:45:56 +0000 (13:45 -0300)]
eolian_mono: reduce duplicated code in OnXXXEvent

Summary:
`CallNativeEventCallback` is used to reduce duplicated code.

E.g.

Before
```
protected virtual void OnFullscreenChangedEvent(Efl.Ui.WinFullscreenChangedEventArgs e)
{
    var key = "_EFL_UI_WIN_EVENT_FULLSCREEN_CHANGED";
    IntPtr desc = Efl.EventDescription.GetNative(efl.Libs.Elementary, key);
    if (desc == IntPtr.Zero)
    {
        Eina.Log.Error($"Failed to get native event {key}");
        return;
    }

    IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg ? (byte) 1 : (byte) 0);
    try
    {
        Efl.Eo.Globals.efl_event_callback_call(this.NativeHandle, desc, info);
    }
    finally
    {
        Marshal.FreeHGlobal(info);
    }
}
```

After
```
protected virtual void OnFullscreenChangedEvent(Efl.Ui.WinFullscreenChangedEventArgs e)
{
    IntPtr info = Eina.PrimitiveConversion.ManagedToPointerAlloc(e.arg ? (byte) 1 : (byte) 0);
    CallNativeEventCallback("elementary", "_EFL_UI_WIN_EVENT_FULLSCREEN_CHANGED", info, (p) => Marshal.FreeHGlobal(p));
}
```

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

Reviewers: lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoeolian_mono: remove unused EventArgs parameter of OnXXXEvent
Yeongjong Lee [Mon, 9 Dec 2019 15:59:19 +0000 (12:59 -0300)]
eolian_mono: remove unused EventArgs parameter of OnXXXEvent

Summary:
if a event doesn't have `EventArgs`, parameter `EventArgs e` of its OnXXXEvent
is naver used.

ref T8414

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

Reviewers: lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8414

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

4 years agoecore_x: fix unused parameter warnings after xgesture removal
Stefan Schmidt [Mon, 9 Dec 2019 15:05:19 +0000 (10:05 -0500)]
ecore_x: fix unused parameter warnings after xgesture removal

Summary:
I somehow missed these warnings when doing the removal patch. Should
have spotted them. :(

Reviewers: devilhorns, raster, bu5hm4n, segfaultxavi, vtorri

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoelocation: remove beta library
Stefan Schmidt [Wed, 2 Oct 2019 15:45:07 +0000 (17:45 +0200)]
elocation: remove beta library

This has never been fully finished or really used. The GeoClue project
dbus API moved on to a newer version as well. We still have it marked as
beta so we should take the chance and get rid of it to cleanup our tree
a little bit.

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10788

4 years agotests/ecore_wl2: Add test for ecore_wl2_window_role functions
Woochanlee [Mon, 9 Dec 2019 12:57:31 +0000 (07:57 -0500)]
tests/ecore_wl2: Add test for ecore_wl2_window_role functions

Summary:
tests/ecore_wl2: Add test for ecore_wl2_window_class functions

ref T8016

Reviewers: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8016

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

4 years agoc#: Suppressing warning for CA1724.
Bruno da Silva Belo [Mon, 9 Dec 2019 11:33:52 +0000 (08:33 -0300)]
c#: Suppressing warning for CA1724.

Summary: ref T8413

Reviewers: lauromoura, felipealmeida, YOhoho, jptiz

Reviewed By: jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8413

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

4 years agocsharp: changing string literal with nameof.
Lauro Moura [Mon, 9 Dec 2019 11:32:02 +0000 (08:32 -0300)]
csharp: changing string literal with nameof.

Summary: ref T8407

Reviewers: lauromoura, felipealmeida, YOhoho, jptiz

Reviewed By: jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8407

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

4 years agocsharp: Marking property with static.
Lauro Moura [Mon, 9 Dec 2019 11:22:59 +0000 (08:22 -0300)]
csharp: Marking property with static.

Summary: ref T8420

Reviewers: lauromoura, felipealmeida, YOhoho, jptiz

Reviewed By: jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8420

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

4 years agoEfl.Ui.Internal_Text_Interactive: missed renames from previous commit
Xavi Artigas [Mon, 9 Dec 2019 10:04:56 +0000 (11:04 +0100)]
Efl.Ui.Internal_Text_Interactive: missed renames from previous commit

4 years agoefl_text_cursor: rename enums
ali [Mon, 9 Dec 2019 09:49:13 +0000 (10:49 +0100)]
efl_text_cursor: rename enums

Summary:
rename two movement enums

**paragraph_first**: to just **first**  this will move the cursor to the beginning of the text

**paragraph_last**: to just **last**  this will move the cursor to the end of the text

These two are not directly related to paragraph the will move the cursor depending on the whole content

or maybe **start** and **end**  what do you think ?

Reviewers: woohyun, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoevas vg: ++documentation
Hermet Park [Mon, 9 Dec 2019 06:41:33 +0000 (15:41 +0900)]
evas vg: ++documentation

4 years agoEfl.Ui.Text : all related interfaces
ali [Mon, 9 Dec 2019 01:58:39 +0000 (10:58 +0900)]
Efl.Ui.Text :  all related interfaces

Summary:
Change summary:

Removed :
- efl_ui_text_selectable.eo and add it functionality into efl_text_interactive.eo
- efl_ui_text_editable.eo because it is same as efl_ui_text.eo (just set one property by default)

Modifications:
- Move all Text Input enums and functionality from efl_ui_text class into its own interface,  this interface will be implemented at efl_ui_internal_text_interactive class.

- Rename selection_allowed property to selectable (same as other "editable" property) in efl_text_interactive

- Add select_all function into efl_text_interactive interface

- Add have_selection property into efl_text_interactive interface

- Move user_change , selection_start/change/clear   and undo/redo events into efl_text_interactive interface.

- Move methods and events of copy/paste/cut into efl_ui_text

- Fix password-related functionality

- Remove context menu clear and add_item methods.  (these should be added later with better design)

- Remove Validation event from EFL_UI_TEXT.  (these should be added later with better design)

Reviewers: woohyun, tasn, segfaultxavi, zmike, bu5hm4n

Subscribers: stefan_schmidt, a.srour, q66, zmike, segfaultxavi, cedric

Tags: #efl

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

4 years agoefl_ui_widget: fix focus revert when focused object is disabled 22/216522/3
Yeongjong Lee [Mon, 28 Oct 2019 01:50:49 +0000 (10:50 +0900)]
efl_ui_widget: fix focus revert when focused object is disabled

Fix the issue that the focus does not shift to last focused object when a
focused object is being disabled.

Thanks to Dhyan Chand Bazio Desabattula for the reporting and test code.

test code:
```
/*
 * gcc -o focus_disable_test focus_disable_test.c `pkg-config --cflags --libs elementary
 */
 #include <Elementary.h>

static Eina_Bool
_disablella(void* data)
{
   Evas_Object* baz = (Evas_Object*)data;
   elm_object_disabled_set(baz,EINA_TRUE);
   return EINA_FALSE;
}

static void _focused(void *data, Evas_Object *obj, void *event_info)
{
   ecore_timer_add(1, _disablella, obj);
}

EAPI_MAIN int
elm_main(int argc, char **argv)
{
   Evas_Object *win = NULL;
   Evas_Object *btn = NULL;
   Evas_Object *baz = NULL;

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   win = elm_win_util_standard_add("Greetings", "Hello, World!");
   elm_win_autodel_set(win, EINA_TRUE);

   btn = elm_button_add(win);
   elm_object_text_set(btn, "Good-Bye, World!");
   evas_object_resize(btn, 200, 100);
   evas_object_move(btn, 860, 450);
   evas_object_show(btn);

   baz = elm_button_add(win);
   elm_object_text_set(baz, "Hola Amigos!");
   evas_object_resize(baz, 200, 100);
   evas_object_move(baz, 860, 600);
   evas_object_show(baz);
   evas_object_smart_callback_add(baz, "focused", _focused, NULL);

   evas_object_resize(win, 1920, 1080);
   evas_object_show(win);

   elm_run();

   return 0;
}
ELM_MAIN()
```
`btn` should be focused when you click `baz`.

Change-Id: I219a4998e7c5f960dd890d72a1e32dacaa1c5961