Edje tries to copy original style to font provided by text_class if
this have no style.
However code was supposing that text_class font always had more than
one occurrence, these separated with ',' and did not check if this is
not the case, so "e = strchr(',', tok);" was returning NULL and all
the math were using negative values.
The fix now does the proper checking, avoid one useless alloca() and
the respective copy, also doing the copies with memcpy() since sizes
are already known.
Refactory was done to make code simpler and also avoid having it
copied 3 times.
SVN revision: 33869
Check if values actually differ before interpolating them, this will
avoid useless math for (x1 - (x1 - x2) * p) when x1 and x2 are equal.
Also don't interpolate values that doesn't make sense to the part,
like color2 and color3 for non-text.
TODO: Refactor edje part description into more object-oriented
fashion, with a struct with just the common parts followed by an union
of structs for special objects, these would contain specific bits for
each part type. This would save us a bit of memory and then we can
more easily refactor code isolating common and specific parts, making
code smaller and easier to handle.
SVN revision: 33861
My last patch fixed the compile problem, but really, we should use the
same struct for things that look/work the same, like rectangle,
position, etc.
This new patch brings that change back and add some named structs
(also typedef'ed so it conforms to E naming schema).
This commit just changes the header and adds an example of
benefit. Later I'll provide a more intrusive patch that reorganize
structures to make even better use of this.
SVN revision: 33860
The "simple" block:
p3 = p1;
was doing an implicity memcpy() responsible for about 1% of processing
time when no animation happens.
Patch by Cedric BAIL.
SVN revision: 33858
Due my last change, the code was broken by edjes without a group
min/max, this happens because edje_object_size_max_get() returns
100000 for these objects, and this was being used as object maximum
size.
Current fix is a hack: just check for this value, now known as
EDJE_INF_MAX_*, but the real solution would be to return 0 (or -1) and
check for it in other parts of the code, but it's harder to get right.
SVN revision: 32123
If you have a SWALLOW part taking the whole window and then swallow an
object with max set using edje_extern_object_max_size_set() it will
not take effect due the comparison of ep->swallow_params.max.w < -1
(desc->max.w is -1 in this case).
SVN revision: 32029
This avoid crashes with buggy edje files: if you forget to specify
type: RECT and don't provide any "images.image" in edje, it crashes.
SVN revision: 31689
These can be used to automatically swallow in another group from the same file.
Parts within child groups can be referred to by a ':' separated 'full path' of
part names. Any API functions that take a part name will now accept a full path
also.
Signals emitted by child objects will be repeated up to the parents with the
source changed to be the path relative to the receiving object. E.g in the
example below, a mouse moving over the lower light green rectangle would result
in the parent object recieving a "mouse,move" signal with source "bot:inner".
**** NEW RESTRICTION **** part names should no longer include a ':' character.
This is not yet enforced by edje_cc, but will cause the part to be inaccessible
from the API.
Example EDC:
collections {
group {
name: "parent";
parts {
part {
name: "top";
type: GROUP;
source: "child";
description {
state: "default" 0.0;
rel2.relative: 1 0.5;
}
}
part {
name: "bot";
type: GROUP;
source: "child";
description {
state: "default" 0.0;
rel1.relative: 0 0.5;
}
}
}
}
group {
name: "child";
parts {
part {
name: "base";
type: RECT;
description {
state: "default" 0.0;
color: 160 208 8 255;
}
}
part {
name: "inner";
type: RECT;
description {
state: "default" 0.0;
rel1.offset: 10 10;
rel2.offset: -11 -11;
color: 210 228 76 255;
}
}
}
}
}
SVN revision: 30087
used (inside a part description) as follows:
Horizontal from left to right filling entire part:
gradient {
spectrum: "black_to_white";
rel1 {
relative: 0 0.5;
offset: 0 0;
}
rel2 {
relative: 1 0.5;
offset: -1 0;
}
}
Diagonal from top left to bottom right:
gradient {
spectrum: "black_to_white";
rel1 {
relative: 0 0;
offset: 0 0;
}
rel2 {
relative: 1 1;
offset: -1 -1;
}
}
If either rel1 or rel2 is present in the gradient block of a linear gradient, these will override any angle/origin/size specified in the fill block ('spread' is still honored).
SVN revision: 24975
* Classes are defined at the tag level
* Tags whithout classes inherit the parent class
* text class defined by putting text_class=<class name> in tag style
SVN revision: 21518
1.73 (tsauerbe 29-Oct-04): #ifndef ABS
1.74 (tsauerbe 29-Oct-04): #define ABS(x) (x < 0 ? -x : x)
no ()'x around x - thus the part finder couldnt calculate distance of valued
parts properly! :) now it finds the right numbered part :)
SVN revision: 16758
text parts "shadow" a controlling/parent text part. this allows multiple
window titles for example even tho the app only sets 1 title part. this
allows for interesting text effects with mutliepl text parts animating
differently... or you cna use invivlbe text parts ad "proxies" for
calculating sizes of stuff... :)
SVN revision: 11851
to set/get dragable size relative to its confie and is value relative to its
cofine, query what directiosn a dragable can be dragged. you shoudl be able
to do scrollbars - except scroll arrows internally in edje making the
scrollbar move.
SVN revision: 7324
.edc file and can be accessed. the min_size_get has become a min_size_calc
since it does actually calculate it.
also swallowed edjes will be queried for their own min/max size and that will
be used to further limit the part that swallows. also you can attach
properties to any old evas object so it will have min/max size properties
(maybe one day this can go into evas itself?). also swallowed objects if
deleted before the parent edje will "unswallow" themselves properly :)
SVN revision: 7195
fixem's have been fixed. text parts work fully now, ALONG with all their
respective effect modes, fits, alignments and "chopping". a few more api
calls have been added and cleaned up. you'll need to update eet too for this
to work.
SVN revision: 7113