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.
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
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
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
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
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.
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
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
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
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.
This makes the icon test actually work. Otherwise the icon data is too
big and basically seems ignored by the compositor or X.
Note: In E (X11) it seems that the window icon remains unchanged? xprop
shows the proper data, though. Ping @zmike.
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
Text on path (textpath) allows application to make text follow a path.
The path can be a efl_gfx_path or a circle.
Thank hermet for initializing this work.
@feature
Wherever the EO API is used, i.e. efl_add() is used to create evas
objects, we can skip the calls to set fill/expand.
This new set of defaults indeed saves ~60 loc in the tests (out of 115
objects created). I found only 3 cases where the align had to be set
manually (to the old default of 0.5).
See 1a1b8bc451
And e8b7f5f255
Ref T5301
Summary: In state_changed_cb2 callback function, obj is used. so it should not be EINA_UNUSED
Reviewers: Jaehyun_Cho, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5122
Summary:
When text set NULL, size is not changed even text is removed.
So, fix that case logic
1. send text,hidden signal
2. remove text
3. call sizing eval to resize layout
Test Plan:
1. run elementary_test -to check
2. change value last check object
3. compare before and after
Reviewers: Jaehyun_Cho, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5086
It was discussed a while ago that Zoomable was a poor name in some
languages, like python.
This changes, in Efl.Ui, to use underscores:
- Image.Zoomable
- Grid.Static
- Box.Flow
- Box.Stack
This makes sure that
elementary_test -to "Window Plug"
exits nicely (with the exit policy on all window close) instead of
hanging forever with an invisible window.
@fix
This name makes more sense and one api does the job of two.
We never needed two apis at first place though.
Mark left/right_size_set as legacy apis too.
This patch also implements min_split_ratio on parts.
@feature
refer T5359
This allows user to set size hints to be respected and
request panes to ignore combined min size.
If this flag is set, the minimum size set by efl_gfx_size_hint_min_set()
is respected forcefully.
@feature
refer T5359
Summary:
ctxpopup item have elm_list item internally.
item_part_content_unset need to pass on content part to elm_list item.
Test Plan:
1. launch elementary_test - ctxpopup
2. click Ctxpopup with part text & content function
3. press "Icon Set" and press "Icon Unset"
Reviewers: jpeg, woohyun, herb, Blackmole
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5018
Summary:
There were only 2 APIs (item_append, item_prepend) for ctxpopup item add.
Added more item add APIs (item_insert_before and item_insert_after) for convenience.
Test Plan:
1. launch elementary_test - ctxpopup
2. click Ctxpopup with callback function sample
3. check whether there are 3 items on ctxpopup
Reviewers: woohyun, Jaehyun, jpeg, cedric
Reviewed By: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5004
Summary:
ctxpopup item have elm_list item internally.
But when elm_ctxpopup item was deleted, elm_list item was not deleted.
elm_list item in elm_ctxpopup item should be deleted in del_pre
when elm_ctxpopup item is deleted by elm_wdg_item_del()
Test Plan:
1. launch elementary_test - ctxpopup
2. click Ctxpopup with label only
3. "Never Show" item should not shown in ctxpopup
Reviewers: jpeg, cedric, woohyun
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5044
Revert "Separtor: use orientation APIs"
This reverts commit f043c3be61.
Separator is not part of EO API so no need to use Orientation or
Direction API here.
Ref T5870
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
For programs without specific names edje_cc generated default names in
the form of program_$MEMORY_ADDRESS. That worked well enough for keeping
the names unique, but it causes problems if one wants to have these files
being binary reproducible due to different memory layouts, compilers,
etc. Simply using a counter as unique part should work well enough for
our use case and help people who want to verify builds.
Thanks a lot to Bernhard M. Wiedemann for review and testing.
Fixes T5113
Ref T5495
in code we importend that doesnt use eina we have warnings of
fallthroughs. all o them are commented to be fallthrough so add the
attribute there too to have fewer warnings.
This amends 8e311db414 as the logic
was badly broken. A "shadow" variable warning
clearly showed that "tmp" was not used properly.
This fixes the "IBM" logo in svg-test (the only one
using polygon/polyline, it seems).
analysers like PVS studio dont know the eina_list_free returning NULL
design pattern for consistency and so dislike the var being set twice
in a row. this will make them happy without any skin off our backs.
not a bug at all.
found by PVS studio
if files size was 0... which would basically make a lot fail before...
it could be a divide by zero. fix and just assume minimum size of 1.
fix CID 1371127
fname would have been leaked if we failed to get a file_handler.
Also make sure we always create a new fname strbuf even without
a output_dir present to fix a potential unbalance between creating
and freeing.
CID: 1378112
Summary:
Actual slider value is not changed.
So when user release mouse or touch, slider value is returned
to the value by user set.
This is a partial revert of f41e276160
Fixes T5745
Test Plan: elementary_test -> slider
Reviewers: jpeg
Subscribers: cedric
Maniphest Tasks: T5745
Differential Revision: https://phab.enlightenment.org/D5031
This exposes an elm_win sizing bug. To test (under X):
ELM_DISABLE_EXTERNAL_MENU=1 elementary_test -to "Main Menu"
The layout is not completely wrong 100% of the time, but it is
exactly correct 0% of the time. Window sizing is our flying
spaghetti monster.
Changes cursor handle name from 'Efl.Text.Cursor.Cursor_Data' to
'Efl.Text.Cursor.Cursor'.
Also, replace all usages of Efl_Canvas_Text_Cursor
with Efl_Text_Cursor_Cursor as the handle for the cursor.
Because there might be hidden C implements defined, we need to
always generate the appropriate class initializer. This does not
hurt anything as the contents would have been called automatically
by Eo anyway.
@fix T5736
Summary:
Although user use "inherit" in a state of proxy part,
the inherit function does not copy the source_visible and
the source_clip value of parent to the state.
Test Plan: {F1751132}sample
Reviewers: jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D5017
@fix
Summary:
When user drags slider, slider value cannot be changed by API.
However the necessity of above behavior has emerged.
Because sometimes applications want limitation of slider value.
Test Plan: elementary_test -> slider -> Limited
Reviewers: woohyun, cedric, SanghyeonLee, singh.amitesh, jpeg
Reviewed By: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4883
Summary:
When scrollable set TRUE,
scroller must be calculated its size except using item.
If content is removed, scroller doesn't calculate its size, so it has previous size.
So there is a empty space in this case.
@fix
Test Plan:
1. elementary_test -to popup
2. open "popup-center-title + list content + 2 button (with delete content)"
3. click "Delete" button
4. compare between scrollable set true and false
Reviewers: herb, singh.amitesh, jpeg, cedric, conr2d
Differential Revision: https://phab.enlightenment.org/D5010
This reverts commit 5a0db7cc67.
Reverting this since ab23a53094 breaks the old working behaviour
on image align. subsequent patch in efl.ui.image brings back the old
behaviour.
refer T4635
This should fix issues when the main menu is wider than the
window content. This assumes that the menu is horizontal and
aligned with the client content.
The theme should probably handle this case better but right
now I am lost in the spaghetti resizes happening between
edje, elm, evas and X...
I am not very happy with this patch, and I think border.edc
needs some love in order to make it more robust and simpler
to read.
Ref T5482
Summary:
From EFL 1.19, Edje Textblock calculation logic was fixed according to
Edje documents. But, it broke old edje files which ignored text.min
option for minimum width. Even if the old edje files were wrong,
we need to support them as discussed from T5548.
Also, this patch will change default efl_version to 1.18 from 1.19.
So, without efl_version property, edje file will run on the legacy logic.
Fixes T5548
Test Plan: Turn on/off presentation mode in Enlightenment.
Reviewers: herdsman, cedric, jpeg, zmike, raster
Subscribers: stefan_schmidt
Maniphest Tasks: T5548
Differential Revision: https://phab.enlightenment.org/D4967
Adjusted by @jpeg
See 4e79dd0f02
That patch was absurd. Do not change the use of a legacy stable
API when you change an EO API. If you need to do that then there
is very clearly a problem in the patch.
This reverts the test case to use the legacy API (which in turn
calls the EO API anyway so both are tested).
Fixes T5587
Summary: There is no name of event for "shrink,state,changed"
Reviewers: jpeg, cedric, woohyun
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4969
First steps toward explicit function pointer support in eolian.
To declare a function pointer type, use the following syntax, similar to
a regular eolian method declaration.
function FunctionName {
params {
...
}
return: Return type
}
Summary:
efl_version will be used to figure out which version of EFL lib
is used to develop a edje file.
If there is no property of efl_version, it will be 1.19 as default.
This feature is needed to fix T5548.
Example:
efl_version: 1 20
@feature
Test Plan: N/A
Reviewers: cedric, jpeg, herdsman, zmike, raster
Reviewed By: cedric
Maniphest Tasks: T5548
Differential Revision: https://phab.enlightenment.org/D4961
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
this fixes below compile warnings.
"
warning: format ‘%s’ expects argument of type ‘char *’,
but argument 3 has type ‘void *’ [-Wformat=]
printf("Successfully set the edje file: %s, group: %s\n",
file, eina_list_nth(grps, 0));
"
eo_prefix are set to "efl_text".
Also, "Efl.Text.Format" is shortened to now include the "_format"
prefix.
"Efl.Text.Font" keeps the "_font" prefix, for better readability.