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 enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs