Summary:
this swaps the values of "no error" and "error" in order to maintain
consistency with the rest of efl where the zero value means "no error"
Depends on D8060
Reviewers: cedric
Reviewed By: cedric
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_api
Differential Revision: https://phab.enlightenment.org/D8063
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
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
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
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
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
Summary:
in eec7bc458e the epoch offset was edited,
which seems to be wrong, as this caused every single config to be
deleted. This also updates the configs in the elementry base configs
as they have been forgotten.
This brings back the ability to edit the config in elementary_config.
Reviewers: segfaultxavi, devilhorns, ManMower, raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7403
Summary:
Creation of the frame object can lead to significant delays in window
creation time on limited-power devices (watches, mobile, tv, etc).
This patch allows setting an environment variable and config value in
order to completely skip frame object creation.
This shaves about 50ms from startup on an i7 8600k, so should be more
substantial a saves on limited-power devices.
Reviewers: kimcinoo, ManMower
Reviewed By: ManMower
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7305
there is a eio_monitor which is tracking on config directory.
and that is the reason why idle processes get waken up once some process call elm_config_save().
this patch fix the function not to wake idle processes up as it was before.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7354
before the move and resize events have been used. However, this turned
out to not work well, because not all registered items are real
efl.gfx.entity objects, there is also a custom property for getting the
focus geometry, so now this property is completed with a event that is
emitted when the focus geometry changes. With this event we can
reintroduce relation caching. Since all events are marked correctly
dirty now.
Differential Revision: https://phab.enlightenment.org/D7347
Summary:
Efl.Ui.Theme class is required to support language bindings.
Efl.Ui.Theme works based on current elm_theme features.
This patch fixes T7357.
Reviewers: segfaultxavi, cedric, lauromoura, woohyun, zmike, SanghyeonLee
Reviewed By: segfaultxavi, SanghyeonLee
Subscribers: SanghyeonLee, herdsman, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7357
Differential Revision: https://phab.enlightenment.org/D7244
In fff4d1ba97 one selection_manager_get
method was patched to behave like this, however, it completly broke the
fact of *only-one-manager* since the same code was duplicated in a other
files (efl_selection.c). This now unifies this code, and adds back the
assertion for only one manager per window.
Additionally a shutdown function is added, the app never destroyes, but
the selection manager decided to init some subsystems itself
(ecore_x for example). This lead to to a leak of init counts in ecore_x,
which lead to elementary test suite issues. This is now *finaly* fixed.
Differential Revision: https://phab.enlightenment.org/D7105
Summary:
this patch refactories a momentum scroll animator logics.
1. animation duration
animating runs within a one second now.
and if it needs more time to animate, it decrease intepolation progress by dividing some value.
current logic makes sense however, it is not easy to read to know how it works.
this patch modify current logic to calculate distance to move, and time to animate.
2. distance to move
we can apply simple physics something like mass of pan and friction of scroller itself.
but this patch apply just geometric seqeunce to calculate distance to go.
it's more easy to customize behavior of scroller than current sine graph based one.
3. accelerate logic
scroller sets 'extra_time' to accelerate a scroller for now.
but this patch modify logic not to use it.
however it uses current momenutum velocity as a bais of next momentum animating.
@feature
Reviewers: zmike, #reviewers, Hermet
Reviewed By: #reviewers, Hermet
Subscribers: Hermet, cedric, zmike
Tags: #efl, #do_not_merge
Differential Revision: https://phab.enlightenment.org/D6643
Summary:
by key bindings..
now we can select TAB with the Return/Space key.
Test Plan: elementary_test -to efl.ui.tab_pager
Reviewers: Jaehyun_Cho, Hermet
Reviewed By: Jaehyun_Cho
Subscribers: YOhoho, cedric, #reviewers, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6779
Summary:
fix ABI break in widget item cursor APIs
by efl_ui_cursor interface implementing.
item's view were not elementary widget mostly,
reimplementing efl_ui_cursor on efl_ui_widget
cannot resolve item's cursor API call.
Test Plan:
check,
elm_object_item_cursor_XXX
API is working properly on elm_object_item.
Reviewers: cedric, jpeg, raster
Reviewed By: raster
Subscribers: stefan_schmidt, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6046
Summary:
The mixin encapsulates the correct
- creation
- composition attaching
- Lifecycle handling
of the focus managers that are assosiated with the object.
This fixes error messages on shutdown, and additionally lifetime issues
where the composite_attached object was deleted before the object was
deleted.
Reviewers: cedric, zmike
Reviewed By: zmike
Subscribers: segfaultxavi, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6108
Efl.Ui.Pager is a widget which contains many pages in a linear fashion
and allows users to scroll through them.
Users can attach Efl.Page.Transition and Efl.Page.Indicator to a pager.
Summary:
The tap_finger_size value of the concept is different from the finger_size value used in the past.
We need a minimum value for recognize the gesture as a tap or not.
Since the actual screen has different screen sizes, there is a problem that the recognition rate of tap is lowered when using the existing value(finger_size)
Test Plan: elementary_test -> gesture sample.
Reviewers: cedric, woohyun, Jaehyun_Cho, herb, id213sin
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5842
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This reverts commit d764e0b279.
The whole idea of renaming the default theme is an "api break" even if
config is changed. and symlinks don't work on windows as a solution.
(well on ntfs only as only as administrator, so they don't exist).
modifying config for switch from default to dark also will break the
case where someone put ~/.elementary/themes/default.edj there and it just
is different to the system one and how their theme changes on them as
it switches to dark.
basically we can't rename a theme like this mid-flight in efl. default is
default and has to stay that name. it can change the look, but not the
name.
i think the apparent reasoning behind this is not a good one. the work on
flat is temporary. i don't think we will ever maintain multiple "default
themes" as its just far too much work.
we can maintain color SCHEMES which are just a list of colorclasses and
colors for them - that's separate to a theme and would override. right now
these things don't exist. we are not going to create a dark.edj and a
light.edj just to store differing default colorclass values. we should be
doing the above with colorclass "color palette/scheme/whatever" files
that override those named colorclasses globally on init.
so reverting because this is an api break and we shouldn't break api
unless there is really absolutely no other choice.
here the choice is to just temporarily work in a branch and modify
default and then merge the branch when done.
after this commit, efl base themes should now specify:
data.item: "efl_theme_base" "theme_name";
and overlays/extensions which match a given theme should use:
data.item: "efl_theme_match" "theme_name";
this will cause overlays and extensions with the data.item to only
be loaded when the corresponding theme is in use. note that this
should not be specified for theme-independent overlays/extensions
as it will completely block loading of themes
instead of maintaining separate lists for the file and the edje file,
maintain a single list of structs containing both of these
also dynamically manage a string list of files to preserve compat with
existing (bad) functions which return this directly
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.
this now means any app that called elm_config_*set on any field at all
will keep what it set forever until it changes it even if shared/core
config changed.
this now flags about 1/4 of the config vars in elm config if you set
them locally so they wont change on conifg reload. i have just started
and this is the first batch. needs more work.
thats just a little helper, where the logic to find and fetch the
provider is bound to the position in the widget tree, this means that
for example gengrid could change the way the logical parent is
evalulated. (For example to map the logical parent to a item)
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
When running elementary_test with ELM_ENGINE='buffer', we got a crash.
The removal of PS3 backend patch didn't remove ELM_SOFTWARE_PSL1GHT and
didn't shift the _elm_engines indexes.
ELM_SOFTWARE_DDRAW stayed at the index 13 (value NULL) instead of moving
to index 12.
A strcmp with NULL occurred, leading to the crash.
@Cedric, I excuse you to not have run Exactness your code before pushing
:P
This changes the name used in the config file, without changing the
system config files yet. This restores key bindings for:
- Win
- Image
- Video
- Photocam
See also the previous commit.
This factorizes the code and makes most widgets handle key down events
in the same way:
- check that the object is not disabled, event is not on hold
- figure out the key binding based on the class name
- mark event as on hold
The class name is usually MY_CLASS_NAME but in some cases it was
MY_CLASS_NAME_LEGACY which may be different from the EO class name (eg.
elm_win vs. Efl.Ui.Win). In that case the key bindings are broken.
This breaks key bindings for the following widgets:
- Win (focus)
- Image ("clicked")
- Video (move, play)
This fixes key bindings for the following widgets:
- Nstate
Some widgets remain broken:
- Photocam / Efl.Ui.Image.Zoomable
A patch will be applied to restore the key bindings for the above
breaks.
This may solve issues on Windows where EAPI can be either dllimport or
dllexport. Anyway keeping EAPI defined is invalid and inconsistent.
Also, change an invalid EO_BETA_API define tag to EFL_BETA_API_SUPPORT
and EFL_EO_API_SUPPORT.
Thanks @vtorri for the report!
@fix
Some names have not been changed, hopefully making a distinction
between legacy APIs and internal code (elm_layout_blah) and valid EO
usages.
This means many internal functions are still elm_layout_ as their
sole purpose is to support the legacy API.
Ref T5315
elm_layout_sizing_eval() marks an object as requiring recalc.
Unfortunately, it's been massively abused by various widgets into
actually doing the calc, or the min calc. So we end up with one API
that has 3 different definitions depending on the widget type:
1. Mark as requiring recalc (correct, respects doc, elm_layout)
2. Calculate min size and other size hints
3. Actually do some geometry modification
I believe we need to clarify these 3 requirements into 3 very clear
and specific APIs in elementary. Right now we have similar functions
in evas for 1 (evas_object_smart_changed) and 3 (smart_calculate).
But their exact definition also isn't necessarily what we want for
elementary.
Another clear problem is that layout_eval does not do any calculation
(in theory), so the "eval" word is a bit of a stretch here.
Once we're sure about the exact API we want, we can add this back to
EO and make it work across our EO widgets. For now let's just keep
the legacy API, and its EO overrides, as is.
Ref T5315
This merges them with the now standard interface:
Efl.Canvas.Layout_Signal
Some wrapping work was required for legacy API which
takes no user_data in del() but instead returns it. The
new EO function, while harder to use, is more correct
(you can't delete the invalid callback by accident, and
this follows EO events design).
Another crazy wrapping was done in entry/text in order
to add the callbacks to 2 objects instead of just one,
and still return the user data.
As for Naviframe and Popup, those two widgets override
signal_emit to forward the call to another object than
the resize object, but not callback_add/del. So they
are definitely broken.
Ref T5315
This should expose the proper definition of EAPI before including
elm_widget.h, as elm modules call internal APIs from elementary.
Thanks Mykyta for the report!
Summary:
Small devices (like smart watch) can disallow entry selection by default.
This patch enables to control this behavior with elementary configuration.
Reviewers: cedric, jpeg
Subscribers: id213sin, woohyun
Differential Revision: https://phab.enlightenment.org/D4615
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
The frame object requires a theme of version 119 or more. In fact
I think until we are totally happy with the window API (for EO) we
might want to bump that version regularly. That would indeed disallow
theme customization for border.edc until it's done.
This patch uses a pretty brute force way to set the theme file to
the default file from EFL installation. elm_config is not reliable
here.
This is very custom made and there may be a more generic way to force
a widget to use a minimum theme version. Yes that could mean ugly
widgets if we change the theme API but at least that would make them
work. Note that the border theme contains no visual elements, so the
colors of the background, etc... should all depend on the user
selected theme. But of course CSD (in Wayland) will have to use the
default theme -- and look grey.
Fixes D4976
Use Efl.Part for window to manipulate the background.
Two part names are used in EDC:
- elm.rect.background
- elm.swallow.background
For apps the part name is only "background".
To set a solid color background (alpha is ok):
efl_gfx_color_set(efl_part(win, "background"), r, g, b, a);
To set an image:
efl_file_set(efl_part(win, "background"), "image.jpg", NULL);
To set an object:
efl_content_set(efl_part(win, "background"), subobj);
The solid bg is invisible by default, will become visible and use
COPY render mode if a color is set. Standard window uses the
swallow part.
@feature
Remove Elm_Url and use efl_net_dialer_http with an efl_io_copier to
fetch stuff.
The code was also slightly improved, particularly in elm_photocam
destruction be explicit and clear the grid before deleting... this
will ensure any pending preload are stopped before we remove the
backing memory.
Add an internal elm function we can call from withint els_cursor.c so
that we can set window cursor/pointer images based on what is supplied
by els_cursor.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
if trying to apply incorrect theme, widget apply default theme and return TRUE.
so there is no way to check it really apply correct theme.
To resolve this problem, _elm_theme_set return three type enum
* related history : 4ca3ef4514
* elm_object_style_set is public api, so I didn't change it.
* typedef name [ Theme_Apply ] is temporarily, please suggest better one.
@fix
Reviewers: singh.amitesh, herb, Hermet, cedric, jpeg, raster
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4073
This is to port elm_config to EO APIs.
The current implementation relies on the legacy API, by
simply forwarding calls.
The new API is simply efl_config_set("config_name", value)
where value is an Eina_Value (aka. generic_value).
The C interface proposes a few helpers like config_int_set,
config_double_set, etc...
Unfortunately at the moment, not all config options are
supported, as some rely on more complex types:
- lists
- color class and multiple arguments
- unset functions
- enums
Profiles are also not handled at this point.
@feature
It supports the same syntax as the config value, but
overrides it. This provides a more convenient way to select
the acceleration for a single window.
Its get() value should be what was effective when the window was
created. So it can depend on the config or a previous call
to set().
@feature
Summary:
There are no methods to close the popup with key down.
So I added the escape key binding to close the popup with escape key.
Test Plan:
1. patch this code
2. delete /home/{user}/.elementary to refresh the config value
3. launch elementary_test -to "popup"
4. click one example of the list and press escape key
5. see closing the popup
Reviewers: cedric, raster, jpeg, Jaehyun_Cho, Hermet
Reviewed By: Hermet
Differential Revision: https://phab.enlightenment.org/D3876
Conflicts:
src/lib/elementary/elm_priv.h
Summary:
The default scrollable flag of popup can be different in each profiles.
So I added the scrollable configuration of popup.
@feature
Test Plan:
1. Before
1) elementary_test -to popup
2) resize window to smaller
3) Click 15th item, "popup-center-title + genlist content + 1 button"
4) Then popup will show, but its list is very long, only small part of popup could be shown.
2. After Patch
1) change "popup_scroller" value to 1 in base.src, then run elementary_test -to popup or ELM_POPUP_SCROLLABLE=1 elemantary_test -to popup
2) resize window to smaller
3) Click 15th item, "popup-center-title + genlist content + 1 button"
4) Then popup will show, popup's genlist will be in scroller, so entire popup can be shown.
Reviewers: jaehwan, id213sin, cedric, raster, singh.amitesh, SanghyeonLee, Hermet
Subscribers: Hermet, minkyu, herb, jpeg
Differential Revision: https://phab.enlightenment.org/D3856