Commit Graph

152 Commits

Author SHA1 Message Date
Subhransu Mohanty 62c0a4ef08 edje: add new svg part to edc
Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: jpeg, cedric, Hermet

Differential Revision: https://phab.enlightenment.org/D3894

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-06-08 11:35:33 -07:00
Subhransu Mohanty 698135b8e4 edje: add svg support to parse and store a svg file as a vector object in .edj.
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>
2016-06-08 11:18:20 -07:00
Jean-Philippe Andre 99924852ab Efl: Remove part name in Efl.Container (use Efl.Part)
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.
2016-05-26 19:55:50 +09:00
Jean-Philippe Andre ba43e12722 Edje: cache proxy objects (1 slot only)
Also, fix calls to a proxy obj from a proxy function.
2016-05-24 18:50:58 +09:00
Jean-Philippe ANDRE d0f141077e Efl: Add Efl.Part and switch to it
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
2016-05-24 18:50:58 +09:00
Cedric BAIL 0c4880e99d efl: everyone should now rely on Eina MIN/MAX redefinition. 2016-05-09 16:58:53 -07:00
Carsten Haitzler 90e8ad8d7d edje - file set - use vpath for edje files now too like evas images 2016-05-09 19:37:48 +09:00
Cedric BAIL 10c9ef771f edje: do not check against eet if strings where never allocated. 2016-05-06 16:47:56 -07:00
Jean-Philippe Andre 97422856ce Edje: Replace edje part_table with a fake eo proxy
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
2016-04-26 11:36:23 +09:00
Jean-Philippe Andre e2176ed6a3 Edje: Replace edje_box_part with a fake eo proxy
This is basically an implementation of eo_part() but only
for Edje Box APIs. Legacy API is implemented on top of the
EO API.
2016-04-26 11:36:23 +09:00
Oleksandr Shcherbina 172cfa0f04 evas.canvas3d: Change shade_mode to shader_mode
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
2016-04-14 20:28:20 +09:00
Jee-Yong Um aa92044422 edje: add edje_object_box_part_insert_after()
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>
2016-03-28 11:24:06 -07:00
Jee-Yong Um 4ed9b83258 edje_embryo: add box attributes support to set_state_val()
Summary: Add box attributes support to set_state_val().

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3734

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-04 16:09:51 -08:00
Tom Hacohen e71e6561ee Eo callbacks: Migrate all of the EFL to the new event cb signatures. 2016-02-29 11:33:27 +00:00
perepelits.m ef767580a5 Edje: add of some new features and fixes for Canvas3d types in edje_calc.
Summary:
Adding of new properties for light in edje-3d. Recalculation of main properties in Canvas3D parts to provide animation (only those which I used in widgets).
Checking of frame existing when setting material.

Reviewers: cedric, raster, Hermet

Subscribers: jpeg, artem.popov

Differential Revision: https://phab.enlightenment.org/D3694

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-17 14:48:36 -08:00
Jee-Yong Um 800f5d8156 edje: introduce color_tree (color_class inheritance)
Summary:
The "color_tree" block contains a list of one or more "node" blocks.
A "node" block consists of its own color class name and the list of child
color classes. At runtime, parent color class will be referred instead,
if child color class is set to part but its color values are not defined.

Reviewers: raster, Jaehyun_Cho, jpeg, cedric

Reviewed By: cedric

Subscribers: cedric, kimcinoo

Differential Revision: https://phab.enlightenment.org/D3606

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-05 07:55:49 +01:00
Cedric BAIL b02d34a839 edje: add back use of Ecore_Animator when the Edje object is created on an non Ecore_Evas canvas.
This is necessary for backward compatibility still I am thinking of displaying a warning for this
use case and request people to update there work and drop that feature in the future (In a year
maybe from now). Elementary doesn't need this as it depends on Ecore_Evas.
2016-02-05 06:02:29 +01:00
Cedric BAIL a13752dcc7 edje: switch to use per window animator. 2016-02-02 10:47:25 -08:00
Shinwoo Kim 1aafaca172 Edje: enhance embryo stack broken error message
Summary: Enhance embry stack broken error message

Test Plan: Make a run_program run a script

Reviewers: raster, zmike, jpeg

Reviewed By: jpeg

Subscribers: cedric, seoz, jpeg

Differential Revision: https://phab.enlightenment.org/D3528
2016-01-13 14:50:58 +09:00
Jee-Yong Um bafa65f9b4 edje: convert Edje_Text_Class, Edje_Size_Class data type to public
Summary:
APIs iterating works through active text classes and size classes were added,
but Edje_Text_Class and Edje_Size_Class data type are still concealed.
This patch uncovers those data types so as to allow developers to use them.

Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D3557

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-01-12 14:02:19 -08:00
perepelits.m 728eff8836 edje: implementation of Edje_3d
Summary:
I have a strange feeling that I always commit the same code to edje-3d, I hope it will finish very soon.
However here are some important new keywords, descriptors for them, methods for models,
structure for providing animation in edje programs and some more changes.

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: jpeg, artem.popov

Projects: #efl

Differential Revision: https://phab.enlightenment.org/D3437

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-01-04 14:03:15 -08:00
Jee-Yong Um 71f578dc0b edje: add text_classes syntax to EDC
Summary:
text_class can be defined in text_classes block.

T2900

@feature

Reviewers: jpeg, raster

Subscribers: raster, cedric, Jaehyun_Cho, CHAN, kimcinoo

Differential Revision: https://phab.enlightenment.org/D3435
2015-12-24 15:58:34 +09:00
Jee-Yong Um 3e31eda3bd edje: introduce size_class attribute
Edje_Part can change its min or max size in code level with
size_class.

Differential Revision: https://phab.enlightenment.org/D3329

PS: Manual commit, arc refused to work...

@feature

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-12-08 12:25:15 +09:00
Jean-Philippe Andre 6ac4f7154b Edje: Add filter support to SNAPSHOT parts
This makes SNAPSHOT a part type on it own, combining the
common and filter subtypes.

This means it is now possible to set an evas filter on
a SNAPSHOT object, just like for TEXT, IMAGE and PROXY.

@feature
2015-10-01 20:10:54 +09:00
Jean-Philippe Andre 31edfbb817 Edje: Add support for filters to PROXY parts
Same syntax as for IMAGE and TEXT: description.filter
2015-10-01 20:10:54 +09:00
Jean-Philippe Andre c0f887b429 Edje: Move internal struct filter around (refactor) 2015-10-01 20:10:54 +09:00
Andrii Kroitor d595149178 edje: fix internal colorclass field
Summary:
Its value is never modified directly and should not be modifiled by mistake
in future.

@fix

Reviewers: Hermet, raster, reutskiy.v.v, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3104

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-23 12:34:22 -07:00
Cedric BAIL a7fd98f8f6 edje: add a SNAPSHOT part in EDC. 2015-08-06 11:05:50 +02:00
Jee-Yong Um 815ebc0b0e edje_embryo: add methods to handle event flags.
Summary:
Add embryo methods that change the state
whether Edje_Part will handle Evas_Event or not.

Reviewers: Hermet, woohyun, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2807

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-04 17:34:30 +02:00
Jean-Philippe Andre 6ca02cbfe8 Edje: Embed verbatim scripts for Efl.Gfx.Filters
This is now like the other embedded scripts, where a verbatim
string is parsed. The syntax is now:

filters {
   filter {
      name: "filter0";
      file: "filter.lua";
   }
   filter {
      name: "filter1";
      script {
         blend {}
      }
   }
   filter.file: "file.lua"; // name is "file.lua"
}

Thanks @raster for the quick review.
2015-07-01 20:46:34 +09:00
Jean-Philippe Andre 6e29489054 Edje: Use bsearch() to find filters as fast as possible
edje_cc ensures that the filters are in order by name
2015-06-30 10:12:13 +09:00
Jean-Philippe Andre 3648b0e252 Edje: Add proper filters section in the EDJ file
Don't [ab]use the file data section for filter scripts, instead
create a proper section for them. The rest of the behaviour stays
the same.
2015-06-30 10:12:13 +09:00
Jean-Philippe Andre b676dcf998 Edje: Use array instead of hash for filters data
Yeah that was totally overkill and pure laziness on my side.

Despite having the EO API for the filters still in beta,
I want to the EDC API and EDJ binary formats to stay compatible,
so let's get it right before the release :)
2015-06-30 10:12:13 +09:00
Jee-Yong Um 2b29f4dfbf edje: add "mask_flags" instruction for "part" block
Summary:
Elementary widgets dealing with Evas Events usually mask event_flags with
EVAS_EVENT_FLAG_ON_HOLD, to show that this event is already handled.
However, widget like Elm_Button, it does not handle EVAS_CALLBACK_MOUSE_DOWN directly,
but it handles Edje_Signal instead, so there's no chance to mask event_flags.
Developers can block event propagation by putting rectangle the very last part of EDC,
but this instruction can help the case making elementary widget with only Edje_Signal handling.
This is not required essentially, so please check the necessity of this function.

Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: cedric, Hermet

Differential Revision: https://phab.enlightenment.org/D2764

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-25 17:21:09 +02:00
Jee-Yong Um ef491e697e edje: implement methods for mouse_events with edje_part for Edje Embryo script.
Summary:
In edje_embryo.c, there are the list for supported methods in script.
However, methods listed from line 175 to 188 don't exist actually.
This patch implements 4 methods among them.
   set_mouse_events(part_id, ev)
   get_mouse_events(part_id)
   set_repeat_events(part_id, rep)
   get_repeat_events(part_id)

Reviewers: Hermet, woohyun, cedric

Reviewed By: cedric

Subscribers: cedric, Hermet

Differential Revision: https://phab.enlightenment.org/D2766

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-25 17:21:09 +02:00
Jean-Philippe Andre 15afea293f Edje & evas filters: Properly pass data from EDC to Lua
Also fix a few issues
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre 0e8f890dfb Edje & evas filters: Add extra data from EDC to Lua program
This also supports color classes (really rough implementation for
now, but the API should remain stable).

@feature
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre 84e3dd5c34 Evas filters: Add name to the filters
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.
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre 64fd278c62 Evas filters: EO-ify the filters API
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.
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre 88b81d240a Edje: Move filter desc to common desc
This will be shared between IMAGE and TEXT.
In the future it can also be shared with PROXY and TEXTBLOCK.
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre 707b979ffd Edje/evas filters: Use EDJ data sections to store filters code
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
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre d00378edcf Edje/evas filters: Add filter.source support
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
2015-06-25 14:36:09 +09:00
Jean-Philippe Andre 0e11e0a6dc Edje/evas filters: Quick renaming of evas filters related stuff 2015-06-25 14:36:09 +09:00
Jean-Philippe Andre 225c0f937a Evas filters: Pass edje state name & value to the filters
From Edje, pass the current state info (name and value) as well
as the next state and the transition position when applicable.
2015-06-25 14:36:08 +09:00
Cedric BAIL a3c7a83196 edje: add possibility to speed up animation per object.
This could come handy for previewing the effect of accelerating animation.

@feature
2015-06-22 18:46:12 +02:00
jiin.moon 6487a26354 edje: add support to control the transition time of edje animation globally.
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>
2015-06-22 17:56:15 +02:00
perepelits.m 3671506ad3 edje: add of edje-3d to edje_calc.c
Summary: Adding of Mesh_Node, Light and Camera to _edje_part_recalc.

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: cedric, artem.popov

Differential Revision: https://phab.enlightenment.org/D2639

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-22 11:17:29 +02:00
Oleksandr Shcherbina d409df1caa evas: change interface evas_3d to evas_canvas3d
Summary:
Regard to https://phab.enlightenment.org/T2479 it is need for right generation
Eolian files

Reviewers: cedric

Subscribers: cedric, tasn

Differential Revision: https://phab.enlightenment.org/D2711

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-17 17:52:17 +02:00
Jean-Philippe Andre 111e51a6ff Evas: Add "no-render" flag for proxy sources & clippers
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
2015-06-15 16:59:41 +09:00
Jean-Philippe Andre 75ec3a7338 Edje: Add clip as a property of a part description
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
2015-06-15 16:59:41 +09:00