Commit Graph

146 Commits

Author SHA1 Message Date
Mike Blumenkrantz c911ac2fb9 call edje_cc link combining when popping the group so the last group doesn't not get linked 2014-05-08 21:04:28 -04:00
Mike Blumenkrantz f482aeb43f fix edje_cc multiple link usage on same description 2014-04-26 02:16:55 -04:00
Mike Blumenkrantz b35dfc5f05 edje_cc now (more) correctly handles text filter inheriting/resetting 2014-04-25 10:52:15 -04:00
Mike Blumenkrantz 5f376fde36 edje now correctly supports text.source and text.text_source for swallowed parts
fix T1186
2014-04-25 10:52:15 -04:00
Mike Blumenkrantz bce864b8dd edc parts.alias documentation is now comprehensible and useful 2014-04-25 10:52:15 -04:00
Mike Blumenkrantz 939f2eea7f edje now has the group.script_recursion flag for permitting unsafe embryo recursion
this is enabled for all scripts within a group, and it should only be used if you:

1) know what you are doing

2) know why this is unsafe (T905)

@feature
2014-04-25 10:52:15 -04:00
Mike Blumenkrantz c5b1598e6e edje_cc now supports part.description.link for single line state changes
@feature
2014-04-25 10:52:15 -04:00
Mike Blumenkrantz 83832d6b1d edje_cc now supports group.program_source for specifying a default source in programs
this allows for program.source to be omitted 99% of the time since most sources in an application/library will be the same within a single group

@feature
2014-04-25 10:52:15 -04:00
Mike Blumenkrantz fd8c9532a1 edje_cc now has the program.groups and X.target_group keywords for target grouping
this allows any number of parts/programs to be added by name into a logical grouping which can then be referenced inside a program.

eg.

before
------

program { signal: XYZ; source: 123;
   action: STATE_SET "default";
   targets: "sup" "dawg" "parts" "up" "in" "dis" "progrizzle";
}

program { signal: ABC; source: 123;
   action: STATE_SET "notdefault";
   targets: "sup" "dawg" "parts" "up" "in" "dis" "progrizzle" "tooizzle";
}

======
after
------

target_group: "default" "sup" "dawg" "parts" "up" "in" "dis" "progrizzle";

program { signal: XYZ; source: 123;
   action: STATE_SET "default";
   group: "default";
}

program { signal: ABC; source: 123;
   action: STATE_SET "notdefault";
   group: "default";
   target: "tooizzle";
}

@feature
2014-04-25 10:52:15 -04:00
Mike Blumenkrantz c8cc776fb1 edje_cc now supports targets for SIGNAL_EMIT actions
this is much more intuitive than somehow knowing you're supposed to add a ':' between part:signal

@feature
2014-04-25 10:52:15 -04:00
Mike Blumenkrantz 6b712f6f02 edje_cc now supports the group.inherit_only attribute
use this for flagging a group as a "virtual" group which is only used for inheriting

@feature
2014-04-25 10:52:14 -04:00
Mike Blumenkrantz 7eb703fdde edje_cc now supports "lazEDC", a more concise version of EDC
in today's modern world of fast-paced, HTML5-driven, C++-riddled
development, nobody wants to spend hours typing out long words like
"description" or "mouse_events" or "name". there's no time for it
and certainly nobody is going to allocate budget for this sort of
keyboard-related nonsense.
enter lazEDC: the solution for edje-loving keyboard jockeys everywhere.
by breaking the parser of edje_cc with the strength of 10 frenchmen,
new, shorter keywords such as "nomouse" can be used in place of lengthy,
rambling statements like "mouse_events: 0", and things like

part { name: "clip"; type: RECT; description { state: "default" 0.0; }}

can now be written as

rect { "clip"; }

with the exact same effect.

initial tests show that complex and terrible edc files such as the infamous
"genlist.edc" can be reduced in size by over 15% using these new features.

see edcref for docs, and genlist.edc for examples

@feature

@awesome
2014-04-25 10:52:14 -04:00
bluezery 785cdcf689 edje: Remove build warnning by clang
Summary:
This can fix below warning:
bin/edje/edje_cc_handlers.c:9839:42: warning: equality comparison with
extraneous parentheses [-Wparentheses-equality]

Reviewers: raster, cedric, seoz

Reviewed By: seoz

CC: cedric

Differential Revision: https://phab.enlightenment.org/D792
2014-04-25 14:27:15 +09:00
Mike Blumenkrantz 7355f67c1f revert edje ellipsis doc changes
if we're reverting functional changes, then it's probably a good idea to revert the accompanying documentation
2014-04-23 09:28:23 -04:00
Carsten Haitzler f442c21c04 partly revert mike's ellipsis changes as they break edje
partly revert adcc323291 as the default
ellipsis value was 0 as per the document, and must stay, as changing
this breaks edc descirptions as now text is no longer ellipsised by
default. this ACTUALLY broke titlebars on the default theme - just
have a title that is too long and see how it no longer goes:

This is a title he...

it instead covers the screen for as long as the title is.

if you want -1 for ellipsis... then set it. :)
2014-04-23 19:57:15 +09:00
Mike Blumenkrantz adcc323291 edje: the ellipsis fuckup preservation commit.
what a huge, colossal cock-up of a clusterfuck. it's a good thing nobody ever uses ellipses or edje. otherwise we'd probably get complaints about this kind of thing.
2014-04-22 20:21:46 -04:00
Jean-Philippe Andre f6eae69eb2 Edje: Use LOSSY_ETC1 instead of LOSSY
Add a new flag in EDC files to specify ETC1 compression
should be enabled. It follows the same rules as the
current LOSSY flag for JPEG compression.

@feature
2014-04-18 16:50:01 +09:00
Vorobiov Vitalii 85f8661f45 edje_cc: fix group inheriting with scripts. (group.script and .program.script)
After doing some edje_edit manipulations there was a problem that
after edje_decc of changed EDJ file it wasnt able to compile again, because some of scripts
weren't inherited.
The problem was in Code and Code_Script structure.
There is "shared" ("script") field and "original" field that contained a string with embryo script code.
After inheriting whole group, "original" field wasn't copied, so it wasn't able to write
the script into resulted EDJ file (look at edje_cc_out:1407).
@fix

Reviewers: cedric, seoz, raster

Reviewed By: cedric

CC: reutskiy.v.v, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
2014-04-01 22:00:13 +09:00
Mike Blumenkrantz c5564213ea edje_cc should probably handle sequenced scripts successfully 2014-03-31 16:45:05 -04:00
Mike Blumenkrantz 01b54c75f1 edje_cc part description state name error clarification 2014-03-31 16:02:41 -04:00
Mike Blumenkrantz 5ffef1e853 edje_cc no longer allows buggy/unexpected behavior when inheriting parts
previously we allowed users to not specify the state names for non-default description states. this guaranteed crazy behavior during inheritance since it was impossible to properly reference such states.
2014-03-31 15:30:48 -04:00
Mike Blumenkrantz 1009e3c234 edje_cc sequence example: now with 50% more sequencing! 2014-03-29 09:57:27 -04:00
Mike Blumenkrantz 3083732bfb edje_cc probably should ignore limit inherits when there are no limits 2014-03-25 11:07:30 -04:00
Mike Blumenkrantz 7d9d42a281 edje_cc correctly copies group.limits when inheriting, FIXME-- 2014-03-24 15:27:17 -04:00
Mike Blumenkrantz 15df46b707 edje_cc now fails for multiple data entries with the same key, FIXME-- 2014-03-24 15:18:28 -04:00
Mike Blumenkrantz c8dc78cd00 edje_cc sets current_group_inherit at the start of inheriting to allow better checking 2014-03-24 15:07:46 -04:00
Mike Blumenkrantz ee7755e21b edje_cc now correctly handles group inheriting when the inherit is after a part/program
this is technically @fix, but it's also new-ish behavior so I'm not going to backport it; 1.10 can be the edje_cc release
2014-03-24 15:06:19 -04:00
Mike Blumenkrantz cea92fa2fc edje_cc collections.grpup is not collections.group 2014-03-24 12:52:55 -04:00
Mike Blumenkrantz 6c21e8eb83 edje_cc uses more setup macros to unify program statements 2014-03-24 12:51:14 -04:00
Mike Blumenkrantz 8d30e71e8b edje_cc prevents sequence users from failing to sequence 2014-03-24 10:58:48 -04:00
Mike Blumenkrantz 4cfff903c2 edje_cc should support sequences inside programs.program I guess 2014-03-24 10:58:09 -04:00
Mike Blumenkrantz f3d5cee0e4 edje_cc can now use group.program_remove to remove inherited programs
@feature
2014-03-22 02:20:09 -04:00
Mike Blumenkrantz 7cfde40500 edje_cc no longer fails when program.name is specified after program.after 2014-03-22 00:52:55 -04:00
Mike Blumenkrantz a755dfa75e edje_cc should probably disallow overriding of currently-sequencing program 2014-03-22 00:13:18 -04:00
Mike Blumenkrantz b8bc366a28 edje_cc now supports program.sequence for more easily chaining programs together
this is just some syntax shortening for program.after which causes program.action and program.script to create a new program and automatically chain it within the sequence{} block

recursive sequences not currently allowed/planned (don't be insane)

@feature
2014-03-21 23:56:05 -04:00
Mike Blumenkrantz 98eaad570b edje_cc macros even more of its parser setup for consistency 2014-03-21 23:04:05 -04:00
Mike Blumenkrantz b6949578cf edje_cc typo which almost broke everything except nobody noticed 2014-03-21 22:36:22 -04:00
Mike Blumenkrantz cc5f8c6852 edje_cc uses macros for some of its handler setup
this reduces code size, ensures consistency, and actually fixes bugs where the "filter" keyword was erroneously disallowed in some places

@fix
2014-03-21 22:09:54 -04:00
Mike Blumenkrantz 499020ce4d edje_cc no longer reads every character of a script during parsing 2014-03-21 22:08:19 -04:00
Mike Blumenkrantz 0681af5ca1 edje_cc group.remove should probably be group.part_remove
this allows things like group.program_remove to exist
2014-03-21 16:50:12 -04:00
Mike Blumenkrantz 4619c3de4e edje_cc now supports part.inherit for copying attributes of parts within a group more easily
@feature
2014-03-21 15:47:04 -04:00
Mike Blumenkrantz fa14af1afb edje_cc no longer errors when inheriting a description before/when state is not set
anonymous states are allowed in other places, so having this check is inconsistent and breaks inheriting. an error will be triggered at a later point.
2014-03-21 15:25:15 -04:00
Mike Blumenkrantz 153e3b45b4 edje_cc now supports group.remove for removing parts from inherited groups
@feature
2014-03-21 15:12:38 -04:00
Mike Blumenkrantz c4fc401d87 edje_cc now supports program.targets keyword for adding N targets in one line
@feature
2014-03-20 19:40:51 -04:00
Mike Blumenkrantz d025f89b2e edje_cc also checks min args correctly for STATE_SET actions
@fix
2014-03-20 19:27:48 -04:00
Mike Blumenkrantz 0f1ccdad09 edje_cc now correctly handles lack of state int in STATE_SET action
@fix
2014-03-20 19:20:50 -04:00
Mike Blumenkrantz edf825fd07 edje_cc no longer fails on collections.group{}
@fix
2014-03-20 14:59:58 -04:00
Tae-Hwan Kim 3061a706c4 Add new PLUGIN_RUN action type and new plugins.plugin handlers 1. If external library is commerical source and not opensource, we cannot include/build the library within edje. 2. If external library does not use general encodable sources, we...
Summary:
...cannot encode those things into edje.

In our case, we need vibration when longpressed. But those files are not
audio or image and cannot be encoded into edje. Also, this library is not
opensource so should not be linked directly with edje.
So we should call vibration API by using this plug-in.

Reviewers: raster, cedric, seoz, Hermet

CC: cedric

Differential Revision: https://phab.enlightenment.org/D588
2014-03-20 13:00:21 +09:00
Carsten Haitzler bf4d34c172 edje - edje_cc - remove logically dead code
fixes CID 1135268
2014-02-13 19:31:29 +09:00
Carsten Haitzler db1990020a edje - feature - add channel types for sounds and ability to mute them
this adds a new feature to be able to assign a sample to a given
"type" of audio channel, and then to be able to mute these from code.
2014-02-09 19:08:12 +09:00
Carsten Haitzler 7c7f2eb300 formatting - make parse enum easier to read 2014-02-09 13:38:36 +09:00
Carsten Haitzler 82af0f60c5 edje_cc - sample play - document speed param and allow wider range 2014-02-09 13:31:00 +09:00
Jean-Philippe Andre 22e94df0f7 Evas filters: Quick check for existing part name
We just add all buffer source names to the part lookup queue,
so that edje_cc will check that the source part exists.

The final int key is discarded.
2014-02-07 17:33:18 +09:00
Jean-Philippe Andre a25b212bac Evas filters: Add support for proxies in Edje
They will be defined with the following syntax:
buffer:buf(src=part);
2014-02-07 17:33:18 +09:00
Jean-Philippe Andre 08f2624e6a Evas filters: Implement basic Edje support
Does not support proxies yet.
Implemented as "filter" field in a part.description.text (next
to a "font").
2014-02-07 17:33:18 +09:00
Andrii Kroitor b556df55af edje: edje_cc - note for future image_id changes added
Reviewers: cedric

Reviewed By: cedric

CC: reutskiy.v.v, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-20 14:43:24 +09:00
Vyacheslav Reutskiy f358520483 edje: edc ref - update the information about fill type values
Reviewers: cedric, raster, seoz

Reviewed By: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D395
2013-12-20 14:43:24 +09:00
Vorobiov Vitalii 0640b7f341 edje: adding Alias API into edje_edit module
Summary:
This commit will add some API for working with aliases.
There are four functions will be added:
1. edje_edit_group_aliases_get - this function will return the list of aliases of certain group.
2. edje_edit_group_is_alias - this function will check if the given group name is actually an alias.
3. edje_edit_group_aliased_get - return the main real group that is being aliased.
4. edje_edit_group_alias_add - add new alias name.

Also the function "edje_edit_group_del" was modified because of wrong behaviour.
Now if the given group is alias, it will successfully delete it,
but if the given group is main group, it will also delete all it's aliases.

This commit also modify EDJ file by adding new field for detecting if the group is alias or not.

Reviewers: cedric, seoz, raster

Reviewed By: raster

CC: reutskiy.v.v, cedric

Differential Revision: https://phab.enlightenment.org/D376
2013-12-14 18:40:26 +09:00
Carsten Haitzler 0b641196c6 edje - edje_cc - fix coverty issue of not exiting loop for box items name
this shoul fix CID 1039918
2013-12-11 19:13:16 +09:00
Otavio Pontes afd8a238d1 Adding the cubic-bezier curve to edje transitions
Summary: Adding an option to use a cubic-bezier curve in edje transitions.

Reviewers: Sachiel, cedric, raster

Reviewed By: raster

CC: raster

Differential Revision: https://phab.enlightenment.org/D319
2013-12-02 15:02:40 +09:00
Thiep Ha 44639b2098 Remove selection handlers (and move to elm)
Summary:
Selection handlers are now implemented in elementary. So, we should remove them from edje.
The BLOCK_HANDLE mode should be removed also.

Reviewers: cedric, tasn

CC: cedric, raster

Differential Revision: https://phab.enlightenment.org/D312
2013-11-08 17:30:45 +09:00
Vyacheslav Reutskiy 8efe24c87d edje: add string "program_%p" (%p - edje_program pointer) to a default description of the program being build.
Fix deffect with a missing tokken 'name' in the program description block when
generated by edje_cc.

Reviewers: cedric, seoz

CC: cedric

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

Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-11-07 18:03:03 +09:00
Vyacheslav Reutskiy d9a72ccf8b edje: add string "default" to a default description of the part being build.
Fix deffect with a missing tokken 'state' in the first description block when
generated by edje_cc (It is perfectly valid to not specify the first description
name as it will always be "default").

Reviewers: cedric, seoz

Reviewed By: cedric

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

Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-11-04 15:41:54 +09:00
Andrii Kroitor 3973ecf2e8 edje: make functions return Eina_Bool and fix documentation.
Make the following functions return Eina_Bool so the caller can detect errors:
edje_edit_part_drag_x_set
edje_edit_part_drag_y_set
edje_edit_part_drag_step_x_set
edje_edit_part_drag_step_y_set
edje_edit_part_drag_count_x_set
edje_edit_part_drag_count_y_set

Added functions for threshold:
edje_edit_part_drag_threshold_set
edje_edit_part_drag_threshold_get

Fixed description of 'count' parameter of dragable.x/y

Reviewers: cedric, seoz

Reviewed By: cedric

CC: reutskiy.v.v

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

Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-11-01 11:03:34 +09:00
Cedric Bail 4be4076cd4 edje: handle reallocation of pointed data properly for limits. 2013-10-15 18:15:51 +09:00
Cedric BAIL 443012dbcb edje: typo fix. 2013-10-14 14:00:59 +02:00
Cedric BAIL 12072b2217 edje: fix CID 1062226 - Dereference after null check.
It seems to be possible in some badly crafted edj to trigger that path.
2013-10-14 13:45:26 +02:00
Carsten Haitzler 6732ab15af 1 char editing messup - revert it. 2013-10-13 11:38:59 +09:00
Carsten Haitzler f3e3739e7c edje_cc - CEEEEEEEEEEEEDRIIIIIIIIC! realloc+lookup bug workaround!
need i say more. this is a q1uick workaround a bug that is a result of
realloc moving memory around and thus lookups becoming broken.
2013-10-13 02:07:28 +09:00
Cedric Bail 797ad7528f edje: add border linked to Image sets.
It is quite common that in an image sets each image has different border size.
This patch permit to define the border value on a per image basis in the set.
2013-09-06 16:47:36 +09:00
Gustavo Lima Chaves d84e77d93f Enough with this bad align Edje property documentation. 2013-08-12 13:29:43 -03:00
Stefan Schmidt 84a7cefcc2 edje: Do not access after freeing
Better free it after we access it.

CID 1039917
2013-08-09 11:43:25 +01:00
Cedric Bail 93b0fbfe65 edje: add warning when not finding the exact match.
This will close T223.
2013-08-07 16:01:57 +09:00
Daniel Juyung Seo a3165bff15 edje: added BLOCK_HANDLE description and vim syntax. 2013-08-02 13:27:54 +09:00
Cedric Bail cf9b0180d6 edje: add threshold to draggable part. 2013-07-19 15:40:11 +09:00
ChunEon Park 8cec34d1d4 edje/map - changed data structure from list to array to improve color data memory access 2013-07-18 20:09:54 +09:00
Carsten Haitzler a484403db8 fix a bunch of reallocs self-assigning the same var 2013-07-16 20:45:24 +09:00
Carsten Haitzler b84e81fbea fix clang sizeof complaint 2013-07-16 20:45:24 +09:00
Carsten Haitzler a091a1d730 fix clang sizeof complaint 2013-07-16 20:45:24 +09:00
Ryuan Choi 8d41667412 edje_cc: Fixed possible leak when description.map.color defines same idx more than one time
Spotted by coverity. CID 1039298.
2013-07-06 01:30:54 +09:00
Sebastian Dransfeld 336f6ec328 efl: formatting 2013-06-20 13:28:18 +02:00
ChunEon Park 8476e20ffe edje - support map color set 2013-06-06 18:18:36 +09:00
Eduardo Lima (Etrunko) a346c834c1 edje_cc: Add -dd/--data_dir option
Used for specifying the path of files specified in 'data.file' section

Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
2013-06-04 17:39:30 -03:00
Ederson Desouza b52a380a5f Support for -1.0 @ text ellipsis fields -- for not ellipsizing it at all. 2013-06-03 12:02:16 -03:00
ChunEon Park f55092ab93 edje - support edc proxy.source_clip 2013-05-31 20:08:59 +09:00
ChunEon Park 80e1353807 edje - support edc source_visible 2013-05-31 17:35:30 +09:00
ChunEon Park 87ce63941d edje/edje_cc - fixed typo 2013-05-31 16:04:33 +09:00
Eduardo Lima (Etrunko) c03c6bd12c edje_cc: create data hash if it doesn't exist
The check was being done only in 'data.item' handler

Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
2013-05-28 16:17:09 -03:00
thiepha (Thiep Ha) c38a2a6bb8 [Edje_Entry] Add selection handlers to entry
Add selection handlers to entry.

https://phab.enlightenment.org/D117

Conflicts:

	ChangeLog
	NEWS
2013-05-13 19:16:58 +09:00
Raphael Kubo da Costa e307f2fa8e edje: Remove duplicate check introduced in 9157c51. 2013-04-02 15:10:14 +03:00
Cedric BAIL 9157c51f32 edje: prevent segv when not defining item before setting there property. 2013-04-01 15:27:38 +09:00
Iván Briano 0a3087c0d5 Add mouse_events option on the group level
No runtime changes. This makes it possible to set mouse_events on a
group, and it will use this value as the default for mouse_events on
every part of that group. It defaults to 1 if not set, to keep things
working as they do now.

That is, instead of setting mouse_events: 0; on every single part you
don't want to receive events, it's now possible to set it for the group
and only use mouse_events: 1; explicitly on those that should handle
events.
2013-03-26 23:16:24 -03:00
Cedric BAIL 8222bf4650 edje: add spread.{w,h}.
This is particularly useful when using table and replicating the
same group all over the place. At least for many games I have in mind
this will save a lot of lines !
2013-03-22 18:17:12 +09:00
Daniel Juyung Seo 9b252e40d4 edje edje_cc_handlers.c: Better error message. Now it's kind.
SVN revision: 82154
2013-01-04 07:35:28 +00:00
Daniel Juyung Seo 1be443bc75 efl edje_cc_handlers.c: Ported r82093 from edje to efl/edje.
SVN revision: 82150
2013-01-04 07:27:46 +00:00
Gustavo Sverzut Barbieri 9ea2ce1041 efl: merge edje.
this is still in progress, mostly the multisense stuff is pending.

it seems that when we merge ecore_audio in edje the libremix and
similar are gone, at least from Edje, and will be in ecore_audio
itself (or pulseaudio).

Changes:
 * __UNUSED__ to EINA_UNUSED
 * binaries (epp, embryo_cc, edje_cc) now consider EFL_RUN_IN_TREE and
   will assume the binaries are still not installed, running from
   build tree location (needs more testing, maybe doesn't work with
   srcdir != builddir, still doesn't solve cross compile builds)



SVN revision: 82139
2013-01-04 02:08:14 +00:00