Deep down internally there was already a name, but no API could
really set it properly.
Here Edje will set the name of the filter based on the part name
or the data item name if relevant.
This creates the new interface
Efl.Gfx.Filter
And the implementation is a mixin (evas_filter_mixin.c):
Evas.Filter
All the filter rendering code has now been moved to this
new file. TODO: Merge image filtering.
Use the file data {item, file} block to embed filters code.
It can become especially useful to keep the filters as separated
Lua files, that will be embedded in the final edj file.
@feature
This should preserve ABI stability with earlier versions of
edje_cc while still providing more advanced control over
proxy bindings for evas filters from EDC.
Also fix proxy binding for filters.
@feature
Summary:
get_geometry() method calls edje_object_part_geometry_get() internally,
and the type of its arguments is Evas_Coord. (typedef'ed integer)
However, comment says that method require Float type as its arguemnts,
and get_geometry() initializes Evas_Coord variables as 0.0.
This patch corrects type mismatching and comment.
@fix
Reviewers: Hermet
Subscribers: cedric, Hermet
Differential Revision: https://phab.enlightenment.org/D2754
This reverts commit 1edb35fff3.
Accessing symbols from other libs like this should never be done. The
consequences of this are not significant enough to do this; better solution
can be found but definitely not like this.
efreet_init began to be called with the addition of translatable strings,
but allowing dbus connections in edje (and thus edje-derived tools) will
result in errors when edje_init is called without a dbus connection available
Summary:
Add the transition scale flag and the transtion scale value.
This flag can be change using "transition_scale_enable" in edje program.
If flag is true, the transition scale value affect the transition speed of edje
The transition scale value can be change by elm_config.
@feature
Test Plan: elementary_config
Reviewers: Hermet, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2287
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: Coverity reports that this potentially is passing a NULL
pointer to strcmp. As the GETSTR macro Can possible return NULL we
should be checking that return before passing it to strcmp.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Those objects should never be rendered on the canvas, even if they
are visible. On the other hand, they need to be rendered in mask or
proxy surfaces.
note: this patch includes some extra whitespaces changes :(
@feature
Since masking, for performance and themeing reasons, it becomes
interesting to be able to switch clippers on the fly. In particular,
switching from an IMAGE mask to a standard RECT clipper can save a
lot of power when masking is not required.
This new flag "description.clip_to" will behave a bit like a mix of
rel.to and visible:
- It points to a part by name, just like part.clip_to. This will
override the clipper set by the part, or override the default clipper.
- Like "visible", it can not be interpolated between two values, so
it will switch only at the end of a transition.
- By default there is no clip override, which means Edje will fallback
to the part's clipper, if any, or the base (group's) clipper.
NOTE:
- Since a clipper that does not clip anything becomes a standard object,
it is visible and rendered. This will in 99.999% cases not be the
intended behaviour. Currently we can simply use a transparent RECT
in order to always have something clipped by the clipper, but this is
a hack and this will trigger rendering of masks in their surfaces even
when they are not actually used.
Ideally, there should be a flag indicating to Edje & Evas that an object
should be considered a clipper in all situations, and never be rendered
on screen.
TODO:
- Support Edje Edit
- Add Embryo & Lua functions
- Add support in edje_convert
- Add Edje/Evas flag to mark objects as "no_render"
@feature
Summary:
Implementation to support .po files in edc for translation
Test Plan:
Test Code to test this implementation is done as part of efl/src/examples/edje/edje-text.c and efl/src/examples/edje/text.edc
edje_cc -md . text.edc && gcc -o edje-text edje-text.c `pkg-config --libs --cflags ecore-evas edje evas ecore eo`
./edje-text
1) Click On the text "Click here"
The language gets changed.
Reviewers: shilpasingh, cedric
Reviewed By: shilpasingh, cedric
Subscribers: cedric, rajeshps, govi, poornima.srinivasan
Differential Revision: https://phab.enlightenment.org/D2573
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
When caps lock is "On" and we press control + (x,a,y,z,m,c) none of
these operations work issue fix.
@fix
Test Plan:
1. Caps lock On
2. Input some text
3. Press ctrl+a, ctrl+c etc:-
4. Select, copy, cut etc:- operations does not work
Reviewers: tasn
Subscribers: raster, rajeshps, govi, poornima.srinivasan, navnbeet, subodh6129, cedric
Differential Revision: https://phab.enlightenment.org/D2633
@zmike apparently wanted to beat the b0rker in chief,
(see 172a0ccf0c) but edje_text.c came out worse than before :)
eo_do() seems to totally mess with editors' auto-formatting in
some cases.
This reverts commit c38f84e64f.
apparently many existing edje groups were written with the assumption that
this was broken, so fixing it is impossible at this point
previously these parts would fail to consume mouse events as expected,
leading to strange event chains which were inconsistent with other types
of parts
@fix
It's the first stage of replacing calls of evas_object_smart_callback_add/del/call
with eo_callback_add/del/call.
This will reduce the use of legacy events and callbacks lists in
smart_object which in turn will improve performance and reduce memory
use.
Summary:
Check for have_selection flag when left/arrow keys are pressed to jump
across the selected text, to avoid unnecessary function calls of
comparision, copy of sel_start and sel_end pointers.
Test Plan: Press left and right arrow keys on selected and normal text.
Reviewers: herdsman, tasn
Subscribers: SubodhKumar, navnbeet, cedric
Differential Revision: https://phab.enlightenment.org/D2621
Summary:
Add a new property to edje_object.eo for setting the language on one Edje_Object.
Test Plan:
Test Code to test this implementation is done as part of efl/src/examples/edje/edje-text.c and efl/src/examples/edje/text.edc
edje_cc -md <dir path>/efl/src/examples/edje/ text.edc && gcc -o edje-text edje-text.c `pkg-config --libs --cflags ecore-evas edje evas ecore eo`
./edje-text
1) Click On the text "Click here"
The language gets changed as per the specific edje object.
2) Click on the text object at bottom. "Click here"
The system language gets changed and the below two edje objects language are changed globally.
Reviewers: cedric, shilpasingh
Subscribers: poornima.srinivasan, govi, rajeshps, cedric
Differential Revision: https://phab.enlightenment.org/D2559
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This was not really useful and against the Eolian guidelines.
While I promised I won't break things until the 27th, I was ill
(still am), so I'm giving myself a 1 day pass. :P
From now on, constructors should return a value, usually the object
being worked on, or NULL (if the constructor failed). This can also
be used for implementing singletons, by just always returning the same
object from the constructor.
This is one of the final steps towards stabilizing Eo.
@feature
Summary: Changes float on uchar as we do in other place for color component
Reviewers: raster, Hermet, cedric
Reviewed By: cedric
Subscribers: cedric, artem.popov
Differential Revision: https://phab.enlightenment.org/D2528
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Instead of "@in type name;" we now use "@in name: type;". This change
is done because of consistency with the rest of Eolian; pretty much
every other part of Eolian syntax uses the latter form.
This is a big breaking change in the .eo format, so please update your
.eo files accordingly and compile Elementary together with the EFL.
@feature
Summary:
Issue: Current embryo script do not provide any mechanism to set transition type in animation
Solution: A new API set_state_anim is added.
Signed-Off by: Kumar Navneet <k.navneet@samsung.com>
Signed-Off by: Shilpa Singh <shilpa.singh@samsung.com>
Test Plan: A test edc (embryo_set_state_anim.edc) is added to edje examples to test set_state_anim API.
Reviewers: shilpasingh, raster, cedric
Reviewed By: cedric
Subscribers: poornima.srinivasan, cedric
Differential Revision: https://phab.enlightenment.org/D2470
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Issue: Current embryo script do not provide any mechanism to set transition type in animation, by default supports only linear
e.g: set_tween_state API
Solution: To not break backward compatibility, a new API set_tween_state_anim is added in which we can even specify type of transition required.
Signed-Off by: Kumar Navneet <k.navneet@samsung.com>
Signed-Off by: Shilpa Singh <shilpa.singh@samsung.com>
Test Plan: A test edc (embryo_tween_anim.edc) is added to edje examples to test set_tween_state_anim API.
Reviewers: raster, cedric, shilpasingh, Hermet
Reviewed By: shilpasingh
Subscribers: poornima.srinivasan, SubodhKumar, rajeshps, cedric, govi
Differential Revision: https://phab.enlightenment.org/D2344
Summary:
When edje entry is not inside the canvas view port, anchors update is aborted to improve the scrolling performance
in case of large number of anchors.
@feature
Test Plan:
1. Should have many entries inside scroller.
2. Each entry should contain large number of anchors.
3. Scroll it, scrolling is not smooth.
Reviewers: seoz, cedric, thiepha, woohyun, tasn, raster, shilpasingh, herdsman, JackDanielZ
Reviewed By: shilpasingh
Subscribers: poornima.srinivasan, rajeshps, cedric, govi
Differential Revision: https://phab.enlightenment.org/D2108
Summary:
Internationalisation of the static text specified as part of the edc is implemented.
Problem: Static text when specified in the edc, remains unchanged when the system language is changed.
Solution: Language support is provided even for the static strings in the edc.
Test Plan:
Test code to test this implementation is done as part of efl/src/examples/edje/edje-text.c and efl/src/examples/edje/text.edc
Compile the code with the below command
edje_cc -md <dir path>/efl/src/examples/edje/ text.edc && gcc -o edje-text edje-text.c `pkg-config --libs --cflags ecore-evas edje evas ecore`
./edje-text
1) change the language of the system using the command
export LANGUAGE=hi
./edje.text
Not the text Loading gets displayed in hindi language
2) change the language of the system using the command
export LANGUAGE=ta
./edje.text
Not the text Loading gets displayed in tamil language
3) change the language of the system using the command
export LANGUAGE=en
./edje.text
Not the text Loading gets displayed in english language
As the number of .mo files in the /edje folder can be increased, those many languages can be supported
Reviewers: cedric, shilpasingh
Reviewed By: shilpasingh
Subscribers: cedric, rajeshps, govi, poornima.srinivasan
Differential Revision: https://phab.enlightenment.org/D2336
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Ecore_Audio now supports Apple's CoreAudio to play sounds read by libsndfile.
edje_multisense integrates this new feature to enable PLAY_SAMPLE on OS X.
Test Plan:
Compiles, links and installs fine on OS X.
Run terminology and elementary_test to hear sound played on user input.
Reviewers: raster, naguirre, cedric
Reviewed By: cedric
Subscribers: plamot, cedric
Differential Revision: https://phab.enlightenment.org/D2295
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
in some cases collections cache "ref" can be NULL and old code fails.
Replaced with reliable way of getting part list that was found in
_edje_edit_group_references_update
@fix
Reviewers: raster, Hermet, seoz, reutskiy.v.v, FurryMyad, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2450
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
list returned by evas_object_box_children_get should be freed
@fix
Reviewers: cedric, seoz, raster, reutskiy.v.v, Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2413
This case actually happens with E. It's invalid but still happening,
and because Eo doesn't actually check the parent (or its type) fully,
an invalid, non-NULL object was returned.
See T2336 (this is not fixing the root cause!).
Summary: Fix Coverity CID1287154. _alloc function can return null
however 'color' was never checked after call to _alloc and thus Could
be NULL.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Use type Edje_Object instead of Eo in legacy EAPI's.
Spotted in TAsn's ABI report, under "Problems with Symbols".
I believe this will actually add two changes (Eo -> Edje_Object),
but I like the typing better ;)
Summary:
edje_cc allows state, signal and source to be "". So edje_edit also should
handle this values as valid and souldn't break programs, that are using them.
Reviewers: cedric, seoz, raster, Hermet
Reviewed By: Hermet
Subscribers: cedric, reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D2280
in the event of fixed size -> non-fixed size (eg. previous commit optimization),
this calc would no longer occur, so we need to queue it. also if fixed.w or
fixed.h changes value for a group part, we must recalc the group to ensure correct
sizing occurs
when I said > 0 in the last commit message, I was thinking ahead to this commit
which I knew I would later have to make, but had not yet written because I had not
spent the requisite number of hours debugging the code to know that I needed to
have the check in both the code and the commit message
ref 3a451650d2
this (and/or related prior commits) seems to have hugely improved
edje performance across the board. particularly noticeable in the
settings pane animations for terminology
#aprilfools
as with the previous commit, any user who wants geometry immediately
will be calling calc functions, so this is just going to be redundant
except in cases where calc is not wanted, in which case it is unnecessary
overhead
if the min/max of a part are identical and > 0, the part's min size is guaranteed
to be this size. there is no need to perform expensive recursive calcs here
This function make it possible to get a list of active Edje_Color_Class
in an application. Think about Enlightenment color class configuration,
but can now be done on any application dynamically.
@feature
Summary: Adding textures to edje_cc and some topblock keywords that I have forgotten to add in previous commits.
Reviewers: Hermet, raster, cedric
Reviewed By: cedric
Subscribers: cedric, artem.popov
Differential Revision: https://phab.enlightenment.org/D2129
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: No APIs to get text_class for global hash and object hash
Reviewers: woohyun, cedric, raster
Reviewed By: cedric, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2213
Removing last item in BOX/TABLE part is actually successful
but then we shouldn't realloc an array of items for 0 items.
That's ridiculous
(and because of that function removes EINA_FALSE,
so user could think that it's unable to remove last item).
So simply array can be set into NULL.
@fix
Summary:
Include data items, that present in edje object.
Data items, which data ends with '\n' recognized as data.file item and not included into the generated source code.
@fix
Reviewers: Hermet, reutskiy.v.v, raster, cedric
Reviewed By: cedric
Subscribers: cedric
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D1858
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
_edje_object_part_text_raw_set() has to locate before
_edje_user_define_string().
- _edje_user_define_string takes one of its parameters
rp->typedata.text->text, and this is set
by _edje_object_part_text_raw_set().
Signed-off-by: Sung-Taek Hong <sth253.hong@samsung.com>
Reviewers: cedric, seoz
Subscribers: seoz, cedric
Differential Revision: https://phab.enlightenment.org/D2118
@fix
how on earth has everything worked to date? someone must have remved
some evas_init from somewhere int he init codepath. this adds it back
in and edje_decc works again without a segv.
print err message only if edje has a non-fixed textblock.
This dosen't affect any application ui results,
but err message will point out the problem textblock parts exactly.
Most of the time the style string will come from the eet file directly, so
thanks to the dictionnary build in they should be pointing to the same string.
We still need to keep strcmp case for Edje_Edit case, but that shouldn't be
a real issue as the worst case is when it match. When it doesn't match strcmp
should return quite fast on average.
Summary:
When textblock styles have text_classes, all edjes in the files were added
to text_class_member_hash even if the edjes didn't use the textblock styles. It
makes time long to update text_class.
This will add the edje using the textblock style which has a text_class to
text_class_member_hash.
Reviewers: cedric, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2035
Summary:
"far" and "near" are keywords on windows and can't be used as names of variables.
@fix
Reviewers: cedric, Hermet, raster, perepelits.m
Subscribers: reutskiy.v.v, cedric
Differential Revision: https://phab.enlightenment.org/D2037
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Oops!
According to Coding Convention it should be like that:
...
>>> function forward declaration/prototype should be a single line;
>>> function definition should have the return at one line, then function name starts at next line, column 0;
...
Those include such functions like:
> edje_edit_state_table_homogeneous_set/get (function for TABLE only)
> edje_edit_state_container_padding_get
(container means that functions both for TABLE and BOX)
> edje_edit_state_container_align_get (also for TABLE and BOX)
@feature
New functions for setting such BOX's params like primary and fallback layouts:
> edje_edit_state_box_layout_set
> edje_edit_state_box_layout_get
> edje_edit_state_box_alt_layout_set
> edje_edit_state_box_alt_layout_get
@feature
Summary:
I have added some methods to edje_cc_out.c to organize model lookups. The same methods already exists for images.
Also, I have removed source_type because now we don't need it in efl_file_set.
@feature
Reviewers: raster, Hermet, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1886
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
It is unable to do recursive reference such as:
> Having group A with GROUP part that has group B as source.
> Having group B with GROUP part that has group A as source.
Here we have a loop that is not allowed by edje_cc, so edje_edit also need
to check this case.
@fix
Some of edje_edit functions allows to set up NULL instead of string,
but by using _edje_if_string_free() function it should set variable into NULL,
so previous data won't appear anymore.
@fix
Summary: Coverity reports idential code for different branches here.
Not sure WHY that was done, but I commented out the existing if
statement for posterity.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
There will be several methods to set orientation in edc, so we have decided to make one big vector,
the main reason is that we use quaternion by default, but look_at, for example, is given as 6 coordinates.
Reviewers: Hermet, cedric, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1693
Summary: Add new function for replacing string with using eina_stringshare_replace() and change _edje_if_string_free() to setup passed string to NULL.
@fix
Reviewers: raster, Hermet, seoz, cedric
Reviewed By: cedric
Subscribers: reutskiy.v.v
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D1835
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: Refine odd lines to delete _edje_timer
Test Plan: Run example using edc programs to change state
Reviewers: raster, cedric, woohyun, jaehwan, Hermet
Reviewed By: Hermet
Subscribers: cedric, seoz
Differential Revision: https://phab.enlightenment.org/D1838
Summary:
Include sound samples, that uses in programs of this group in collections block.
@fix
Reviewers: cedric, Hermet, raster, reutskiy.v.v
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D1824
Summary: Adds focal and zplane perspective to the part when generating an EDC.
Reviewers: Hermet, raster, cedric
Reviewed By: cedric
Subscribers: cedric, reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D1742
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
The selection performance is slow if we select large chunk of text.
This is caused by many rectangles created and deleted.
This patch provides a way to improve it by combine selection rectangles
of line in middle into one rectangles (i.e, if we have N lines,
the selection rectangle for lines 2 to N-1 will be combined into one.)
@feature
Reviewers: raster, cedric, tasn
Subscribers: herdsman, woohyun, cedric
Differential Revision: https://phab.enlightenment.org/D1508
thjis was deprecated even before efl 1.0 by never removed. lua
replaced it for script_only objects and you havent been able to
compile an edje file with script_only enabled since 1.0, so no point
having the code here.
this cleans up that code and cruft.
Summary:
this commit contains calculation of format string for floating point numbers in order to print them with at least one symbol after point. (For example: 'relateve: 1.0 0.45;')
@fix
Reviewers: cedric, Hermet, raster, reutskiy.v.v
Reviewed By: reutskiy.v.v
Subscribers: cedric, reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D1653
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: the generation of limits of group is added with this commit.
@feature
Reviewers: Hermet, cedric, raster
Subscribers: cedric, reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D1659
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Set the min, max sizes of the image automatically,
if it uses image set and there's no setting about min, max sizes.
This idea is originated by Jinsol Park.
@feature
Summary:
The copying of state of IMAGE part with twins caused the sefmentation fault due to the extra memory freing in _edje_edit_part_state_copy() that is deleted with this commit.
The data that is freed was previously copied from the structure of state 'from' and freeing of this data leads to freeing data of 'from' part.
Later, on copying of tweens to 'to' state array of tweens appears segmentation fault because we try to access freed data of 'from' state.
@fix
Reviewers: cedric, Hermet, raster, seoz
Subscribers: cedric, reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D1636
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
This commit fixes segfault on restacking text parts with set 'text_source'
that is caused by wrong updaiting of 'text_source' IDs on restacking of parts due to typo.
@fix
Reviewers: Hermet, seoz, raster, cedric
Reviewed By: cedric
Subscribers: cedric, reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D1646
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
There is copy-paste bug, when _anchors_get works in the same way like
_items_get. edje_object_part_text_item_list_get and
edje_object_part_text_item_geometry_get didn't work.
@fix
Reviewers: seoz, Hermet, raster, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1641
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
_edje_real_part_image_set can change the image of part,
if the part use the image that is set by image set.
If the image is changed, the border should be changed.
@fix
Summary:
This commit fixes check of passed value of aspect preference in edje_edit_state_aspect_pref_set() because it ignores None and Sorce values.
@fix
Reviewers: reutskiy.v.v, Hermet, raster, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1542
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
add recalculating of image id in edje_edit_image_usage_list_get() to fix wrong behavior of this function when the image has USER compression.
@fix
Reviewers: Hermet, cedric, raster, reutskiy.v.v
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1547
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This function returns the base_scale factor set on the
Edje object.
The base_scale can be set in the collection of edc.
If it isn't set, the default value is 1.0.
Summary: edje_edit_data_add doesn't work if loaded EDJ file doesn't contain
any data items. It can't add new data item to emptry (NULL) hash.
Now, if there is no data in EDJ yet (so hash is empty), by adding new data it
will create hash and after that will add new data.
@fix
Before this change eo_add() used to create an object with 1 ref, and if
the object had a parent, a second ref.
Now, eo_add() always returns an object with 1 ref, and eo_add_ref()
preserves the old behaviour (for bindings).
eo_unref now un-parents if refcount is 0, and eo_del() is an alias for
eo_unref (will change to be a way to ensure an object is dead and goes
to zombie-land even if still refed).