Enlightenment CVS committal
Author : rephorm
Project : e17
Module : libs/edje
Dir : e17/libs/edje/src/bin
Modified Files:
edje_cc_handlers.c
Log Message:
add linear gradient specific fill options
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).
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/bin/edje_cc_handlers.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -3 -r1.67 -r1.68
--- edje_cc_handlers.c 6 Aug 2006 01:45:45 -0000 1.67
+++ edje_cc_handlers.c 21 Aug 2006 03:00:01 -0000 1.68
@@ -97,6 +97,11 @@
static void st_collections_group_parts_part_description_text_elipsis(void);
static void st_collections_group_parts_part_description_gradient_type(void);
static void
st_collections_group_parts_part_description_gradient_spectrum(void);
+static void ob_collections_group_parts_part_description_gradient_rel(void);
+static void
st_collections_group_parts_part_description_gradient_rel1_relative(void);
+static void
st_collections_group_parts_part_description_gradient_rel1_offset(void);
+static void
st_collections_group_parts_part_description_gradient_rel2_relative(void);
+static void
st_collections_group_parts_part_description_gradient_rel2_offset(void);
static void ob_collections_group_programs_program(void);
static void st_collections_group_programs_program_name(void);
@@ -236,6 +241,10 @@
{"collections.group.parts.part.description.text.fonts.font",
st_fonts_font}, /* dup */
{"collections.group.parts.part.description.text.elipsis",
st_collections_group_parts_part_description_text_elipsis},
{"collections.group.parts.part.description.gradient.type",
st_collections_group_parts_part_description_gradient_type},
+ {"collections.group.parts.part.description.gradient.rel1.relative",
st_collections_group_parts_part_description_gradient_rel1_relative},
+ {"collections.group.parts.part.description.gradient.rel1.offset",
st_collections_group_parts_part_description_gradient_rel1_offset},
+ {"collections.group.parts.part.description.gradient.rel2.relative",
st_collections_group_parts_part_description_gradient_rel2_relative},
+ {"collections.group.parts.part.description.gradient.rel2.offset",
st_collections_group_parts_part_description_gradient_rel2_offset},
{"collections.group.parts.part.description.gradient.spectrum",
st_collections_group_parts_part_description_gradient_spectrum},
{"collections.group.parts.part.description.images.image",
st_images_image}, /* dup */
{"collections.group.parts.part.description.font", st_fonts_font}, /* dup
*/
@@ -386,6 +395,8 @@
{"collections.group.parts.part.description.styles", NULL}, /* dup */
{"collections.group.parts.part.description.styles.style",
ob_styles_style}, /* dup */
{"collections.group.parts.part.description.gradient", NULL},
+ {"collections.group.parts.part.description.gradient.rel1",
ob_collections_group_parts_part_description_gradient_rel},
+ {"collections.group.parts.part.description.gradient.rel2",
ob_collections_group_parts_part_description_gradient_rel},
{"collections.group.parts.part.description.color_classes", NULL}, /* dup
*/
{"collections.group.parts.part.description.color_classes.color_class",
ob_color_class}, /* dup */
{"collections.group.parts.part.description.program",
ob_collections_group_programs_program}, /* dup */
@@ -2349,6 +2360,148 @@
}
}
+static void
+ob_collections_group_parts_part_description_gradient_rel(void)
+{
+ Edje_Part_Collection *pc;
+ Edje_Part *ep;
+ Edje_Part_Description *ed;
+
+ pc = evas_list_data(evas_list_last(edje_collections));
+ ep = evas_list_data(evas_list_last(pc->parts));
+
+ if (ep->type != EDJE_PART_TYPE_GRADIENT)
+ {
+ fprintf(stderr, "%s: Error. parse error %s:%i. "
+ "gradient attributes in non-GRADIENT part.\n",
+ progname, file_in, line - 1);
+ exit(-1);
+ }
+
+ ed = ep->default_desc;
+ if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc));
+
+ {
+ ed->gradient.use_rel = 1;
+ }
+}
+
+
+static void
+st_collections_group_parts_part_description_gradient_rel1_relative(void)
+{
+ Edje_Part_Collection *pc;
+ Edje_Part *ep;
+ Edje_Part_Description *ed;
+
+ check_arg_count(2);
+
+ pc = evas_list_data(evas_list_last(edje_collections));
+ ep = evas_list_data(evas_list_last(pc->parts));
+
+ if (ep->type != EDJE_PART_TYPE_GRADIENT)
+ {
+ fprintf(stderr, "%s: Error. parse error %s:%i. "
+ "gradient attributes in non-GRADIENT part.\n",
+ progname, file_in, line - 1);
+ exit(-1);
+ }
+
+ ed = ep->default_desc;
+ if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc));
+
+ {
+ ed->gradient.rel1.relative_x = parse_float(0);
+ ed->gradient.rel1.relative_y = parse_float(1);
+ }
+}
+
+static void
+st_collections_group_parts_part_description_gradient_rel1_offset(void)
+{
+ Edje_Part_Collection *pc;
+ Edje_Part *ep;
+ Edje_Part_Description *ed;
+
+ check_arg_count(2);
+
+ pc = evas_list_data(evas_list_last(edje_collections));
+ ep = evas_list_data(evas_list_last(pc->parts));
+
+ if (ep->type != EDJE_PART_TYPE_GRADIENT)
+ {
+ fprintf(stderr, "%s: Error. parse error %s:%i. "
+ "gradient attributes in non-GRADIENT part.\n",
+ progname, file_in, line - 1);
+ exit(-1);
+ }
+
+ ed = ep->default_desc;
+ if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc));
+
+ {
+ ed->gradient.rel1.offset_x = parse_int(0);
+ ed->gradient.rel1.offset_y = parse_int(1);
+ }
+}
+
+static void
+st_collections_group_parts_part_description_gradient_rel2_relative(void)
+{
+ Edje_Part_Collection *pc;
+ Edje_Part *ep;
+ Edje_Part_Description *ed;
+
+ check_arg_count(2);
+
+ pc = evas_list_data(evas_list_last(edje_collections));
+ ep = evas_list_data(evas_list_last(pc->parts));
+
+ if (ep->type != EDJE_PART_TYPE_GRADIENT)
+ {
+ fprintf(stderr, "%s: Error. parse error %s:%i. "
+ "gradient attributes in non-GRADIENT part.\n",
+ progname, file_in, line - 1);
+ exit(-1);
+ }
+
+ ed = ep->default_desc;
+ if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc));
+
+ {
+ ed->gradient.rel2.relative_x = parse_float(0);
+ ed->gradient.rel2.relative_y = parse_float(1);
+ }
+}
+
+static void
+st_collections_group_parts_part_description_gradient_rel2_offset(void)
+{
+ Edje_Part_Collection *pc;
+ Edje_Part *ep;
+ Edje_Part_Description *ed;
+
+ check_arg_count(2);
+
+ pc = evas_list_data(evas_list_last(edje_collections));
+ ep = evas_list_data(evas_list_last(pc->parts));
+
+ if (ep->type != EDJE_PART_TYPE_GRADIENT)
+ {
+ fprintf(stderr, "%s: Error. parse error %s:%i. "
+ "gradient attributes in non-GRADIENT part.\n",
+ progname, file_in, line - 1);
+ exit(-1);
+ }
+
+ ed = ep->default_desc;
+ if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc));
+
+ {
+ ed->gradient.rel2.offset_x = parse_int(0);
+ ed->gradient.rel2.offset_y = parse_int(1);
+ }
+}
static void
ob_collections_group_programs_program(void)
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs