This allow evas test to work with an Ecore_Evas directly. It prevent leaking of memory
in the case of half destroying Ecore_Evas.
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9104
This support Android 9 patch file format. Only black is a recognized color for both
the stretch area and the content area. All other color are associated with being
"white".
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9103
This is just the plumbing that feed data provided along android 9 patch image for example
into Evas object image new stretch and content region infrastructure for rendering them
properly.
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9102
This is the first step into introducing support for Android 9 patch
format (extension: .9.png). The principle is to expose a new property
on image object that define a complete behavior incompatible with other
border and fill logic. The reason is that 9 patch allow for any number
of stretchable area inside an image, not just for each corner. The way
to define this is by giving a pointer to an array of the proper type
that define stretchable region relative to each other.
The logic being slightly more complex than the border and fill logic,
it is slightly slower. If you are just defining corner on your image
for something like a button, you would still get better performance
using border. I will try to make edje_cc detect those case and fallback
to border when possible.
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9096
The first step with this API is to use the information provided when setting
the border on an image to define the content area inside it. Improvement will
be to use more flexible stretch region area to make it more customizable and
finally read the information from a 9patch file (.9.png).
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9093
Summary:
Current:
In edc, zoom is supposed to happen from object center, there is no way to
change the center of the zoom.
Changes:
Adding support to change the center of zooming just like map rotation by using
other part's center.
@feature
Reviewers: cedric, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9115
Summary:
Remove almost all the compilation warnings from C++ code. Only explicit
warnings using the `#warning` preprocessor directive remain.
Some warnings had to be suppressed with `#pragma` directives because the
behavior they were warning about is intended in some specific places.
Code comments were added in such situations.
Added a generator that creates `#pragma` directives in order to suppress
warnings in all generated C++ headers.
Currently `-Wignored-qualifiers` is the only warning category being suppressed.
The innocuous const qualifiers that it points are inoffensive and have
no effect in compilation at all.
They are also hard to track in generation since they can emerge from different
types in many places.
To ease the generation of the warning suppressors an utility constructor was
added to `efl::eolian::grammar::attributes::unused_type`.
Add constructors to `eolian_mono::class_context` to default initialize its
internal string and avoid field initialization warnings.
Test Plan: `meson test`
Reviewers: lauromoura, felipealmeida, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl_language_bindings
Differential Revision: https://phab.enlightenment.org/D9275
Summary:
Decrement grab count of mouse event when mouse up happen during a freeze state.
Currently as grab count is not reduced in this scenario, further touches gets ignored.
Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in>
Test Plan: (on scenario where proxy exists) mouse down -> freeze events -> mouse up -> unfreeze events
Reviewers: cedric, raster, zmike, Hermet
Reviewed By: zmike
Subscribers: zmike, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9214
Summary:
sse3 instructions set exists since 2003/2004. One can consider that computers with Windows have it, these days
Note also that ector and evas also use sse3 instructions without the test disabling the Windows platform
Test Plan: compilation
Reviewers: zmike, raster, cedric, bu5hm4n
Subscribers: bu5hm4n, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9284
Summary:
Efl.Gfx.Image_Orientable and Efl.Ui.Layout_Orientable have same property name.
So when class extends both interfaces, it makes conflict.
Relates to T7924
Reviewers: woohyun, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9299
given the following scenario:
* object is added to smartobj
* smartobj is otherwise unchanged
* render occurs
object will never render due to smartobj's render cache not including object
by clearing this cache when reinserting smartobj into the render tree for a
followup render, the object chain will be correctly processed on the next pass
fix T7990
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9287
Summary:
When creating a new Value with any IEnumerable of a supported type, the IEnumerable
will be copied into an Eina.Value of type EINA_VALUE_ARRAY_TYPE.
Similarly, `Unwrap()` on a Eina.Value container will create a new
System.Collections.List<T> and return it.
Depends on D9272
Reviewers: felipealmeida, vitor.sousa, segfaultxavi
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl, #expertise_solutions
Differential Revision: https://phab.enlightenment.org/D9273
Summary:
The user can construct an `Eina.Value` from a plain C# `object`, using
reflection to get the correct type of object and construct the correct
underlying C value.
Also added the `Unwrap()` method to return a C# object representing the
wrapped value.
Both operations are useful when using `Eina.Value` to
Get/Set values from `PropertyInfo` targets as in
```
var v = new Eina.Value(propInfo.GetValue(sourceObj));
...
propInfo.SetValue(targetObj, v.Unwrap());
```
Currently, containers are not supported. It will be added in a following
commit.
Depends on D9270
Reviewers: felipealmeida, vitor.sousa, segfaultxavi
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9272
Summary:
Attributes to be used by the API export tool. For end users, no changes
in the public API (except for a new attribute in generated classes).
Also simplifies constructor forwarding by not needing to pass the type
of the first "generated" class to compare.
Currently only automatically generated items are tagged.
Depends: D9259
Reviewers: vitor.sousa, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9270
this handles all the part object getting and signal processing and geometry
calculating so you can get to clickin those parts faster
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9269
also fixes lifetime issue with spin parts
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9268
Long pressing on efl_ui_text gave inifinte loop. So, I removed
event_call in the event callback function.
I think long press functionality is almost broken after applying
clickable_util. There is no way to remove long press timer based
on the action on efl_ui_text.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9274
there was this internal pointer to select_mode for getting the selection
mode of the container. However, we now have API for checking this, so
there is exactly 0 reason for doing this like this. Additionally, with
the old way of doing, bildings like C# or lua are just lost, they cannot
use this class at all in there implementations, as they cannot access
the privat data.
ref T905
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9263
this commit ensures that there is a public way of setting the container
to a item. This was also like this before, just with the difference that
it was set and unset in all privacy, however, we want to have this class
also ready for bindings, so we should stop making things privat like
this.
Note: the removed fields from grid and list have not been used.
ref T7905
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9262
Change inhertitence for object so we can use
themes with elm_code.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9279
(1) Following commit did not care of efl_ui_format_string_get(set) of
elm_slider_part_indicator_eo.c
e776f5f Efl.Ui.Format revamp
Even though you call elm_slider_indicator_format_set with "%1.0f",
elm_slider_indicator_format_get returns NULL.
(2) The commit does not initialize format variables
- elm_slider_indicator_format_get
- elm_slider_unit_format_get
- elm_progressbar_unit_format_get
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9276
Summary:
Build fix (remove warnings)
Instead of returning the beta functions in the vector and relying on
function generators to skip them, filter them out when filling the
implementable methods vector.
This will make the code return the actual number of implementable
function, skipping some unused fields in places like the NativeMethods
implementations.
Depends on D9258
Reviewers: vitor.sousa, felipealmeida, segfaultxavi
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl, #expertise_solutions
Differential Revision: https://phab.enlightenment.org/D9259
Summary:
When skipping beta items, make sure generated documentation does not try
to refer to beta stuff using `see` tags. Doing so would lead to warnings
when generating the xml doc file and as we now treat warnings as errors,
compilation would fail.
Instead of `see` tags, use a simple `span` with a suffix text explaining
said item is beta.
Reviewers: vitor.sousa, felipealmeida, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl, #expertise_solutions
Differential Revision: https://phab.enlightenment.org/D9258
elm_progressbar_value_set with value bigger than max (or less than min) set to
max value instead of the bigger value. Following commit broke this behavior.
5efb4b3 efl_ui_*: get range users onto the same semantics
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9277
Summary:
this only occurs when the same text parts don't exist in the new layout,
which is an extremely unlikely scenario
Depends on D9210
Reviewers: cedric, bu5hm4n
Reviewed By: cedric, bu5hm4n
Subscribers: bu5hm4n, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9211
Summary:
this adds explicit handling for things like:
efl_add(SOMECLASS, parent,
efl_text_set(efl_added, "my text")
);
on edje-inheriting objects.
note that it's still impossible to do something like
efl_add(SOMECLASS, parent,
efl_text_set(efl_part(efl_added, "somepart"), "my text")
);
also add a unit test to verify common behaviors
@feature
Depends on D9209
Reviewers: cedric
Reviewed By: cedric
Subscribers: bu5hm4n, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9210
Summary:
this was being stored as regular text when it was actually markup
@fix
Depends on D9208
Reviewers: cedric
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9209
Summary:
this is where all user-added data (e.g., swallowed objects, table/box packs,
text strings) are stored. with this patch, it is now a hash by part name,
storing a list of user-defined data for that part
this simplifies a bit of code by deconstructing some list walks, and
should end up being slightly faster for large edje objects with lots of
user-defined data
ideally no functional changes
Depends on D9206
Reviewers: cedric
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9208
Summary:
this simplifies the process of manipulating lists inside hashes with a
non-copied key
@feature
Depends on D9205
Reviewers: cedric
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9206
Summary: this is an internal function which is never used
Reviewers: cedric
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9205
Summary:
warnings and errors should never occur in unit tests unless they are
intentionally triggered. this will help catch regressions
Depends on D9256
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9257
Summary:
this is not a valid event type to add a handler for, it indicates an
uninitialized event which means the component is not active and everything
will break
@fix
Depends on D9255
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9256
Summary:
this should not be a silent return since event handlers are depended upon
so heavily
Depends on D9254
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9255
Summary:
this handles the case of reinitializing a component, but it's totally
broken in the case of doing a full ecore restart
Depends on D9253
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9254
Summary:
this codepath is broken if the wl server connection does not exist
Depends on D9252
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9253
Summary:
this was setting an invalid 0<->0 range, which is a misuse of api
Depends on D9251
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9252
Summary: Now Textblock has the ability to parse color names same as hex value strings.
Reviewers: segfaultxavi, woohyun, bowonryu
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9250
otherwise the viewport changes are not propagated correctly. This is
needed in order to have the new item_container bug free.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9249
i saw a segv on freeing em->msg as it was a junk ptr... i dont know
for sure it msg was properly initted but as em is recycled from trash
be sure and zero it when digging out of trash because em->msg was not
a valid ptr (and i wasnt using valgrind at the time to know for sure
and cant find this with valgrind now).
@fix
this verifies event emission for slider like in legacy tests
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9246
this adds an explicit test verifying that if an object is frozen before
a mouse-up event is passed through it, the callback for mouse-up will
not be called for that object
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9239
Summary:
this brings API that connects the theme to the object. This reduces the
amount of code that you need to write in order to develop a widget that
can be scrollable.
For now efl_ui_grid and efl_ui_scroller are replaced with it.
efl_ui_list / efl_ui_list_view are not handeled with this, as they will
be replaced with newer widgets.
Right now this is only avaiable in the C API. However, wrapping this
into a mixin should be easy.
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9245
during cursor free a move cb seems to add another job again after it
wss already deleted during the free process, so just clear the job
really late instead. valgrind found this one
@fix
If pointer is processed by a container in its POINTER_MOVE event
callback, then clickable calls efl_ui_clickable_button_state_reset not
to be clicked by efl_ui_clickable_unpress.
e.g. Efl.Ui.Active_View.View_Manager_Scroll sets pointer processed in
POINTER_MOVE event callback not to click button during scrolling.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9204
Summary:
Fix some warnings in the C++ examples for elementary. These examples are build
by default in the normal meson compilation.
Only accidental warnings were fixed, explicit warnings using the `#warning`
preprocessor directive were maintained.
Test Plan: Compile with C++ binding.
Reviewers: lauromoura, felipealmeida, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9244
Summary:
Avoid the usage of deprecated Eolian type notations like `ptr()` in C# unit
tests.
In places where an alternative type could be used, tests were changed to use
a valid type, e.g. containers that stored `ptr(int)` were changed to store
`string`.
Tests for types that require a pointer notation were commented out and
disabled. They can be re-enabled when a new notation to the type is defined.
Depends on D9238
Test Plan: `meson test`
Reviewers: lauromoura, felipealmeida, q66, segfaultxavi
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, bu5hm4n, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9247
Summary:
Add support for `slice` and `rw_slice` keywords in eolian_mono.
Now it generates the proper manual binding type for these native types.
Make unit tests use these keywords instead of native names.
Remove some unnecessary `@beta` tags from eolian types in unit tests so now
tests correctly compile without the `mono-beta` compilation flag.
Also make tests that use `Eina.Binbuf` "beta only".
In a future update, the external type `Eina.Binbuf` will be marked as beta, so
we shield the binding in anticipation.
Test Plan: `meson -Dbindings=mono -Dmono-beta=true` and `meson -Dbindings=mono -Dmono-beta=false`
Reviewers: lauromoura, felipealmeida, q66, segfaultxavi, bu5hm4n
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9238
Summary:
pd-> surface will try efl_xref whenever surface_set is called.
desturctor is called from a subclass, ref and unref do not match.
So, Add this condition temporarily.
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9235
Summary: Fixes the problem that alpha color is not set when alpha will be 255.
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9216
Summary:
We are adding A object area to the redraws rect when object stack is changed
from (1) to (2) if A object is not mapped.
(1)
┌────────┐
│Object A│┐
└────────┘│
└────────┘
(2)
┌────────┐
│┌────────┐
└│Object B│
└────────┘
But if A object is mapped, then we are adding only part of A object area.
(part of A)
┌───────┐
│┌──────┘
└┘
So the result of stack change is (1) not (2).
This patch set is adding restacked mapped object to the restack_objects array,
after changing the stack of mapped object to add correct redraws rect.
Test Plan:
{F3727281}
{F3727280}
{F3727279}
(1) Build and Run attached example on software_x11 engine
(2) Mouse down on upper image - the image starts to use map.
(3) Then mouse up - upper image should go under the below image.
But, the changed result is NOT rendered.
Reviewers: Hermet, jsuya, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9183
this adds a testsuite to emulate and check the usage of buttons in the
spin button widget. This also verifies that the correct events are
emitted. (For now, the testcases from spin are also copied over, since
they inherit from each other)
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9232
before the spin event for changing the value was called twice if you
changed the value by the entry. Additionally, the changed,delay event is
not emitted when the value was changed via the arrow buttons.
This corrects this, additionally, this enables the delay timer when
focus is gone, this is expected and should be supported by the API.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9231
this reduces the amount of code needed in the widget itself,
additionally, the theme now follows a scheme.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9230
there is no reason to store those two times in the internal data, as
they do not change at all. Additionally, saving the direction in the
internal data has also no reason, since it is *always* used in the call
after the setting, so this makes this a parameter.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9229
this makes the code more readable, and reduces the amount of events we
are subscribing to.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9227
doing this in pressed is kind of weird, if you are on a touchscreen,
missclick, and move the finger away, the entry is already transformed,
which is weird, this fixes that.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9226
this was just reimplementing existing behaviour. This can be done more
easily
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9224
this commits introduces unified behaviour for the users of the range
interfaces. This includes:
- The same errors for limit_set errors
- The same errors for value setting outside the range
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9241
this tests for the correct event emission. And checks the wheel
interaction.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9221
Some docs have been filled with placeholder text ("TBD") or with preliminary
text (marked with //TODO).
Having 0 doc warning we can now enable Warnings as Errors in mono, and in Eolian later on.
Summary:
Some parameter names, tag names and cref identifiers in the documentation were
incorrect and causing warnings during compilation.
There were also warnings related with missing documentation in publicly
visible elements in the manual binding.
This commit fixes these incorrections and adds documentation to the manual
binding in order to solve these compilation warnings.
Warnings related with missing documentation in `.eo` files are still present.
Test Plan: Just compile with mono binding.
Reviewers: lauromoura, felipealmeida, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9243
Summary:
this fixes a trivial leak where a string is leaked at the end of the function.
it is not significant, but it still appears in leak detections.
Reviewers: q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9124
Summary:
Update eolian_cxx to recognize the new keywords `slice` and `rw_slice`, so it
can generate the corresponding types `Eina_Slice` and `Eina_Rw_Slice`.
Reviewers: lauromoura, felipealmeida, q66
Reviewed By: q66
Subscribers: cedric, bu5hm4n, #reviewers, segfaultxavi, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9237
Summary:
Update eolian_cxx tests in order to remove forbidden eolian notations.
For tests with containers that support non-pointer types,
change `ptr(int)` to `int`.
For tests with containers that only support pointer types,
change `ptr(int)` to `string`.
Remove tests for features that are no longer meaningful with eolian new
restrictions.
Add a FIXME note to eina::range_array when used with eina::string_view.
Reviewers: lauromoura, felipealmeida, q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers, bu5hm4n, segfaultxavi
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9236
View is something that is expected in the context of MVVM, so using it somewhere else is
going to lead to some confusion. Spotlight does descrive the objective of all of this
widget in actually a more explicit way as they all give the spotlight to one sub widget
at a time.
I have also renamed the View_Manager to be just Manager as the View there wasn't useful.
Assigning a method directly to a field expecting a delegate creates a
delegate on the fly. This delegate can be collected normally as any
collectable object. In dotnet the GC is more aggressive, causing this
delegate to be collected and C trying to call an invalid function.
To avoid this, we create a static delegate that will be passed to C. Its
lifetime will be tied to the static method it wraps.
Summary:
Encapsulate some parts of EoWrapper making them less accessible to lib users.
This can avoid unnecessary and risky usage of code that is only intended for
internal usage.
`inherited` field was made private and renamed to `generated`. Now its value
can only be obtained through the `IsGeneratedBindingClass` property.
`handle` field was made private.
`eventLock` was renamed to `eflBindingEventLock`
`ConstructingHandle` property set was made private.
Constructors that are used to create new EFL# managed objects by wrapping a
preexisting eo handle now receive a specific struct wrapping the handle pointer.
This can avoid faulty interactions with the Reflection engine used only for
generated classes that implement this constructor.
Test Plan: meson test
Reviewers: lauromoura, felipealmeida, YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9212
this commit ensures 2 things:
1. This ensures that the parent is not evaluated when there was no state
changed, this cuts down roughly 30% of the calls to full_eval
2. This ensures that we only listen to parent manager changes when we
are actaully registered. This reduces the amount spend in event emission
a lot.
This class helps widgets which contain a numerical value and must display it,
like Progressbar (units label), Spin, Spin_Button, Slider (both units and popup
labels, in legacy), Tags (when in shrunk mode) or Calendar (year_month label).
Previously this was a mix of interface and mixin: widgets had to support setting a
formatting func, and the mixin offered support for formatting strings, by setting
an internal formatting func. On top of that, the spinner widget supported "special
values", a list of values that should be shown as certain strings instead.
This has now been simplified and unified:
Widgets including this mixin can use the formatted_value_get() method which accepts
an Eina_Value and returns a string. Thats's it.
The mixin adds three properties to the widget (format_values, format_func and
format_string) which users can use to tailor formatting. The widget does not need
to know which method has been used, it just retrieves the resulting string.
This removes a lot of duplicated widget code, and adds functionality which was
missing before. For example, all widgets support passing a list of values now.
Widgets must implement the apply_formatted_value() method so they are notified
of changes in the format and they can redraw anything they need.
Tests have been added to the Elementary Spec suite for all cases.
Legacy widgets behavior has not been modified, although a few needed some code
changes.
from now on, the "changed" signal is only emitted on radio/check buttons when
the user interacted with this object. NOT due to the API change.
However, in the eo-api the event is emitted all the time, due to user
interaction, AND due to API interaction.
ref T8042
Summary:
Add a property (show_progress_label) to allow controlling whether the progress
label displaying the exact progress is shown or not.
This was possible in Legacy but the functionality was lost in Unified.
Updated elementary_test to showcase this property, and also the other label
formatting options, which where not tested anywhere.
Added a simple progressbar unit test. It only checks that retrieved value is the
same as the set value, so it is more of a placeholder for future tests.
**This is needed by a future patch which will introduce more formatting options that clash with the current implementation.**
The presence of a formatting function was used to decide if the progress label was shown or not. This explicit property simplifies things.
Test Plan:
Everything builds and passes tests.
`elementary_test -to Efl.Ui.Progressbar` should show a few more bars with different formatting labels, and a checkbox to toggle rendering of one of them.
Reviewers: bu5hm4n, zmike, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9202
Summary:
Both C strings and eina stringshares are bound as regular strings in EFL#, as
working directly with these types would demand unnecessary hassle from the user
viewpoint.
But for eina containers this distinction is important, and since C# generics
do not provide a convenient way of dealing with the same type requiring a
different management based on some other condition (at least not without
compromising the usability for other types), we added a simple `System.String`
wrapper named `Eina.Stringshare` that works as a placeholder for signaling
this distinction.
Working with this class should be transparent in most use cases because it
converts to and from `System.String` implicitly.
It also implements equality/inequality methods for easier comparison with
strings and other stringshare objects.
Add new methods and a new container element trait for dealing specifically
with `Eina_Stringshare` elements.
Adapt eolian_mono to identify and generate the proper placeholder in methods
that require stringshare containers.
Remove some direct uses of DllImport-ed functions in favor of more flexible
manual binding methods.
Move `Eina.Stringshare` DllImport directives to a static class named
`NativeMethods`, in accordance with the code design warning CA1060.
Also add a TODO comment to move all other DllImport directives to this class.
Change parameter of the method `Efl.Csharp.Application.OnInitialize` from
`Eina.Array<System.String>` to `string[]`.
This will make this API more similar with the default C# way of receiving
command line arguments.
Add tests for containers storing stringshare elements.
Reviewers: felipealmeida, lauromoura, segfaultxavi, bu5hm4n
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9178
Summary:
With this commit it is now possible for a class that inherits from a C# binding
class to be instantiated from native C code. It only has to provide a
constructor that receives an `Efl.Eo.EoWrapper.ConstructingHandle` struct,
and which calls the base binding constructor passing it.
For example:
`private Type(ConstructingHandle ch) : base(ch) {}`.
Add some test files to validate the proper behavior of this feature.
Add some small fixes in generation contexts in order to properly
generate base constructors.
Depends on D9070
Test Plan: `meson test` and `make check`
Reviewers: lauromoura, felipealmeida, segfaultxavi, woohyun, YOhoho
Reviewed By: YOhoho
Subscribers: YOhoho, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9071
Summary: this is actually a new class, it should be included here.
Reviewers: zmike, stefan_schmidt
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9200
Summary:
Previously, view position was moved by click because transition
information was initialized in mouse move instead of mouse down.
Now, transition information is initialized in mouse down so view
position is not moved by click.
Test Plan:
1. Run Efl.Ui.Active_View Scroll
2. Click Next button 2 times
3. Click Button Page
Or
3. Drag Button Page a bit to the left and click multiple times
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9173
EFL_EVENT_FOCUS_IN is wrong here, EFL_EVENT_FOCUS_IN is called on object
that received object focus. Not canvas focus, however, the code in the
callback there seems to be mainly for canvas focus handling.
Additionally, in evas_events, the event handler that was listening for
the canvas focus in / out events expected a event type, which is also
not correct, because the canvas focus in / out does not have one. In
order to catch such errors later more easily, there is now a safety
check, so we really fetched the correct seat.
Reviewed-by: YeongJong Lee <yj34.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9191
Summary:
Values returned from C# Then callbacks must release ownership of the
underlying native value, so Eina code can clean it up nicely and avoid
the Wrapper flushing it early.
The same issue applied to the Async wrappers. In this case the value
passed as the Task parameter could be released by an `using` block
awaiting the value.
Also Future creation was then-ing the wrong handle.
Also add better exception messages.
Reviewers: vitor.sousa, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9197
Summary:
Instead of 'expected' and 'actual', use 'lhs' and 'rhs', as it allows
the actually expected value to be in any position.
Reviewers: vitor.sousa
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl, #expertise_solutions
Differential Revision: https://phab.enlightenment.org/D9196
Summary:
Previously, if event info was not structure and it was a type defined in
eo, then the type value was not passed to the event info correctly.
e.g. if event info was Efl.Ui.AlertPopupButton enum type, then
default(Efl.Ui.AlertPopupButton) was always passed to event info.
Now, the given type value is passed to the event info correctly.
Reviewers: felipealmeida, lauromoura, vitor.sousa, bu5hm4n
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, herb, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9159
Summary:
Iterator and Accessors are views only, not owning the data they point
to.
Also updated the tests by handling some test data that were leaking.
Fixes T8036
Reviewers: vitor.sousa, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers, segfaultxavi, q66
Tags: #efl
Maniphest Tasks: T8036
Differential Revision: https://phab.enlightenment.org/D9189
this verifies that EFL_EVENT_POINTER_CANCEL is emitted correctly.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9171
it looks like this was left out during initial writing of eo-based eventing,
but based on the description, the intent was to have a separate cancel event
which was emitted just prior to the 'up' event using the existing state
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9184
Some config definitions used in source code could not be defined during build config process.
- HAVE_XATTR
- HAVE_CIPHER
- HAVE_SIGNATURE
- BUILD_ECORE_EVAS_EWS
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9192
now we can consistently do event emissions inline in tests using much
simpler code
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9188
no need to manually include this for every file
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9187
the usual method is calc -> post render -> job to ensure everything is
set up. this simplifies getting to that job.
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9186
Any svg node could have its opacity value, we missed implementing it.
If a node have a opacity, it's opacity could be multiply with fill and stroke colors.
@fix
Summary:
this doesn't seem to serve a purpose anymore and there's no point in
keeping it in tree
fix T7866
Reviewers: woohyun, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl_widgets
Maniphest Tasks: T7866
Differential Revision: https://phab.enlightenment.org/D9176
Summary:
there is a helper for this function, lets use it.
Depends on D9181
Reviewers: stefan_schmidt, segfaultxavi, zmike, Jaehyun_Cho
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9182
Summary:
this tests if z and direction is correctly emitted
Depends on D9169
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9170
Summary:
this verifies that EFL_EVENT_POINTER_MOVE / EFL_EVENT_POINTER_DOWN /
EFL_EVENT_POINTER_UP are emitted and passed with the correct event types,
and fields on the event object.
Depends on D9167
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9168
Summary:
this also adds tests verifying that EFL_EVENT_KEY_DOWN / EFL_EVENT_KEY_UP are emitted
and passed with the correct event types, and fields on the event object.
Depends on D9166
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9167
Summary:
this verifies that EFL_EVENT_FOCUS_IN / EFL_EVENT_FOCUS_OUT are emitted
and passed with the correct event types, and fields on the event object.
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9166
This restricts disallowing value types to containers that can own
them.
It also disallows usage of @owned on those view-only containers,
as that makes no sense.
Add a new function in the Eo API in order to provide more options on object
instantiation for binding creators.
For the Eo lib to be able to construct objects that inherit from bindings in
many languages we should provide a way for bindings to call different kinds of
constructors, in a way that simply overriding the `efl_constructor` method is
not enough.
We need a way to differentiate at construction time if the Eo is being
constructed from C or from the binding, because if it is the
former we need too call the inherited object constructor from C and instantiate
a new object, and if it is the later we need to avoid instantiating a
new object because we are already in the middle of the process of creating
a new one.
`efl_constructor` alone does not provide any way of distinguishing between
those situations, so, being able to pass additional information for
efl_add_start (like a custom constructor pointer) is necessary to make the
right distinction.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9070
Summary:
efl user can now specify colors by there names ( not only Hex RGB/RGBA values), which is very convenient specially for first time users (where user may think it is supported by default)
<color=#FF0000> == <color=red> == <color==RED>
there are two main types of color names and values ( X11, web colors), here we are using X11 color.
============
Update for documentation pages should be added like:
https://www.enlightenment.org/_legacy_embed/evas_textblock_style_page.html#evas_textblock_style_color
I do not know how to update it :(
Test Plan:
```
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Eina.h>
#include <Elementary.h>
#include <Efl_Ui.h>
static void
_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
{
efl_exit(0);
}
static void
_gui_setup()
{
Eo *win, *box;
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Hello World"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
// when the user clicks "close" on a window there is a request to delete
efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, NULL);
box = efl_add(EFL_UI_BOX_CLASS, win,
efl_content_set(win, efl_added),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(360, 240)));
efl_add(EFL_UI_TEXT_CLASS, box,
efl_text_markup_set(efl_added,
"<color=red>this is red color line(color = red)<color><br>"
"<color=#0000FF>this is blue color line (color = #0000FF)<color><br>"
"<color=gray>this is gray color line (color = gray)<color><br>"),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.9),
efl_gfx_hint_align_set(efl_added, 0.5, 0.5),
efl_text_multiline_set(efl_added,EINA_TRUE),
efl_pack(box, efl_added));
efl_add(EFL_UI_BUTTON_CLASS, box,
efl_text_set(efl_added, "Quit"),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.1),
efl_pack(box, efl_added),
efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED,
_gui_quit_cb, efl_added));
}
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
{
_gui_setup();
}
EFL_MAIN()
```
Reviewers: woohyun, bowonryu, segfaultxavi, vtorri
Reviewed By: segfaultxavi, vtorri
Subscribers: vtorri, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9153
Summary: change fixture to zero all global variables and reset state
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9177
the problem was that the savers are defining the same defines as the
loaders. Because of me beeing paranoid, i would like to keep the double
define, as later on, someone will likely forget it, and it does not do
any harm here.
this fixes ci.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D9174
Summary:
C# `Eina.Value` now has builtin support for `EINA_VALUE_TYPE_OBJECT`.
To avoid ambiguity with the `Set` method overloads, explicit casting
operators were used for wrapping/unwrapping `Efl.Object` instead of
implicit ones like for other value types.
Thus, to initialize an `Eina.Value` from an object, you can use the
following:
`var v = (Eina.Value)myObj;`
Reviewers: felipealmeida, vitor.sousa, segfaultxavi, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9164
this simulates clicking and dragging a slider to avoid regressions with
these events
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9152
this object is swallowed into a layout, which means the layout will be managing
this property
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9151
You can now declare errors like this:
error Foo = "message"; [[documentation]]
Then you can use them as types like this:
foo {
return: error(Error1, Error2, ...);
}
They have a separate type category and storage. They are checked
for redefinitions the same as anything else though. This does
not add any generator support nor it adds any advanced checking.
Ref T6890
Summary:
Eo mixin is converted to C# interface and C# concrete class.
When the mixin's method is called, the delegate function of Eo mixin's
C# concrete class is called.
Now, the delegate function of Eo mixin's C# concrete class calls C#
method with casting to Eo mixin's C# concrete class type.
e.g. ((IClickableConcrete)ws.Target).Press(button);
If a user defined C# class implements Eo mixin's C# interface, the
implemented method cannot be called because the user defined C# class
type is not the same as Eo mixin's C# concrete class.
To resolve the above issue, the type casting code is fixed.
Reviewers: felipealmeida, lauromoura, vitor.sousa, YOhoho
Reviewed By: YOhoho
Subscribers: bu5hm4n, YOhoho, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9111
Summary: the event type was wrong. This is now fixed and works correctly.
Reviewers: stefan_schmidt, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9144
Summary: If the layer has an alpha value, we have make it available to container.
Test Plan: N/A
Reviewers: Hermet, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, kimcinoo, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9081
Summary:
This patch extends efl_canvas_vg_object class to implement efl_gfx_frame_controller
to suppor any playable animation on it.
Plus, vector object takes care of lottie animation by using json loader.
it's caching mechanism is changed to cache only static frame, not all frames.
vg_cache supports json loader and make it animation request properly.
This feature has been stabilized enough, it's using in Samsung Galaxy Watch active product,
proved its stability enough.
Depends on {D8940}
Co-authored-by: JunsuChoi <jsuya.choi@samsung.com>
Reviewers: #committers, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8941
Summary:
Introduce a new evas json loader to support lottie animation.
This json loader uses rlottie library which is a new github open project.
These days most ui frameworks (windowpws, skia, qt, xamarin, react, nativescript) supports lottie,
the rlottie was designed to support lottie as a standalone library and compatible with efl as well.
To enable this,please install rlottie library then remove json disabler in meson_options.txt
For more information, See lottie/rlottie project and its a introdcution article:
https://airbnb.io/lottie/#/https://github.com/samsung/rlottiehttps://hermet.pe.kr/143
Co-authored-by: JunsuChoi <jsuya.choi@samsung.com>
{D8941}
{D8944}
Reviewers: #committers, jsuya, bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8940
613e1715be (and friends) added a bit a
biug where messages in the queue were not skipped as they were before
causing a segv witha null lookup. this fixes that. eclipse about
dialog showed this bug up. no longer happens now.
Summary: those files are leftover from autotools. They have been missed before
Reviewers: stefan_schmidt, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9143
it was somehow confusing that this function was used for two different
things. Now we have 2 functions for checking is it is of pointer_type or
how many pointer devices are in a seat.
ref T7963
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9142
rename this property, as this name was considered better.
ref T7964
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9141
It appears that EVAS_CALLBACK_FOCUS_IN / OUT is wrong here, as this is
for when a object gets focus but not the scene.
However, the inital event emission still does not work correctly, this
needs some further investigation.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9138
it seems we have done here something wrong, EFL_EVENT_FOCUS_IN is meant
to be emitted on objects that RECEIVE focus. This function here however
is called each time the window gets focus, which then might lead to a
object getting focus. However, those are two different things.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9137
And further more, this object here would have been wrong(as it is
transporting the focused object), so we should not write here any type.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9136
tool was not very helpfull, and additionally, the docuemtnation of it
was completly wrong. After searching through the code where tool was
actaully set (efl_ui_win.c) it turned out that it is actaully the "id"
of the pointer when there are multiple touch events.
ref T7963
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9135
This is a bit of a giant commit. However, the problem here is that
cleaning up the API went hand in hand with rewriting most of the usages.
In the process of renewing and removing old API the following was done:
- Legacy API testcases have been ported back to smart callbacks
- EO-API testcases have been ported to efl_add syntax
- weird event #defines have been removed
- Wrong constructor usage has been removed
- Ported to the new box object introduced before
- removed legacy API from efl_ui_radio
-> no more ptr(int) q66 will do jumps of happiness
-> no more ununderstandable group_add methods
-> Seperated code in blocks only for legacy, and blocks only for
non-legacy
To verify this commit, you can check all the tests that have been
touched here. Additionally, the cxx example has been adjusted
ref T7867
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9060
in previous versions of this widget, the calls that are available due to
inheritance did not work. efl_ui_check_selected_set did not work on a
radio button. However, the internal function _state_set did just exactly
that. So this commit refactors the activity emitting out of the
function, so the _state_set function can just be used as the
efl_ui_check_selected set function.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9059
Radio_Group is a interface that manages that radio groups can be grouped inside a
external object, the current API of radio was considered confusing in
that regard. It is implemented in the Radio_Group_Internal class which
is private to EFL, a instance of it can be found with get due to the
class function in efl_ui_radio.eo. This architecture was taken like
this, in order to have implementation and interface seperated. With
those two seperated we can inherit from regular widgets, implement the
interface, and composite attach the internal object to the regular
widget. This makes a lot of things easier.
Radio_Box is a class which is extending Efl.Ui.Box, which has an
internal Radio_Group. This is extremly usefull for cases where you just
want to have a list of radio buttons in your UI. The radio group is also
exposed using composition to the internal object. Simular things can be
done for the table.
For now i did not add API to find the group of a radio button. However,
this can be quickly added if requested.
ref T7867
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9058
Summary:
alloca force the memory to be accessible for the entire duration of the
scope of the function it is called from. This will garantee that the
memory pointer are not recycled under our feet before we check them.
T8020
Reviewers: zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8020
Differential Revision: https://phab.enlightenment.org/D9127
Summary:
Use more descriptive parameter names.
l, r, t, b it my confused with rgb value or something similar.
Reviewers: segfaultxavi, woohyun, bowonryu
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9131
Summary: we need to include evil_private.h so that some symbols are declared
Test Plan: compilation
Reviewers: raster, zmike, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9129
mouse in/out feeds can call callabcks that can then go delete objects
- ref them all to ensure they stay alive while we use them. this will
fix a segv apbbb saw.
Just fixed a backward compatibility issue in elm_slider.
Now it calls "delay,changed" as it had done previously.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9130
Summary:
When the precomp layer(parent layer) has alpha transparency and has more than 1 child layer
and they overlap each other if vg object just propagate the alpha to child layer
it will be applied twice in overlapped area.
Even if the child layer does not have alpha transparency, parent alpha is applied to each child.
Test Plan: N/A
Reviewers: Hermet, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, kimcinoo, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9072
when the activeview is being destroyed, we can skip a lot of steps in
unregistering widgets due to hierarchy-enforced deletion and class
chaining of destructors.
on the flip side, we also need to be cautious of triggering codepaths that
will perpetuate object lifecycles past when they should be destroyed and
trigger unwanted behavior.
for this case, when the activeview is being destroyed we can simply efl_del
all the contents to reuse existing callbacks, and then we can skip doing
all the update propagation through activeview subcomponents since those will
be destroyed presently. also, these subcomponents already handle subobject
destruction with callbacks, so they'll automatically clean everything up.
probably.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9125
Summary:
it seems something is leading to weird stack behavior with gcc when we
do not delete the widget here. Later deletion in _elm_win_shutdown leads
to a crash like:
#0 0x00007f7b30dd5bd7 in _elm_win_shutdown () at ../src/lib/elementary/efl_ui_win.c:3805
#1 0x01007f7b30cdf3a2 in ?? ()
#2 0x00007fffa4e60570 in ?? ()
#3 0x0000000000407b14 in _elm_suite_shutdown () at ../src/tests/elementary/suite_helpers.c:52
which is kind of weird. After a day of debugging i did not get any
further, so maybe it is better to do add a hack, so we are having at
least a running CI again
Reviewers: stefan_schmidt, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9112
The pkg-config file for the 0.10 series of gstreamer is called
gstreamer-0.10.pc and we need to correct name in the dependency check
here to find it. Improving our CI coverage does spot bugs. :-)
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9114
The 0.10 gstreamer module needs Ecore_X.h during build. Make sure we
actually have this dependency right so the build can succeed.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9113
Summary:
When it creates multilevel class of NativeClass, internal c function is not
called because eo vtables aren't created
Test Plan:
Check "MyBox2 UpdateLayout" printed.
```
//mcs test_box.cs -out:test_box.exe `pkg-config --libs efl-mono`
//mono test_box.exe
using System;
public class MyBox2 : MyBox
{
public MyBox2(Efl.Object parent, string style = null) : base(parent, style)
{
}
public override void UpdateLayout()
{
Eina.Log.Error("MyBox2 UpdateLayout");
base.UpdateLayout();
}
}
public class MyBox : Efl.Ui.Box
{
public MyBox(Efl.Object parent, string style = null) : base(parent, style)
{
}
public override void UpdateLayout()
{
Eina.Log.Error("MyBox UpdateLayout");
base.UpdateLayout();
}
}
public class Example : Efl.Csharp.Application
{
protected override void OnInitialize(Eina.Array<System.String> args)
{
Efl.Ui.Win win = new Efl.Ui.Win(Efl.App.AppMain);
var box = new MyBox(win);
box.SetHintSizeMin(new Eina.Size2D(360, 240));
win.SetContent(box);
var box2 = new MyBox2(win);
box2.SetHintSizeMin(new Eina.Size2D(360, 240));
box2.Pack(box);
var button = new Efl.Ui.Button(box);
button.SetText("Click");
button.ClickedEvt += (object sender, Efl.Ui.IClickableClickedEvt_Args e) =>
{
box.CalculateGroup();
box2.CalculateGroup();
};
box.Pack(button);
}
public static void Main()
{
var example = new Example();
example.Launch();
}
}
```
Reviewers: segfaultxavi, vitor.sousa, felipealmeida, lauromoura, woohyun, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9079
this can now be done with active_view. This is done in order to reduce
the LOC in elementary that basically do the same.
Differential Revision: https://phab.enlightenment.org/D8920
Summary:
If an input buffer and an output buffer for the curve filter are same, it reads
and writes to the same texture which behavior is not defined. I could not find
good reference for this, but following could be a reference.
https://stackoverflow.com/questions/11410292/opengl-read-and-write-to-the-same-texture
The texture gets 0 color value as a result. So the curve filter does not work.
This patch makes the curve filter use different input and output buffer.
Test Plan:
This attached file could explain what 'read and write to the same texture' is.
{F3724537}
Reviewers: Hermet, jpeg, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9085
Summary: this was simply not tested before. But works now.
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9109
so i've been wondering what is going on for a few days... and i've
figured it out finally... my mouse seems ot like to generate 1000
events per second. not your usual 100 or 200. it only happened on this
one machine so i was wondering what on earth was up. this machine was
different in other ways like an arm cpu, differing gpu (rx550),
different distro and so on. this is creating a storm of motion events..
and this is causing all sorts of overhead in just trying to deal with
them all like generate more internal events, emit signals for every
one of them and so on. there is no attempt to play catch-up or
anything - just build up a bigger and bigger queue of them to deal
with. this is NOT GOOD. this restores our old commented out event
skipper that got commented out during some xcb work actually -
not on its own. it was a huge xcb patch that commented it out.
this restores it and makes it a little cleaner with a bool and now the
perf issues i was seeing are gone. this is such a major performance
fix that this deserves a backport.
@fix @optimize
Get your seatbelt fastend! It is happening! AUTOTOOLS IS GONE NOW!
All praise to meson!
This time the final version, ci has been adjusted, and now does not try
anymore to build a removed buildsystem. However, the scripts in there
need cleaning up.
Differential Revision: https://phab.enlightenment.org/D9027
i missed 1 rare case where we start in the middle of the list and have
to walk to the end. testing didnt show it up. fix. this fixes up that
case in b5ed76ba9f
to walk inreverse we need to jump to last first then walk backwards...
what we were doing is calling eina_inlist_last() which is defined to
walk rather than that using list->last ... this totally got rid of
_evas_event_object_list_raw_in_get() from my perf list ... and i was
wondering how it got there to start with.
this is such an obvious optimization...
more optimizations for edje messages to avoid excess alloc and frees
if we have some trash around... since messages already have list
nodes, re-use the main list node for storing trash and not eina trash
as this avoids extra allocs for trash nodes.
so to process a single obj we added a lot of mesgs to the message
queueue only then to wak most and SKIP most msgs again and again -
when this adds up to 1000's of messages and 10k+ then literally moving
a window in e hangs for multiple seconds and we walk such lists in On2
like complexity. this gets it down to O(1) along with some other minor
optimizations of not adding to tmp list only then to add them to the
nex queue/list.
there is more i can optimize here as well now we track messages for an
edje in th edje. that's next.
using regular lists means we double our indirect ptr jumps and
fragment ram more - this is step one in improving performance of
message handling in some nasty corner cases i have found. first this
so it can be identified as an issue on its own if it is one. i've
tested it and it seems ok. so this si stage 1.
Summary:
And update the docs to explain its purpose.
Related to T7893
Test Plan: Everything builds and tests pass
Reviewers: zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9090
Summary:
check can only display 2 states, and is only designed to do so.
Additionally, nstate inherits from button, which
brings in autorepeat, which is hileriously broken on check and cannot
really work.
Right now there is not even support in the theme for clickable. So its a
good idea to get rid of this for now IMO.
ref T7865
Reviewers: stefan_schmidt, zmike, segfaultxavi, akanad, YOhoho
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7865, T7867
Differential Revision: https://phab.enlightenment.org/D9018
Summary:
The vg object (container, shape, ...) follows color of VG node data.
The color of node data is not initialized. it can set the required color for each object.
vg container should be layer with an alpha value of 255.
Test Plan: N/A
Reviewers: Hermet, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, kimcinoo, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9083
Summary: this is automatically handled by elm_shutdown at the end of every test
Reviewers: YOhoho
Reviewed By: YOhoho
Subscribers: YOhoho, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9087
we don't force buffers to flush in wl... this will fix that and force
them removing an ugly hang for possibly seconds in cnp from client to
client or even within a client.
remember:
flush your mush.
@fix
Summary: it crashes when calling elm_interface_scrollable_loop_get() function with NULL parameters.
Test Plan: call elm_interface_scrollable_loop_get() function with NULL parameters.
Reviewers: Hermet, woohyun, kimcinoo, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9082
Summary:
https://phab.enlightenment.org/T7544
This is for set config values for gesture manager.
C# will use gesture manager instead of elm_gesture_layer.
Those config values should import to gesture manager to recognize and handle gestures.
Reviewers: segfaultxavi, stefan_schmidt, bu5hm4n, zmike, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: Jaehyun_Cho, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7962
it seems with those two actions here in the commit, do use id in a
different way the other actions do. This is commit protects against
this.
Differential Revision: https://phab.enlightenment.org/D9078
Until the cause of these issues can be found exit and
print error messages to console. edje_cc is currently
not reliable on OpenBSD. Until then anyone wanting to
use EFL on this platform will need pre-compiled .edj
files.
Differential Revision: https://phab.enlightenment.org/D9077
the problem that can be observed when clicking permanently on a view in
the view_manager_scroll. You will see things jump arround uncontrolled,
then when you quickly drag and drop, you will also see a lot of weird
moving arround artifacts. The reason for this is, that progress was not
correctly resetted, additionally, mouse_active also was not resetted
correctly in one case.
fix T7988
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9074
the problem here is, when we update content. We need to unset visibility
to the *old* content, and set visibility to the *new* content. This is
now finally fixed.
fix T8002
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9073
It kind of worked by luck for 6 months, but really shouldn't. This
is now a custom iterator that will walk the string part of the properties
only. It could become a generic iterator if necessary one day, but
for now, it is fine just here.
T7771
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9075
Previously, final_state_keep did not work correctly with animation
repeat.
e.g. repeat mode is restart and repeat count is 1, then final_state_keep
did not work.
Now, final_state_keep logic has been fixed to work correctly.
Previously, for a single canvas animation, map effect was applied in
animator callback without resetting previously applied map effect.
This increased numerical error because each time map effect factors
(e.g. scale, degree) should be calculated based on the current map
coordinates.
To resolve this numerical error, now the previously applied map effect
is reset before applying the current map effect in animator callback.
efl seemingly has been broken on freebsd for a while - environ the
symbol does not exist for SHARED LIBS on freebsd (discussin had been
had on this already, but i gave up). use dlsym as the escape mechanism
so we build on freebsd again.
Summary:
using 0,0,0 (black) with 0 alpha (transparent) here causes the clipper for the
image to draw a fully transparent rectangle, which means that no pixels for
the clipped image are visible.
the expectation when using this test is that enabling the bg color will shade
the image with a red tint, and disabling the bg color will return the image to
its normal color. the current version of this test gives the impression that
disabling the color setting on this widget breaks the widget, which is not
accurate. currently.
fix T7984
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: devilhorns, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7984
Differential Revision: https://phab.enlightenment.org/D9066
Summary:
in gl engines, orientation is applied during the draw. this is different from
sw engines where the orientation is directly applied to the internal pixel data
which results in a state change of the object internals.
this preserves image cache state and allows the image to be loaded normally instead
of displaying a black rectangle if orientation is set prior to a texture being
created
@fix
Depends on D8916
Reviewers: Hermet, cedric
Reviewed By: Hermet, cedric
Subscribers: Hermet, cedric, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8918
Summary:
when install is not set, meson take the value of install_dir. So when
this is removed, things will continue working correctly.
Reviewers: zmike, stefan_schmidt, cedric, segfaultxavi
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9065
Summary:
This commit makes use of the `ownership,shared` and `ownership,unique`
events from Efl.Object in order to avoid the C# wrapper from being
collected while C code holds a reference to the object.
For example, creating a list of items in a for loop and attaching events to
them would fails without this commit, as the C# GC may collect the wrapper.
The basic idea is that we use a `WrapperSupervisor`, which is stored in
the Eo data storage, with a GCHandle allocated for the lifetime of the
underlying Eo object. This supervisor takes care of holding either a
weak C# reference (when in unique mode, allowing the wrapper to be GC'd)
or a hard C# reference (when in shared mode, making the wrapper
non-collectable while the Eo has extra references).
One limitation is that object graphs can leak if a shared object in the
graph - an Eo child for example - stores a hard reference to another
object in the graph as a C# field. In this example, this causes the
parent to always have a hard C# reference (from the child) as the child
is non-collectable due to the parent holding an Eo reference to it.
Depends on D8678
Test Plan: `ninja test` and `make test`
Reviewers: lauromoura, felipealmeida, woohyun, segfaultxavi
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9014
Summary:
- Wrappers losing C# ref while alive in Eo
- Inherited instances being collected
Also cleanup GC and loop queue before each test
Reviewers: vitor.sousa
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9063
Summary:
This struct was throwing documentation warnings, but it turns out it
is unused. Better to remove it for clarity.
Test Plan: Everything builds and passes tests.
Reviewers: zmike, bu5hm4n, cedric, devilhorns
Reviewed By: devilhorns
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9062
Summary:
this is now supported
Depends on D8852
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8853
Summary:
this adds another masking functionality using a layout object to the test
when the toggle mask button is clicked enough times
Depends on D8849
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8850
Summary:
now that various other bugs related to clipping/masking/drawing have
been fixed, this "just works"
@feature
Reviewers: Hermet, cedric
Reviewed By: Hermet, cedric
Subscribers: Hermet, cedric
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8852
Summary:
the data for this object may be further referenced during deletion
after this point without triggering errors, so ensure that pointers
which are accessible with api functions do not persist after deletion
@fix
Depends on D8985
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8986
Summary:
these blocks intentionally trigger warnings/errors, so use test macros
to indicate this
Depends on D8969
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8970
Summary:
otherwise we say content is active that is not active anymore.
This fixes currently failing testcases.
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9057
Summary:
The -1 here only worked for cases where we delete widgets at position 0.
When we are deleting something then we need to stay in the virtual
position where the view is right now, but *then* we need to animate
again into the direction where have real content. This commit ensures
that this is the case
fix T7989
Depends on D9056
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7989
Differential Revision: https://phab.enlightenment.org/D9055
Summary:
we should protect against multiple requests to the same "to" index.
Otherwise either the speed could increase dramatically, or we start to
oscilate arround the final position, based on the progress sign.
Those ifs here are fixing it.
fix T7988
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7988
Differential Revision: https://phab.enlightenment.org/D9056
This adds a new unified syntax for giving declarations C names.
Classes: class @c_name(Foo) Foo ...
Types: type @c_name(Foo) Foo: Bar ...
Structs: struct @c_name(Foo) Foo ...
and so on. Type instances properly inherit those. This also cleans
up some other parts of the source code.
Fixes T6716.
This should clarify how the different components of this new widget are meant
to be used.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9044
This can be done with Efl.Ui.Active_View
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8907
This now migrates to active_view. When we get back to this widget for
stabelization. This is only the first step for loosening efl.ui.pager so
it can be removed. For now the API of efl_ui_tab_pager stayes the same.
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8906
this widget tries to replace efl.ui.stack efl.ui.flip & efl.ui.pager
In general those widgets do the same thing, they get content. And
display them with some sort of animations. The new idea here is, that
the basic widget active_view only handles the ownership etc. of the
content that gets added to this. Then there is a view_manager object. The
view_manager object gets notified over the new contents, and requests for
displaying particular contents. The transition then handles those
things.
The version here is feature complete with Efl.Ui.Stack and Efl.Ui.Pager.
Additional features can be implemented in the corresponsing transition
classes. Examples and tests will follow
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8784
Summary: Avoid unnecessary operations on unrealized item when item field update is called
Test Plan: Call item_field_update on an unrealized item
Reviewers: cedric, raster, SanghyeonLee
Reviewed By: SanghyeonLee
Subscribers: #reviewers, rajeev.jnnce, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9019
Summary:
legacy full style item is introduced Efl.Ui.ListEmptyItem Class in new Efl Interface,
but using "Empty" name is too ambiguous to present style usage.
Thanks to @cedric and @segfaultxavi,
I found better name for this class, Efl.Ui.ListPlaceHolderItem,
as item hold the place which need to be replaced and relayouted by user generated content.
Depends on D8582
Reviewers: cedric, segfaultxavi, eagleeye
Reviewed By: eagleeye
Subscribers: cedric, #reviewers, segfaultxavi, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9034
Summary:
Most of item-based class will have similar efl.part such as text, icon, end.
creating this efl part per each class will be very hard to maintaining the class
and unnecessary eo generation.
so combine them in efl.parts of efl_ui_item.
sub item classes can use this efl.part by declairing ther own eo definition.
Reviewers: cedric, Jaehyun_Cho, segfaultxavi, eagleeye
Reviewed By: cedric, eagleeye
Subscribers: herb, woohyun, q66, lauromoura, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8582
I have choosen to use ${} as the property marker, but I am open to other suggestion. Let
me know if you have other suggestion.
This patch also fix recursion on properties changed to properly explore parents dependencies,
avoid infinite loop and emit properties changed by added property logic or property text
on the Efl.ViewModel.
Reviewed-by: Lauro Neto <Lauro Moura <lauromoura@expertisesolutions.com.br>>
Differential Revision: https://phab.enlightenment.org/D8755
Some user code may want to track an object ownership in regard to whether it is
kept by just one owner or shared between many owners.
This is specially true for code provided by bindings to other programming
languages, where different kinds of resource management may take place.
The event `ownership,unique` is triggered whenever the object refcount goes
from two to one, as a signal that it has just one owner from now on.
The event `ownership,shared` is triggered whenever the object refcount goes
from one to two, as a signal that it has multiple owners from now on.
It will not trigger when further increasing the refcount to any value beyond
two.
We also add benchmarks for sharing (i.e. increasing the refcount) and them
unsharing objects, in order to evaluate the performance impact of this patch.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8678
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9050
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9051
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9049
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9050
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9048
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9049
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9046
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9048
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9045
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9046
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9045
Summary:
some widgets do not create a minimum size for themselves, resulting in
a 0x0 layout which can affect tests that rely on object visibility to
succeed without errors
Depends on D9007
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9008
Summary:
we want to make it clear in our tests where it is intended that warnings
and errors may occur
Depends on D9005
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9006
Summary:
this isn't a perfect fix, but it's probably the best that can be done
given the current ecore-imf module api which calls the exit() module
function unconditionally during module cleanup even if the module was
never initialized
@fix
Depends on D9003
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9005
Summary:
this object does not exist if no image border is set
@fix
Depends on D9002
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9003
Summary:
adapter can be null if it was previously destroyed
@fix
Depends on D9001
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9002
Summary:
there is nothing to update here if the scroller has no content to update
@fix
Depends on D9000
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9001
Summary:
this ensures that all necessary objects exist in order to successfully
perform the zoom
@fix
Depends on D8999
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9000
Summary:
no further recalculating should be done on dead objects
@fix
Depends on D8998
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8999
Summary:
this is a valid case and should be handled without erroring
@fix
Depends on D8997
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8998
Summary:
this ensures that the object exists during init functions which make calls
on it
@fix
Depends on D8996
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8997
Summary:
this flag is accessed by other components (e.g., focus) during the event
and so it must reflect the emitted event
@fix
Depends on D8993
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8994
Summary:
there is no need to recalculate any genlist attributes if the genlist is
dead
@fix
Depends on D8992
Reviewers: cedric, bu5hm4n
Reviewed By: cedric, bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8993
Summary:
this flag is accessed by other components (e.g., focus) during the event
and so it must reflect the emitted event
@fix
Depends on D8989
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8990
Summary:
non-editable widgets do not have this object and will trigger errors
@fix
Depends on D8988
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8989
Summary:
the table object's destruction is no longer relevant after this point and
its callback can trigger unnecessary errors
@fix
Depends on D8986
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8988
Summary:
the remainder of this function is used to setup styles for subobjects
which don't yet exist at this point
@fix
Depends on D8984
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8985
Summary:
no need to update access info for dead objects
@fix
Depends on D8983
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8984
Summary:
some progressbar styles do not have certain parts, so it's necessary to
check part existence on theme load to avoid triggering unnecessary
errors
@fix
Depends on D8981
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8982
Summary:
if the layout object does not exist here then there is nothing to freeze
@fix
Depends on D8980
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8981
Summary:
this fixes a huge number of errors during object deletion
@fix
Depends on D8979
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8987
Summary:
when triggered before the image is loaded, this code cannot be run
@fix
Depends on D8978
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8979
Summary:
some check styles do not have this part
@fix
Depends on D8977
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8978
Summary:
these are intentionally canceled and not something to be concerned with
@fix
Depends on D8974
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8976
Summary:
if the wref automatically removes this pointer then there's no need to
remove the wref on the pointer
@fix
Depends on D8973
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8974
Summary:
some engines do not have an evas
@fix
Depends on D8971
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8972
Summary:
some button styles do not have this part
@fix
Depends on D8970
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8971
Summary:
the part elm.dragable2.slider only exists when the slider is set to range
mode, so verify that this mode is active before attempting to use that part
@fix
Depends on D8968
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8969
Summary:
in range mode, there are two slider endpoints, but only one event should be
emitted if a change is detected during update
@fix
Depends on D8967
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8968
Summary:
sd->obj is null until after the object is finalized, so this codepath
cannot be processed until then
@fix
Depends on D8966
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8967
Summary:
this makes it possible to successfully run elm_test out of the tree
without installing
@fix
Depends on D8965
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8966
Summary:
null is not a valid subobject, do not attempt to add it
@fix
Depends on D8963
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: devilhorns, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8964
Summary:
sd->obj is only non-null later in construction, so add even more checks for it
here
@fix
Depends on D8961
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8962
Summary:
this eliminates a number of errors triggered when processing class hierarchy
to reach the desired subobject with these edje functions
@fix
Depends on D8958
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8959
Summary:
this can't be successfully completed until the object has been fully constructed
@fix
Depends on D8957
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8958
Summary:
the previous code checked for the object which was required to execute
the remainder of the function, then returned if that object existed instead
of continuing with the function. hello?
@fix
Depends on D8956
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8957
Summary:
the remainder of this function cannot be handled until objects are set up
later in construction
@fix
Depends on D8955
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: devilhorns, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8956
Summary:
this can never succeed as there will never be an object to successfully
size with at this point
@fix
Depends on D8954
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8955
Summary:
this has no effect since the resize_obj is what determines sizing
@fix
Depends on D8953
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8954
Summary:
use same pointer for conditional to improve readability, avoid passing null to
efl_ui_focus_manager_reset_history() which cannot be passed null
@fix
Depends on D8952
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8953
Summary:
this function is commonly used to detect the existence of files using
its return value. for this purpose, printing warnings any time the file
cannot be opened is spammy and not very helpful in the context of detecting
actual errors.
Depends on D8950
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8951
Summary:
this is the only way to determine whether a part is invalid, so it should
be usable without triggering errors
@fix
Depends on D8948
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8949
Summary:
if a part changes its type, verify that the new type is compatible AND
exists before attempting to re-set the previous state, otherwise take
action and print warning
@fix
Depends on D8947
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8948
Summary:
timer has no loop pointer until it is finalized
@fix
Depends on D8918
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8947
Summary:
this occurs when orientation is set during image construction
@fix
Reviewers: segfaultxavi, cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8916
Summary:
in the case where the clipper being set was an indirect object, it's necessary
to resolve the lookup for that part and use the actual part object to avoid
setting a placeholder rect as the clipper
@fix
Depends on D8850
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8851
The Efl.Ui.Orientation enum is actually made of flags, which we can OR
together, and it includes bitmasks for easier manipulation.
gcc expects switch() statemenets to include all enum values and nothing
but the valid enum values, which is abit too restrictive for flags.
Casting to int removes the warning.
Summary: It will have the same policy as the Efl.Ui.Box, Table.
Test Plan: elementary_test -to 'efl.ui.relative_layout'
Reviewers: Jaehyun_Cho, herb
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9029
Summary:
We now also fail in the focus tests
Depends on D9021
Reviewers: zmike, cedric, segfaultxavi
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9022
Summary:
there have been a few cases where things were just wrong. Like missing
regular nodes in a focus manager that received focus, and stuff like
this. This now fixes all those cases.
Reviewers: zmike, cedric, segfaultxavi
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9021
Summary: evil_setlocale was defined as setlocale in evil_private.h *before* evil_setlocale, hence evil_setlocale was calling itself. The solution was to not call evil_private.h in evil_locale.c
Test Plan: compialtion and elementary_test
Reviewers: zmike, raster, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7985
Differential Revision: https://phab.enlightenment.org/D9030
Summary:
The C# bindings turn parts into class properties, so part names cannot clash
with method names.
However, a "Part" prefix has been recently added, just like it was done for
events, and therefore this eolian restriction can be lifted.
With this patch part name clashes are only checked among parts, just like it
is done for events.
Relates to D8582
Test Plan: Everything still builds, because we have no part-method name clashes in the tree, but now they are possible.
Reviewers: q66, SanghyeonLee
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9031
This adds support for OpenBSD with meson build
system. Also use better paths. This resolves
further issues when building EFL.`
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9028
It is just required to show pushed content and hide popped content after
the push/pop animations.
Therefore, it is not required to keep the final state of the push/pop
animations after finishing the push/pop animations.
Summary: clang reports a warning here. We compare the result of abs (casting to an int, returning an int) to a double value. Hence we should use fabs instead
Test Plan: compilation
Reviewers: Jaehyun, Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9024
This implements initial support for specifying unit versions.
The default version is 1, specifying the basic feature level.
If you want to specify another version, you need to specify
something like `#version 2` at the beginning of the .eo or
.eot file; the version number must be higher than 0 and lower
than USHRT_MAX (typically 65536).
The beginning of the file is now called the "header section";
other things may be added into the header section later.
Version cannot be specified twice, and it cannot be specified
once other contents (like types or class definition) appear.
Comments do not count as other contents, so those are fine
to appear before #version.
@feature
@warn_unused in syntax is now called @no_unused - this is because
"warning about unused" is a C thing (or rather, an extension to C)
and various languages might want to use stricter behavior for this.
Its associated API does the reverse now - it lets you query whether
being unused is allowed at all. This is to match future behavior
of Eolian (once it supports versioning) that will likely reverse it.
@feature
This has been deprecated for a while and is not strictly necessary
- as a part of an effort to stabilize Eolian, remove this. Eolian
will eventually gain support for versioning and use a reversed
behavior (i.e. no NULL by default), but the API it wlll use for
that will be very different. Features can always be added, it's
much harder to drop them.
@feature
Summary:
This clarifies a bit the whole Orientation vs. Direction confusion, at the
expense of longer names (Image_Orientation vs. Layout_Orientation).
Also, the interfaces are now adjectives (Orientable) and the enums have long
names (*_Orientation).
Pretty big patch, but no functional changes.
Relates to T7863
Test Plan:
Everything builds and passes tests.
Elementary_tests show same behavior, including the "inverted" widgets, which
are the only parts which received a bit of code changes.
Proof:
https://travis-ci.org/Enlightenment/efl/builds/536277282
Reviewers: zmike, bu5hm4n, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8946
Previously, autogen make check error happened because
some .eo.h files were not generated but were included in
libefl_mono_native_test.h.
Now, all .eo.c and .eo.h files are generated.
Also CLEANFILES are fixed to include all the generated files.
Summary:
a generated eolian c file cannot be included multiple times or else it will
create multiple definitions of symbols defined in that file and break the build
ref 54175998d5
fix T7960
Reviewers: devilhorns, vtorri
Reviewed By: vtorri
Subscribers: cedric, #reviewers, #committers
Tags: #efl_build
Maniphest Tasks: T7960
Differential Revision: https://phab.enlightenment.org/D8945
Summary:
in this case, the event is emitted and no manager exists because the objects
are not focusable
@fix
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8935
Summary:
this fixes the selection callback and makes the widget work again
@fix
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl_widgets
Differential Revision: https://phab.enlightenment.org/D8913
Summary:
when source_clip is disabled, the clipper used should be the one used by
the proxy object. previously this would never be the case, meaning that
disabling source_clip had no effect
@fix
Depends on D8879
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8880
Summary: the macro GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS can be undefined (see gst core doc), hence the if statement may have no body
Test Plan: compilation
Reviewers: zmike, raster, cedric, Hermet
Reviewed By: Hermet
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8939
Summary:
Textpath set its hint_size using its position and calulated path information.
The path information is calculated using center postion, radius & start angle.
For example, if textpath position is 0,0 and center positon of path is 100,100
and radius 50, then text will be located on the rigth side of textpath object.
Moreover there is another problem.
[Step to reproduce]
1. Launch elementary_test
2. open Efl.Ui.Textpath
3. see circle is not center aligned.
4. click Clockwise 1 ~ 2 times center position is changed repeatedly.
This occurs because textpath size is calculated by position_set.
It does not make sense that changing postion defines its size.
So this patch is setting textpath hint_size using only given center position.
The text will position on the middle of textpath object always.
Reviewers: Hermet, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8930
Summary:
This will help disambiguate later on when we rename Efl.Ui.Direction
to Efl.Ui.Layout_Orientation.
Relates to T7919
Test Plan: Everything still builds and passes tests.
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8934
Coverity reports this as a copy-paste error, and checking the code it
certainly looks that way, so lets call the proper hash function here
Fixes CID1401052
@fix
Small patch to check if the video driver supports drmWaitVBlank. If
not, we can fall back to timer based animators and avoid freezing (due
to usage of vsync'd animators).
@fix
This patch adds a small API that we can use to check if the current
video driver supports the usage of drmWaitVBlank. This check is
required for certain drivers (like vbox) which do not support
drmWaitVBlank and thus are causing our animators in ecore_evas to
freeze. We can now use this API from within Ecore_Evas to disable
vsync'd animators and fall back to timer based ones.
@feature
Summary:
how many times was this block of code copied around???
no functional changes
Depends on D8848
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8849
Summary:
this is now handled entirely in the masking helper function
no functional changes
Depends on D8847
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8848
Summary:
by adding a couple extra params to existing functions, we can reuse
existing code instead of copying it around and adding more bugs
no functional changes
Depends on D8846
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8847
Summary: this means we don't need to handle this in the buildtool at all.
Reviewers: vtorri, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8553
This was an experiment that never properly took off and was never
used by any generator. Its use was highly variable, so it could
not be relied upon. We will still want to reverse the current
behavior eventually (no null by default), but that will be
done with eo file versioning in the future.
@feature
Summary:
sd->cursor_pos is updated in _entry_cursor_changed_signal_cb.
Generally, there is no problem.
But in some cases, before the _entry_cursor_changed_signal_cb is called
there is a situation in which cursor_pos is updated through _elm_entry_efl_ui_widget_theme_apply.
In this case,
before _entry_cursor_changed_signal_cb is called,
in _elm_entry_efl_ui_widget_theme_apply ()
cursor_pos = sd->cursor_pos; The wrong cursor_pos is set here.
Because it is the value before sd->cursor_pos is updated.
This causes an invalid cursor position when entering a key into the entry.
This patch prevents sd->cursor_pos from being updated with invalid values.
Reviewers: zmike, woohyun
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8923
Summary:
The textpath draws text from the start_angle. User needs to set correct
start_angle to center the text. This start_angle could be changed according to
each parameters of circle_set such as x, y, radius, direction and text itself.
So this patch is introducing direction EFL_UI_TEXTPATH_DIRECTION_CC(W)_CENTER.
The center of textpath will be located at the start_angle with this direction.
Test Plan: I will add example if this patch is acceptable.
Reviewers: Hermet, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8892
Summary:
Efl.Ui.Textpath was drawing its text on the job. Because of this, textpath was
slower than other objects which are scrolling on the same scroller.
So this patch makes textpath not use job in the position.set.
Reviewers: Hermet, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8924
Summary:
these should look and feel the same as the original tests.
should.
Depends on D8914
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8915
Summary:
* passing label object to elm_image_file_get
* using fill hint during weight set
@fix
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: devilhorns, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8914
Summary:
And the Efl.Orientation interface -> Efl.Gfx.Orientable
(with proper c_prefix so it is not too cumbersome to use from C).
Also, turned the theme_rotation_apply() parameter into an int to avoid confusion.
Fixes T7919
Depends on D8912
Test Plan: Everything continues to build and pass tests
Reviewers: zmike, bu5hm4n, cedric, Hermet, Jaehyun_Cho
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7919
Differential Revision: https://phab.enlightenment.org/D8926
Summary:
This is similar to how it is in Evas, and simplifies the Efl.Orientation
interface, which only needs one property now.
Relates to T7919
Test Plan: Everything builds and tests pass. There's only one example of efl_orientation_set() so there's not much to test yet.
Reviewers: zmike, bu5hm4n, cedric, Hermet, Jaehyun_Cho
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7919
Differential Revision: https://phab.enlightenment.org/D8912
Summary:
if things are a array in a array, then flattening only seems to work
when the first element is a target object. But not when the first
element is then also an string, then the string in the array gets
concatted and added to root array. This is a meson bug, investigation
going on. Additionally, this fixes installed .eo files, as we might want
to installed gesture files when we require them in other objects.
Reviewers: Jaehyun_Cho, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8910
Summary:
The only implementation of this interface, `Efl.Ui.Table`, only supports two fill
directions (horizontal or vertical), therefore the table_direction property which
supports primary and secondary directions is unnecessarily complicated. Remove it
and use only `Efl.Ui.Direction.direction` to select the fill direction.
Also, expanded the documentation.
Fixes T7962
Test Plan:
Everything builds and tests pass. Efl.Ui.Table elementary_test still work.
Examples need to be adjusted to stop using table_direction.
Reviewers: zmike, YOhoho, bu5hm4n, SanghyeonLee, Jaehyun_Cho
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7962
Differential Revision: https://phab.enlightenment.org/D8902
Summary:
_node_change function is only executed
when the flag is none to prevent duplicate calls.
If CHANGE_MATRIX_FLAG is added to the flag in advance,
_node_change function does not operate normally.
Test Plan:
cd ./src/examples/evas
gcc -o evas_vg_simple evas-vg-simple.c `pkg-config --libs --cflags evas ecore ecore-evas eina ector eo efl` -lm
./evas_vg_simple
Reviewers: Hermet, kimcinoo, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8895
Summary: gcc and clang support the usage of "fall through" comment to suppress this warning
Test Plan: compilation
Reviewers: raster, zmike, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8904
This is for consistency with the new eolian_class_c_macro_get
as well as for better clarity, as c_name_get is already provided
by Object and refers to something else.
This is to prepare for type/class renaming support. This adds
the necessary API to retrieve C-specific names. Other refactoring
is necessary elsewhere for now.
This also renames the old API eolian_class_c_name_get to
eolian_class_c_macro_get to avoid conflict as well as clarify
the intention.
Summary: There was duplicated scope_tab, so I removed it.
Test Plan:
- ./autogen --enable-csharp-bindings
- make
Reviewers: lauromoura, felipealmeida, Jaehyun_Cho, YOhoho, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8901
Previously, halign_auto was AUTO_NORMAL when halign was set so the given
halign value could not be applied correctly.
Now, halign_auto is modified to AUTO_NONE before halign is set so the
given halign value is applied correctly.
unit tests automatically abort with info after 60s, and tests should be run with
an appropriate timeout to avoid conflict with the test runner's default 30s timeout
set explicit timeout in eio test for now because there's still frequent bugs here
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8894
Summary:
This reverts commit 954a534bc0.
It appears that the concerns from this commit are invalid. The case of
~asdf/ does not have any fallback case, if there is no getpwent on this
system, then there will be simply an error, same for the case of a
missing user. In such a case nothing will be written in the buffer /
returned by eina_vpath. The windows build problem can be
fixed by a simple #ifdef'ing the test code.
Reviewers: raster, zmike, cedric, vtorri
Reviewed By: vtorri
Subscribers: vtorri, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8671
Summary:
frame now uses efl.ui.clickable, which ensures correct click emittion.
The click event is not needed in the event anymore. However, now
efl,action,press / efl,action,unpress is needed.
Depends on D8825
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8826
Summary: first step for making Evil private. evil_private.h will be included in the EFL source code instead of Evil.h
Test Plan: compilation
Reviewers: raster, cedric, zmike
Reviewed By: raster
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8893
To use Efl.Ui.Widget's "background" and "shadow" part class, each widget
inheriting from Efl.Ui.Widget should not use their Part class for
"background" and "shadow" parts.
Summary:
There was a build break when "make check". This patch will
fix the issue.
Test Plan:
- ./autogen.sh --with-tests=regular --enable-csharp-bindings
- make
- sudo make install
- sudo make check
Reviewers: Jaehyun_Cho, CHAN, zmike, segfaultxavi
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8896
Summary:
The memory allocation for the buffer size is improved to
allocate only the width size.
Test Plan: N/A
Reviewers: Hermet, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, smohanty, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8873
Summary:
these widgets here are containers, means: they contain items that can be
clicked, but the container itself cannot be clicked. Later on, we should
introduce a new interface which contains events that reflect the clicked
event of theire items.
Depends on D8827
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8828
Summary:
nothing here uses this directly, and nothing emits events. For now the
implementation is removed. If this is required later on, it can be
readded.
Depends on D8826
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8827
Summary:
the implementation of efl_ui_clickable is now used to tricker the
events. efl,action,click and efl,action,click,double is not needed
anymore from the theme.
Depends on D8824
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8825
Summary:
This now uses the efl_ui_clickable mixin. It is impossible right now to
test this in the test suite, as every single configuration of the
efl.ui.text object is ending up in an error. Which is not allowed in the
test suite. Additionally, simulating clicks on the objects gets it into
some sort of inifinite recursion when asking for cursor positions.
Depends on D8823
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8824
Summary:
the mixin is now used to emit the events of the mixins. This is verified
by the testsuite. The testsuite needs a special treatment for the
object, because a missing image-file of the object would result in a 0x0
image size.
Depends on D8822
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8823
Summary:
the new test checks if the events are correctly emitted
Depends on D8821
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8822
Summary:
efl_ui_clickable is now a mixin. The mixin now brings two APIs the press
and unpress API can be used to tell the implementation the state of the
presses. Within the implementation the calls to press / unpress are then
converted to longpress / clicked events.
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8820
Summary:
This removes another bit of legacy API from the C# bindings.
This also reverts "elm: Put back Policy and Policy_Quit in EO files"
(a9132a9a66) so that these two Elm enums are
definitely out of the EO files.
Test Plan:
Everything, including mono bindings, continue to build.
At runtime, C# apps still exit when all windows are closed.
Reviewers: lauromoura, vitor.sousa, q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8890
Summary:
https://phab.enlightenment.org/T7544
Provides a way for a user to get a gesture manager, recognizer instance.
Supports different recognizer properties for each target(Eo).
Gesture, Touch Class Life-cycle re-implementation. for supporting multiple touches.
Add below gestures.
efl_canvas_gesture_tap
efl_canvas_gesture_double_tap
efl_canvas_gesture_triple_tap
efl_canvas_gesture_long_tap
efl_canvas_gesture_momentum
efl_canvas_gesture_zoom
efl_canvas_gesture_flick
Test Plan:
Simple test -> test_gesture_framework.c
More test cases will upload.
Reviewers: woohyun, smohanty, segfaultxavi, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: Jaehyun_Cho, segfaultxavi, cedric
Tags: #efl, #do_not_merge
Differential Revision: https://phab.enlightenment.org/D7579
Summary:
It was wrongly assuming value types were passed by value.
As stated in the documentation, all arguments are passed with a single
level of indirection.
Fixes T7957
Reviewers: woohyun, felipealmeida, vitor.sousa, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7957
Differential Revision: https://phab.enlightenment.org/D8889
Summary:
the events changed here should not be used. They should use legacy
events.
Depends on D8816
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8819
Summary:
This commits prepares the tree in order to mess with the events in the
Efl.Ui.Clickable event. Events which have been emitted in a none legacy
widget, are now emitted either with evas, when the widget is legacy due
to inheritance. Or via the normal event and normal event functions.
In case the widget is a legacy only widget (not used at all in the new
api), then the events are for now emitted with
evas_object_smart_callback_call.
Cases where event handlers have been added to legacy widgets, smart
events are now used, and not the eo one anymore.
ref T7844
Depends on D8813
Reviewers: cedric, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7844
Differential Revision: https://phab.enlightenment.org/D8816
Summary:
the repeat event is only emitted by the implementations of
efl_ui_autorepeat. Additionally, the event should only be used by those
who implement this interface.
Depends on D8832
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike, segfaultxavi
Subscribers: jpeg, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8813
Summary:
the widget itself is a focus_layer which means, the tree is orphaned and
cannot be accessed until the panel is visible. There is not need for us
to manually track this state.
fix T7908
Depends on D8831
Reviewers: marcellus, zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7908
Differential Revision: https://phab.enlightenment.org/D8832
Summary:
if auto_fill is set (which is the default for image objects), manually setting
the fill for the image would previously only persist until the image was resized,
at which point the auto_fill would activate and re-set the image's fill to be
the same as the image's object geometry
this fixes the auto_fill behavior to stop modifying the image's fill geometry
if the fill is manually changed by the user, which fixes using fill on most
image objects
@fix
Reviewers: cedric, Hermet
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8879
Summary:
this is already a risky call for larger scanlines, so use the clamped value
to further reduce the chance of blowing out the stack
Depends on D8839
Reviewers: cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8840
Summary:
the 'y' parameter is not relevant here. this clamping exists solely
to avoid reading outside the bounds of the mask, and 'y' is the scanline
at which to begin the masking
subtracting the mask size here does not make sense: we are attempting to clamp
to the size of the mask in order to avoid buffer over-read, so this means that
we are mapping the maximum y coordinate of the mask (mask_y + mask_h) to be
relative to the clipped y coordinate (dst_clip_y)
Depends on D8838
Reviewers: cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8839
Summary:
this was a bit confusing to read since the comparators are not ordered
as expected
no functional changes
Depends on D8837
Reviewers: cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8838
Summary:
this code block was repeated multiple times throughout the function
no functional changes
Reviewers: cedric, kimcinoo
Reviewed By: kimcinoo
Subscribers: kimcinoo, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8837
longs will be truncated on 32bit in these tests so be explicit to not
have warinings.
note - eina value tests are broken on 32bit anyway already - the
conversions to/from long types are broken and fail. this doesn't fix
that.
In e027ad2626 these enums were moved to header files, which is correct,
since they are legacy and should not be present in EO files.
However, the C# bindings are still using them.
Until nobody is using these two enums, adding them back to EO fixes the build.
Summary:
This patch improves png quality when image uses scale-down at image loading.
Since current scale-down logic just works like point sampling,
image result could be wholely different,
Simply, if source data is consist of continous white and black pixels,
and scale down factor is 2, the sampled data would be only white,
and lose all black pixels, or vice versa.
The result can be unexpected by users.
Even current jpeg scale-down works with interpolation.
Before:
{F3711651}
After:
{F3711652}
Original:
{F3711653}
Reviewers: cedric, raster, #committers, kimcinoo, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8788
This commit is the same as 0e8f289d7d
but this commit is for meson.
To use vector graphics in efl csharp bindings, it is permitted to
generate efl_canvas_vg_object.eo.cs.
Other efl_canvas_vg .eo.cs files have already been generated because the
file names were changed from efl_vg to efl_canvas_vg.
meson generates libeflcustomexportsmono.so to lib/efl-mono-1/ directory
unlike other so files.
Moreover, the so file does not have versions in the file name unlike
other so files.
Like other so files, libeflcustomexportsmono.so is moved to lib
directory with versions in the file name.
Summary:
The legacy API is available after https://phab.enlightenment.org/D7033 but
internal function does not care of it. This change makes textpath work with
the legacy style file(./data/elementary/themes/edc/elm/textpath.edc).
Reviewers: Hermet, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8875
Summary:
This patch fixes the wrong ingroup name of elm_textpath APIs.
Elm_Textpath had been defined in elm_textpath.h
enum values had been included into Efl_Ui group
So I had modified all APIs and enum values to be inclused in Elm_Textpath_Group.
Test Plan: run unit test cases
Reviewers: segfaultxavi, cedric, zmike, Hermet
Reviewed By: Hermet
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8885
the animation itself does not implement the player interface, and
nothing forces it to do so. Additionally, we should ask the reference
object for the current progress. Not the animation object.
This fixes pos_set / pos_get.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8783
This enable vpath to recognize also ${} as a variable. It does mimic
what Efl.ViewModel provide with Efl.ViewModel.PropertyText and various
other language.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8883
This simply a bit the logic of things, but more refactoring would be nice for this widget.
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8799
This model provide facility to filter the content of composited model.
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8797
efl_app_test_promise.c is slightly special and corrective action have to be
taken to make sure that ecore_init return the right value when the no fork
mode of libcheck is used.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8566
These are legacy-only and not used anywhere in .eo files, so
move them where they belong. They are still used within impls
around the place. The others can't be moved as they are still
used in .eo files in places, that has to be dealt with separately.
To use vector graphics in efl csharp bindings, it is permitted to
generate efl_canvas_vg_object.eo.cs.
Other efl_canvas_vg .eo.cs files have already been generated because the
file names were changed from efl_vg to efl_canvas_vg.
Summary:
This reverts commit 24c07f03d1.
This appears to be wrong "eldbus_message_iter_del" does free the message
itself. So this causes a double free and a failing test suite.
Reviewers: segfaultxavi, zmike
Reviewed By: zmike
Subscribers: zmike, devilhorns, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8861
Summary: int is 32 bits, HANDLE is void *, so cast to uintptr_t in between
Test Plan: compilation
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8865
Summary:
localtime_r() is already defined by mingw-w64 when _POSIX_C_SOURCE is defined
edit: also only define _POSIX_C_SOURCE (correctly) on windows
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8859
Summary: localtime_r() is already defined by mingw-w64 when _POSIX_C_SOURCE is defined
Test Plan: compilation
Reviewers: raster, zmike, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7907
Differential Revision: https://phab.enlightenment.org/D8854
Summary:
forbid the creation of short name (legacy of DOS)
Without optimisation
1. using only Win32 API, just iterating over directories (in micro seconds) :
10 files : 47
1000 files : 270
100000 files : 73227
2. using eina_file_dir_list() with a callback which does nothing :
10 files : 53
1000 files : 265
100000 files : 69624
usually there is a small overhead for eina API, which is normal
With optimisation
1. using only Win32 API, just iterating over directories (in micro seconds) :
10 files : 51
1000 files : 256
100000 files : 33345
2. using eina_file_dir_list() with a callback which does nothing :
10 files : 53
1000 files : 251
100000 files : 33832
speed up with 1000 files and more. Twice faster with 100000 files
Test Plan: benchmark program
Reviewers: raster, cedric, zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8842
u or v go below 0... sometimes. right now i don't know the full path
to there, bute crashes with flat theme when the busy spinner shows
over an ibar icon when you launch... this at least stops that.
this needs hunting in more detail than i'm going to do on my laptop
on the couch...
This patch deal with two cases:
1- Setting text in Entry (elm_entry_entry_set) , as the one get using (elm_entry_entry_get), caused the entry to become empty.
* becase entry string was free inside the elm_entry_entry_set function, without checking new passed string.
Now we check if same string was passed to the function, then nothing need to be changed.
```
// Old Behaviour : Entry will become empty
// New Behaviour : Entry will Skip setting same text
elm_entry_entry_set(app->entry, elm_entry_entry_get(app->entry));
```
2- Setting text in Entry (elm_entry_entry_set) , with same content string.
* internally entry will set empty string then set passed string, which will case recalculation and re-render the entry element.
Now we check if same string data that is passed to the function is the same of the entry content, then nothing need to be changed.
```
// This will be skiped internally since same text is set
elm_entry_entry_set(app->entry, "aaaaa");
elm_entry_entry_set(app->entry, "aaaaa"); //skipped
```
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8572
there are some specific defines and cflags needed for these builds
to succeed and provide the expected functionality
Depends on D8733
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8734
these defines must be set in order to provide the expected engine functionality
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8733
these would normally be set by the build system when detecting the
system's libdl functions, but since we are providing them then we must
advertise the functionality to ensure that the right codepaths will
be used
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8729
this enables windows engine selections and other functionality
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8728
this file is included by itself (without Eina.h) so it must also include
its dependency headers
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8727
windows does not have fork() so this cannot be built
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8726
this must be explicitly added for windows builds
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8725
this breaks library path setup in the build: the dependencies for runtime
are set for the 'env' executable instead of for edje_cc
for now, EFL_RUN_IN_TREE must be set manually
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8724