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

Reply via email to