Summary:
ELM_PART_OVERRIDE_PARTIAL replaces ELM_PART_OVERRIDE and
ELM_PART_OVERRIDE_ONLY_ALIASES.
The difference is ELM_PART_OVERRIDE_PARTIAL calls super
ELM_PART_IMPLEMENT when subclass of part is not needed.
Test Plan:
Run elementary_test, Part Background, background part is well set.
Run efl.ui.panes/efl.ui.flip, check content is well set.
Reviewers: jpeg, Jaehyun_Cho, woohyun
Reviewed By: Jaehyun_Cho
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5566
Summary:
efl_ui_popup parts overrides efl_content and efl_text
which are sometimes not needed.
Test Plan: Run elementary_test -> efl_ui_popup tests
Reviewers: jpeg, cedric, woohyun, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: Jaehyun_Cho, Blackmole, herb
Differential Revision: https://phab.enlightenment.org/D5556
When a widget inherits layout in tries to set theme in group_add or in
constructor. When another widget inherits the previous widget, it sets
layout again with new klass name. This sets klass in the widget and
sets layout in super class, so that it can set layout only once.
Test Plan: Run efl_ui_widget related elementary test.
Reviewers: jpeg, cedric, woohyun, singh.amitesh
Differential Revision: https://phab.enlightenment.org/D5473
new eo widgets(efl_ui_ prefix) finds new edc group in
data/elementary/themes/edc/efl/*.edc.
New group name is "klass/group:style" and "base" group name and
"default" style name can be omitted.
for now, separator for style is ':' but needs to be decided.
theme_klass: set/get klass name used for resize_obj
theme_element: set/get group name used for resize_obj
theme_style: set/get style name used for resize_obj
element_update: automatically sets and apply theme for
sub object of widget.
The EFL_ACCESS_WINDOW_INTERFACE was used to check if an object is window.
This could make sense. But it would be better to use EFL_UI_WIN_CLASS for
consistency.
A window is using ecore_evas geometry value for its evas_object geometry value.
The evas_output_viewport x(y) value which is used in _elm_widget_onscreen_is
is always 0. So _elm_widget_onscreen_is could return EINA_FALSE, if ecore_evas
geometry x(y) value is bigger than 0, even though a window object is on screen.
So it is not correct to compare ecore_output_viewport and evas_object geometry
for a window object. Moreover it does not make sense.
This API is meant to be used by parts only, and by bindings dealing with
part objects. This patch fixes make check which got broken in the after
the previous one (cxx).
efl_ui_text and friends uses some enums currently defined in
elm_entry.eo. The latter is exported outside the elm public eolian eos
and never generated.
This commit moves the enums to the "transition" file elm_general.eot.
Summary:
Because toggle_entry function control entry focus, it need to check
focus state in focus changed callback
Test Plan:
1. elementary_test - Efl.Ui.Spin.Button
2. Click the entry of spin_button
Reviewers: Jaehyun_Cho, CHAN
Reviewed By: Jaehyun_Cho
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5569
Summary:
Enable value change using wheel.
(Up, Down key value change will be supported after D4933 dicussing.)
Test Plan: elementary_test efl_ui_spin test sample.
Reviewers: Jaehyun_Cho, jpeg, woohyun
Reviewed By: Jaehyun_Cho
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5546
Summary: add _calc_align function in sizing eval function to show popup correctly.
Reviewers: Jaehyun_Cho, jpeg, cedric, thiepha, Blackmole, woohyun
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5373
Summary: Replace Efl.Ui.Popup.Alert's title set method to using efl_text_set with efl_part
Test Plan: elementary_test -to efluipopupalert
Reviewers: jpeg, Jaehyun_Cho, woohyun, herb
Reviewed By: Jaehyun_Cho
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5359
Summary:
In _calc_align function, it could get align property through Efl_Ui_Popup_Data *pd directly,
but call align_get function previously.
Reviewers: Jaehyun_Cho, herb, thiepha, jpeg, cedric, woohyun
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5207
Summary: add a sizing check variable for safety of sizing evaluation when the min size of scroller is changed.
Test Plan:
1. run elementary_test
2. search the sample with "popup" keyword
3. click the Efl Ui Popup Alert Scroll sample
Reviewers: Jaehyun_Cho, jpeg, woohyun, thiepha, Blackmole, cedric
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5204
Summary:
Use efl_data_scope_get to get Efl_Ui_Popup_Data structure.
There is no reason using "self" object in Efl_Ui_Popup_Data.
Reviewers: Jaehyun_Cho, herb, thiepha, woohyun, jpeg, cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D5128
Summary:
Add initial code for Efl.Ui.Popup.Alert class.
It supports setting title and buttons.
Test Plan: 1. run elementary_test -to efluipopupalert
Reviewers: Jaehyun_Cho, jpeg, cedric, thiepha, Blackmole, woohyun
Differential Revision: https://phab.enlightenment.org/D5108
Summary:
add align feature and position properties (center, left, right, top, bottom)
efl_ui_popup_position_set should be seperated from evas_object_move
since evas_object_move can be called internally.
Test Plan: 1. run elementary_test -to efluipopup
Reviewers: Jaehyun_Cho, jpeg, cedric, thiepha, Blackmole, woohyun
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5105
Summary:
elm_combobox has entry, genlist, hover as its component.
Those components should be marked as legacy during efl_add.
Test Plan:
Run elementary test.
Run combobox test.
Reviewers: jpeg, cedric, woohyun
Differential Revision: https://phab.enlightenment.org/D5542
Summary:
Added access action interface in entry. On activate action from atspi client , entry will emit click signal and input panel
would be shown.
Test Plan:
When activate action comes, entry will emit click signal and input panel
should be shown.
Reviewers: shilpasingh, kimcinoo
Reviewed By: shilpasingh
Subscribers: cedric, jpeg, rajeshps, govi
Differential Revision: https://phab.enlightenment.org/D5544
Summary:
https://phab.enlightenment.org/T5900
Creating base class(efl_ui_spin) to support various shape of spinner.
Added button interaction widget efl_ui_spin_button inherited from efl_ui_spin.
Test Plan: Add tests in elementary_test.
Reviewers: Jaehyun_Cho, woohyun, jpeg, singh.amitesh
Subscribers: jenkins, id213sin, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5424
Summary:
since legacy elm_bg_color_set/get is changed to efl_gfx_color_set/get,
efl_gfx_color_get also should get color of inner rect.
@fix
Test Plan:
1) run elementary test.
2) run Bg EO API(Efl.Ui.Bg)
3) set/unset "Bg color" check.
4) observe printed color values.
Reviewers: jpeg, woohyun, cedric
Differential Revision: https://phab.enlightenment.org/D5429
earlier elm_object_focused_object_get returned gengrid genlist toolbar
objects if a item of them is focused. This should fix that.
thank you @davemds for the report!
the format free cb was passed the class data (sd) as the callback data
but this was freed by the time _indi_default_format_free_cb was called
causing an invalid access. fix this by looking it up from the obj
which is probably invalid at this point...
This simplifies the IMPLEMENT macro, which can now be a proper function.
Also, do not set a parent for the part object, as it's not useful and
could mess up the refcount.
See previous commit :)
Note: right now the background part has a small 3d indent which comes
from the legacy theme being used. This will be fixed soon.
Summary:
_elm_legacy_add goes back to EINA_FALSE after setting sd->legacy.
if constructor get called again after going back to EINA_FALSE,
sd->legacy should remain EINA_TRUE.
also, elm_legacy_add() should not be called non-elm_widget.
Test Plan:
Run elementary test->Efl.Ui.Text.Label.
Check legacy flag in _elm_theme_object_set() for efl_ui_win.
Check legacy flag for efl_ui_text after scrollable text is added.
Reviewers: jpeg, woohyun
Reviewed By: jpeg
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5529
Summary:
After the reorganization of elm eos, some sources include the .eo
headers directly instead of through Elementary.h. This causes problems
on windows as the declarations won't be decorated with the dllexport
attributes.
Reviewers: cedric, felipealmeida, jpeg, vtorri
Subscribers: jenkins
Tags: #windows, #efl
Differential Revision: https://phab.enlightenment.org/D5519
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
Added some guards to avoid redefinition of functions.
Partially fixes T5866, as there is still the question whether we should
test internal functions or not, as stated by jpeg in the comments.
Reviewers: vtorri, felipealmeida, jpeg, cedric
Reviewed By: cedric
Subscribers: jenkins, cedric
Maniphest Tasks: T5866
Differential Revision: https://phab.enlightenment.org/D5521
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Because of the way elm_code test case is written, by directly including
the C file, we end up with two symbols for the internal _elm_legacy_add
flag. This makes some test case fail (after applying a pending patch).
Solution found by Sungtaek Hong.
elm_code test case needs to be fixed. Don't include the C files
directly, testing static inlines should be done through a common .x or
something, but not by including the C file itself. This has led and will
lead to many issues.
Summary:
Information obtained by atspi client is name, role, description, state of an object.
reading_info_type_set/get APIs give control to application to decide on the information
that can be exposed.
Test Plan:
The reading info is added as an attribute of an accessible object, on query of
attribute, reading_info_type and corresponding character buffer should be given to ATSPI clients.
Reviewers: kimcinoo
Subscribers: cedric, govi, rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D5524
Summary:
Send signal EFL_ACCESS_STATE_ANIMATED when dragging starts and stops to atspi clients and also set EFL_ACCESS_STATE_ANIMATED
when reorder mode is enabled.
Test Plan: When reorder happens atspi client should receive object:state-changed:animated signal.
Reviewers: kimcinoo, shilpasingh
Reviewed By: shilpasingh
Subscribers: cedric, govi, rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D5515
Summary:
Add attribute append and attributes clear API, attributes of widget/widget_item helps in adding additional information
about the widget/widget item in the form of key-value pair.
Test Plan:
Query the attributes using atspi_accessible_get_attributes in atspi_client and an hash table consisting
of updates attributes should be returned.
Signed-Off By: Shilpa Singh <shilpa.singh@samsung.com>
Signed-Off By: Lukasz Wlazly <l.wlazly@partner.samsung.com>
Reviewers: kimcinoo, lukasz.stanislawski
Subscribers: cedric, govi, rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D5510
with the previous commit we emit the legacy events for each interface
event, and thus this event is not needed.
However, in elm_entry this means that changing editable will _not_
reemit the focus event (where i am not that sure if that is correct or
not).
the widget itself never gets focus, the elements of the button are
getting them. MBE is basically just a box. The text input for the entry
is setted by elm_entry itself when it gets focus.
The legacy "focused" event is emitted somewhere seperatly.
this now keeps items arround even if a explicit other widget was
focused. This is usefull if we have a few logical items on the focus
stack and you remove them.
you think there is only one elm_parent behind the elementary property
parent? Oh no! Elm_Notify and Elm_Popup have theire own parent fields,
and those fields are not returned when calleing elm_widget_parent_get,
they are also not given to the elm_widget implementation of
elm_widget_top_get, so a call to elm_widget_top_get stalls at elm.notify
or elm.popup.
fix T6389
This function will destroy non-wayland engine data, so it should
make sure it's actually operating on a wayland window.
Originally the sd->wl.win test was sufficient, but now wl.win is
present on non-wl windows to facilitate cut and paste, so we need
to check more thoroughly.
The problem with the API is that it uses an array of ints, which is not
well defined in EO. We could set an array of pointers to int, but that
would be super awkward to use.
I believe the original API has been slightly over-engineered as it was
passing an array of available rotations when in reality only 4 rotations
could be supported (0, 90, 180, 270). It seems to me that the day
arbitrary rotation needs to be allowed, another API would be required
(maybe with a range, or a single bool flag to allow anything).
I have not modified the internal code, which still uses an array (as
ecore evas uses that).
Mote: ec464939d9 removed wm_rotation_supported_get(), as well as
the preferred rotation from EO, but they could easily be added back if
needed.
Note 2: I couldn't test as desktop E doesn't support WM rotations.
Ref T5322
When I first implemented the Efl.Container interface I made a mistake of
mixing "single slot" content API's with "multiple children" content
API's. This should fix that, by separating API's that are for a single
part and those that deal with a list of children.
Efl.Content: Single slot. This will be used a lot by efl_part()
objects, and for the default content of widgets (eg. the window
content).
Efl.Container: Multiple children. Used by lists, boxes, layouts
(edje/elm), etc...
I didn't see any class that implemented both interfaces (note: Layout
implements Container and Button implements Content, so technically
Button implements both through inheritance).
For now the eo_prefix is not changed in Efl.Container. I wonder if it
should be reset (to efl_container) or not. This would only affect the C
API.
Ref T5328
i forgot about that and this leads to a segfault in enlightenment, the
object then segfaults when the parent manager emits a event and then the
code tries to access the private data of a dead object.
elm_object_item_focus_set ensures that the list also gets focus, thus calling
that in _elm_list_elm_widget_on_focus_update would result in a infinite
call recursion, if setting the focus fails (for example when the object
is not visible yet, [see enlightenment for that]).
This fixes a freeze if you open lunchers config.
this leads in eo to the meaning that the manager.sub is giving
implementations to that interface, but leaving the ->func with NULL,
which leads on some maschines to the assumation that this is
pure_virtual, which means not composition objects will be queried, on
other maschines this will work, since there other inherits will
overwrite this entry and set ->src to NULL.
While i still dont understand why this works on some maschines and does
not on others, this is is now fixed.
_followup_previous_direction should only be called if there was a real
change to the redirect. In was happening that we have not changed the
focus but called _followup_previous_direction, which lead to weird focus
changes.
Conditions:
- style is "double_label"
- the is some content for items (i.e elm_label)
- elm_genlist_filter set was once called after genlist creation with
NULL data
- label_get callback uses elm_genlist_item_prev_get on its current item
- at least one item is added as a sub-item
- ~2 blocks of items are added afterwards
- items are added quickly while holding 'enter' on an elm_button
@fix
Summary:
Modified index item role to EFL_ACCESS_ROLE_RADIO_MENU_ITEM from EFL_ACCESS_ROLE_PUSH_BUTTON
as index item should maintain its current state.
Test Plan:
Query the role of index item from atspi client, ATSPI_ROLE_RADIO_MENU_ITEM role should
be returned.
Reviewers: kimcinoo
Reviewed By: kimcinoo
Subscribers: cedric, govi, rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D5486
Summary:
The accessibility clients should not have a possibility
to dismiss popup in case when action area is set.
Reviewers: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5481
Summary: When Index item is selected, notify atspi clients.
Test Plan:
when atspi mode is enabled, item selection notification
should be received by atspi client
Reviewers: kimcinoo
Subscribers: cedric, govi, rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D5485
Summary: Try to take access name from internal entry object or text button first.
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5480
This thing is used by only 2 EO APIs that are marked as @beta. I wonder
if the @beta tag or the ptr() expression made it work for eolian,
because it simply wasn't defined in EO.
I'm renaming it just so that it's more consistent with the new names
used by atspi (and EO API in general).
If you want to have EFL application behave in a more efficient way. Like dropping
memory usage or stopping unecessary network operation, this option should be on
and the application should listen on PAUSE/RESUME event on the main loop.
When using reusable content, genlist preserves old object's state and is
expecting reusable_content_get callback to change all needed properties.
But there was an inconsistency: it was silently re-enabling the old content.
@fix
Summary:
When ctxpopup's content is removed,
ctxpopup doesn't recalculate its size, so empty space is remaind.
To fix this problem, ctxpopup recalculate its size when content is removed.
This patch is about T6327
@fix
Test Plan:
1. run elementary_test -to ctxpopup
2. select 10st item
3. click button in ctxpopup
Reviewers: jpeg, Jaehyun_Cho, zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5462
Summary:
On window rotation send bounds changed signal to inform ATSPI client
about the orientation of window
Test Plan:
In ATSPI mode, when orientation of efl window is changed, ATSPI client should
get notification
Reviewers: kimcinoo
Subscribers: cedric, govi, rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D5469
This reverts commit 2cea85db38.
Their was a typo that I made during cleanup of the patch before pushing that I didn't
notice broke some stuff. But also you may have an old efl_general.h in your elementary
directory that is now being picked instead of the one provided by the tree.
Revert "elementary: currently double declare elm_init/shutdown."
This reverts commit 44bb0c1848.
Revert "elementary: fix efl_ui_multibutton installed headers."
This reverts commit 32a213dc72.
Revert "elementary: introduce Efl_Ui.h."
This reverts commit df3d3f7334.
Revert "ecore: do not display error message on cancel."
This reverts commit 99654b7cd2.
Revert "efl: and don't forget to install the new dependencies."
This reverts commit 814ffb9b6b.
Revert "ecore: remove EFL_OBJECT_BETA as Efl_Core.h is for Efl new inerfaces."
This reverts commit 619d0f3cff.
Revert "ecore: move EAPI_MAIN from elementary to ecore."
This reverts commit e5d84da864.
as such commit e5d84da864 starts the
breaking. enlightenment, terminologya and other apps can't compile
against that efl anymore. 619d0f3cff
then makes this even worse with even more header errors and undefined
types. on top of this df3d3f7334 then
starts making elementary_test segfault when it runs. it wont even
start up.
asu such of these 7 commits in the first 4 (that are then relied on
later) 3 of these first 4 cause serious breakage. this simply is a
complete lack of testing changes, so i've rolled fl back to before
these things so it builds and works again and you can build against it.
PLEASE test these things. this looks ot me to be obviously a lack of
any testing... :(
Summary: accessible name_get interface added, popup does not have default text.
What should be read for the name information should be define by popup.
Test Plan:
In atspi mode, when an AT-client such as screen-reader queries, it should return
as "Alert title(if present)/text(if present)"
Reviewers: kimcinoo
Subscribers: cedric, jpeg, govi, rajeshps
Differential Revision: https://phab.enlightenment.org/D5466
Note: this is C only, not legacy only.
The problem is that bindings will hold a strong reference to the window,
which will then die "under the rug" if autodel is enabled. This then
leads to at least ERR if not crashes.
Note:
elm_policy needs to support autodel and quit on last del only for C
applications. Bindings will require some other mechanism that doesn't
break all assumptions wrt. references.
Summary: read title along with naviframe item title and subtitle along with naviframe subtitle.
Test Plan:
In accessibility mode, when naviframe title area is focused, The text title and subtitle should be read
out along with item's title and subtitle.
Reviewers: kimcinoo
Reviewed By: kimcinoo
Subscribers: cedric, govi, rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D5463
The problem here was that the adapter we have created would be
recognized as our subchild, and thus we delete our own subchild, which
is wrong. This fixes that problem and keeps the adapter alive.
This make EFL_MAIN available and working with just Ecore. For simplicity
it is available with Efl_Core.h. Ideally it should also work with Efl_Net.h
alone and finally with an Efl_Ui.h.
T6262
Keep track of visibility and ensure the cursor can never be
filled when hidden. This should finally end any issue with the
cursor and visibility with the new focus system. Didn't see this
previously until working on Edi's bottom panes which caused redraw
on resize of the widgets.
@fix
we cant go iterating the mainloop before the current point. if someone
set up handlers but hasnt configured the things those handles use yet
as they dont expect them to be used until the mainloop is started...
thenthings break. we cant change this assumption without breaking
things.
Summary:
during elm_widget_theme_apply() state was set to off when state is on.
@fix
Test Plan: change locale/theme when a radio is on.
Reviewers: jpeg, cedric, woohyun
Differential Revision: https://phab.enlightenment.org/D5432
indicator_format_set/get & indicator_format_function_set are
now legacy APIs.
indicator format can be set by using generic Ui.Format function
e.g.
efl_ui_format_string_set(efl_part(sliderObj, "indicator"), "1.0%f");
elm_code_widget is causing a lot of trouble as it's relying on internal
access to elementary, without being built as part of elementary.so. Many
EAPI symbols are exported that shouldn't need to be, as they are only
internals of elm.
This will be used to solve issues around style_set:
if the widget is legacy or pure eo we may need to select a different
style. So in the constructor we need to know whether we are legacy or
eo. Note that calling style_set in finalize only is too late as we would
lose information such as efl_text_set() called inside efl_add().
elementary_config.h should not even exist. It's been hijacked as a
private header for elementary, but all "real" configuration is stored in
efl's main config.h now.
This disallows deeply nested pointers, you can only explicitly
ptr() on types that are strictly value types.
For a few cases where it was necessary to override this behavior,
you can use legacy(ptr(x)) as a temporary measure.