Commit Graph

18138 Commits

Author SHA1 Message Date
Carsten Haitzler 9d65e64c00 env obj - fixx implementation to use a shared object
so this chnage totally threww away all the thread safety and locking
without doing the simple thing of using a shared obcj for the global
env obj to ensure brute force safety at least. fix.
2019-02-15 01:31:52 +00:00
Xavi Artigas 0fba6c89a1 Move Efl.Observable_Tuple into efl_observable.eo
Summary:
And out of efl_types.eot
Makes sense, right?

Test Plan: Everything builds

Reviewers: cedric, zmike, bu5hm4n

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7953
2019-02-14 15:41:23 -05:00
Xavi Artigas 512e37d02f Remove warnings when building without EFL_BETA_API_SUPPORT
Summary:
efl_alive_get should be a method defined in efl_object.eo, protected by
EFL_BETA_API_SUPPORT while that class is still @beta.
Instead, it is defined in Eo.h, so the BETA guard has to be defined manually.
This was causing some unsighly warnings during "make" and "make check"
(implicit declaration of function ‘efl_invalidating_get’)

Test Plan: make && make check do not throw that warning anymore

Reviewers: zmike, cedric

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7958
2019-02-14 15:33:55 -05:00
Marcel Hollerbach a2ea993f50 efl_core_command_line: a +1 was forgotten in order to account \0
this forgotten and the allocated string buffer was too small.
This fixes a valgrind warnings
2019-02-14 20:12:13 +01:00
Xavi Artigas c4bb24020b Stop defining EFL_BETA_API_SUPPORT in Efl_Core.h and Efl_Ui.h
Summary:
Including these headers does no longer mean that you want to use BETA API.
More and more methods in these libs will come out of BETA and they will
be usable without requiring EFL_BETA_API_SUPPORT to be defined by the app.

This concludes this patchset. Now apps can chose to define EFL_BETA_API_SUPPORT
or not, and they will have access to the requested API subset, but both options
are available.

Depends on D7951
Fixes T7692

Reviewers: zmike, bu5hm4n, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7692

Differential Revision: https://phab.enlightenment.org/D7952
2019-02-14 17:53:46 +01:00
Xavi Artigas 333330a6e5 Mark BETA classes individually
Summary:
Instead of surrounding all the #include "*.eo.h" lines in Efl.h
with #ifdef EFL_BETA_API_SUPPORT, include these files unconditionally, but mark
all classes as @beta in the eo files.
This will allow taking them out of beta one by one as we deem them stable enough.
Otherwise, the current procedure involves moving the #include line out of the
ifdef block, which is cumbersome and messes include order.

Depends on D7950
Fixes T7692

Test Plan: Nothing changes

Reviewers: zmike, bu5hm4n, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7692

Differential Revision: https://phab.enlightenment.org/D7951
2019-02-14 17:46:50 +01:00
Xavi Artigas 751ff0ed06 Mark EFL_MAIN and EFL_MAIN_EX macros as stable
They no longer require EFL_BETA_API_SUPPORT to be defined.
2019-02-14 17:11:04 +01:00
Xavi Artigas 9ed59b8002 Mark efl_types.eot as stable
Summary:
This allows using Efl_Version without EFL_BETA_API_SUPPORT, which in turn
allows failing when trying to use restricted BETA API with a more meaningful
error message.
The error will now tell you which restricted API you are trying to use, instead
of Efl_Version symbol not found.

Fixes T7696
Depends on D7932

Test Plan:
make && make check && make examples continue working.
Building a BETA example while removing the EFL_BETA_API_SUPPORT define should
tell you which BETA API you tried to use.

Reviewers: zmike, bu5hm4n, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7696

Differential Revision: https://phab.enlightenment.org/D7948
2019-02-14 16:20:50 +01:00
Marcel Hollerbach 1fabc8fb99 eo: declare Eo stable
Summary:
This declares the main part of Eo.h as stable, except the domain api for
now. We don't have a user of that API for now, nor do we have bindings
supporting threads, lets wait with this bit until we have bindings for
this, so we can test it.

Further more, this does not stabilize the composition API of
efl_object.eo.h, reason for this is, that we might want to overthink the
solution we have with events, as we might want to forward events per
default.
Depends on D7931

Reviewers: stefan_schmidt, cedric, zmike, segfaultxavi

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7932
2019-02-14 15:24:45 +01:00
Xavi Artigas f94ca6c269 docs: Typo 2019-02-14 15:22:01 +01:00
Xavi Artigas c2adefd7f2 Efl.Gfx.Stack: Rename raise and lower
Summary:
to move_to_top and move_to_bottom since the previous names seemed to indicate
that the object only moved one step instead of all the way through the top
or the bottom of the stack.

Ref T7560

Test Plan: make && make check && make examples work as before

Reviewers: cedric, zmike

Reviewed By: zmike

Subscribers: kimcinoo, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7560

Differential Revision: https://phab.enlightenment.org/D7934
2019-02-14 08:57:22 -05:00
SangHyeon Jade Lee c270aabdc0 efl_ui : fix infinite loop in efl_ui_exact model
Summary:
the loop in infinite because of wrong condition.
need to loop while the count of list_index.

Reviewers: cedric, zmike

Subscribers: zmike, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7925
2019-02-14 08:51:19 -05:00
Xavi Artigas 39aee23368 docs: Clarify docs for Efl.Screen. 2019-02-14 13:20:28 +01:00
Carsten Haitzler c695dde8c3 ecore wl2 - remove pointless sntrcpys causing warnings
again pointless:

strcpy(dest, x); -> len - strlen(x); strncpy(dest, x, len);

code put in causing new warnings. this kind of "get rid of strcpy" is
actua;;y dangerous as it's more likely a mistake is made along the way
and bugs are added. strcpy's  should be reviewed and if ok - left
as-is. doing otherwise makes the code worse, not better and raises
risk. it now also produces warnings at compile time which creates
noise we just shouldnt' have.
2019-02-14 09:31:02 +00:00
Jaeun Choi dea75d0f32 efl_page_transition_scroll: avoid explicit null dereference 2019-02-14 14:23:42 +09:00
Yeongjong Lee 63cbdd3008 efl_pack: move layout,updated event to Efl.Pack_Layout
Summary:
'layout,updated' event is more suitable for Efl.Pack_Layout which have
layout_update method.

Test Plan: make

Reviewers: segfaultxavi, cedric, Jaehyun_Cho

Reviewed By: segfaultxavi, Jaehyun_Cho

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7906
2019-02-14 12:57:13 +09:00
Jaehyun Cho 94be8a88d3 eet_dictionary: remove dead code
If index value is not -1, then eet_dictionary_string_add() returns.
Therefore, it does not need to check the index value after that.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7922
2019-02-13 16:37:10 -08:00
Wonki Kim 1cdedaa33b ecore_con: Fix potentional problems around ecore_con
non-thread safe functions are used like rand(), strerror().
this patch replace them with thread safe one.
and also this patch contains a change to fix a memory leak problem.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7917
2019-02-13 16:37:08 -08:00
Xavi Artigas 19fcd6e60f eolian: allow tagging complete classes as BETA
Summary:
This allows using the @beta tag in classes, like this:
class @beta Efl.Foo extends Efl.Bar { ... }

This will surround the class definition in the .eo.h file with an
EFL_BETA_API_SUPPORT #define, equivalent to tag every method and
event with @beta.

Test Plan: Nothing changes since no class uses this tag yet

Reviewers: q66, bu5hm4n, zmike

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7933
2019-02-13 18:48:02 +01:00
Xavi Artigas 6b7346b7b2 Remove individual class BETA guards
Summary:
Eolian adds a per-class BETA guard (like EFL_UI_WIN_BETA) to any method tagged
as @beta. This means that any app (and the EFL code) wanting to use BETA features
has to enable them class by class, which is cumbersome.
This commit replaces the individual guards with the global EFL_BETA_API_SUPPORT
guard, so apps only need to define one symbol to access BETA features.

Any usage of the per-class guards has been removed from the EFL code and examples.
When building EFL the global guard is defined by configure, so all EFL methods
already have access to BETA API.
Efl_Core.h and Efl_Ui.h no longer define EFL_BETA_API_SUPPORT. Apps wanting to
use BETA API have to define this symbol before including any EFL header
(It has been added to the examples requiring it).

Test Plan:
make && make check && make examples still work, but there's a lot less #defines
in the code

Reviewers: zmike, bu5hm4n, q66

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T6788

Differential Revision: https://phab.enlightenment.org/D7924
2019-02-13 18:09:17 +01:00
Thierry 56f06d21c1 ecore-x: only modify _ecore_key_grabs when key is toggled
A New entry is added to _ecore_key_grabs even when no key was grabbed.

Summary:  The key grab and ungrab functions should return which keycode was used. Proposed by pascal@ordissimo.com

Reviewers: zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7923
2019-02-13 11:39:39 -05:00
Derek Foreman 87cf5188b4 ecore_wl2: Make our wayland socket handling thread safe
By using the prepare read code properly we can do wayland dispatch of
multiple queues in multiple threads.  I'm not advocating we ever do so,
but if a library (perhaps a gl implementation) wants to dispatch its own
queue, and that happens in a separate thread from our event loop, we
probably don't want the world to explode.

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7915
2019-02-13 10:33:41 -06:00
Derek Foreman 66ce295fc9 ecore_main: Add ECORE_FD_ALWAYS flag
This allows an fd handler to be called after select exits unconditionally.

Our wayland client code needs this to be thread safe, as it needs to
call prepare_read before entering select, and then either read or
cancel_read after select.

Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7914
2019-02-13 10:33:40 -06:00
Marcel Hollerbach 46885653bc eo: remove class functions from eo
As in the previous commit explained, we want to get rid of class
functions in eo, and make them just c functions right away.

This commit removes the class parameter from the eo_class_function_set
call, and adjusts the tests to not depend on class functions anymore.
Class functions are now not tested anymore, tests that used them as a
way to test *things* are adjusted to test them now with object
functions, tests that just tested the working of class functions are
dropped.

This fixes T7675.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7902
2019-02-13 16:59:59 +01:00
Marcel Hollerbach 37d2d378ec eolian: drop class function overriding
Until this commit eo did class functions as part of the vtable, which
enabled those functions to be overwritten in classes inheriting another
class. However in task T7675 we decided that this is not really good for
bindings, as most OOP languages do not support this sort of feature.

After this commit eolian realizes class function completly outside of
the vtable, the c-symbol that is the class funciton is now just directly
redirecting to a implementation, without the involvement of the vtable.

This also means a change to the syntax created by eo:

Calling before:
  class_function(CLASS_A);
Calling after:
   class_function();

Implementation before:
   class_function(const Eo *obj, void *pd) { ... }
Implementation after:
   class_function(void) { ... }

This fixes T7675.

Co-authored-by: lauromauro <lauromoura@expertisesolutions.com.br>

Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D7901
2019-02-13 16:59:58 +01:00
Marcel Hollerbach 3b2a5a429b efl_input: remove the API of efl_input_instance_get
there is basically no reason for this API. You can only use the API when
you know the class, when you know the class you can also just know the
function to call to get this API.
The reason this API needs to go is that we don't want to use
polymorphism on class-functions.

ref T7675

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7900
2019-02-13 16:59:57 +01:00
Wonki Kim 33c4041950 ecore_wl2: replace strcpy with strncpy
Summary: this patch replaces a volnerable function with a safer one.

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7920
2019-02-13 10:43:23 -05:00
Wonki Kim 80b364f392 ecore_evas: fix a potentional deref after null problem
Summary:
this patch modify a logic to return after,
failing to call eore_evas_buffer_allocfunc_new function.

Reviewers: Hermet, bu5hm4n, cedric, devilhorns

Reviewed By: devilhorns

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7918
2019-02-13 10:42:24 -05:00
Christopher Michael 0fed1c77ae Revert this as it should not have been pushed yet
Revert "ecore_wl2: Make our wayland socket handling thread safe"

This reverts commit efa85f35f4.
2019-02-13 10:01:47 -05:00
Christopher Michael 4c587ef679 Revert this as it should not have been pushed yet
Revert "ecore_main: Add ECORE_FD_ALWAYS flag"

This reverts commit b5e90ebe0d.
2019-02-13 10:01:22 -05:00
Wonki Kim e355373e32 ecore_wl2: fix a non-thread safe call.
Summary:
this patch contains a change to
replace non-thread safe call 'strerror' with eina_error_msg_get.

Reviewers: cedric, bu5hm4n, devilhorns

Reviewed By: devilhorns

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7921
2019-02-13 09:58:11 -05:00
Derek Foreman efa85f35f4 ecore_wl2: Make our wayland socket handling thread safe
Summary:
By using the prepare read code properly we can do wayland dispatch of
multiple queues in multiple threads.  I'm not advocating we ever do so,
but if a library (perhaps a gl implementation) wants to dispatch its own
queue, and that happens in a separate thread from our event loop, we
probably don't want the world to explode.
Depends on D7914

Reviewers: zmike, devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7915
2019-02-13 09:58:06 -05:00
Derek Foreman b5e90ebe0d ecore_main: Add ECORE_FD_ALWAYS flag
Summary:
This allows an fd handler to be called after select exits unconditionally.

Our wayland client code needs this to be thread safe, as it needs to
call prepare_read before entering select, and then either read or
cancel_read after select.

Reviewers: cedric

Reviewed By: cedric

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7914
2019-02-13 09:58:06 -05:00
Yeongjong Lee 27e101da4b ui.box: implement homogeneous mode
Summary:
On homogeneous mode, children are of the same weight and of the same min size
which is determined by maximum min size of children.

Depends on D7750

Reviewers: Jaehyun_Cho, zmike, jpeg

Reviewed By: zmike

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7889
2019-02-13 09:23:01 -05:00
Yeongjong Lee 846492ebd7 ui.box: refactor layout_update
Summary:
Current layout_update doesn't consider max hint priority. for example, if it
has hint_max, the size is hint_max value regardless of weight or fill.
moreover, if it has hint_aspect with hint_max, hint_min can be ignored.
(test that aspect(1,3) max(50,150), min(70, 70) then, size has (50, 150))
It seems that hint_max is considered as high priority. however, if hint_min
greater than hint_max, hint_max is ignored.

In order to resolve the hint priority conflict, this refactoring supports
following hint priority.
1) HintMin
2) HintMin + HintAspect
3) HintMargin
4) HintMax
5) HintAspect
6) HintWeight, HintFill
7) HintAlign

ref T5487

Specific unit test is D7463

Test Plan:
make check
elementary_test -to 'efl.ui.box'

Reviewers: jpeg, Jaehyun_Cho, zmike

Reviewed By: zmike

Subscribers: segfaultxavi, zmike, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T5487

Differential Revision: https://phab.enlightenment.org/D7750
2019-02-13 09:23:01 -05:00
Jaeun Choi 0ab6c36404 efl_ui_pager: change data type 2019-02-13 20:47:04 +09:00
Marcel Hollerbach 9ad84605b6 Revert "elm_config: fix elm_config_save not to wake idle processes up"
This reverts commit 8b0b9ed281.

There have been issues with this commit, for further informations,
please see https://phab.enlightenment.org/D7354 for more details.
2019-02-13 12:30:00 +01:00
Jaeun Choi bad145f313 edje: add missing NULL checks 2019-02-13 19:41:29 +09:00
Jaeun Choi ce7914c67e edje: add missing NULL check 2019-02-13 19:02:46 +09:00
Jiyoun Park e8fe0c9c92 evas_image: fix pixels_dirty_set(False) makes wrong object-change-list.
Summary:
evas_object_image_pixels_dirty_set(img B, False) means
1. app want to mark image object's data is not dirty anymore
2. app don't want to be called get_pixels callback.

that does not mean image need to be redraw.

evas_object_image_pixels_dirty_set(img B, True) means
1. image object's data is dirty, so image object need to be redraw.
2. app want to be called get_pixels callback.

but pixels_dirty_set(img B, FALSE) function also set o->changed to true,
it cause problem related with rendering

Below case is the example of problem.

1. Smart object A
2. Child image object B
3. app call pixels_dirty_set(FALSE) inside pixels_get_callback
   pixels_get_callback is called inside the image object B's rendering.

enlightenment's e_comp_object_render do upper job.

After adding preload fetch,
evas_object_image_render_post can call evas_object_change.

https://phab.enlightenment.org/D7157

evas_render_updates_internal

0. enlightenment call evas_object_image_pixels_dirty_set(img B, TRUE)
   o->changed = 1;
   evas_object_change(img B)
1. smart obj A is in render_objects
2. evas_object_image_render_pre B, o->change=0
3. evas_render_mapped (Smart A)
     3-1. evas_render_mapped (img B)
         : enlightenment call evas_object_image_pixels_dirty_set(img B, False)
         : o->changed=1

     3-2. evas_object_change_reset(img B)
4. pending_change(img B)
     4-1. evas_object_image_render_post(img B)
          o->changed=1 (3-1 step) evas_object_change(img B)->evas_object_change(Smart A)

5. render_post_reset
   smart A is chaged(4-1 step), so, called   evas_object_change_reset(Smart A)
   ###smart A is reset(5 step), img B is changed(4-1 step). after this case,
    img B never get change to be redraw.

Reviewers: Hermet, cedric, zmike, ManMower

Reviewed By: Hermet

Subscribers: zmike, ManMower, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7821
2019-02-13 11:16:16 +09:00
Marcel Hollerbach 3b262340ba Revert "Revert command line array object because it's broken by design"
This reverts commit a57c7f7510.

I pretty much hate to just revert your revert, but you failed to read my
replies, and failed to understand what i was talking about.

And YES we talked at fosdem about the platform issue, and do you
remember my answer, that back in time this might be the case, today is
different freebsd suppoerts setenv, and for windows we have a setenv
implementation in evil. And yes, vtorri also created a issue how bad and
evil this commit is, however, i still fail to see the issue since setenv
unsetenv and clearenv usages are taken as needed. (T7693)

The ownership question is answered in
https://phab.enlightenment.org/D7516#137367.

Can we please get into a state of technical discussions, and not *oh
shit, i am going to revert this* this has been in review for a long
time, a lots of people have tested it, we discussed things on it, and
there was 3 weeks of no reply from you.

The issues that exist will be dealed with. Feel free to create tasks if
you want :)
2019-02-12 21:42:33 +01:00
Marcel Hollerbach 06160466e8 Revert "Revert the env object because it's broken portability - please redo"
This reverts commit d6294fa22b.
2019-02-12 21:34:27 +01:00
Carsten Haitzler d6294fa22b Revert the env object because it's broken portability - please redo
setenv and unsetenv are not portable. i explained to you at fosdem
there are issues and it's why i used putenv in the original
implementation and even though it's a pain (the string tou pass to
putenv is a pointer used literallt from there on in and you get it
from getenv, thus making ownership a pain -this is a libc issue we
can't readily solve). use putenv like the original code. then put it
back in. vtorri now has windows porting issues with the setenv use. i
knew there was a reason that still existed...

in addition your in_sync stuff is broken.  psuedocode:

// assuming BLAGH env is not set to anything here
c = efl_core_env_get(global_env, "BLAH");
...
putenv("BLAH=10");
...
c = efl_core_env_Get(global_env, "BLAH");

i will get NULL in both cases for c ... but i should get "10" for the
2nd in reality. reality is lots of code across application code and
libraries will at times mess with the environment. it has to work with
this. the prior implementation did work with this.

Revert "ecore: here comes a env object"
  This reverts commit 2373d5db5b.

Revert "efl_task: remove env from this object"
  This reverts commit c3d69f66a6.
2019-02-12 20:22:28 +00:00
Carsten Haitzler a57c7f7510 Revert command line array object because it's broken by design
Revert "ecore: get rid of commands in efl_task."
  This reverts commit 616381e9cf.
Revert "ecore: here comes a command line object"
  This reverts commit 48e5684b3c.

1. this is broken:

EOLIAN static const char*
_efl_core_command_line_command_get(const Eo *obj EINA_UNUSED, Efl_Core_Command_Line_Data *pd)
{
   return eina_strdup(pd->string_command);
}

it returns a const char * BUT it duplicates it on return. no. a big
fat honking NO. return a char * or don't duplicate. pick.

2. _efl_core_command_line_command_array_set() is broken by design. it
accepts an array of strings, but the strings are owned by the caller
who creates the array (requiring they free them up themselves after
this call) but the array becomes owned by the callee. the code here frees the
incoming array but doesn't care about the string content of it. it's
leak heaven waiting to happen (or bugs when someone wants to access
the array they create to walk it to free the strings they put into it
after it is set).

i brought this up and it was dismissed. now exactly he issue i brought
up is there with mixed ownership and the added complexity as well as
transfer of some ownership but not others.

go back and think about this so it isn't broken by design.
2019-02-12 19:54:35 +00:00
Marcel Hollerbach e908142da6 build: also build eo-tests with debug profile
this checks that eo-dbg is also working in the same manner as normal eo

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7911
2019-02-12 16:24:24 +01:00
Marcel Hollerbach fac3fa1c88 efl_ui_focus: delete elements on invalidate
this lead to ERR's. A element is invalidated while the composition
element is invalidated, which means, not yet deleted, but the Pointer
will fail a call to efl_isa.

Differential Revision: https://phab.enlightenment.org/D7623
2019-02-12 11:25:31 +01:00
Marcel Hollerbach 87373bf66c eo: efl_isa with a EFL_OVERRIDE_CLASS should return true
this is important, as basically every single class etc. can be a
EFL_OVERRIDE_CLASS. This makes efl_override work with eo_debug.

Differential Revision: https://phab.enlightenment.org/D7910
2019-02-12 11:20:21 +01:00
Marcel Hollerbach bbe0151670 eo: fix typo
this while loop is actaully iterating obj->xref, therefore we should not
take the pointer of data_xrefs.

Differential Revision: https://phab.enlightenment.org/D7908
2019-02-12 11:20:21 +01:00
Marcel Hollerbach 616381e9cf ecore: get rid of commands in efl_task.
Note that the usage in efl_thread.c should and could be removed.
the problem with its usage is that when the ARGUMENTS event is fired,
noone ever had the chance to subscribe to the loop of the thread yet. So
all in all this is unneccessary, since noone could ever touch that.

Differential Revision: https://phab.enlightenment.org/D7517
2019-02-12 11:19:28 +01:00
Marcel Hollerbach 48e5684b3c ecore: here comes a command line object
the mixin for now can carry a command, which can be setted as an string.
The string is then parsed again, this is done in order to make sure that
everything that needs escaping really is escaped or parsed correctly.

Differential Revision: https://phab.enlightenment.org/D7516
2019-02-12 11:19:28 +01:00
Marcel Hollerbach c3d69f66a6 efl_task: remove env from this object
the env operations are moved to the efl.core.env objects, which can be
used there.

Differential Revision: https://phab.enlightenment.org/D7514
2019-02-12 11:19:28 +01:00
Marcel Hollerbach 2373d5db5b ecore: here comes a env object
the env object can be used to alter and edit the content of environment
variables. Additionally, the class efl.core.env can be used to to setup
a not applied set of environment variables, which then can be applied
later (in the future) to set it directly to a spawned process for
example, or as a general key/data storage. A efl.core.env object can
also be forked off, which makes it easy to customize predefined objects.

ref T7514

Differential Revision: https://phab.enlightenment.org/D7510
2019-02-12 11:19:28 +01:00
Jaehyun Cho a7eb0695b8 efl_ui_format: fix to display %% and unknown format element
This fixes 2 things as follows.

1. Displays format string "%%" as "%".
   Like printf does, "%%" is displayed as "%".

2. Displays unknown format element as it is.
   In format string "(50%)", ")" is an unknown format element.
   Although format string has unknown format element, the format string
   is displayed like printf does.

The cause of the issue displaying "0%" which was mentioned on
a96933f964 is as follows.

The default format string of progressbar is set as "%.0f%%".
Therefore, if progressbar's format string is not set, then "%" postfix
is always displayed.

This commit reverts commit a96933f964.
This commit restores commit b4112b9735.
This commit restores commit be770d37fb.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7856
2019-02-11 15:41:07 -08:00
Mike Blumenkrantz 56dbd2bf86 edje: apply maps to textblock cursors and backgrounds
when a map is applied to an edje part, it is expected that all components of
the part respect the map attributes. this requires that, in the case of
textblock parts, all the sub-parts which are internal to the textblock
(entry) object also go through the map populate and apply codepaths

fix T4977
@fix

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7648
2019-02-11 15:10:45 -08:00
Derek Foreman 4ff180ac6a evas_object_smart: Speed up some cache invalidation calls
Summary:
A large number of cache invalidation calls are doing pointer
indirection that is completely avoidable.
Depends on D7852

Reviewers: devilhorns, cedric

Reviewed By: devilhorns, cedric

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7853
2019-02-11 14:13:33 -05:00
SangHyeon Jade Lee 053146598c efl_ui : rename model connect and factory connect to bind property and factory.
As we discussed in T7469 with V40,

efl_ui_model_connect
efl_ui_factory_model_connect

need to be renamed to

efl_ui_bind_property
efl_ui_bind_factory

for this work,
Efl.Ui.Model.Connect interface is changed as Efl.Ui.Bind,
and bind_property and bind_factory both method is supported by this interface.

bind_factory need Efl.Ui.Factory,
and Efl.Ui.Factory inheritted Efl.Ui.Bind,
so I little bit concerned about circular referencing, but so far, it works well.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7529
2019-02-11 11:06:13 -08:00
Xavi Artigas 8985222f47 docs: Update efl_object lifecycle docs
Summary:
Explained the different phases, added method refs and removed outdated links.
Ref T7557

Reviewers: zmike, bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7557

Differential Revision: https://phab.enlightenment.org/D7903
2019-02-11 14:16:48 +01:00
Mike Blumenkrantz 1b568327c4 efl_gfx_color_class: make this a mixin and move color_class_code here
Summary:
color_class_code seems to only have been added to efl_gfx_color in order to
share the hex conversion code, but this is trivial to do when it's in another
class and makes the api more sensible

ref T7559

Reviewers: segfaultxavi, bu5hm4n, cedric

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl_api

Maniphest Tasks: T7559

Differential Revision: https://phab.enlightenment.org/D7898
2019-02-11 12:34:12 +01:00
Marcel Hollerbach 38612b5490 eo: lets drop efl_interfaces
its not required anymore, our wonderfull new syntax solves the original
problem it was trying to solve.

fixes T7565

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7893
2019-02-08 10:27:27 +01:00
Mike Blumenkrantz f1ad9d7467 efl_ui_text: s/ELM_SEL_FORMAT_IMAGE/EFL_UI_SELECTION_FORMAT_IMAGE/g
Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl_widgets

Differential Revision: https://phab.enlightenment.org/D7894
2019-02-07 12:59:41 -05:00
Lauro Moura 9e3707f0b4 efl: Change non required constructors to @optional.
Summary:
These constructors aren't checked for in the finalize step of the
initialization and may be given the @optional tag.

For C# this means they can be ommitted from the constructor call.

This also adds `Efl.Ui.View.model` as a constructor of
`Efl.Composite_Model` as the finalizer checks for it.

Fixes T7673

Test Plan: make check

Reviewers: segfaultxavi, zmike, bu5hm4n, cedric, felipealmeida

Reviewed By: segfaultxavi, cedric

Tags: #efl, #do_not_merge

Maniphest Tasks: T7673

Differential Revision: https://phab.enlightenment.org/D7855
2019-02-07 18:05:00 +01:00
Marcel Hollerbach 0f32bb9047 eo: here comes reflection API
this adds support in eo to generate a reflection API. To get the actaul
reflection to the klass, the API efl_class_reflection_table_set needs to
be called, the table in the end can be generated by eolian. Reflection
API is inherited by the extended class. This means, if you have two
reflection tables, first, the most upperst is called, then the next
lower one is called.

For now this API accepts NULL setter or getter, and will ignore them
silently when they are called.

fix T7681

Differential Revision: https://phab.enlightenment.org/D7879
2019-02-07 14:43:25 +01:00
Marcel Hollerbach 0709bdea6f eo: change API call of efl_class_functions_set
The next commit will bring support for something like reflection. This
commit prepares the whole tree for getting another argument in
efl_class_functions_set.

ref T7681

Differential Revision: https://phab.enlightenment.org/D7882
2019-02-07 14:43:25 +01:00
Mike Blumenkrantz 4f9abba440 efl_ui_text: emit EFL_UI_TEXT_EVENT_CHANGED_USER from paste + drop operations
Summary:
this is a user-triggered change so it must emit the event

ref T6979
Depends on D7886

Reviewers: bu5hm4n, cedric, segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl_widgets

Maniphest Tasks: T6979

Differential Revision: https://phab.enlightenment.org/D7887
2019-02-07 12:42:00 +01:00
Mike Blumenkrantz cd816eec01 efl_ui_text: forward EFL_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED event
Summary:
this is emitted on the internal object and must be propagated

fix T6535
Depends on D7885

Reviewers: bu5hm4n, cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl_widgets

Maniphest Tasks: T6535

Differential Revision: https://phab.enlightenment.org/D7886
2019-02-07 12:41:55 +01:00
Mike Blumenkrantz 4672bbae5a efl_ui_text: forward EFL_UI_TEXT_EVENT_CHANGED_USER events
Summary:
these are emitted on the internal object and need to be propagated

ref T7621
Depends on D7884

Reviewers: bu5hm4n, cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl_widgets

Maniphest Tasks: T7621

Differential Revision: https://phab.enlightenment.org/D7885
2019-02-07 12:41:54 +01:00
Mike Blumenkrantz 765fad936b efl_ui_text: emit EFL_UI_TEXT_EVENT_CHANGED events properly
Summary:
these should be emitted any time text is changed in the object

fix T7615, T7417, T6978, T6979
Depends on D7883

Reviewers: bu5hm4n, cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl_widgets

Maniphest Tasks: T7615, T7417, T6979, T6978

Differential Revision: https://phab.enlightenment.org/D7884
2019-02-07 12:41:52 +01:00
Mike Blumenkrantz d7d33b9fe4 efl_ui_text: use Efl_Ui_Selection_Format for cnp_mode struct member
Summary: fix T7068

Reviewers: bu5hm4n, cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl_widgets

Maniphest Tasks: T7068

Differential Revision: https://phab.enlightenment.org/D7883
2019-02-07 12:41:51 +01:00
Cedric BAIL f484ca0951 edje: migrate Eo API to use Eo callback instead of opaque type.
Summary: Depends on D7869

Reviewers: zmike, q66, segfaultxavi, bu5hm4n

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7671

Differential Revision: https://phab.enlightenment.org/D7870
2019-02-06 13:48:43 -05:00
Cedric BAIL 917e0aa0fe edje: make legacy edje call rely directly on edje internal.
Reviewers: zmike, q66, segfaultxavi, bu5hm4n

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7671

Differential Revision: https://phab.enlightenment.org/D7869
2019-02-06 13:08:19 -05:00
Christopher Michael c62bac00cb ecore-drm2: Minor formatting fixes.
NB: No functional changes
2019-02-06 10:07:20 -05:00
Christopher Michael 3999a97579 ecore-drm2: Reduce duplicated code
No need for this line to be there twice as it is going to be called in
either case.

NB: No functional changes
2019-02-06 10:03:02 -05:00
Christopher Michael 65bf9c6e0f ecore-drm2: Remove useless if check
_ecore_drm2_use_atomic is already checked just above this, so there is
no need for this if statement
2019-02-06 10:00:51 -05:00
Marcel Hollerbach 3009bee9ee eo: remove whitespaces
remove the whitespaces from this file. Every editor in this world
removes unneccessay whitespaces at the end of a line. So every time i am
touching this header, i need to get rid of them, which is super
annoying. I know we are used to *not* doing such patches, but this is
just a waste of time, getting them out of the header every and every
single time.

Differential Revision: https://phab.enlightenment.org/D7880
2019-02-06 10:01:02 +01:00
Marcel Hollerbach 609e24eb85 eo: repair EO_CLASS_POINTER macros
the function has changed, but the macro was not adjusted.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7878
2019-02-06 10:00:57 +01:00
Xavi Artigas 04d1c54e1f docs: Minor Efl.Access.Window EO fixes 2019-02-05 13:29:48 +01:00
Mike Blumenkrantz c946b1477d eo: implement class overriding (+unit tests)
this enables an app or a platform to add an override for a given class,
then return a different object when that class is created. the benefit is
that a class can be internally customized by the app without needing to
modify upstream versions of that class

@feature
fix T7516

Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7702
2019-02-04 19:31:17 +01:00
Larry Lira 421b29dcb8 efl_interfaces: missing interfaces prefix
Summary: efl_ui_direction_readonly.c is missing "interfaces" prefix path in .eo.c include

Reviewers: lauromoura, cedric, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7848
2019-02-01 14:03:24 -05:00
Vincent Torri f7c560c311 replace hton and ntoh family functions with ones defined in eina
Summary: This fixes especially the execution of edje_cc on Windows

Test Plan: execution of edje_cc

Reviewers: cedric, raster

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7834
2019-02-01 14:25:35 +00:00
Marcel Hollerbach 32a2268f46 eo: fix efl_isa to work propertly with interfaces
mro only contains special interfaces, not in general all, in order to
have a working function, while NOT having a bad performance. In order to
achive that we just copy the code that is done on efl_isa for a object.
which is a linear walk of a list

ref D7857

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7860
2019-02-01 11:32:43 +01:00
Jihoon Kim 0f40a43e53 ecore_imf: fix wrong sample code
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
2019-02-01 16:45:12 +09:00
Jaehyun Cho f23f3074da Revert "evas: make efl_canvas_animation abstract"
Efl.Canvas.Animation class can be used for custom animation with
Efl.Player class' event callbacks as follows.

Example code:

void _anim_running_cb(void *data, const Efl_Event *event)
{
   //Do custom animation
}
{
   Eo *anim = efl_add(EFL_CANVAS_ANIMATION_CLASS, win);
   Eo *player = efl_add(EFL_CANVAS_ANIMATION_PLAYER_CLASS,
                        efl_animation_player_animation_set(efl_added,
                                                           anim));
   efl_event_callback_add(player, EFL_ANIMATION_PLAYER_EVENT_RUNNING,
                          _anim_running_cb, NULL);
}

As a result, Efl.Canvas.Animation is required to be a regular class
instead of an abstract class.

This reverts commit ea9ff9f547.
2019-02-01 15:53:44 +09:00
WooHyun Jung bd949111be efl_ui_win_part: remove unused interface
Summary:
Efl.Gfx.Entity is not used in Efl.Ui.Win.Part.
The interface can be added when it is needed later.

ref T5719

Test Plan: make check

Reviewers: zmike, bu5hm4n, cedric, Jaehyun_Cho, Hermet

Reviewed By: Hermet

Subscribers: Hermet, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T5719

Differential Revision: https://phab.enlightenment.org/D7844
2019-02-01 11:28:42 +09:00
Derek Foreman 03ca3c37e0 evas_private: Fix typo
Summary: Depends on D7853

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7854
2019-01-31 15:10:44 -05:00
Derek Foreman 94f5ea19bb evas_object_smart: Consistently use MY_CLASS
Summary:
While it may not be popular opinion that MY_CLASS is confusing and does
more harm than good, using it sometimes and not others in the same file
is pretty obviously not helpful to casual readers.

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7852
2019-01-31 15:06:46 -05:00
Mike Blumenkrantz 2a218e28c3 efl_ui_win: add 'exit_on_close' property and unit test
Summary:
this property can enable the associated window to quit the main loop with
the passed exit code when the window is destroyed

@feature
fix T5494

Depends on D7594

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T5494

Differential Revision: https://phab.enlightenment.org/D7595
2019-01-31 11:54:58 -05:00
Mike Blumenkrantz 9b129b5c7a efl_ui_win: add 'exit_on_all_windows_closed' class property and unit test
Summary:
this property causes the main loop to exit with the passed exit code
when the standby event is triggered

@feature
ref T5494

Reviewers: cedric, bu5hm4n, segfaultxavi

Reviewed By: cedric, bu5hm4n, segfaultxavi

Subscribers: segfaultxavi, bu5hm4n, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T5494

Differential Revision: https://phab.enlightenment.org/D7594
2019-01-31 11:54:54 -05:00
Christopher Michael a6c3be1351 elput: Update doxygen parameters
NB: No functional changes
2019-01-31 08:45:42 -05:00
Michaël Bouchaud (yoz) 72f9a94188 ecore_drm2: Add API to allow settings tap-to-click on pointer device
Summary:
Add a way to configure pointer device with tap-to-click features.

@feature
Depends on D7843

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7847
2019-01-31 08:41:04 -05:00
Michaël Bouchaud (yoz) ebc84e82ac elput: Add API to allow settings tap-to-click on pointer device
Summary:
Add a way to configure pointer device with tap-to-click features.

@feature

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7843
2019-01-31 08:39:41 -05:00
Chris Michael 28a88bbfc8 elm_code: Fix formatting of error string
the ERR line here used %s for 'mode', but 'mode is an unsigned int
thus causing compiler warning. Fix it.
2019-01-31 08:28:34 -05:00
Chris Michael 3fcdada0fd ecore-evas-buffer: Fix formatting
NB: No functional changes
2019-01-31 08:11:54 -05:00
Bowon Ryu cc5a45101f efl_ui_tab_bar: fix tab sizing issue
Summary:
The default value of hint_align has changed.
So change the hint_align of tab(layout) to HINT_FILL.

* Recently, the size_hint_fill API has been added,
  but currently tab_bar is not available because it uses evas_object_box.
* I plan to change evas_object_box to efl.ui.box in the future.

Test Plan: elementary_test -to efl.ui.tab_pager

Reviewers: Jaehyun_Cho, YOhoho

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7835
2019-01-31 18:56:26 +09:00
SangHyeon Jade Lee 5525c89a3d efl_model : rename all efl_model based classes.
Summary:
As the result of discussion in T7458,
we need to rename all efl_model based classes with efl_XXX_Model sequence.
I've run few vote for this, see V42, V43
few classes are totally renamed as our consideration of misnaming.

| Efl.Model_Loop | Efl.Loop_Model |
| Efl.Model_Item | Efl.Generic_Model |
| Efl.Model_Container | Efl.Container_Model |
| Efl.Model_Container_Item | Efl.Container_Model_Item |
| Efl.Model_Composite | Efl.Composite_Model |
| Efl.Model_Composite_Boolean | Efl.Boolean_Model |
| Efl.Model_Composite_Boolean_Chlidren | Efl.Boolean_Model_Item |
| Efl.Model_Composite_Selection | Efl.Select_Model |
| Efl.Model_Composite_Selection_Chlidren | Efl.Select_Model_Item |
| Efl.Model_View | Efl.View_Model |
| Eio.Model | Efl.Io.Model |
| Efl.Ui.Model_State | Efl.Ui.State_Model |
| Efl.Ui.Model_Size | Efl.Ui.Size_Model |
| Efl.Ui.Model_Exact | Efl.Ui.Exact_Model |
| Efl.Ui.Model_Average | Efl.Ui.Average_Model |
| Efl.Ui.Model_Homogeneous | Efl.Ui.Homogeneous_Model |

I worried about Efl.Io.Model changes, cause it is widely used,
but as I tested, there is no issue found yet.

Eldbus.Model also may can changed Efl.Dbus.Model,
but I cannot found any class who using Efl.Dbus namespace,
so I left it future work.

Test Plan:
Run the Make Test,
it works well except Efl test about selection.
there are class inheritance problem exist in select_model,
I reported it and will fix it in another patch.

Reviewers: cedric, felipealmeida, woohyun, Hermet

Reviewed By: cedric

Subscribers: lauromoura

Tags: #efl, #do_not_merge

Differential Revision: https://phab.enlightenment.org/D7533
2019-01-31 14:59:37 +09:00
Myoungwoon Roy, Kim f4e5948c0f elm: fix dereferencing issue and add error handling and remove unreachable codes.
Summary:
I had fixed dereferencing issue and added chmod error handling(elm_code_file)
I had removed unreachable codes which remains after changing arguments initiallization(efl_ui_win)

Test Plan: Run unit test cases

Reviewers: eagleeye, Jaehyun_Cho, Hermet, zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7816
2019-01-30 15:53:12 -05:00
Cedric BAIL f30c7c6a1e elementary: add internal Efl_Ui_Model_Average.
This model enable View that require to compute the size of their item
to rely on its logic to store all items size independently. It has the
same interface as the Homogeneous and should be exchangeable for a View.
It provide an average total size at all time. It use Efl.Ui.Model_Exact
to do most of the work and is a good example on how to alter a Model
logic.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7661
2019-01-30 12:06:18 -08:00
Cedric BAIL 4aa6285a75 elementary: add internal Efl_Ui_Model_Exact.
This model enable View that require to compute the size of their item
to rely on its logic to store all items size independently. It has the
same interface as the Homogeneous and should be exchangeable for a View.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7660
2019-01-30 12:06:16 -08:00
Cedric BAIL 3b10089ff3 elementary: add internal Efl_Ui_Model_Homogeneous.
This model enable View that require to compute the size of their item
to rely on its logic to have all items of the same size. It is the
equivalent of the Homogeneous behavior of Genlist, except that now this
behavior can be customized outside of the View logic itself.

Differential Revision: https://phab.enlightenment.org/D7659
2019-01-30 12:06:14 -08:00
Cedric BAIL 0d5d832b87 elementary: add internal Efl_Ui_Model_Size.
This model enable View that require to compute the size of their items
to rely on an interface to provide the properties they need to get the object
size. This is the base class for all the sizing logic of the new List/Grid View.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7658
2019-01-30 12:06:13 -08:00
Cedric BAIL 1dadeac05e ecore: add an index property on Efl.Model_Composite and handle children_slice_get.
This will enable inheriting class to not have to implement as much code. This patch
fix also all class that use Efl.Model_Composite and its test.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7654
2019-01-30 12:06:11 -08:00