Commit Graph

2324 Commits

Author SHA1 Message Date
Marcel Hollerbach e8039ffc2d efl_ui_focus_manager_root_focus: correctly call state eval
when a new item is registered we should eval state to unregister the
rect
2017-10-10 19:28:47 +02:00
Marcel Hollerbach e3c87f8fed efl_ui_focus_manager_root_focus: only register if we really need to 2017-10-10 19:28:47 +02:00
Marcel Hollerbach 6ba107b899 elm: introduce efl_ui_focus_layer
what it does is described in the mixin

this commit refactors inwin hover popup ctxpopup to use that behaviour.
Since it should do exactly that.
2017-10-10 19:28:47 +02:00
Marcel Hollerbach ac18f7fe04 elm_conform: use legacy elm_object api! 2017-10-10 19:28:47 +02:00
Marcel Hollerbach b48ef579e6 elm_dayselector: remove old api! 2017-10-10 19:28:47 +02:00
Marcel Hollerbach 5ca9853eda elm_toolbar: remove old api! 2017-10-10 19:28:47 +02:00
Marcel Hollerbach 7cef664696 elm_slideshow: remove old api! 2017-10-10 19:28:47 +02:00
Marcel Hollerbach 47b0afb315 elm_seperator: remove old api! 2017-10-10 19:28:47 +02:00
Marcel Hollerbach d2a37a7f40 elm_scroller: remove old api! 2017-10-10 19:28:47 +02:00
Marcel Hollerbach 5cac7531bd elm_prefs: remove old api! 2017-10-10 19:28:47 +02:00
Marcel Hollerbach 9d88181510 elm_label: remove old api! 2017-10-10 19:28:47 +02:00
Marcel Hollerbach 092b8b8039 elm_diskselector: remove old api! 2017-10-10 19:28:47 +02:00
Marcel Hollerbach 027ffd65c8 elm_inwin: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach dd17fe8de0 elm_index: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach ff792bd3e8 elm_hover: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach cddd333b7d elm_flipselector: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 9d3559cd6b elm_fileselector_entry: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach bd628bbfcc elm_fileselector: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 265a26f68e elm_entry: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 233bd3cdca elm_bubble: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach e01486c2ca elm_actionslider: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 7b6ef8910c efl_ui_video: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 6bc769b317 efl_ui_text: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 6f9beb01c5 efl_ui_slider: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 1ef5ea660f efl_ui_progressbar: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach f918975bf0 efl_ui_panes: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach b9264b7d6c efl_ui_layout: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 4884793cf0 elm_naviframe: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 8019639b29 elm_multibuttonentry: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach a637086531 efl_ui_frame: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 6fe4d8a315 efl_ui_flip: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach e922d753b8 efl_ui_clock: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach a249b550e9 efl_ui_button: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 44f33f1e4c elm_table: remove old api! 2017-10-10 19:28:46 +02:00
Marcel Hollerbach 21ff1ae349 elm_grid: remove old api! 2017-10-10 19:28:45 +02:00
Marcel Hollerbach faf664cc1d efl_ui_grid: remove old api! 2017-10-10 19:28:45 +02:00
Marcel Hollerbach aa6059abd5 elm_box: remove old api! 2017-10-10 19:28:45 +02:00
Marcel Hollerbach 7b11317159 efl_ui_box: remove old api! 2017-10-10 19:28:45 +02:00
Marcel Hollerbach 4cb080b31c elm_toolbar: we need to register the items in the submanager 2017-10-10 19:28:30 +02:00
Jean-Philippe Andre 4c0167916b focus: Avoid infinite loop in window
I kept the safety error message for easier debugging.
Test scenario:
  elementary_test -to "Window Inline"
  Click on an entry. Press Shift+Tab.

Ping @bu5hm4n
2017-10-10 19:32:50 +09:00
Jean-Philippe Andre f75d2e6be2 widget: Make focus_mouse_up_handle internal
I don't think this belongs to the public EO API.

Ref T5363
2017-10-10 18:53:43 +09:00
Jean-Philippe Andre 15f95c374e combobox: Mark as legacy only if legacy API is used
See bc2fe6bb77
2017-10-10 18:44:35 +09:00
Marcel Hollerbach 837f83114a efl_ui_focus_manager_calc: we dont need the explicit root handling,
that is done later in line 1205
2017-10-09 16:29:28 +02:00
Marcel Hollerbach 282883ff9c efl_ui_focus_manager_calc: focus a child if a logical is focused
If you call focus_set(m, o) where o is a logical child, then the focus
will go to any none logical child of o, or if there is nothing in the
children of o, then the focus will remain on the now focused element.
2017-10-09 13:10:51 +02:00
Subodh Kumar 321673fe59 elementary: passing NULL to variadic funtion can be undefined.
Summary:
Passing NULL to variadic funtion may lead to undefined behaviour.
@fix

Test Plan: NA

Reviewers: lukasz.stanislawski

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-10-06 09:50:22 -07:00
Yeongjong Lee bc2fe6bb77 elementary: fix unintentional visibility of elm_hover in combobox constructor
Summary:
since fd9cf1d3b6, All Eo canvas objects remain
visible by default.
but elm_hover doesn't want to be shown in combobox constructor.
showing elm_hover in constructor occurs unexpected behavior.
this fixes that bug.

Test Plan:
1. elementary_test - Combobox
2. Click the combobox to Expand the list.

Reviewers: jpeg, cedric

Reviewed By: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-10-06 09:46:24 -07:00
Cedric Bail 699a97875a elementary: update code highlighting to follow eolian syntax change. 2017-10-04 11:32:09 -07:00
Chris Michael 31ef275388 elementary: Mark unused function parameter as unused
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-10-02 08:19:42 -04:00
Daniel Hirt 3462390b5c Ui layout: handle Efl.Text legacy code better
This should cover the cases without need to duplicate a lot of code.
Follow-up to deca3c947f.
2017-10-01 19:51:28 +03:00
Al Poole 9ab866f32c elm_code_widget: set appropriate background colour. 2017-10-01 11:10:28 +01:00
Marcel Hollerbach e6c8093d49 efl_ui_focus_object: also implement focus.get 2017-09-30 20:29:07 +02:00
Marcel Hollerbach 1ad1d8010e efl_ui_focus_manager_calc: correctly specify owned where its needed 2017-09-29 11:28:15 +02:00
Marcel Hollerbach e5d1c1f195 Revert "elm focus manager - dont leak child lists when updating focus order"
This reverts commit bd6dcbb044.

This was not fixing the issue, just ducktaping over a bug in eolian, the
bug is now probebly fixed in eo / eolian.
2017-09-29 11:28:15 +02:00
Carsten Haitzler 66cd5cf2d5 efl ui textpath - remove more unused vars 2017-09-29 14:52:04 +09:00
Carsten Haitzler 522488eed9 efl ui textpath - remove unused vars due to dead code removal
fix warning
2017-09-29 12:32:10 +09:00
Carsten Haitzler 17e2783c6c elm atspi - fix checking return of eldbus_message_iter_arguments_get
fix coverity CID 1353590
2017-09-29 12:26:57 +09:00
Carsten Haitzler 6f9857ccab elm config - fix eina value setting to check get return
fix CID 1357139
2017-09-29 12:26:57 +09:00
Carsten Haitzler 4a9d168ac3 elm widget - event legacy propagation - remove coverity warning
fix CID 1379920 - event_flags is actually never NULL or undefined in
the function logic. it's always set to point to the specific event
flags field depending on struct type or the function will return
before using the pointer.
2017-09-29 09:09:04 +09:00
Carsten Haitzler 2ac1323fac efl ui focusable - remove pointless check of ptr already checked
coverity fix CID 1381492
2017-09-29 09:00:43 +09:00
Daniel Kolesa 7c7e5ec423 eolian: validate inner types of complex types
This makes sure the inner types are all correctly defined and
that freefuncs are actually correctly filled.
2017-09-28 23:22:05 +02:00
Daniel Hirt deca3c947f Ui layout: support markup for efl_part()
Also implement markup_set/get for:
  - Efl.Ui.Frame
  - Efl.Ui.Slider

Users may choose between text_set/get and markup_set/get, depending on
whether they want to escape their text or not.
2017-09-28 19:32:02 +03:00
Shinwoo Kim 6f06979cdc elementary: atspi - fix dbus abort
This patch set fix following abort occured on dbus side.

(gdb) bt
0   __GI_raise (sig=sig@entry=6)
1   __GI_abort ()
2   _dbus_abort ()
3   _dbus_warn_check_failed
4   dbus_message_iter_append_basic
5   append_basic
6   eldbus_message_iter_basic_append
7   _bridge_signal_send
8   _text_text_removed_send
9   _bridge_accessible_event_dispatch
10  _elm_interface_atspi_accessible_event_emit
11  elm_interface_atspi_accessible_event_emit
12  _entry_changed_user_signal_cb

(gdb) f 12
(gdb) p *$1
$2 = {change = {insert = {content = 0x0, pos = 0, plain_length = 1},
                del = {content = 0x0, start = 0, end = 1}},
      insert = 0 '\000', merge = 0 '\000'}

The following patch set would fix the root cause of this problem.
https://phab.enlightenment.org/D5240
2017-09-28 20:29:33 +09:00
Jean-Philippe Andre 76ab8e3f54 efl: Remove @owned tag from pack/content APIs
Refer to the previous commits for more context.

When an evas object is given to a container, be it with a variant of
efl_pack() or efl_content_set(), its "ownership" is given to the new
parent container. But ownership here means that the new container may
delete the child when it sees fit (i.e. when the container itself dies,
for instance). This does not mean that a reference was passed from the
calling context to the container. The actual EO owner of the child is
always the canvas or another canvas object, even if it the object is
unpacked.

Note: This means that invalid calls to efl_pack or efl_content_set will
not automatically delete the child object. This is the same as legacy,
and results in floating objects. Just check the return value! :)

Hopefully this is correct for bindings.
2017-09-28 17:29:03 +09:00
Carsten Haitzler dea4e5aa46 elm widget - fix possible null ptr access found by coverity
_propagate_event_legacy checked event_flags ptr for null then just
derefs it anyway... so check everywhere. fixes CID 1379920
2017-09-28 15:28:00 +09:00
Carsten Haitzler 1dcac1853d efl ui focus - fix coverity complaints about derfer before null check
indeed there was a child cnull check after dereferencing the child...
so check completely. fix CID 1379925
2017-09-28 15:28:00 +09:00
Carsten Haitzler 49df80aa6f efl ui win - quieten coverity complaint about dead code
the count ?: 1 check is pointless as count is already checked above.
make it clearer that it's > 0 and remove the ? check. silence for
coverity CID 1380542
2017-09-28 15:28:00 +09:00
Carsten Haitzler 35b65e0643 efl ui text - remove logically dead code
it is indeed pointless code. fix coverity CID 1380544
2017-09-28 15:28:00 +09:00
Carsten Haitzler bee7bf5767 efl ui text - fix resource leak of strbuf and pointless buffer code
edje_object_part_text_style_user_push() doesnt need you to
stringshare_add a string... some other code did it because it "gets"
the string from an obj that might free/delete the string on push etc.
or before so it keeps a copy but then it stringshare_del's it
anyway... the _textpath_ellipsis_set() code creates a trsbuf that
wasn't freed if enabled was false and it never stringshare_del'd the
string is stringshare_added... all of this was pointless code anyway.
you could just pass the constant string directly.

fixes CID 1380543
2017-09-28 15:28:00 +09:00
Amitesh Singh 8ab7042149 intv slider: use scope_get instead in finalize() 2017-09-28 12:19:49 +09:00
Cedric BAIL 1ac4a03d4f elementary: avoid segfault when getting focus due to an infinite recursion.
This was two line switched and setting the callbacks on the wrong object.
2017-09-26 15:21:12 -07:00
Cedric BAIL 0b37853f14 elementary: actually implement the terminate event. 2017-09-26 10:15:07 -07:00
Cedric BAIL 8e5a79f957 elementary: don't crash if API is called after shutdown. 2017-09-26 10:15:07 -07:00
Cedric BAIL 0b8e3e6fcf elementary: restore input propagation and destroy array properly. 2017-09-26 10:15:07 -07:00
Jean-Philippe Andre 7cc23b1754 elm: win part EO files are public 2017-09-26 22:00:02 +09:00
Jean-Philippe Andre 56667a84b1 win: Remove invalid callbacks
Faulty commit (guess who?):
  596dba5fe5

See also d567faa778

Finally make check works again. That was... a painful lot of patches to
fix.
2017-09-26 18:15:45 +09:00
Jean-Philippe Andre e1df334caf Revert "Fix infinite recursion for legacy + efl ui win events"
This reverts commit d567faa778.

This is not trying to fix the root cause for the infinite loop.
2017-09-26 18:11:38 +09:00
Jean-Philippe Andre ba12712e0d elm: Fix shutdown of atspi (unregister handlers)
@fix
2017-09-26 18:11:16 +09:00
Jean-Philippe Andre e401b223f8 elm: Delete atspi root object on shutdown
Ugly implementation but this will do.

@fix
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre 5cea60d157 elm: Fix elm_shutdown
ecore could not shut down properly in an elm_init()/elm_shutdown()
cycle, with 7 remaining references, all because of a typo.

This should help @cedric as well
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre 5258a6d46f win: Avoid calling same function twice on shutdown
This avoids calling:
  ecore_evas_callback_delete_request_set
  ecore_evas_callback_resize_set
twice when deleting a window. Also adds safety over sd->ee.
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre f3c9d25c1f elm: Properly unregister providers on shutdown
This should fix some errors in make check with CK_FORK=no

Test:
  <efl/build>/src$ CK_FORK=no ./tests/elementary/elm_suite elm_config

@fix
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre c2ae93089b win: Avoid safety ERR in efreet
This is an error happening in make check. Annoying but mostly harmless.
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre d453579ddf elm: Fix module load with ELM_RUN_IN_TREE
Somehow I was seeing a ton of errors with "prefs_iface" not found in
make check. This code could not have worked since the merge of
elementary in EFL tree...

@fix
2017-09-26 17:58:07 +09:00
Sungtaek Hong ebff5e8639 elm_bg: rename elm_bg to Efl.Ui.Bg
Summary:
elm_bg was supposed to be used only in legacy,
but since we need a common object to be used as a background of widgets,
it is now renamed as efl_ui_bg and supports EO APIs.

Reviewers: cedric, jpeg, woohyun

Differential Revision: https://phab.enlightenment.org/D5147
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre 8557fe818f input: Move pointer props to Canvas
efl_input_pointer_position is defined by two classes... bad!

Fixes T6066
2017-09-26 17:58:07 +09:00
Lukasz Stanislawski b3ffd78237 elm: rename Elm.Interface.Atspi.Text => Efl.Access.Text
Reviewers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5167
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre c9f51e450b widget: Fix translation of default text parts
Note: fileselector uses this translation API

Ref T5363
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre 5f96c6fb4b widget: Remove domain_part_text_translatable from EO
This removes the last remaining legacy-style part API from Widget.
I think this is redundant with the property "translatable_text"
introduced in Efl.Ui.Translatable.

Ref T5363
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre e9dfcb44ff widget: Implement translation API in layout
This moves the API entry points from Widget to Layout parts. I don't
think the other widgets support translation, but that is easy to fix.
The actual code implementation remains in elm_widget.c.

Legacy-only widgets are covered by Part_Legacy, while all EO widgets
that have text inherit from Layout (except Win but I don't think the
window title was translatable in legacy).

This removes 2/3 remaining part APIs from Widget.

Ref T5363
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre 839c4ed395 elm: Introduce interface Efl.Ui.Translatable
This will be used to replace the part translation API in Elm.Widget. It
should work for both parts and non-parts (ie. the main text of a button,
for instance).

For now I'm taking the following approach:
 - All efl_text_set/get strings are untranslatable, i.e. get() returns
   the visible string, set replaces and can not be translated.
 - translatable_text_set/get needs to be used to enable automatic
   translation, which in turns calls efl_text_set to modify the visible
   string. Thus, translatable applications will have to use
   efl_ui_translatable_text_set a lot more than efl_text_set, unless
   they translate strings application-side.

Note that some other frameworks take a simpler approach equivalent to
calling efl_text_set() with an already translated text. This prevents
runtime language changes of the application, unless the application
handles them specifically.
2017-09-26 17:58:07 +09:00
Jean-Philippe Andre 2b7f9b6dfd widget: Add tiny doc for Efl.Ui.Widget.Part 2017-09-26 17:58:07 +09:00
Carsten Haitzler d567faa778 Fix infinite recursion for legacy + efl ui win events 2017-09-26 16:44:45 +09:00
Daniel Zaoui abc075aeb3 Fix crash when an application wants to get the popup item class
Since elm_popup_item.eo.h is only included in elc_popup.h, the EAPI is
not well defined, resulting in a crash when, in a simple C file, the
item class is tried to be accessed.
By including the H file in elc_popup_eo.h, we make it public (as the
other item classes) and solve the EAPI issue.

Thanks @jpeg for helping me to solve this issue.
2017-09-26 10:16:44 +03:00
Cedric BAIL fdc92ca868 elementary: provide a new initialization macro that support lifecycle.
EFL_MAIN_EX require efl_main, efl_resume, efl_pause and efl_terminate
to be working. Quicklaunch support added too.
2017-09-25 15:51:19 -07:00
Cedric BAIL 596dba5fe5 elementary: provide and implement lifecycle event on the window.
pause event means that the window is not visible anymore to any user.
resume is triggered when the window became visible again or just
became visible again.
2017-09-25 15:48:53 -07:00
Daniel Hirt ad3199ffc8 Ui text: use proper Efl.Text API to set text
Fixes error message during initialization.
2017-09-25 12:51:49 +03:00
Daniel Hirt f5560cb511 Ui text: use eina_value_get and not eina_value_pget
CID 1381328
2017-09-25 12:51:49 +03:00
Carsten Haitzler 2dac4a4efe elm hoversel - fix alignment in ephoto
fixes T6078

@fix
2017-09-25 18:23:04 +09:00
Jean-Philippe Andre 64eef9b223 inwin: Fix oopsie in previous commit
Bad push! >_<
2017-09-25 14:02:43 +09:00
Jean-Philippe Andre 2e36535190 inwin: Fix inwin (default content set/get/unset)
Thanks @JackDanielZ for the report!
This makes efl_content_set/get/unset APIs work on the inwin, even though
this is a legacy-only widget (at least right now).
2017-09-25 11:30:28 +09:00
Jean-Philippe Andre f76569a8b1 layout: Remove default content implementation
Legacy API is supposed to resolve the default content part name before
calling the EO API. Efl.Ui.Layout itself doesn't handle default content.
2017-09-25 11:20:49 +09:00
Marcel Hollerbach a78ecf089c elm_hover: do not register itself
we are already registered as root in that manager
2017-09-23 22:34:08 +02:00
Marcel Hollerbach 884bf2d06b elm_widget: abort is probebly a bit too much 2017-09-23 22:34:08 +02:00
Daniel Kolesa 9009d3dae4 eolian: add any_value_ptr
Because pointer Eina_Values and value Eina_Values have slightly
different semantics (when it comes to resource management) it's
better to split them.
2017-09-22 20:25:31 +02:00
Daniel Kolesa 3d8081d085 eolian: rename generic_value to any_value 2017-09-22 20:16:06 +02:00
Daniel Kolesa f36e5bd543 eolian: add mstring
This is a new type representing a mutable string (no const).
Regular strings cannot be made mutable with @owned because
they might be hidden behind typedefs.
2017-09-22 17:10:42 +02:00
Daniel Kolesa fdd27cadf8 eo: make more freefuncs implicit 2017-09-22 16:17:19 +02:00
Vincent Torri 0cdd501246 EFL For WIN32: Replace HAVE_EVIL define with _WIN32 2017-09-22 05:06:10 -05:00
Andy Williams ad6a858aad elm_code: respect event hold for key_down 2017-09-21 12:24:51 +01:00
Jean-Philippe Andre 849813fb84 layout: Fix slider label using proper part type
This relies on the new edje API that gives us the exact type of a part.
This fixes the shortcomings of edje_edit_part_type_get() and returns a
proper Text part type for efl_part(slider, "elm.units.max").

See previous commits:
  "edje: Add part_type_get API"
  "elm: Split off text and content for efl_part"
2017-09-21 12:28:20 +09:00
Jean-Philippe Andre 2dbd704dae hover: Fix hover parts usage
The string comparison was invalid for full part names. It worked with
the aliases, by chance, not by design.

This got broken by eee60abbcf but using full part names from the
application side was already broken before that.

@fix
2017-09-21 12:28:20 +09:00
Jean-Philippe Andre 282928465c elm: Resolve part alias in legacy APIs only
This fixes make check.
2017-09-21 12:28:20 +09:00
Jean-Philippe Andre 112edeeea8 elm: Remove range "span_size" API in EO
Reasons:
 - This API has been confused with the min size of the widget, resulting
   in badly laid out applications.
 - The EO API was not very nice (Range is about numbers, the Gfx size
   hint in a part is really ugly).

While I understand the value of this API and how it can be used in
scalable applications, it is in fact not absolutely necessary.
Alternatively to that span size, the widget min size can already be
defined from the application side, or the widget can simply be expanded
to fill in its parent.

This can obviously be reinstated later if the need arises for EO. For
now, keep this feature as legacy-only.
2017-09-21 12:27:34 +09:00
Jean-Philippe Andre 28b387821d elm: Split off text and content for efl_part
This is VERY tricky.
For legacy, just create an internal class that has both. It's easier
this way. For parts that are handled by Layout directly, we know from
Edje which type to return.

For EO objects we should know from the part name which kind of part we
are dealing with:
 - text (overridden by the widget)
 - content (overridden by the widget)
 - special (new efl_part based functions)
 - generic (handled by Layout)

Note: Efl.Ui.Slider was handling "span size" on ALL parts. That's bad...
This is now limited to "span" only.
2017-09-21 12:27:34 +09:00
Jean-Philippe Andre 0339ad7740 elm: Move base implementation for efl_part in widget
This means that ALL part handles inherit from the base part class
Efl.Ui.Widget.Part. Layout is the only exception where Efl.Part is
specially overridden.

This is a first step towards generic part APIs, including background in
all widgets.
2017-09-21 12:27:33 +09:00
Daniel Hirt 1a854d892f Ui text: add Efl.Ui.Text_Async object
Adds "Efl.Ui.Text_Async" object.
This new widget uses the "async_layout" functionality of the underlying
Efl.Canvas.Text object.

Currently, if "editable" mode is enabled, there is no asynchronous
layout, as interactive operations (e.g. typing) should get processed
immediately. Thus, only "non-editable" instructs the text object to do
asynchronous layout.

@feature
2017-09-20 14:50:09 +03:00
Carsten Haitzler 2510f68ff3 efl ui layout - handle content unset properly and remove the unset item
the content unset in some cases - specifically terminology seems to
put the item back in and doesnt remove it... causing it later to be
deleted if unset to remove it and re-use it (which is rarely done).

@fix
2017-09-20 17:32:42 +09:00
Daniel Hirt acd1c409a0 Ui text: add null checks for anchor update
Add null checks in case item was not found.
Also use one more emoticon to test the provider.
2017-09-20 09:19:33 +03:00
Daniel Hirt d44131a3aa Edje: move selection-related part_text API to legacy 2017-09-20 09:19:33 +03:00
Jean-Philippe Andre 706cf9c488 elm: Fix invalid uses of Efl.Orientation
I think this closes the orientation vs. direction problem.
RTL vs. AnyRTL is not fully handled yet but this becomes a
widget-per-widget issue (eg. should a box in a RTL locale be mirrored if
set to horizontal?).

Fixes T5870
2017-09-19 18:53:35 +09:00
Sungtaek Hong 40e23ca459 efl_ui_image: add new scale type: EFL_UI_IMAGE_SCALE_TYPE_TILE
Summary:
Tile is common type which can be used eg: background.
This is added to scale type which can be set/get by
efl_ui_image_scale_type_set/get()
@feature

Test Plan:
Run elementary test
           Run Image Scale Type
           Check radio "Tile".

Reviewers: jpeg, cedric, woohyun

Differential Revision: https://phab.enlightenment.org/D5119
2017-09-19 18:18:07 +09:00
Jeonghyun Yun cc691776f3 els_tooltip: Fix to use some functions before tooltip_test_set or tooltip_content_cb_set
Summary:
If user call tooltip_orient_set or tooltip_style_set or tooltip_window_mode_set
before tooltip_test_set or tooltip_content_cb_set, those functions doesn't work.
Because elm_tooltip will be created when tooltip_content_cb_set is called.
I fixed logic to use some functions before tooltip_test_set or tooltip_content_cb_set.

Test Plan: elementary_test -> Popups -> Tooltip

Reviewers: jpeg, Jaehyun

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5183
2017-09-19 17:05:15 +09:00
Sungtaek Hong 40be6c9582 elm_map: keep overlays list when showing overlays
Summary:
In elm_map_overlay_show and elm_map_overlays_show,
it frees overlays list members. This lists are used
in elm_map_overlay functions, so should remain.

Test Plan:
1. Run elementary_test -> Geographic -> Map
2. Click group overlay (whose text is "3") -> bubble appears
3. Click "Show" button -> observe no more Eina Magic Check Failure appear.

Reviewers: jpeg, cedric, woohyun

Differential Revision: https://phab.enlightenment.org/D5191
2017-09-19 16:37:00 +09:00
Carsten Haitzler 50487b4575 efl po files - fix LTR/RTL translation string to be correct for langs
also add the comment in the code for trsanslators

@fix
2017-09-19 16:09:21 +09:00
Lukasz Stanislawski fcbdea364e elm: rename Elm.Interface.Atspi_Action => Efl.Access.Action
Reviewers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5166
2017-09-19 11:36:28 +09:00
Lukasz Stanislawski 3e6cc83369 elm: rename Elm.Interface.Atspi.Selection => Efl.Access.Selection
Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5165
2017-09-19 11:18:22 +09:00
Jean-Philippe Andre 1e0b005829 text: Remove unused EO structs
Bad copy & paste?
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 3617053547 win: Use Eina.Size2D for pointer position
Also rename the function for more consistency.
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 64ebdd9c7b photocam: Use Eina.Rect for image_region 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre e4517b28d6 efl: Use Eina.Size2D for screen size
This API isn't so great when considering Wayland...
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre a3250f975a efl: Use Eina.Size2D for image load size 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 89a7d9ea8e efl: Use Eina.Size2D for image size 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre b19ee757e5 efl: Use Eina.Size2D in Gfx.View 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 2df8ad36b4 evas: Use Eina.Slice on the stack (gfx.buffer) 2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 1f242afdef evas: Use Eina.Size2D for gfx.buffer
For consistency.
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre 686366a03b evas: Use Eina.Rect for object list functions
- objects_at_xy_get
- object_top_at_xy_get
- objects_in_rectangle_get
- object_top_in_rectangle_get
2017-09-19 10:51:48 +09:00
Jean-Philippe Andre bfd9487b94 efl: Use Eina.Size2D for Efl.Canvas.max_image_size
Rarely use
2017-09-19 10:51:48 +09:00
Daniel Zaoui 9c74548e08 Multibuttonentry: set as clickable
The clicked event is registered internally so the widget should be
considered as a clickable interface.
2017-09-19 00:37:59 +03:00
Marcel Hollerbach 97d150daad elm_widget: eval the manager after the logicals are evalulated
for the obj is the only child of parent this would have lead to manager
  beeing NULL.
2017-09-18 15:49:43 +02:00
Marcel Hollerbach dcedaf8e09 elm_widget: also update if visible set is intersected
the error case is when a element is shown, but its parent was not.
In that case intersect returns immidiatly, without evalulating the focus
state again.
2017-09-18 15:49:43 +02:00
Jean-Philippe Andre f53fe993a6 edje: Merge calc_size_min_restricted & calc_size_min
calc_size_min was just a helper passing 0,0 to the restricted form.
Let's not duplicate APIs in EO and use an optional argument instead.
Bindings should be nicer and C could use a macro if it's too cumbersome
to pass in 0,0.
2017-09-18 17:37:23 +09:00
Jean-Philippe Andre 641a58f735 edje: Use Eina.Size2D for min calc 2017-09-18 17:26:53 +09:00
Jean-Philippe Andre 942cbbed73 edje: Use Eina.Size2D for group min & max size 2017-09-18 17:26:53 +09:00
Jean-Philippe Andre d8eea084fb efl: Use Eina.Size2D for size hint aspect 2017-09-18 16:50:58 +09:00
Jean-Philippe Andre 6b5d155918 efl: Use Eina.Size2D for size hints base & step 2017-09-18 16:38:47 +09:00
Jean-Philippe Andre a72f3ec64e efl: Use Eina.Size2D for size hint combined min
For this patch I decided to add a pseudo legacy wrapper as the function
is called in a very large number of places. Fixing all those calls to
use the size2d form is a lot of work and a greater risk of b0rking
something.
2017-09-18 16:33:33 +09:00
Jean-Philippe Andre 7d2b4b6916 efl: Use Eina.Size2D for size hint restricted min
This is the "internal" or "intrinsic" minimum size, to be set by EFL and
not by applications.
2017-09-18 14:57:52 +09:00
Jean-Philippe Andre 3bff7363b5 efl: Use Eina.Size2D for size hint min 2017-09-18 14:42:52 +09:00
Jean-Philippe Andre d24dcb3c24 efl: Use Eina.Size2D for size hint max 2017-09-18 14:20:03 +09:00
Jean-Philippe Andre 4c634ed78e efl: Use Eina.Size2D for Efl.Gfx.size
Big patch as a lot of things call or reimplement size_set. Hopefully I
got it right... fingers crossed.
2017-09-18 13:34:50 +09:00
Jean-Philippe Andre 8fb194d969 efl: Use Eina.Position2D for Efl.Gfx.position
Note: This is a little bit more cumbersome in some places but in most
it's more convenient than (x,y).
2017-09-18 13:22:54 +09:00
Jean-Philippe Andre f3eff6eb3e efl: Introduce Eina.Rect and switch EO APIs to it
It's a complex struct but defined in EO as a simple struct. ABI-wise
it's equivalent to Eina_Rectangle. Some macros that use Eina_Rectangle
also work on Eina_Rect out of the box, most of the code dealing with
x,y,w,h will require no modifications either.

But Eina_Rect provides direct access to a size or position 2d component,
as well as the usual x,y,w,h. The field "rect" is provided as a
convenience for code dealing with both Eina_Rectangle and Eina_Rect. We
may or may not require it.

Note: Size2D could use unsigned values but I have spotted a few places
in the code that actually use -1 to indicate invalid size (as opposed to
0x0).

@feature
2017-09-18 13:22:52 +09:00
Jean-Philippe Andre cb3b4cc8d7 elm image: Fix async open to avoid multiple mmap
Reported by @jiin.moon:

In case of async_open for an elm_image, we try and open a file in a
thread, then map it and populate a bit, as this may take some time
(blocking I/O). This creates a mmap with eina_file_map_new. But later
evas image loaders will (usually) try and map the entire file with
eina_file_map_all() which creates another mmap. Since the size is
different (32Kb first then all) the returned map might be different
(it's up to the kernel to decide at this point).

So, in order to avoid having multiple maps on the same file, and try to
reduce the peak memory usage, we should prefer using the same map all
the time, i.e. the global one returned by eina_file_map_all().

This patch relies on the previous patch in eina_file which fixes
eina_file_map_populate() for the global map.

@fix
2017-09-18 11:58:53 +09:00
Jean-Philippe Andre 81f3099f32 flip: Fix invalid use of EOAPI in legacy header
This compiled fine with GCC but not with TCC.

@fix
2017-09-18 11:58:53 +09:00
Amitesh Singh 3e65945d5b intv slider: use scope_get instead
its better to use efl_data_scope_get() in eolian
functions except in finalize().
2017-09-18 10:40:49 +09:00
Daniel Kolesa 1afd3c215f eolian: correctness fixes in tests and eo files 2017-09-15 17:48:28 +02:00
Daniel Kolesa 78a5ac09f8 elementary: convert to new ownership 2017-09-15 17:05:30 +02:00
SangHyeon Jade Lee d3440a9867 genlist: process item block positioning before relative item deleted
process item for positioning proper relative block before it's
relative item is deleted.

Signed-off-by: SangHyeon Jade Lee <dltkdgus1764@gmail.com>
2017-09-15 12:11:55 +09:00
Amitesh Singh 3984148b8e efl.ui.clock: correct value_set/get & value_min/max APIs signature.
We could just pass Efl_Time value as copy by value to set time in setter APIs
and return Efl_Time value in getter APIs.

Thanks to @JackDanielZ for the report.

Fixes T6008
2017-09-13 20:38:52 +09:00
Jean-Philippe Andre 58c2c50dcc efl_access: Use Eina.Rectangle (EO) 2017-09-13 18:20:45 +09:00
Jean-Philippe Andre 89733b22f6 efl_gfx_fill: Use Eina.Rectangle for fill (EO) 2017-09-13 18:09:19 +09:00
Jean-Philippe Andre 13da5e980e efl_gfx: Use Eina.Rectangle for geometry (EO)
This saves a few lines already (without even having the proper helpers
for stack rectangles).
2017-09-13 18:03:34 +09:00
Jean-Philippe Andre 0c46fc7103 evas: Use Eina_Rectangle internally
Instead of Evas_Coord_Rectangle which is exactly the same thing but with
a different name and typedefs.
2017-09-13 18:03:34 +09:00
Jean-Philippe Andre d5a31f3f30 edje/elm: Rename _internal_ to _part_ (EO)
In Edje and Elementary, we have part objects, which are what is returned
by the interface efl_part(). Those objects can't be of an opaque type as
this doesn't work nicely with strongly typed languages such as C++ or
C#. In JS, Lua, C the types are weak and mostly runtime-based so it
doesn't matter much.

As a consequence, the documentation and the types need to look nice in
this EO API. Thus, we remove the abusive term "internal" and explicitly
call all those classes "part" something.

Eventually we want the types to be declared in the EO file so bindings
(C#, C++, ...) can generate the proper access methods, returning the
best possible types.

Note that right now a few of those part types are used in the legacy API
but don't actually need to be exposed externally.

This is kind of a mega commit that does all the renaming at once, but
it's really just a big sed operation. The power of good IDEs :)

Ref T5315
Ref T5306
2017-09-13 13:53:49 +09:00
Jean-Philippe Andre 8da23c4247 widget: Make part_text_translate internal 2017-09-13 13:43:55 +09:00
Jean-Philippe Andre 6d0957b0a5 widget: Rename focus_manager_factory to create
factory is not a verb :)

Ref T5363
2017-09-13 13:43:55 +09:00
Amitesh Singh 02b9aa0240 efl.ui.slider_interval: Add missing since tag 2017-09-13 12:22:54 +09:00
Jean-Philippe Andre 0885d0c405 elm: Fix use of Efl.Access APIs
See also 7d397c9f19

Thanks @stefan for the first fix patch, I simply failed to push this one
early enough.
2017-09-13 09:57:20 +09:00
Jean-Philippe Andre e4a440797b ctxpopup: Avoid safety error on call on null obj
See 6aa309ffb8
2017-09-13 09:57:05 +09:00
Jean-Philippe Andre 7ef714924a evas: Fix crash with smart objects
This is due to the previous patches.
2017-09-13 09:57:05 +09:00
Jean-Philippe Andre 8572cd5def evas/edje/elm: Remove all uses of clipped groups
This removes the uses of the *EO* class, obviously not the use of the
clipped smart objects.
2017-09-13 09:57:05 +09:00
Jean-Philippe Andre f5a56789e0 evas: Add internal API to make smart obj (un)clipped
Introduction to the problem:
 - Efl.Canvas.Group has a method member_add() to add sub objects.
 - Efl.Canvas.Group (simple smart object) does NOT actually delete the
   objects on deletion. But:
 - Efl.Canvas.Group.Clipped is a direct subclass and WILL delete the sub
   objects on deletion.

Semantically, all smart objects (at least in EO and Elementary) will own
and delete sub objects automatically. Some exceptions are:
 - Edje object (smart clipped) does not delete swallowed objects.
   Edje object is a "clipped" smart object but it pops out all swallowed
   children before getting deleted.
 - Evas box/table/grid also pop out their children before deletion.
   Those classes are all legacy & internal only.
 - Elm.Widget will "manually" delete all its sub objects at deletion, as
   it inherits from Efl.Canvas.Group but basically takes full ownership
   of the sub objects. Note that member_add shouldn't be used on a
   widget, the widgets do it themselves.

Also, smart clipped objects are much more convenient to use as they will
handle some things for you: color, visibility, moving and ownership.

So, the API member_add needs to be marked as own(). But right now
Efl.Canvas.Group does not own. Thus, here's the plan:
 - Mark clipped objects as such with an internal API
 - Merge clipped smart object features directly inside the standard
   smart object.
 - Get rid of Efl.Canvas.Group.Clipped entirely and watch all hell break
   loose.

Ref T5301
2017-09-13 09:57:05 +09:00
SangHyeon Jade Lee 50149e95cd genlist: fix decorate mode dangling pointer in deletion
fix decorate mode crash issue reported by Jack Daniel in T6000
which is occured by dangling pointer in item deletion on decorate mode.

Signed-off-by: SangHyeon Jade Lee <dltkdgus1764@gmail.com>
2017-09-12 18:41:37 +09:00
Amitesh Singh 6c8ec7a319 efl.ui.slider: implement efl.text intf
efl_text_set/get would work on slider text part.
2017-09-12 18:25:41 +09:00
Amitesh Singh 120d0673a9 efl.ui.range: remove interval_enable/set/get APIs from interface
Remove interval related apis from interface since interval slider
implements these features now. Although legacy range APIs would still
work on slider widget.
2017-09-12 18:08:42 +09:00
Amitesh Singh 9348094220 interval slider: Add new interval slider widget
This widget is a slider with two indicators which allows
to have interval of value.
2017-09-12 18:08:42 +09:00
Lukasz Stanislawski 9cf8e75668 elm: rename Elm.Interface.Atspi.Component => Efl.Access.Component
Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5164
2017-09-12 15:49:29 +09:00
Lukasz Stanislawski a55f2c96d4 elm: rename Elm.Interface.Atspi.Image => Efl.Access.Image
Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D5163
2017-09-12 15:48:39 +09:00
Lukasz Stanislawski dfd17229fd elm: rename Elm.Interface.Atspi.Window => Efl.Access.Window
Reviewers: cedric, jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5162
2017-09-12 15:48:10 +09:00
Lukasz Stanislawski 9f7786544e elm: rename Elm.Interface.Atspi.Value => Efl.Access.Value
Reviewers: jpeg, cedric, stanluk

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5161
2017-09-12 15:46:19 +09:00
Daniel Hirt 4dc2001dac Ui text: reduce calls to update functions
Reduces calls to update functions when entering text.
Also, remaining calls to update the cursors were moved to the decoration
jobs.
2017-09-12 08:47:12 +03:00
Carsten Haitzler b656e82b09 efl ui layout - fix warning fro wrong type... its a list not a hash. 2017-09-10 13:21:50 +09:00
Felipe Magno de Almeida c03afadf40 elm: Fix multiple connections from model to properties in Layout 2017-09-07 14:23:56 +09:00
Amitesh Singh ef1c178a28 Revert "elm: rename elm spinner to Efl.Ui.Spinner"
This reverts commit 9836116cab.

This is based on discussion today i had.
There would be a separate minimal spinner class instead
which facilates ways to extend it.
2017-09-07 11:18:08 +09:00
Jaehyun Cho 68b6a8f29f naviframe: Fix to finish transition for newly pushed item
Suppose naviframe top item is "A" and a new item "B" is newly pushed.
In this case, if "A" is deleted by elm_object_item_del() before
transition for "B" is started, then signal for "B" is also not sent and
"B" does not become visible.

The above issue happened if the transition effect was implemented by
using deferred signals (i.e. "pushed,deferred" and "popped,deferred").

To resolve the above issue, the signal only for the deleted item is not
sent.

Suppose naviframe top item is "A" and a new item "B" is newly pushed.
In this case, if "B" is deleted by elm_object_item_del() before
transition for "B" is started, then signal for "A" is still sent and "A"
becomes invisible.

To resolve the above issue, if the deleted item is the top item and it
is in the middle of item push, then all the signals related to the
deleted item are not sent.
2017-09-06 20:35:38 +09:00
Jaehyun Cho 26bacce0fd Revert "naviframe: Fix to finish transition for newly pushed item"
This reverts commit 8574128b67.
2017-09-06 20:35:35 +09:00
Shinwoo Kim 2f6e28881e elementary: atspi accessible name uses plain text
The markup information of accessible name is not necessary.
2017-09-06 19:54:59 +09:00
Shinwoo Kim 0e885e41e5 elementary: enhance accessible name of elm_entry
The accessible name of elm_entry was guide text.
The accessible name of elm_entry should be its text.
If there is not text information, then guide text is using for accessible name.
2017-09-06 09:58:07 +09:00
Jaeun Choi 61381f6e35 elm_panel: set content as a sub object of panel object
since sd->bx is not an elm object, it is excluded from parent-child tree.
in case of a non-scrollable panel, the content needs to be attached to the tree
as a child of panel object directly.
2017-09-05 17:09:37 +09:00
Thiep Ha 60aa0f2389 focus_manager: remove unused parameter warning 2017-09-05 14:44:21 +09:00
Thiep Ha 6a8cf155a3 textpath: correct map point number
The last map point is not counted if seg is too small.
Test: change start angle to 3, the last segment is missed.
2017-09-05 14:19:59 +09:00
Thiep Ha 54d1cc38a1 textpath: remove legacy api support 2017-09-05 12:09:08 +09:00
Thiep Ha 967e94dc6b textpath: do not process line if failed to allocate segment 2017-09-05 12:02:01 +09:00
Thiep Ha b55cb4feb1 textpath: correct data gets from path
values of px0, py0 should be stored from previous command.
2017-09-05 11:55:07 +09:00
Jaehyun Cho 8574128b67 naviframe: Fix to finish transition for newly pushed item
If current item was deleted while new item was pushed, then the signals
for the newly pushed item was not sent.

The above issue happened if the transition effect was implemented by
using deferred signals (i.e. "pushed,deferred" and "popped,deferred").

To resolve the above issue, the signals only for the deleted item is not
sent.
2017-09-04 15:35:23 +09:00
Marcel Hollerbach c51f35d42a elm_widget: move the complete regsiter/unregister logic
We had here a little problem, state focus_state_eval function handled
the unregisteration and consideration of the focus flags and then only
called a helper function (which was a widget function), that then did
the registeration in logical or regular mode.

Elm scroller for example took that function overwrote it and did onyl
permit logical registrations. Then again a evaluation of the focus state
and flags took place, and the function considered elm_scroller should be
registered as regular object, but found it to be logical. This lead to
the problem that we permantently unregistered Elm.Scroller and
registered it again as logical just to unregister it again. This was on
the one side a performance downside. But also a bug since all items from
within the Elm_Scrollers sub manager are getting reparent onto the
parent, which means not the root of the scroller (the scroller itself)
is the logical entrypoint to the widget but rather this reparented
widget, which led to unexpected focus  warps like described in T5923.

tldr: this fixes T5923
2017-09-02 21:10:56 +02:00
Marcel Hollerbach 3af81932b0 efl_ui_focus_manager: present a slightly better error message
with this and the backtrace you can probebly figure out if you just
registered the same widget twice for different types
2017-09-02 20:06:15 +02:00
Marcel Hollerbach 3f379b6d49 efl_ui_focus_manager_sub: not needed anymore, handled by calc 2017-09-02 20:06:15 +02:00
Marcel Hollerbach e265dc285a elm_widget: eval everything when the parent changes 2017-09-02 20:06:15 +02:00
Marcel Hollerbach 6a12d9c367 efl_ui_win: specify the correct manager
a widget in higher hirachies is not registered in the lower one.
2017-09-02 20:06:15 +02:00
Marcel Hollerbach ab2b9d9a3c efl_ui_focus_manager_calc: do not swallow a focus event
if we have been redirecting before, we would have lost that event due to
  the element here beeing at the top of that focus stack
2017-09-02 20:06:15 +02:00
Marcel Hollerbach b846545072 efl_ui_focus_manager_sub: make it a mixin
This just brings the functionality, the manager that is used as sub can
still be decided and be brought in via inheritance or compositition
2017-09-02 20:06:15 +02:00
Derek Foreman e368896145 elm_win: Stop hiding the mouse cusor on window out under wayland
We needed to do this to prevent burning cpu with animated cursors
before we did frame callback based animating.

Now the compositor will stop our frame callbacks when our cursor
is implicitly visible when the pointer isn't over our window,
so we don't have to use window hides for it.
2017-09-01 13:32:50 -05:00
Amitesh Singh 9836116cab elm: rename elm spinner to Efl.Ui.Spinner
Ref T5900
2017-09-01 14:08:21 +09:00
Jean-Philippe Andre 8f10ed091c efl_config: Fix type of returned value (EO)
An ugly const char * is returned from strdup, freed later with a custom
function that just calls free(). This was probably intended for
stringshare but now free is used. We have to fix the free function for
the EO API so let's keep free(). I'd rather avoid declaring
elm_config_profile_dir_free in the EO files.
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 23d250efef elm: Drop unused class inheritance (EO) 2017-09-01 10:09:37 +09:00
Jean-Philippe Andre cfe8170624 win: Fixup doc & code of icon_object
Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 74290355da win: Use array for available_profiles (EO)
The legacy API wraps the EO API.
All tested with "Configuration" test case in elm_test.

Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 4d6bb96e8d win: Drop calls to lower when using the EO API
Note: The distinction is made on how the window was created, not on
which API is used (evas_object_lower or efl_gfx_stack_lower or
elm_win_lower).

Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre f88f0798ba win: Implement raise from stack (EO)
I think the intercept is not required anymore. All raise functions call
the ecore evas raise function.

Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 9633023511 focus: Fix shadow warning 2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 4e81df7cb2 widget: Forward focus_highlight_style to win
See the previous commits. All focus_highlight APIs are defined in the
Widget class but only implemented at the Window level. For consistency I
believe this call should also be forwarded to the window. The previous
logic had absolutely no effect at all, except storing a stringshare.

The day focus_highlight becomes widget-specific (i.e. each widget has
its own highlight style) then this can be changed.

Note: This will apply to legacy API as well.

Ref T5363
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre b40d8296ff win: Move focus_highlight_animate to widget (EO)
Similar to the previous commits. Moved for consistency.

Ref T5363
Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 94632f8a44 win: Move focus_highlight_enabled to widget (EO)
This was actually declared in the internal legacy API in widget.
Forwards the calls to the window.

Ref T
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 0972c49438 win: Merge focus_highlight_style with widget (EO)
Note: elm_test "Focus Style" can be used to test this API. The test case
is a bit broken (overly complex EDC?) but if you're patient you can see
the difference between "glow" and "glow_effect".

Ref T5363
Ref T5322
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre c0d7ea4af0 widget: Rename on_focus to on_focus_update (EO)
on_focus seems to imply that focus was just given to the widget, but
that function is called on any focus change (in and out).

Ref T5363
2017-09-01 10:09:37 +09:00
Jean-Philippe Andre 89492d859b win: Merge focus with elm_widget's (EO)
I believe this should work fine!

Ref T5363
Ref T5322
2017-09-01 10:09:37 +09:00
Stefan Schmidt 7aa42c4e75 docs: elm/evas: document some missing return values
With this patch we finally reached 100% doc coverage in EO files again.
It would be nice to keep it like this.
2017-08-31 17:37:52 +02:00
Stefan Schmidt d2705bb511 docs: efl_ui_panes: document last missing part 2017-08-31 17:35:48 +02:00
Stefan Schmidt 1325cd08fa docs: elm_widget: document function pointer for on show region 2017-08-31 17:35:04 +02:00
Stefan Schmidt d249423f57 docs: efl_ui_focus_manager: fill in missing docs 2017-08-31 17:34:23 +02:00
Stefan Schmidt 2866839754 docs: even give the external types some documentation 2017-08-31 17:29:31 +02:00
Stefan Schmidt 299a507319 docs: efl_ui_textpath: add documentation for all other missing parts
When bringing in new EO files I would appreciate if people would
document all parts. Even if they seem small and self explaining.
2017-08-31 13:17:17 +02:00
Stefan Schmidt 7c4bf80fd9 docs: efl_ui_textpath: document newly added textpath direction enum 2017-08-31 11:47:03 +02:00
Stefan Schmidt 6e3def3a60 docs: efl_ui_manager: document newly added struct
This was added recently and thus has a since 1.21 tag
2017-08-31 11:42:02 +02:00
Carsten Haitzler bd6dcbb044 elm focus manager - dont leak child lists when updating focus order
REALLY fix T5800 by duplicating lists rather than taking ownership

@fix
2017-08-31 17:34:30 +09:00
Carsten Haitzler d0aefa87bf focus manager - fix spelling of variable
saved_order not safed_order
2017-08-31 16:45:49 +09:00
Carsten Haitzler 514e5a6d33 elm - focus manager - revert free list
revert 65d2dfc892

no no. this fixes the leak ... but it adds new segv bugs. revrt it.
2017-08-31 16:43:31 +09:00
Jaehyun Cho 6353194546 naviframe: Fix to load default style if the given style does not exist
Naviframe item theme name is combined with item style name and widget
style name.
Therefore, if the item theme name is not found, then "item/basic" item
style name should be loaded as a default item style name.
2017-08-31 16:30:28 +09:00
Carsten Haitzler 65d2dfc892 elm focus manager - dont leak child lists when updating focus order
this should fix T5800

@fix
2017-08-31 16:17:15 +09:00
Woochan Lee f4522d4124 efl_ui_clock: Add 'O' character to ignore POSIX alternative format in format.
Summary:
_parse_format() function filtering "_/-/0/^/*" to filter POSIX alternatvie/extension formats,
But the Datetime do not appear in some locale(fa_IR, lzh_TW, my_MM, or_IN) with 'O'.

+ improve code. (not compare with all of the characters. instead of that using strchr)

https://lh.2xlibre.net/values/d_t_fmt/

@fix

Test Plan: Set locale as fa_IR and create DateTime. and see fields, not appears.

Reviewers: jpeg, cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5020
2017-08-31 14:16:26 +09:00
Jean-Philippe Andre 71824e1fe0 mbe: Fix infinite recursion on focus change
Ref D4882
2017-08-31 14:14:50 +09:00
Woochan Lee 5eb001dd35 multibuttonentry: Separate selected item and focused item logic.
Summary:
When user set a selected item on MBE creation time.
The internal logic will be broke.
So we need to separate logic them.

@fix

Test Plan:
Calling elm_multibuttonentry_item_selected_set() before MBE got a focus. in elementary_test.

Reviewers: cedric, jpeg, woohyun

Subscribers: bu5hm4n, marcelhollerbach, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4882
2017-08-31 14:01:05 +09:00
Jean-Philippe Andre 94d671c971 widget: Fix legacy for focus_mouse_up_handle (EO)
This removes the special code in the legacy API for
elm_widget_focus_mouse_up_handle. Add an internal helper to find the
first widget parent. And mark as protected.
Apparently this functions is still required for the new focus manager.

Ref T5363
2017-08-31 13:48:05 +09:00
Jean-Philippe Andre b6bab481aa widget: Mark old focus API as beta.
It's not beta. It's about to die.
Also, move #define ELM_WIDGET_BETA to the common header file, as it is
consequently required by ALL widgets. :(

Ping @bu5hm4n :)

Ref T5363
2017-08-31 11:22:04 +09:00
Marcel Hollerbach 0b3a14a387 efl_ui_focus_manager_calc: only focus none NULL candidates 2017-08-30 22:39:52 +02:00
Marcel Hollerbach ea5b0bdfde efl_ui_focus_manager: make logical_end work better
it turns out that we should also repsect logical elements that are
having a redirect_manager, since they are more at the "end" then a
potential regular node.

The user now needs to handle the logical_end call on this manager, or
handle at all what he wants to do with this information.

efl_ui_win now handles it in the way that it just focuses that logical
node, (which results in the redirect manager beeing set, then calling
again logical_end on that manager. Repeating this until we have finally
found a regular node that does fit out needs.
2017-08-30 22:39:52 +02:00
Marcel Hollerbach 245a04cc44 efl_ui_focus_manager: reset focus stack once we are changing redirect
ref T5923
2017-08-30 17:55:51 +02:00
Daniel Kolesa af6713ebb4 efl interfaces: fix incorrect enum val 2017-08-30 15:34:49 +02:00
Jean-Philippe Andre f90d0d1501 widget: Simplify & document "translate"
This is a protected function. It doesn't need to return anything, as all
implementation just returned true, always. Also, the legacy API was just
a wrapper doing nothing special (except verify that we have a widget,
which the recursive code already does).

Tested with fr_FR :)

Ref T5363
2017-08-30 18:54:59 +09:00
Jean-Philippe Andre a2729d119d widget: Remove part_text from EO
It should be implemented as a efl_part() API.

For now I've only done a quick hack, as the only overrides were:

 - notify: already a Part implementation. Also it turns out the default
   theme does not even have any text part in the notify group.

 - combobox: not a Part implementation, but also very badly defined wrt.
   parts in general. efl_part() is handled by the parent class (button)
   which makes it tricky to override just for one function.

With this patch I'm trying to keep the same behaviour as earlier (where
efl_part() is used for layouts and there is a special path for
combobox).

Ref T5363
2017-08-30 18:33:15 +09:00
Jean-Philippe Andre c9fcdbc68c widget: Mark some functions as protected
I believe all of those APIs are in fact meant for widgets to use
themselves:
 - on_focus
 - on_show_region_hook
 - focus_region
 - focus_register
 - focus_manager_factory

Ref T5363
2017-08-30 17:29:52 +09:00
Jean-Philippe Andre 692282e67a widget: Move item_loop_enabled to scrollable (EO)
I was told that the scrollable interface is being redesigned for EO.
This API definitely does not belong to the base Widget class, as it's
quite specific to item-based scrollable widgets, such as lists and
grids. Since Elm.Interface_Scrollable is itself being revamped, it is a
good place to move that EO API for now.

Ref T5363
2017-08-30 17:29:52 +09:00
Jean-Philippe Andre a82ab33bed widget: Use rectangle in show_region
Also make it a property. It's asymmetric because of the force show
argument, but the get is much cleaner.

Ref T5363
2017-08-30 17:29:52 +09:00
Jean-Philippe Andre 6bb9f4fd16 widget: Remove scroll_lock from EO
1. Uniformize the API, which is now for internal use:
   This uses the same enum as scroller "movement_block" instead
   of 2 separate properties. Less APIs, more consistence.

2. Remove scroll_lock x/y from EO widget. I was told it is not going to
   exist in the upcoming scrollable interface.

3. Remove scroll hold/freeze getters.
   scroll hold/freeze push/pop are still there but it remains to be seen
   how the EO scrollable interface will exploit them. Right now they are
   full of bugs.

Ref T5363
2017-08-30 17:29:52 +09:00
Jean-Philippe Andre ffa041fe58 scroll: Rename elm enum to efl.ui
This scroll block enum should also be used in widget itself.

Ref T5363
2017-08-30 17:29:52 +09:00
Jean-Philippe Andre c690469fcc widget: Rename drag_lock to scroll_lock (EO)
This also includes the drag_child_lock APIs. This had nothing to do with
dragging beyond maybe the case where scrolling is done by thumbscroll
(ie. finger drag).

Note that the EAPI were called already scroll_lock, not drag_lock.

Ref T5363
2017-08-30 17:29:52 +09:00
Jean-Philippe Andre ac215dba0f widget: Remove drag_child_locked APIs (EO)
These are just internal helper functions for the scrollable mixin. I
don't think they need to appear in the external API.

Ref T5363
2017-08-30 17:29:52 +09:00
Jean-Philippe Andre 00862c3c9c widget: Use rectangle on the stack for region_show
Follow @k-s recommendation and simply use rectangles on the stack rather
than by pointer.

Ref T5363
2017-08-30 17:29:52 +09:00
Jean Guyomarc'h 172cf67d16 elm: fix uninitialized variables 2017-08-29 20:41:40 +02:00