it's important because some tweens of loaded edje group might use image sets
instead of images, so now making edje_edit API to work with them correctly
@fix
In edje_edit_group_copy() for case when save routine is failed
still returned EINA_TRUE. Now will be returned result of save routine.
@fix
CID: 1362727
It has been discussed on the ML (thread: "[RFC] rename efl_self") and
IRC, and has been decided we should rename it to this in order to avoid
confusion with the already established meaning of self which is very
similar to what we were using it for, but didn't have complete overlap.
Kudos to Marcel Hollerbach for initiating the discussion and
fighting for it until he convinced a significant mass. :)
This commit breaks API, and depending on compiler potentially ABI.
@feature
Summary:
There can be the case that the file of a edje is NULL. Even if this case
is a bit strange, we should not crash on it.
Sample code which produces the crash:
Edje_Object *edje;
int r, g, b, a;
edje = edje_object_add(evas);
edje_obj_color_class_get(edje, "bla",
EDJE_COLOR_CLASS_MODE_COLOR, &r, &g, &b, &a);
So better protect against this case.
Reviewers: raster, herdsman
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4277
Summary:
When selection is there we are passing the whole text and position to imf
which sees that next character like matras (eg .Hindi) should be inserted
(if pressed) and when matra comes the selected text is gone and only matra
remains in the entry.
eg: we have text in hindi like मानक, select all and hit matra in keyboard
selected text is gone, only matra is there.
@fix
Test Plan: Tested in Tizen device
Reviewers: jihoon, tasn, herdsman, thiepha
Subscribers: Hermet, shilpasingh, raster, subodh, jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D2951
Efl.Object.event_callback_call no longer calls legacy smart callbacks;
calling only event callbacks registered with the given event description
pointer.
Create the method Efl.Object.event_callback_legacy_call to inherit the old
behavior from Efl.Object.event_callback_call, calling both Efl.Object events
and legacy smart callbacks.
Update all other files accordingly in order to still supply legacy
callbacks while they are necessary.
This removes:
Efl.Event interface
And renames:
Efl.Event.Input -> Efl.Input.Event
Efl.Event -> Efl.Input.Event (merged)
Efl.Event.Pointer -> Efl.Input.Pointer
Efl.Event.Key -> Efl.Input.Key
Efl.Event.Hold -> Efl.Input.Hold
This also moves some interfaces from efl/ to evas/ where they
belong better.
This allows renaming Eo_Event to Efl_Event.
so every collection we add to the eina has of collections... we just
did eina_hash_add - this isn't quite good. because we use eina_file
and mmap the edje file. we COULd use the strings straigh fromt he edje
filer dictionary and not actually allocate private heap memory - thus
sharing all those strings. this was silly, and this saves about
another 120k of memory with the default theme as it has about 1500 or
so collections in it... and these strings add up fast.
@optimize
it seems vector type parts were not handled all that well. we had at
least one mem leak with the vector mempool never being freed... so i
filled in various missing points where vector parts were not being
handled right.
@fix
so edje was allocating 32 pointers per collection. this is per
collection inside an edje file even if we just use one collection from
that edje file. it consumes 32 pointers. on 64bit thats 256 bytes...
just for pointers to mempools so we can "optimize" freeing and
allocation of parts. this was simply rediculous. i moved it to a
sub-struct allocated on demand (so now only for collections we
actually use) and this nuked 400k of "base memory usage youcant get
rid of).
note that our current default theme has something like 1100 or so
images, 1500 or so collections in it. as theme gorws, memory footprint
goes up if we dont allocation only on demand (when needed/used) and we
aren't careful about the size of our data structs and their content.
@optimize
this fixes a seemingly small typo that would only turn up with fixed
point, but not floats as we have by default whwere we had
x = 999;
instead of
x = FROM_INT(999);
shouldn't be visibule unless you disable float support and use fixed
point in edje.
Summary:
Regardless of the password mode of Entry,
_edje_entry_imf_retrieve_surrounding_cb alwalys passes plain_text
to any callers who register that callback.
This commit replace plain text with '*'
because current behavior could be a security hole in some case.
Reviewers: woohyun, id213sin, jihoon
Reviewed By: jihoon
Subscribers: cedric, jsuya, z-wony, jpeg
Differential Revision: https://phab.enlightenment.org/D4238
Previously, it was limited to the part block. It was a mistake
and should have been put in the description instead, as this
allows it to change during state transition (like visible, or
proxy_src_visible).
@feature
Summary:
Using edc script, there is no way to know evas object is set on swallow part or not.
So, to know that, some elm widget send signal and save some information to edc variables when object is set on swallow part.
I think it is helpful to make better edc script.
@feature
Reviewers: herb, cedric, raster, id213sin, jpeg
Reviewed By: jpeg
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D4176
- convert methods to property setter/getter
- remove "values" block when getter returns read_only value
- fit the type of params of eo funcs to those of legacy APIs
so ... Edje_Calc_Params was huge ... like about 200 bytes. every part
in every live edje object got one of these in addtion to real part
struct info etc. ... so really every part was probably consuming
300-500 bytes or so... crazy. so i made a lot of the data now optional
so only the minimum required is allocated now which cuts down about 110
or even 120 bytes per part, depending. 100 bytes was needed for 3d
node parts even though almsot no parts are 3d node parts... the image
and text data was 30-40 bytes so we consumed 100 even if we only used
30-40... so this cuts that done and puts in polace calc param cleanup
funcs everywhere they are needed to clean up this extra allocated data.
i also reduced this even more by maping pointers to req_drag, map and
physics and clip_to fields in another extension struct cutting
down another 28/52 bytes on most parts (in return for an added
4/8 bytes - on 32/64bit accordingly).
in elementary_test this saves about ~300kb of ram for just having the
etst run and displaying (peak memory measuremment). so massif says
10.6M -> 10.3M.
@optimize
fill spread and angle have never been used - resevred intitially for
gradient objects, but never put into use, so remove to get rid of
junk/memory footprint etc.
@optimize
edje was keeping every edje object created in an eina list so it could
access them later. not really great when every list node contains at
least 4 pointers (data, next, prev and accounting, possibly magic
too). also ever time an edje object is deleted it has to remove from
this list which means... walking the list to where the obj is... not
great. replace with an inlist which is just 3 ptrs, no extra pressure
on list pool and removal os O(1) too.
@optimize
if the text didnt actually change we generat a lot of noise in changed
signals for no change at all in text. shortcut this and check the new
and old text and compare ptrs, 0 length and strings etc.
this fixes T4045
@fix
This removes some useless code in various places, where the
switch from eo_do() to standard function call was not properly
refactored.
This changes:
type ret = 0;
ret = my_eo_function();
return ret;
To:
return my_eo_function();
so we didnt set everything to null after being freed and object sae
freed after some data. do the data frees after objects are deleted so
callbacks cant access null data anyway. this makes this edje shutdown
far more robust and safe. massive improvement in stability i hope.
unswallowing set swallowed_object to NULL inside of
_edje_real_part_swallow_clear
so it is impossible to delete object anymore.
And so, changing sources leaves fantoms and undeleted objects.
@fix
so drop trying to appease the openbsd packages and stick to "upstream
so major versions" and let users fix their systems with symlinks. also
report what we are looking for so they have a chance to symlink to
make efl happy.
at some point we should make a single simple runtime lib linker
subsystem in efl so all these errors are reported in the same way,
input libray names are listed in a simple consistent way etc. etc.
for now we have 3 locations in efl that do this and they are roughly
similar. we can unify it later.
this saves about another 80Kb or so in dirty pages by only loading
ephysics when needed. This removed ephysics and bullet library dirty
pages from the process space. this is another patch to address T4227.
@fix
lots of unchecked malloc/calloc returns, so check these, unwind safely
and complain (highly unlikely to happen unless the system is about to
fall over). this should fix T4230
What a mess... Assuming efl_part() had no side effect on the
object it took me hours to figure out that there was a wrong
call to _edje_recalc_do in the efl_part() function itself.
That was bad, and existed because efl_part() used to be
efl_content_get().
efl_part() should not have any side effect.
Also, fix a return value in content_remove.
Fixes T4214 (invalid redraw and crash in terminology).
This fixes the following error message:
Object '0x40000002f0000030' still has a parent at the time of destruction.
Though I actually wonder why ref == 0 and there was a parent.
Something is still a bit fishy here.
Coverity reports that we call _circular_dependency_find here without
checking the return value
Fixes Coverity CID1349867
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
We now use eo_do() and EFL_CANVAS_SCENE3D_CLASS macro to create viewport
Reviewers: raster, Hermet, cedric
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D4163
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
When using EDC written by another person, developer usually
does not need to know all specified parts in EDC but editable
like swallow, text or textblock parts.
The required flag tells whether the part is intended to be used outside EDC.
Reviewers: jpeg, cedric, raster, Hermet
Reviewed By: jpeg, raster
Subscribers: raster, NikaWhite, kimcinoo, jpeg
Differential Revision: https://phab.enlightenment.org/D3579
Summary:
Do not update anchors outside viewport.
Problem is that when entry contains large number of anchors,
scrolling and launch performance is degraded due to lots of objects
being created and maintained, so to enhance the performance of
entry with anchors, anchors is not updated outside the viewport.
Test Plan:
1. Should have large number of anchors in entry
2. Observe the launch and scrolling performance.
Reviewers: tasn, raster, herdsman
Subscribers: thiepha, raster, cedric, jpeg
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D3543
Summary: Need discussion about the repeat_events property
Test Plan: Swallow an object which has EINA_TRUE repeat_events to a swallow part which has EINA_FALSE repeat_events
Reviewers: Hermet, cedric, raster, jpeg
Reviewed By: raster, jpeg
Subscribers: jaehwan, seoz, woohyun
Differential Revision: https://phab.enlightenment.org/D3580
Summary:
To keep consistency with Evas Textblock part in edje,
text.min has to work logically even if ellipsis is enabled.
If a Text part has minimum width, maximum width and "text.min: 1 X;",
Text part should be expanded until its width reaches to the maximum width.
Then, ellipsis will work. Singleline Textblock is also working like this.
@fix
Reviewers: cedric, herdsman, raster, tasn
Subscribers: Blackmole, z-wony, jpeg
Differential Revision: https://phab.enlightenment.org/D3587
Coverity reports that 'text' here is a null pointer dereference so
check for valid 'text' variable before trying to use it.
Fixes Coverity CID1267490
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Add link press effect
Custom tag (linked_pressed) has to be supplied in entry tb style
with color value for press effect to be applied on link text.
Reviewers: tasn
Subscribers: shilpasingh, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3629
Summary:
When ever a Edje's cursor function is called, "cursor,changed" signal is
emitted. Even if the position is not changed. And, in Elementary, the signal
will trigger evas_smart_objects_calculate() from elm_widget_show_region_set().
It causes bad performace.
@fix
Test Plan: N/A
Reviewers: tasn, herdsman, cedric, woohyun
Subscribers: jpeg, z-wony, Blackmole
Differential Revision: https://phab.enlightenment.org/D3902
Summary:
If there is no member styles when a text_class is updated,
newly added styles can't be updated.
So, newly added styles as member of text_class should be updated.
@fix
Test Plan:
Test case is included.
1. Run "elementary_test -to "font overlay""
2. Press Next button. Check the font size.
3. Press Prev button.
4. Put font_size as 50
5. Click Apply button.
6. Press Next button. Check the font size is not changed.
Reviewers: cedric, tasn, herdsman, raster
Subscribers: jpeg, z-wony, Blackmole
Differential Revision: https://phab.enlightenment.org/D4125
Summary:
Edje_entry: In order to read pre-edit characters as well,
send entry_change_info with preedit,changed
Elm_entry: In order to read pre-edit characters as well,
send text to screen reader on preedit,changed.
Test Plan:
1. Change keyboard language to korean/enable prediction
2. Check the reading, text should be read even before committing
Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
Reviewers: thiepha, jihoon, cedric, raster
Reviewed By: raster
Subscribers: raster, kimcinoo, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4145
this fixes ordering to match everywhere else ANd usage of the get
func. this was broken already where top/bottom border would swap -
plese see coverity scan CID 1355590 for an example of problems this
created.
Summary:
If color class of an edje part is defined as "aaa/bbb/ccc/ddd",
edje will search for color class by the following sequence.
"aaa/bbb/ccc/ddd"
"aaa/bbb/ddd"
"aaa/ddd"
"ddd"
So, without additional lookup table, edje classes (color, text, size)
can have the functionality like inheritance.
Reviewers: jpeg, raster, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D4127
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary: check if the size of scene is bigger than 0x0 and build 3D scene in the edje_player in this case and use "opengl_x11"
Reviewers: Hermet, jpeg, cedric
Subscribers: NikaWhite, Oleksander, artem.popov, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4041
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
While the part state switching, map won't gonna be disabled again,
due to the incorrect state checking.
If there param1 indicates the current state with map off.
then it should disable the map obviously.
But It assumed the param1 is the previous state, not the current!,
so the map didn't go disabled state.
It was intended to avoid the duplicated map state setting.
So to keeping the intention, now it disable the map, only if
the map is actually enabled.
So both are fine.
@fix
this will fix case when aliased group was changed and alias-group was loaded,
so then on saving alias-group WON'T rewrite all changed to aliased group
@fix
this should cut some memory used by edje by using smaller types like
shorts instead of ints where we just dont need a full int range and
short will do, and re-ordering in memory data soit packs better when
accoutning for alignment
let's assume you registered a callback twice with the same ptr data
and same func and same sig/src... if you delete it once you're ok.
delete twice... and you re-delete the first one (just makging it for
delete_me). this fixes this corner case
@fix
Summary:
So currently having an issue related to clip_to function from
EdjeEdit API. I am not sure about how and why combobox use pointer grabbing
(just started to use it) but when setting NULL into clip_to of edje edit it
suddenly block entire screen away from mouse. Only when point is moved out of
window and back, only then it will be able to access widgets again.
Take a look at video and maybe try example to reproduce problem
I am not sure if deleting those functions from edje_edit is actually right
decision. But it will fix the problem of course.
Test Plan: See attached video and examples in attached files
Reviewers: NikaWhite, reutskiy.v.v, Hermet, cedric, raster
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D4081
This message really is just informational at best, since it's
not an error, and we even implemented an optimization.
It should be done at compile (edje_cc) time though.
See comments on D3801
Summary:
refactor setter and getter of edje color class and
move edje_color_class_set/get() into Edje.Object as class functions
Reviewers: cedric, jpeg
Reviewed By: jpeg
Subscribers: kimcinoo
Differential Revision: https://phab.enlightenment.org/D4109
Note by jpeg:
The EO APIs introduced here will be revisited in upcoming patches,
in particular:
1. avoid non-premultiplied colors
2. move to a common color class interface
Summary:
4000x4000 min size limitation was added to prevent infinite
calculation loop. But, it can ruin calculation of some proper Edjes.
Normally, properly generated Edje runs the calculation loop below 10 times.
So, "255" could be proper limitation for calculation loop.
It also make better performance for broken Edje.
Test Plan: N/A
Reviewers: raster, Hermet, woohyun, cedric
Reviewed By: cedric
Subscribers: jpeg, z-wony, Blackmole
Differential Revision: https://phab.enlightenment.org/D4075
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Evas.Common_Interface not only had a bad name, it also
wasn't in line with how we can get a loop object, for
instance.
Use eo_provider_find in each implementing class.
Summary:
When edje_password_show_last option is enabled, the edje_entry uses <password=off>
for showing last character. But, when password mode is disabled by the elm_entry,
<password=off> is remained in the text. It can cause some problems.
Because, there is no way to control password mode by API for the edje_entry.
The elm_entry can't remove <password=off> tag before getting text from the edje_entry.
So, the patch adds edje_object_part_text_hide_visible_password() function and
the elm_entry will use this when elm_layout_theme_apply() is called.
@fix
Test Plan:
1. Run "elementary_test".
2. Show "Entry Password" demo. (Newly added by this patch)
3. Password mode is enabled. Put some text.
4. Click "Show Password" check box to disable password mode.
5. Put more text.
6. Click "Hide Password" check box to enable password mode again.
7. See a character among the text is visible. (without this patch)
Reviewers: tasn, herdsman, cedric, jpeg, thiepha, raster
Reviewed By: raster
Subscribers: Blackmole, z-wony, woohyun
Differential Revision: https://phab.enlightenment.org/D3988
This is legacy stuff. I wish we could hide it from our inheritance
entirely. Instead, just make it abstract, remove all functions from
eo (doable here) and rename with the keyword "internal" in the new
ugly java style name.
The implementation depends on creating different code paths from the now-legacy
behavior of text appending.
The annotation system introduced in this commit replaces the current way of
applying formats on text.
Up until now it has been quite a hassle for the user to control the formats, as
it required keeping track of the format positions with an opener and closer
formats almost every time (with the exception of own-closing formats).
The combination of Efl.Text API along with the Efl.Canvas.Text annotation API
essentially replaces the capabilities of the old format.
There is additional annotation API to allow more control, so be sure to check
the documentation/.eo files and the wiki page of Efl.Canvas.Text.
The style API now accepts actual strings of format style. There is not longer
need to instantiate as style with style_new() followed later by style_free().
@feature
There were a problem when while swithcing between states
(because of program running in transition),
there is SIGSEV appearing when first state has
only one point color, and next state more than one.
Basically it looks like this:
....
part {
name: "rectangle";
type: RECT;
description { state: "default" 0.0;
map {
on: 1;
color: 3 255 90 0 255;
}
}
description { state: "moved" 0.0;
map {
on: 1;
color: 0 0 0 255 255;
color: 1 255 0 0 255;
color: 2 255 90 0 255;
color: 3 41 68 59 255;
}
}
}
<and program that change 'rectangle' state with transition>
....
@fix
Summary: Creation of scene and root node in edje-3d with all 3D-parts of edje object. Add some new methods to edje_util.c
Reviewers: raster, Hermet, jpeg, cedric
Reviewed By: cedric
Subscribers: artem.popov
Differential Revision: https://phab.enlightenment.org/D3963
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This allows apps to set the objects min size with hint_min,
while letting the rest of EFL define the minimum size with
rstricted_min.
I don't like the property names much...
Still not sure about which keyword is the best to use here,
but anyway, it's a protected function so users should realize
it's probably not what they want.
Summary:
This is the svg loader which will parse the svg file and store it in a intermediate structure.
It provides the helper function to get EET descriptor to save the structure into eet file.
NOTE: Not all svg attributes are handled yet. but most common attributes are handled .
Reviewers: Hermet, cedric
Subscribers: Hermet, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3868
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This includes:
- align
- min (now content_min)
- request
- max
- padding (now margin)
- weight
This does NOT include:
- display mode (compress, expand... a hint used by naviframe only).
Cedric revert patch 6f7608befd same days
ago.
<quote Cedric>
Your patch 6f7608befd did break elemines
which does relly on the proper index to be given to it. I think
Edje_Edit should be fine and use the index if no name is provided (See
edje_load.c around L1180). In all case this was clearly an ABI break and
needed to be reverted.
</quote Cedric>
So now edje_cc not guarantee name for part items. This is bad, because
edje_edit use item name for access to item attributes. If item have not
name we cann't get it attributes, because edje_edit compare the given
name with part items name from edj-file, strcmp dislake NULL args.
For now I see one way mark all edje_edit_part_item* APIs as deprecated
and add new APIs for manage part items by index.
For clearly and history:
The eason for revert - https://phab.enlightenment.org/D3820
The proposed solution - https://phab.enlightenment.org/D3907
This lets me narrow down the remaining cases of pointers across the EFL.
The void pointers will later need to be reevaluated on per-case basis and
replaced appropriately where possible/feasible.
This reverts commit 546ff7bbba.
It seems that eo_del() is useful and removing it was creating bugs.
The issue is that the way we defined parents in eo, both the parent and
the programmer share a reference to the object. When we eo_unref() that
reference as the programmer, eo has no way to know it's this specific
reference we are freeing, and not a general one, so in some
circumstances, for example:
eo_ref(child);
eo_unref(child); // trying to delete here
eo_unref(container); // container is deleted here
eo_unref(child); // child already has 0 refs before this point.
We would have an issue with references and objects being freed too soon
and in general, issue with the references.
Having eo_del() solves that, because this one explicitly unparents if
there is a parent, meaning the reference ownership is explicitly taken
by the programmer.
eo_del() is essentially a convenience function around "check if has
parent, and if so unparent, otherwise, unref". Which should be used when
you want to delete an object although it has a parent, and is equivalent
to eo_unref() when it doesn't have one.
This touches Edje and also Elementary where part names are used.
This commit blew up in size since now all content part APIs
(get, set, unset) require to use Efl.Part instead.
This is a big refactoring commit, but no logic should
have been changed. Fingers crossed.
This should now fix the part API usage once and for all.
EFL should have no part name in any of its APIs beyond
the Efl.Part interface.
Part proxy objects (may be real objects) have a lifetime
of only one function call, in a fashion similar to eo_super.
@feature
Complex types (i.e. list, array, hash, accessor etc.) now do not require
pointers with them anymore (the pointer is implied) and the same goes for
class handles. Eolian now explicitly disallows creating pointers to these
as well. This is the first part of the work to remove pointers from Eolian
completely, with the goal of simplifying the DSL (higher level) and therefore
making it easier for bindings (as well as easier API usage).
@feature
Commit 3faf3f3fc converted an eo_do() into two functions.
However the eo_do() was implicitely enclosed within an if,
which after conversion led to the if coverting only one
of these functions instead of both.
Pointed out by GCC's -Wmisleading-indentation.
Previously events used to use class name as a prefix and ignored eo_prefix
when specified. This is no longer the case. Events follow eo_prefix by default
now. In order to get around this for classes where this is undesirable, a new
field event_prefix was added which takes priority over eo_prefix. If neither
is specified, class name is used like previously.
@feature
We used to have eo_del() as the mirrored action to eo_add(). No longer,
now you just always eo_unref() to delete an object. This change makes it
so the reference of the parent is shared with the reference the
programmer has. So eo_parent_set(obj, NULL) can free an object, and so
does eo_unref() (even if there is a parent).
This means Eo no longer complains if you have a parent during deletion.
Summary:
According to D3710 new field "camera" in edc was added for IMAGE parts.
It is the name of the CAMERA part to set its viewport as a source of image if no image name is given.
Reviewers: raster, Hermet, cedric
Reviewed By: cedric
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D3777
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Support inheritance for part states on the edc code generate time.
Only for general attributes are supported, except relative and
map blocks.
Added functions for calculation coefficient of similarity
between two different states of the same part.
Setters and getters like
edje_edit_state_proxy_source_clip_set
edje_edit_state_proxy_source_clip_get
edje_edit_state_proxy_source_visible_set
edje_edit_state_proxy_source_visible_get
even though each part want to get the signal regardless of ON_HOLD,
click signal should not emmitted if event flag is set to ON_HOLD.
ON_HOLD means this event is useless, so up event with ON_HOLD flag cannot source of clicked signal.
@fix
Summary:
Writing copy directly to file.
Old way (adding directly to collection cache) leads to possible segfaults
on edje_collection_cache_flush.
Reviewers: reutskiy.v.v, cedric
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3904
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
It is possible situation when SPACER structure has colors values.
For example:
group { name: "abc";
parts {
part { name: "rect"; type: RECT;
description { "default" 0.0;
color: 7 7 7 255;
}
}
}
}
group { name:"abc_2";
inherit: "abc";
parts {
part { name: "rect"; type: SPACER;
}
}
}
To avoid failing compilation of generated source code, need avoid
generate color source code for a SPACER part.
Allow to delete set if it is not used by any part
Function to check if set is used by any part is:
edje_edit_set_usage_list_get
Since it uses same struct as image_used_list_get function, it
can be freed by edje_edit_image_usage_list_free.
get list of images of set (edje_edit_image_set_images_list_get)
add image to set (edje_edit_image_set_image_add)
delete image from set by it's place (edje_edit_image_set_image_del)
list of sets (edje_edit_image_set_list_get)
renaming set (edje_edit_image_set_rename)
add new set (edje_edit_image_set_add)
set's id (edje_edit_image_set_id_get)
Split function _edje_generate_source_of_state into
separated smallest functions, that represent generation
of source code for different blocks.
List of added internal functions:
- _edje_generate_source_state_map
- _edje_generate_source_state_box
- _edje_generate_source_state_table
- _edje_generate_source_state_image
- _edje_generate_source_state_proxy
- _edje_generate_source_state_relative
Add support collapse blocks, in cases when
block contain only one attribute.
For example:
next EDC code
description { state: "default";
{
rel1 {
relative: 0.5 0;
}
}
now will be replaced by:
description { state: "default";
{
rel1.relative: 0.5 0;
}
This renames some APIs from Efl.Pack in order to try and
make them more sensible. Feedback welcome.
Also, most APIs now return bool, where false is quite unlikely
to happen.
This fixes on top of 49a27688b1, which
assumed somehow that table items had names, although that
might not be the case. In my situation, name = NULL and there
was a crash everytime I clicked on the clock widget.
This function was returning only the text defined by part_text_set.
This is a behaviour change, as part_text_get() no longer returns NULL
if there is a string defined in EDC. But this now means that the actual
value displayed on screen can be retrieved by a simple API call.
@feature
This is similar to the previous patch for Box,
but for Table.
Those new EO API as well as the legacy ones still need to
be tested (no test case in make check...)
@feature
If the table item has a name, posible case when item name length, with
index, will be 12. The 12 is predefined length for box index.
Quote Cedric
In a box, the index is one dimension, one int, thus the length
of it (from int to string) will always fit inside 12 bytes. That's
where this 12 comes from. That's also how the unique name of that item
is defined.
This commit separate the items name generation by part type, it will be
more correctly.
@fix
Summary: moved mempools adding to separate method to avoid this problem in future
Reviewers: cedric, reutskiy.v.v
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3903
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
For EDJE_RP_TYPE_SWALLOW objects (like GROUP, SWALLOW, EXTERNAL),
edje_object_part_object_get() will return NULL or transparent rectangle.
The note is added to have developers use edje_object_part_swallow_get()
in that case.
Reviewers: jpeg, Hermet, cedric
Reviewed By: cedric
Subscribers: Hermet
Differential Revision: https://phab.enlightenment.org/D3859
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Correct support all types of program actions for constructing
list of targets.
There are 3 group of actions, that related to targets:
- Does not support targets at all.
- Support only parts as targets.
- ACTION_STOP, that supported parts and other programs as targtes.
@fix
Summary:
enum Evas.Canvas3D.Shade_Mode are using for choose relevant shader source code.
So renaming have a sence.
Rename evas_canvas3d_shade_mode_set/get property to evas_canvas3d_shader_mode_set/get
Rename internal fields and functions
Reviewers: cedric, Hermet, raster
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3882
i just got a segv freeing ian invalid ptr... it SEEMS as if something
has tried to free and edje object twice... but i can't be sure as
valgrind can't catch this. it's a one-off, so ensure after free, we
NULL out things we freed to avoid this.
@fix
Setting the no-render flag on an elm widget had no effect,
as it was not properly propagated to its children. This should
fix that, but I'm not a fan of the solution.
Fixes T3371
Summary:
In evas and elm box, function for inserting child object after
referenced one is available, but edje doesn't have it.
This adds edje_object_box_part_insert_after() API.
@feature
Reviewers: raster, jpeg, cedric
Reviewed By: jpeg
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3733
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Only Efl.Canvas.Proxy implements efl_canvas_proxy_source_clip_set.
Legacy image objects should use legacy APIs.
Thanks @zmike for the report and sorry I never saw the ERR myself :(
Fixes T3342
So I forgot to clean my hard drive from previously generated files,
and obviously everything still worked. This lead to having to roll back
evas_smart_clipped.eo as a public eo object until we merge elementary.
Still I would like someone to take a look at elm_pan.eo and figure out
how to not rely on smart clipped there.
Summary:
Applications usually use edje syntax like as,
```
part { name :"bg";
type: SWALLOW;
description {
state: "default" 0.0;
rel1.relative: 0.0 0.0;
rel2.relative: 0.0 0.0;
align: 0.0 0.0;
min: 100 100;
}
}
```
But edje does not calculate it exactly without "fixed: 1 1".
So edje calculation is repeated until 4000 x 4000, it is waste of time.
Reviewers: woohyun, raster, Hermet, id213sin, cedric
Reviewed By: cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3801
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Edje data structure is passed as a parameter, but in file.set method
_edje_fetch() is called one more time unnecessarily.
Reviewers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3788
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Annoying incomplete initializer warning. Apparently gcc/clang
don't consider {0} as good enough for "initialize everything to 0"
even though they do it.
Summary:
Developer cannot notice that any description didn't applied due to missing description or typo.
This message will be helpful to make correct the application.
Reviewers: cedric, Hermet, raster
Subscribers: soohye.shin, minkyu, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3783
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
It has been decided that we would not use any namespace for interface
and they will sit in efl main namespace.
This patch doesn't correct the naming of the event has we don't have a
prefix for event. We do still have EFL_ANIMATOR_EVENT_ANIMATOR_TICK,
instead of a nicer EFL_EVENT_ANIMATOR_TICK.
Summary:
If not found edje part description, edje just set default description in spite of RTL status.
This adds to call function for getting the correct description as RTL status.
Reviewers: raster, Hermet, cedric
Subscribers: minkyu, sju27, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3735
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Mostly unused vars following the removal of eo_do_ret().
However, there are some cases where the migration script got some things
wrong, and I had to manually fix them.
I just ran my script (email to follow) to migrate all of the EFL
automatically. This commit is *only* the automatic conversion, so it can
be easily reverted and re-run.
These file needed some manual adjustments in addition to the automatic
migration, that's why these are separate from the previous and next
commits, so I can easily know there are additional changes to these, and
it wasn't just the script.
The migration scripts breaks with some weird cases, here I manually
migrated some parts, and just removed the eo_do from others without
actually migrating (so I could deal with that later).
This removes an absolutely crazy use of eo_do where all calls
to the efl_gfx_filter functions where factorized in an unreadable
manner. Hopefully eo_do will disappear soon.
this fixes warnings from gcc specifically:
lib/edje/edje_entry.c: In function ‘_edje_entry_imf_cursor_info_set’:
lib/edje/edje_entry.c:4104:4: warning: ‘dir’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
ecore_imf_context_bidi_direction_set(en->imf_context,
(Ecore_IMF_BiDi_Direction)dir);
^
lib/edje/edje_entry.c:4099:24: note: ‘dir’ was declared here
Evas_BiDi_Direction dir;
^
lib/edje/edje_entry.c:4103:4: warning:
‘ch’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:27: note: ‘ch’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4:
warning: ‘cw’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:23: note: ‘cw’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4: warning:
‘cy’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:19: note: ‘cy’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4: warning:
‘cx’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:15: note: ‘cx’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c: In function
‘_edje_part_move_cb’:
lib/edje/edje_entry.c:4104:4: warning: ‘dir’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
ecore_imf_context_bidi_direction_set(en->imf_context,
(Ecore_IMF_BiDi_Direction)dir);
^
lib/edje/edje_entry.c:4099:24: note: ‘dir’ was declared here
Evas_BiDi_Direction dir;
^
lib/edje/edje_entry.c:4103:4: warning:
‘ch’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:27: note: ‘ch’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4:
warning: ‘cw’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:23: note: ‘cw’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4: warning:
‘cy’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:19: note: ‘cy’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4: warning:
‘cx’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:15: note: ‘cx’ was declared here
Evas_Coord cx, cy, cw, ch;
^
and the likes...