Efl.Flip is now the enum, the interface is Flipable.
We could even use names like Efl.IFlip a la Java.
eo_prefix is used to have pretty names in C. legacy: null
is removed from the enums. orient_x0 is removed and only
defined in C with #define
Summary:
Implement common interface efl_ui_progress and inherit slider and progressbar from common interface.
Currently legacy APIs will also call interface functions and later it can be deprecated.
This interface will be moved to EFL in src/lib/efl/interfaces when elementary is merged into efl.
Test Plan:
elementary_test -to 'slider'
elementary_test -to 'progressbar'
Reviewers: singh.amitesh, raster, tasn, felipealmeida, woohyun, cedric, jpeg
Subscribers: saurabhbunty, alok25
Differential Revision: https://phab.enlightenment.org/D3759
For windows, EAPI needs to be redefined as dllexport/dllimport.
Since we marked all EO APIs as weak, we had two different EAPI
macros: EAPI and EWAPI. Unfortunately, EWAPI was never redefined
(only declared inside Eo.h).
See also a1a506e13e.
See T3423. Thanks @vtorri for the report.
While eolian-gen was generating EWAPI (weak) class_get()
symbol declarations, they were implemented as EAPI (strong).
Not sure if this mismatch had any significant effect.
This patch tries to address T3423 (windows build).
The mismatch between EAPI and EWAPI might be the problem.
This fixes a crash in ecore_init, calling a weak function from
libefl that was resolved to NULL.
So, here's a fun thing happening with GCC < 5.3. Since a1a506e13e
all EOAPI and EO class_get() functions are weak symbols. This means
that all APIs inside libefl.so are weak.
As a result, gcc linker with --as-needed skipped linking to libefl
since not a single strong symbol from libefl was required by
libecore. This is actually a bug in gcc linker since we do in fact
use symbols from libefl, just weak ones.
GCC 5.3 seems to be fixed, so people with GCC 5.3+ will not
experience any build/runtime issue. The current patch is
a workaround that bug, by artifically creating a strong symbol
required by ecore.
Other libraries than ecore might also need to call
__efl_internal_init, if they end up not being linked to libefl.
Add a promise object to allows Eolian interface to include promises
as a way to have asynchronous value return and composibility.
The usage is like this in a .eo file:
class Foo {
methods {
bar {
params {
@inout promise: Promise<int>;
}
}
}
}
Which will create the following API interface:
void foo_bar(Eo* obj, Eina_Promise** promise);
and a Eina_Promise_Owner for the implementation, like this:
void _foo_bar(Eo* obj, Private_Data* pdata, Eina_Promise_Owner* promise);
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Add two parameters for macros that generate API functions in Eo so
that the generation can be customized with macros used by Eolian.
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
I'm reverting this because according to jpeg it was possibly fixed in
5284b62e93.
I reverted this patch after his fix and followed his reproduction cases
and it seems that his second patch does indeed fix this issue so this
patch is no longer needed.
This reverts commit 0862b9d083.
Since we cache ops we also need to check function calls work
when we reinit eo, not just class_get functions.
This commit essentially verifies that
5284b62e93 was done correctly.
A major typo (hard to find with the naked eye) was present in
elm_config's list of text & color classes. See D3487.
I'm pretty sure this feature has not been used at all.
warning: missing field 'desc' initializer
[-Wmissing-field-initializers]
Solution: use gcc extension to init structs with {}.
This is a bit ugly, but having too many warnings leads to
ignoring them and not noticing valid ones.
The warning is triggered because the first member of Eo_Event
is not a primitive type (it's a struct _Eo_Opaque *).
The function call resolve cache may be broken after an eo
shutdown + init cycle, leading to calls to invalid functions.
This adds an static uint for each and every single EO API
entry point, as well as an extra if() check.
Now I'm not sure if the previous commit 0862b9d083 is
still necessary.
It seems that calling a @class function with an EO object
(that was not the required Eo_Class) lead to a situation
where func->func was NULL. And that meant a crash after
call_resolve.
The proper fix is to properly call a @class function with a
class object.
Summary:
Added flip and orientation interface and used them in evas_image.
Removed efl_image_orientation_set API and used efl_orientation_set and efl_flip_set API.
In implementation part, converted enums back and forth in order to keep current implementation as it is.
Test Plan: src/examples/evas/evas-images5.c
Reviewers: singh.amitesh, raster, tasn, herdsman, woohyun, cedric, felipealmeida, jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3844
Add ecore_thread_promise_run function that returns a Promise
and runs function in another thread which you can set the
value on a Eina_Promise_Owner.
Eina_Promise* promise;
Ecore_Thread* thread = ecore_thread_promise_run
( &function_heavy, &cancellation_function, private_data,
sizeof(ValueType), &promise);
This calls function_heavy on another thread and returns
the Ecore_Thread and a Eina_Promise as an out-parameter.
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Add a promise object that will allows Eolian interface to include promises
as a way to have asynchronous value return and composibility.
To understand better, let see the coming usage in a .eo file:
class Foo {
methods {
bar {
params {
@inout promise: Promise<int>;
}
}
}
}
Which will create the following API interface:
void foo_bar(Eo* obj, Eina_Promise** promise);
and the equivalent declaration for implementation.
However, the API function will instantiate the Promise for the user
and the implementer of the class automatically. So the user of this
function will treat it as a @out parameter, while the developer of the
function will treat it like a @inout parameter.
So, the user will use this function like this:
Eina_Promise* promise; // No need to instantiate
foo_bar(obj, &promise);
eina_promise_then(promise, callback);
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_crtc_panning_area_set function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_edid_display_interface_type_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing function
ecore_x_randr_screen_backlight_level_set
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing API function
ecore_x_randr_edid_dpms_off_available_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_edid_dpms_standby_available_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_edid_display_serial_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_edid_display_ascii_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing API function
ecore_x_randr_edid_dpms_standby_available_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing function
ecore_x_randr_edid_dpms_available_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing API function
ecore_x_randr_edid_manufacturer_serial_number_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for ecore_x_randr_edid_model_get
function which was missing from ecore-xcb.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for
ecore_x_randr_edid_manufacturer_model_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
ecore_x_randr_edid_manufacturer_name_get
This patch adds an implementation inside ecore-xcb for missing API
function ecore_x_randr_manufacturer_name_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an implementation for
ecore_x_randr_edid_info_has_valid_checksum which was missing in the
ecore-xcb codebase.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds definition of missing API function
ecore_x_randr_output_crtc_set.
NB: This function also has no code in the xlib implementation
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
As portions of this code have been derived from existing code in
Weston, we should also be including their copyright/license text to
give credit.
Fixes T3421
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>