From: <enl...@li...> - 2003-06-14 03:06:36
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/lib Modified Files: edje_main.c edje_private.h Log Message: we parse.... MORE! :) order is now irrelevant of how you delcare images or parts and what they are relative to/use. the lookups are put off until just before write-out. order of parts still is the stacking order though. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- edje_main.c 9 Jun 2003 11:31:33 -0000 1.3 +++ edje_main.c 14 Jun 2003 03:06:35 -0000 1.4 @@ -457,7 +457,7 @@ Edje_Part_Image_Id *imid; imid = evas_list_nth(ep->param2.description->image.tween_list, image_num - 1); - if (imid) image_id = imid->image_id; + if (imid) image_id = imid->id; } snprintf(buf, sizeof(buf), "/images/%i", image_id); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- edje_private.h 9 Jun 2003 13:51:40 -0000 1.4 +++ edje_private.h 14 Jun 2003 03:06:36 -0000 1.5 @@ -194,7 +194,7 @@ struct _Edje_Part_Image_Id { - int image_id; + int id; }; struct _Edje_Part_Description |
From: <enl...@li...> - 2003-06-14 03:07:06
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/bin Modified Files: edje_cc.c edje_cc.h edje_cc_handlers.c edje_cc_out.c Log Message: we parse.... MORE! :) order is now irrelevant of how you delcare images or parts and what they are relative to/use. the lookups are put off until just before write-out. order of parts still is the stacking order though. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- edje_cc.c 12 Jun 2003 22:34:51 -0000 1.5 +++ edje_cc.c 14 Jun 2003 03:06:35 -0000 1.6 @@ -60,6 +60,7 @@ data_setup(); compile(); + data_process_lookups(); data_write(); return 0; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- edje_cc.h 12 Jun 2003 22:34:51 -0000 1.3 +++ edje_cc.h 14 Jun 2003 03:06:35 -0000 1.4 @@ -36,7 +36,11 @@ /* global fn calls */ void data_setup(void); void data_write(void); - +void data_queue_part_lookup(Edje_Part_Collection *pc, char *name, int *dest); +void data_queue_image_lookup(char *name, int *dest); +void data_process_lookups(void); + + void compile(void); char *parse_str(int n); int parse_enum(int n, ...); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_handlers.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- edje_cc_handlers.c 12 Jun 2003 23:02:45 -0000 1.5 +++ edje_cc_handlers.c 14 Jun 2003 03:06:35 -0000 1.6 @@ -20,13 +20,88 @@ static void ob_collections_group_parts_part_description(void); static void st_collections_group_parts_part_description_state(void); - +static void st_collections_group_parts_part_description_visible(void); +static void st_collections_group_parts_part_description_dragable_x(void); +static void st_collections_group_parts_part_description_dragable_y(void); +static void st_collections_group_parts_part_description_dragable_confine(void); +static void st_collections_group_parts_part_description_align(void); +static void st_collections_group_parts_part_description_min(void); +static void st_collections_group_parts_part_description_max(void); +static void st_collections_group_parts_part_description_step(void); +static void st_collections_group_parts_part_description_aspect(void); +static void st_collections_group_parts_part_description_rel1_relative(void); +static void st_collections_group_parts_part_description_rel1_offset(void); +static void st_collections_group_parts_part_description_rel1_to(void); +static void st_collections_group_parts_part_description_rel2_relative(void); +static void st_collections_group_parts_part_description_rel2_offset(void); +static void st_collections_group_parts_part_description_rel2_to(void); +static void st_collections_group_parts_part_description_image_normal(void); +static void st_collections_group_parts_part_description_image_tween(void); +static void st_collections_group_parts_part_description_border(void); +static void st_collections_group_parts_part_description_fill_origin_relative(void); +static void st_collections_group_parts_part_description_fill_origin_offset(void); +static void st_collections_group_parts_part_description_fill_size_relative(void); +static void st_collections_group_parts_part_description_fill_size_offset(void); +static void st_collections_group_parts_part_description_color(void); +static void st_collections_group_parts_part_description_color2(void); +static void st_collections_group_parts_part_description_color3(void); +static void st_collections_group_parts_part_description_text_text(void); +static void st_collections_group_parts_part_description_text_font(void); +static void st_collections_group_parts_part_description_text_size(void); +static void st_collections_group_parts_part_description_text_effect(void); +static void st_collections_group_parts_part_description_text_fit(void); +static void st_collections_group_parts_part_description_text_min(void); +static void st_collections_group_parts_part_description_text_align(void); + static void ob_collections_group_programs(void); static void ob_collections_group_programs_program(void); /*****/ +New_Statement_Handler statement_handlers[] = +{ + {"images.image", st_images_image}, + {"collections.group.name", st_collections_group_name}, + {"collections.group.parts.part.name", st_collections_group_parts_part_name}, + {"collections.group.parts.part.type", st_collections_group_parts_part_type}, + {"collections.group.parts.part.mouse_events", st_collections_group_parts_part_mouse_events}, + {"collections.group.parts.part.color_class", st_collections_group_parts_part_color_class}, + {"collections.group.parts.part.description.state", st_collections_group_parts_part_description_state}, + {"collections.group.parts.part.description.visible", st_collections_group_parts_part_description_visible}, + {"collections.group.parts.part.description.dragable.x", st_collections_group_parts_part_description_dragable_x}, + {"collections.group.parts.part.description.dragable.y", st_collections_group_parts_part_description_dragable_y}, + {"collections.group.parts.part.description.dragable.confine", st_collections_group_parts_part_description_dragable_confine}, + {"collections.group.parts.part.description.align", st_collections_group_parts_part_description_align}, + {"collections.group.parts.part.description.min", st_collections_group_parts_part_description_min}, + {"collections.group.parts.part.description.max", st_collections_group_parts_part_description_max}, + {"collections.group.parts.part.description.step", st_collections_group_parts_part_description_step}, + {"collections.group.parts.part.description.aspect", st_collections_group_parts_part_description_aspect}, + {"collections.group.parts.part.description.rel1.relative", st_collections_group_parts_part_description_rel1_relative}, + {"collections.group.parts.part.description.rel1.offset", st_collections_group_parts_part_description_rel1_offset}, + {"collections.group.parts.part.description.rel1.to", st_collections_group_parts_part_description_rel1_to}, + {"collections.group.parts.part.description.rel2.relative", st_collections_group_parts_part_description_rel2_relative}, + {"collections.group.parts.part.description.rel2.offset", st_collections_group_parts_part_description_rel2_offset}, + {"collections.group.parts.part.description.rel2.to", st_collections_group_parts_part_description_rel2_to}, + {"collections.group.parts.part.description.image.normal", st_collections_group_parts_part_description_image_normal}, + {"collections.group.parts.part.description.image.tween", st_collections_group_parts_part_description_image_tween}, + {"collections.group.parts.part.description.border", st_collections_group_parts_part_description_border}, + {"collections.group.parts.part.description.fill.origin.relative", st_collections_group_parts_part_description_fill_origin_relative}, + {"collections.group.parts.part.description.fill.origin.offset", st_collections_group_parts_part_description_fill_origin_offset}, + {"collections.group.parts.part.description.fill.size.relative", st_collections_group_parts_part_description_fill_size_relative}, + {"collections.group.parts.part.description.fill.size.offset", st_collections_group_parts_part_description_fill_size_offset}, + {"collections.group.parts.part.description.color", st_collections_group_parts_part_description_color}, + {"collections.group.parts.part.description.color2", st_collections_group_parts_part_description_color2}, + {"collections.group.parts.part.description.color3", st_collections_group_parts_part_description_color3}, + {"collections.group.parts.part.description.text.text", st_collections_group_parts_part_description_text_text}, + {"collections.group.parts.part.description.text.font", st_collections_group_parts_part_description_text_font}, + {"collections.group.parts.part.description.text.size", st_collections_group_parts_part_description_text_size}, + {"collections.group.parts.part.description.text.effect", st_collections_group_parts_part_description_text_effect}, + {"collections.group.parts.part.description.text.fit", st_collections_group_parts_part_description_text_fit}, + {"collections.group.parts.part.description.text.min", st_collections_group_parts_part_description_text_min}, + {"collections.group.parts.part.description.text.align", st_collections_group_parts_part_description_text_align} +}; + New_Object_Handler object_handlers[] = { {"images", ob_images}, @@ -47,25 +122,45 @@ {"collections.group.parts.part.description.dragable.x", NULL}, {"collections.group.parts.part.description.dragable.y", NULL}, {"collections.group.parts.part.description.dragable.confine", NULL}, + {"collections.group.parts.part.description.align", NULL}, + {"collections.group.parts.part.description.min", NULL}, + {"collections.group.parts.part.description.max", NULL}, + {"collections.group.parts.part.description.step", NULL}, + {"collections.group.parts.part.description.aspect", NULL}, + {"collections.group.parts.part.description.rel1", NULL}, + {"collections.group.parts.part.description.rel1.relative", NULL}, + {"collections.group.parts.part.description.rel1.offset", NULL}, + {"collections.group.parts.part.description.rel1.to", NULL}, + {"collections.group.parts.part.description.rel2", NULL}, + {"collections.group.parts.part.description.rel2.relative", NULL}, + {"collections.group.parts.part.description.rel2.offset", NULL}, + {"collections.group.parts.part.description.rel2.to", NULL}, + {"collections.group.parts.part.description.image", NULL}, + {"collections.group.parts.part.description.image.normal", NULL}, + {"collections.group.parts.part.description.image.tween", NULL}, + {"collections.group.parts.part.description.border", NULL}, + {"collections.group.parts.part.description.fill", NULL}, + {"collections.group.parts.part.description.fill.origin", NULL}, + {"collections.group.parts.part.description.fill.origin.relative", NULL}, + {"collections.group.parts.part.description.fill.origin.offset", NULL}, + {"collections.group.parts.part.description.fill.size", NULL}, + {"collections.group.parts.part.description.fill.size.relative", NULL}, + {"collections.group.parts.part.description.fill.size.offset", NULL}, + {"collections.group.parts.part.description.color", NULL}, + {"collections.group.parts.part.description.color2", NULL}, + {"collections.group.parts.part.description.color3", NULL}, + {"collections.group.parts.part.description.text", NULL}, + {"collections.group.parts.part.description.text.text", NULL}, + {"collections.group.parts.part.description.text.font", NULL}, + {"collections.group.parts.part.description.text.size", NULL}, + {"collections.group.parts.part.description.text.effect", NULL}, + {"collections.group.parts.part.description.text.fit", NULL}, + {"collections.group.parts.part.description.text.min", NULL}, + {"collections.group.parts.part.description.text.align", NULL}, {"collections.group.programs", ob_collections_group_programs}, {"collections.group.programs.program", ob_collections_group_programs_program} }; -New_Statement_Handler statement_handlers[] = -{ - {"images.image", st_images_image}, - {"collections.group.name", st_collections_group_name}, - {"collections.group.parts.part.name", st_collections_group_parts_part_name}, - {"collections.group.parts.part.type", st_collections_group_parts_part_type}, - {"collections.group.parts.part.mouse_events", st_collections_group_parts_part_mouse_events}, - {"collections.group.parts.part.color_class", st_collections_group_parts_part_color_class}, - {"collections.group.parts.part.description.state", st_collections_group_parts_part_description_state}, - {"collections.group.parts.part.description.visible", NULL}, - {"collections.group.parts.part.description.dragable.x", NULL}, - {"collections.group.parts.part.description.dragable.y", NULL}, - {"collections.group.parts.part.description.dragable.confine", NULL} -}; - /*****/ int @@ -203,6 +298,7 @@ pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); ep = evas_list_data(evas_list_last(pc->parts)); ep->type = parse_enum(0, + "NONE", EDJE_PART_TYPE_NONE, "RECT", EDJE_PART_TYPE_RECTANGLE, "TEXT", EDJE_PART_TYPE_TEXT, "IMAGE", EDJE_PART_TYPE_IMAGE, @@ -261,6 +357,526 @@ ed->state.name = parse_str(0); ed->state.value = parse_float_range(1, 0.0, 1.0); } + +static void +st_collections_group_parts_part_description_visible(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->visible = parse_int_range(0, 0, 1); +} + +static void +st_collections_group_parts_part_description_dragable_x(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->dragable.x = parse_int_range(0, 0, 1); + ed->dragable.step_x = parse_int_range(1, 1, 0x7fffffff); + ed->dragable.count_x = parse_int_range(2, 1, 0x7fffffff); +} + +static void +st_collections_group_parts_part_description_dragable_y(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->dragable.y = parse_int_range(0, 0, 1); + ed->dragable.step_y = parse_int_range(1, 1, 0x7fffffff); + ed->dragable.count_y = parse_int_range(2, 1, 0x7fffffff); +} + +static void +st_collections_group_parts_part_description_dragable_confine(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + { + char *name; + + name = parse_str(0); + data_queue_part_lookup(pc, name, &(ed->dragable.confine_id)); + free(name); + } +} + +static void +st_collections_group_parts_part_description_align(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->align.x = parse_float_range(0, 0.0, 1.0); + ed->align.y = parse_float_range(1, 0.0, 1.0); +} + +static void +st_collections_group_parts_part_description_min(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->min.w = parse_float_range(0, 0, 0x7fffffff); + ed->min.h = parse_float_range(1, 0, 0x7fffffff); +} + +static void +st_collections_group_parts_part_description_max(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->max.w = parse_float_range(0, 0, 0x7fffffff); + ed->max.h = parse_float_range(1, 0, 0x7fffffff); +} + +static void +st_collections_group_parts_part_description_step(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->step.x = parse_float_range(0, 0, 0x7fffffff); + ed->step.y = parse_float_range(1, 0, 0x7fffffff); +} + +static void +st_collections_group_parts_part_description_aspect(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->aspect.min = parse_float_range(0, 0.0, 999999999.0); + ed->aspect.max = parse_float_range(1, 0.0, 999999999.0); +} + +static void +st_collections_group_parts_part_description_rel1_relative(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->rel1.relative_x = parse_float_range(0, 0.0, 1.0); + ed->rel1.relative_y = parse_float_range(1, 0.0, 1.0); +} + +static void +st_collections_group_parts_part_description_rel1_offset(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->rel1.offset_x = parse_int(0); + ed->rel1.offset_y = parse_int(1); +} + +static void +st_collections_group_parts_part_description_rel1_to(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + { + char *name; + + name = parse_str(0); + data_queue_part_lookup(pc, name, &(ed->rel1.id)); + free(name); + } +} + +static void +st_collections_group_parts_part_description_rel2_relative(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->rel2.relative_x = parse_float_range(0, 0.0, 1.0); + ed->rel2.relative_y = parse_float_range(1, 0.0, 1.0); +} + +static void +st_collections_group_parts_part_description_rel2_offset(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->rel2.offset_x = parse_int(0); + ed->rel2.offset_y = parse_int(1); +} + +static void +st_collections_group_parts_part_description_rel2_to(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + { + char *name; + + name = parse_str(0); + data_queue_part_lookup(pc, name, &(ed->rel2.id)); + free(name); + } +} + +static void +st_collections_group_parts_part_description_image_normal(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + { + char *name; + + name = parse_str(0); + data_queue_image_lookup(name, &(ed->image.id)); + free(name); + } +} + +static void +st_collections_group_parts_part_description_image_tween(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + { + char *name; + Edje_Part_Image_Id *iid; + + iid = mem_alloc(SZ(Edje_Part_Image_Id)); + ed->image.tween_list = evas_list_append(ed->image.tween_list, iid); + name = parse_str(0); + data_queue_image_lookup(name, &(iid->id)); + free(name); + } +} + +static void +st_collections_group_parts_part_description_border(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->border.l = parse_int_range(0, 0, 0x7fffffff); + ed->border.r = parse_int_range(1, 0, 0x7fffffff); + ed->border.t = parse_int_range(2, 0, 0x7fffffff); + ed->border.b = parse_int_range(3, 0, 0x7fffffff); +} + +static void +st_collections_group_parts_part_description_fill_origin_relative(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->fill.pos_rel_x = parse_float_range(0, 0.0, 999999999.0); + ed->fill.pos_rel_y = parse_float_range(1, 0.0, 999999999.0); +} + +static void +st_collections_group_parts_part_description_fill_origin_offset(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->fill.pos_abs_x = parse_int(0); + ed->fill.pos_abs_y = parse_int(1); +} + +static void +st_collections_group_parts_part_description_fill_size_relative(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->fill.rel_x = parse_float_range(0, 0.0, 999999999.0); + ed->fill.rel_y = parse_float_range(1, 0.0, 999999999.0); +} + +static void +st_collections_group_parts_part_description_fill_size_offset(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->fill.abs_x = parse_int(0); + ed->fill.abs_y = parse_int(1); +} + +static void +st_collections_group_parts_part_description_color(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->color.r = parse_int_range(0, 0, 255); + ed->color.g = parse_int_range(1, 0, 255); + ed->color.b = parse_int_range(2, 0, 255); + ed->color.a = parse_int_range(3, 0, 255); +} + +static void +st_collections_group_parts_part_description_color2(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->color2.r = parse_int_range(0, 0, 255); + ed->color2.g = parse_int_range(1, 0, 255); + ed->color2.b = parse_int_range(2, 0, 255); + ed->color2.a = parse_int_range(3, 0, 255); +} + +static void +st_collections_group_parts_part_description_color3(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->color3.r = parse_int_range(0, 0, 255); + ed->color3.g = parse_int_range(1, 0, 255); + ed->color3.b = parse_int_range(2, 0, 255); + ed->color3.a = parse_int_range(3, 0, 255); +} + +static void +st_collections_group_parts_part_description_text_text(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->text.text = parse_str(0); +} + +static void +st_collections_group_parts_part_description_text_font(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->text.font = parse_str(0); +} + +static void +st_collections_group_parts_part_description_text_size(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->text.size = parse_int_range(0, 0, 255); +} + +static void +st_collections_group_parts_part_description_text_effect(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->text.effect = parse_enum(0, + "NONE", EDJE_TEXT_EFFECT_NONE, + "PLAIN", EDJE_TEXT_EFFECT_PLAIN, + "OUTLINE", EDJE_TEXT_EFFECT_OUTLINE, + "SHADOW", EDJE_TEXT_EFFECT_SHADOW, + "SHADOW_OUTLINE", EDJE_TEXT_EFFECT_OUTLINE_SHADOW, + NULL); +} + +static void +st_collections_group_parts_part_description_text_fit(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->text.fit_x = parse_int_range(0, 0, 1); + ed->text.fit_y = parse_int_range(1, 0, 1); +} + +static void +st_collections_group_parts_part_description_text_min(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->text.min_x = parse_int_range(0, 0, 1); + ed->text.min_y = parse_int_range(1, 0, 1); +} + +static void +st_collections_group_parts_part_description_text_align(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + Edje_Part_Description *ed; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ed = ep->default_desc; + if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); + ed->text.align.x = parse_float_range(0, 0.0, 1.0); + ed->text.align.y = parse_float_range(1, 0.0, 1.0); +} + static void ob_collections_group_programs(void) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_out.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- edje_cc_out.c 12 Jun 2003 22:34:51 -0000 1.2 +++ edje_cc_out.c 14 Jun 2003 03:06:35 -0000 1.3 @@ -1,10 +1,29 @@ #include "edje_cc.h" +typedef struct _Part_Lookup Part_Lookup; +typedef struct _Image_Lookup Image_Lookup; + +struct _Part_Lookup +{ + Edje_Part_Collection *pc; + char *name; + int *dest; +}; + +struct _Image_Lookup +{ + char *name; + int *dest; +}; + Edje_File *edje_file = NULL; -static Eet_Data_Descriptor *edd_edje_file; -static Eet_Data_Descriptor *edd_edje_image_directory; -static Eet_Data_Descriptor *edd_edje_image_directory_entry; +static Eet_Data_Descriptor *edd_edje_file = NULL; +static Eet_Data_Descriptor *edd_edje_image_directory = NULL; +static Eet_Data_Descriptor *edd_edje_image_directory_entry = NULL; + +static Evas_List *part_lookups = NULL; +static Evas_List *image_lookups = NULL; void data_setup(void) @@ -105,4 +124,89 @@ } } eet_close(ef); +} + +void +data_queue_part_lookup(Edje_Part_Collection *pc, char *name, int *dest) +{ + Part_Lookup *pl; + + pl = mem_alloc(SZ(Part_Lookup)); + part_lookups = evas_list_append(part_lookups, pl); + pl->pc = pc; + pl->name = mem_strdup(name); + pl->dest = dest; +} + +void +data_queue_image_lookup(char *name, int *dest) +{ + Image_Lookup *il; + + il = mem_alloc(SZ(Image_Lookup)); + image_lookups = evas_list_append(image_lookups, il); + il->name = mem_strdup(name); + il->dest = dest; +} + +void +data_process_lookups(void) +{ + Evas_List *l; + + while (part_lookups) + { + Part_Lookup *pl; + + pl = part_lookups->data; + + for (l = pl->pc->parts; l; l = l->next) + { + Edje_Part *ep; + + ep = l->data; + if ((ep->name) && (!strcmp(ep->name, pl->name))) + { + *(pl->dest) = ep->id; + break; + } + } + if (!l) + { + fprintf(stderr, "%s: Error. unable find part name %s\n", + progname, pl->name); + exit(-1); + } + part_lookups = evas_list_remove(part_lookups, pl); + free(pl->name); + free(pl); + } + + while (image_lookups) + { + Image_Lookup *il; + + il = image_lookups->data; + + for (l = edje_file->image_dir->entries; l; l = l->next) + { + Edje_Image_Directory_Entry *de; + + de = l->data; + if ((de->entry) && (!strcmp(de->entry, il->name))) + { + *(il->dest) = de->id; + break; + } + } + if (!l) + { + fprintf(stderr, "%s: Error. unable find image name %s\n", + progname, il->name); + exit(-1); + } + image_lookups = evas_list_remove(image_lookups, il); + free(il->name); + free(il); + } } |
From: <enl...@li...> - 2003-06-16 13:55:16
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/lib Modified Files: edje_private.h Log Message: edje_cc can now fully parse my test edje input "test.edc" file and build a properly formed test.eet output file including inlined images, data structs and all. it can display verbose output infomration if you use the -v flag. the only problem now is that no sample .edc files are shipped. I'll make one or 2 better ones and include them. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- edje_private.h 14 Jun 2003 03:06:36 -0000 1.5 +++ edje_private.h 16 Jun 2003 13:55:13 -0000 1.6 @@ -42,13 +42,12 @@ * "drag" * "drag.stop" */ + typedef struct _Edje_File Edje_File; typedef struct _Edje_Image_Directory Edje_Image_Directory; typedef struct _Edje_Image_Directory_Entry Edje_Image_Directory_Entry; typedef struct _Edje_Program Edje_Program; -typedef struct _Edje_Action_Directory Edje_Action_Directory; -typedef struct _Edje_Action Edje_Action; -typedef struct _Edje_Action_Target Edje_Action_Target; +typedef struct _Edje_Program_Target Edje_Program_Target; typedef struct _Edje_Part_Collection_Directory Edje_Part_Collection_Directory; typedef struct _Edje_Part_Collection_Directory_Entry Edje_Part_Collection_Directory_Entry; typedef struct _Edje_Part_Collection Edje_Part_Collection; @@ -56,24 +55,18 @@ typedef struct _Edje_Part_Image_Id Edje_Part_Image_Id; typedef struct _Edje_Part_Description Edje_Part_Description; -#define EDJE_PART_TYPE_NONE 0 -#define EDJE_PART_TYPE_RECTANGLE 1 -#define EDJE_PART_TYPE_TEXT 2 -#define EDJE_PART_TYPE_IMAGE 3 -#define EDJE_PART_TYPE_LAST 4 - -#define EDJE_ACTION_TYPE_NONE 0 -#define EDJE_ACTION_TYPE_STATE_SET 1 -#define EDJE_ACTION_TYPE_ACTION_STOP 2 -#define EDJE_ACTION_TYPE_DRAG_SET 3 -#define EDJE_ACTION_TYPE_LAST 4 - #define EDJE_IMAGE_SOURCE_TYPE_NONE 0 #define EDJE_IMAGE_SOURCE_TYPE_INLINE_PERFECT 1 #define EDJE_IMAGE_SOURCE_TYPE_INLINE_LOSSY 2 #define EDJE_IMAGE_SOURCE_TYPE_EXTERNAL 3 #define EDJE_IMAGE_SOURCE_TYPE_LAST 4 +#define EDJE_PART_TYPE_NONE 0 +#define EDJE_PART_TYPE_RECTANGLE 1 +#define EDJE_PART_TYPE_TEXT 2 +#define EDJE_PART_TYPE_IMAGE 3 +#define EDJE_PART_TYPE_LAST 4 + #define EDJE_TEXT_EFFECT_NONE 0 #define EDJE_TEXT_EFFECT_PLAIN 1 #define EDJE_TEXT_EFFECT_OUTLINE 2 @@ -81,6 +74,11 @@ #define EDJE_TEXT_EFFECT_OUTLINE_SHADOW 4 #define EDJE_TEXT_EFFECT_LAST 5 +#define EDJE_ACTION_TYPE_NONE 0 +#define EDJE_ACTION_TYPE_STATE_SET 1 +#define EDJE_ACTION_TYPE_ACTION_STOP 2 +#define EDJE_ACTION_TYPE_LAST 4 + #define EDJE_TWEEN_MODE_NONE 0 #define EDJE_TWEEN_MODE_LINEAR 1 #define EDJE_TWEEN_MODE_SINUSOIDAL 2 @@ -122,33 +120,27 @@ struct _Edje_Program /* a conditional program to be run */ { - char *emission; /* if signal emission name matches the glob here... */ - char *part; /* & if part that emitted the signal (name) matches this glob */ - int action_id; /* perform action number here */ -}; - -/*----------*/ - -struct _Edje_Action_Directory /* a list of possible actions to perform */ -{ - Evas_List *actions; /* a list of Edje_Action */ -}; - -struct _Edje_Action /* action to perfrom on parts within a part collection */ -{ + int id; /* id of program */ + char *name; /* name of the action */ + + char *signal; /* if signal emission name matches the glob here... */ + char *source; /* if part that emitted this (name) matches this glob */ + int action; /* type - set state, stop action, set drag pos etc. */ - double tween_time; /* time to graduate between current and new state */ - int tween_mode; /* how to tween - linear, sinusoidal etc. */ - char *state; /* what state of alternates to apply */ - double drag_set_rel_x; /* x drag pos to set targets to, relative to container */ - double drag_set_rel_y; /* y drag pos to set targets to, relative to container */ - int drag_set_abs_offset_x; - int drag_set_abs_offset_y; + char *state; /* what state of alternates to apply, NULL = default */ + double value; /* value of state to apply (if multiple names match) */ + + struct { + int mode; /* how to tween - linear, sinusoidal etc. */ + double time; /* time to graduate between current and new state */ + } tween; + Evas_List *targets; /* list of target parts to apply the state to */ - int end_action_id; /* id of action to run when this one finished */ + + int after; /* an action id to run at the end of this, for looping */ }; -struct _Edje_Action_Target /* the target of an action */ +struct _Edje_Program_Target /* the target of an action */ { int id; /* just the part id no, or action id no */ }; |
From: <enl...@li...> - 2003-06-16 13:55:46
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/bin Modified Files: edje_cc.c edje_cc.h edje_cc_handlers.c edje_cc_out.c edje_cc_parse.c Log Message: edje_cc can now fully parse my test edje input "test.edc" file and build a properly formed test.eet output file including inlined images, data structs and all. it can display verbose output infomration if you use the -v flag. the only problem now is that no sample .edc files are shipped. I'll make one or 2 better ones and include them. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- edje_cc.c 14 Jun 2003 03:06:35 -0000 1.6 +++ edje_cc.c 16 Jun 2003 13:55:12 -0000 1.7 @@ -6,6 +6,7 @@ char *file_in = NULL; char *file_out = NULL; char *progname = NULL; +int verbose = 0; static void main_help(void) @@ -17,6 +18,7 @@ "Where OPTIONS is one or more of:\n" "\n" "-id image/directory Add a directory to look in for relative path images\n" + "-v Verbose output\n" ,progname); } @@ -25,6 +27,8 @@ { int i; + setlocale(LC_NUMERIC, "C"); + progname = argv[0]; for (i = 1; i < argc; i++) { @@ -32,6 +36,10 @@ { main_help(); exit(0); + } + else if (!strcmp(argv[i], "-v")) + { + verbose = 1; } else if ((!strcmp(argv[i], "-id")) && (i < (argc - 1))) { =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- edje_cc.h 14 Jun 2003 03:06:35 -0000 1.4 +++ edje_cc.h 16 Jun 2003 13:55:12 -0000 1.5 @@ -16,6 +16,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <stdarg.h> +#include <locale.h> /* types */ typedef struct _New_Object_Handler New_Object_Handler; @@ -37,6 +38,7 @@ void data_setup(void); void data_write(void); void data_queue_part_lookup(Edje_Part_Collection *pc, char *name, int *dest); +void data_queue_program_lookup(Edje_Part_Collection *pc, char *name, int *dest); void data_queue_image_lookup(char *name, int *dest); void data_process_lookups(void); @@ -61,10 +63,12 @@ extern char *file_in; extern char *file_out; extern char *progname; +extern int verbose; extern int line; extern Evas_List *stack; extern Evas_List *params; extern Edje_File *edje_file; +extern Evas_List *edje_collections; extern New_Object_Handler object_handlers[]; extern New_Statement_Handler statement_handlers[]; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_handlers.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- edje_cc_handlers.c 14 Jun 2003 03:06:35 -0000 1.6 +++ edje_cc_handlers.c 16 Jun 2003 13:55:12 -0000 1.7 @@ -56,6 +56,13 @@ static void ob_collections_group_programs(void); static void ob_collections_group_programs_program(void); +static void st_collections_group_programs_program_name(void); +static void st_collections_group_programs_program_signal(void); +static void st_collections_group_programs_program_source(void); +static void st_collections_group_programs_program_action(void); +static void st_collections_group_programs_program_transition(void); +static void st_collections_group_programs_program_target(void); +static void st_collections_group_programs_program_after(void); /*****/ @@ -99,7 +106,14 @@ {"collections.group.parts.part.description.text.effect", st_collections_group_parts_part_description_text_effect}, {"collections.group.parts.part.description.text.fit", st_collections_group_parts_part_description_text_fit}, {"collections.group.parts.part.description.text.min", st_collections_group_parts_part_description_text_min}, - {"collections.group.parts.part.description.text.align", st_collections_group_parts_part_description_text_align} + {"collections.group.parts.part.description.text.align", st_collections_group_parts_part_description_text_align}, + {"collections.group.programs.program.name", st_collections_group_programs_program_name}, + {"collections.group.programs.program.signal", st_collections_group_programs_program_signal}, + {"collections.group.programs.program.source", st_collections_group_programs_program_source}, + {"collections.group.programs.program.action", st_collections_group_programs_program_action}, + {"collections.group.programs.program.transition", st_collections_group_programs_program_transition}, + {"collections.group.programs.program.target", st_collections_group_programs_program_target}, + {"collections.group.programs.program.after", st_collections_group_programs_program_after} }; New_Object_Handler object_handlers[] = @@ -158,7 +172,14 @@ {"collections.group.parts.part.description.text.min", NULL}, {"collections.group.parts.part.description.text.align", NULL}, {"collections.group.programs", ob_collections_group_programs}, - {"collections.group.programs.program", ob_collections_group_programs_program} + {"collections.group.programs.program", ob_collections_group_programs_program}, + {"collections.group.programs.program.name", NULL}, + {"collections.group.programs.program.signal", NULL}, + {"collections.group.programs.program.source", NULL}, + {"collections.group.programs.program.action", NULL}, + {"collections.group.programs.program.transition", NULL}, + {"collections.group.programs.program.target", NULL}, + {"collections.group.programs.program.after", NULL} }; /*****/ @@ -248,8 +269,8 @@ de->id = evas_list_count(edje_file->collection_dir->entries) - 1; pc = mem_alloc(SZ(Edje_Part_Collection)); - edje_file->collection_loaded = evas_list_append(edje_file->collection_loaded, pc); - pc->id = evas_list_count(edje_file->collection_loaded) - 1; + edje_collections = evas_list_append(edje_collections, pc); + pc->id = evas_list_count(edje_collections) - 1; } static void @@ -273,7 +294,7 @@ Edje_Part *ep; ep = mem_alloc(SZ(Edje_Part)); - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); pc->parts = evas_list_append(pc->parts, ep); ep->id = evas_list_count(pc->parts) - 1; } @@ -284,7 +305,7 @@ Edje_Part_Collection *pc; Edje_Part *ep; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ep->name = parse_str(0); } @@ -295,7 +316,7 @@ Edje_Part_Collection *pc; Edje_Part *ep; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ep->type = parse_enum(0, "NONE", EDJE_PART_TYPE_NONE, @@ -311,7 +332,7 @@ Edje_Part_Collection *pc; Edje_Part *ep; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ep->mouse_events = parse_int_range(0, 0, 1); } @@ -322,7 +343,7 @@ Edje_Part_Collection *pc; Edje_Part *ep; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ep->color_class = parse_str(0); } @@ -334,7 +355,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = mem_alloc(SZ(Edje_Part_Description)); if (!ep->default_desc) @@ -350,7 +371,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -365,7 +386,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -379,7 +400,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -395,7 +416,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -411,7 +432,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -431,7 +452,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -446,7 +467,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -461,7 +482,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -476,7 +497,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -491,7 +512,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -506,7 +527,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -521,7 +542,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -536,7 +557,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -556,7 +577,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -571,7 +592,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -586,7 +607,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -606,7 +627,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -626,7 +647,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -649,7 +670,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -666,7 +687,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -681,7 +702,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -696,7 +717,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -711,7 +732,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -726,7 +747,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -743,7 +764,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -760,7 +781,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -777,7 +798,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -791,7 +812,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -805,7 +826,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -819,7 +840,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -839,7 +860,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -854,7 +875,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -869,7 +890,7 @@ Edje_Part *ep; Edje_Part_Description *ed; - pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc = evas_list_data(evas_list_last(edje_collections)); ep = evas_list_data(evas_list_last(pc->parts)); ed = ep->default_desc; if (ep->other_desc) ed = evas_list_data(evas_list_last(ep->other_desc)); @@ -886,4 +907,124 @@ static void ob_collections_group_programs_program(void) { + Edje_Part_Collection *pc; + Edje_Program *ep; + + pc = evas_list_data(evas_list_last(edje_collections)); + ep = mem_alloc(SZ(Edje_Program)); + pc->programs = evas_list_append(pc->programs, ep); + ep->id = evas_list_count(pc->programs) - 1; +} + +static void +st_collections_group_programs_program_name(void) +{ + Edje_Part_Collection *pc; + Edje_Program *ep; + + pc = evas_list_data(evas_list_last(edje_collections)); + ep = evas_list_data(evas_list_last(pc->programs)); + ep->name = parse_str(0); +} + +static void +st_collections_group_programs_program_signal(void) +{ + Edje_Part_Collection *pc; + Edje_Program *ep; + + pc = evas_list_data(evas_list_last(edje_collections)); + ep = evas_list_data(evas_list_last(pc->programs)); + ep->signal = parse_str(0); +} + +static void +st_collections_group_programs_program_source(void) +{ + Edje_Part_Collection *pc; + Edje_Program *ep; + + pc = evas_list_data(evas_list_last(edje_collections)); + ep = evas_list_data(evas_list_last(pc->programs)); + ep->source = parse_str(0); +} + +static void +st_collections_group_programs_program_action(void) +{ + Edje_Part_Collection *pc; + Edje_Program *ep; + + pc = evas_list_data(evas_list_last(edje_collections)); + ep = evas_list_data(evas_list_last(pc->programs)); + ep->action = parse_enum(0, + "STATE_SET", EDJE_ACTION_TYPE_STATE_SET, + "ACTION_STOP", EDJE_ACTION_TYPE_ACTION_STOP, + NULL); + ep->state = parse_str(1); + ep->value = parse_float_range(2, 0.0, 1.0); +} + +static void +st_collections_group_programs_program_transition(void) +{ + Edje_Part_Collection *pc; + Edje_Program *ep; + + pc = evas_list_data(evas_list_last(edje_collections)); + ep = evas_list_data(evas_list_last(pc->programs)); + ep->tween.mode = parse_enum(0, + "LINEAR", EDJE_TWEEN_MODE_LINEAR, + "SINUSOIDAL", EDJE_TWEEN_MODE_SINUSOIDAL, + "ACCELERATE", EDJE_TWEEN_MODE_ACCELERATE, + "DECELERATE", EDJE_TWEEN_MODE_DECELERATE, + NULL); + ep->tween.time = parse_float_range(1, 0.0, 999999999.0); +} + +static void +st_collections_group_programs_program_target(void) +{ + Edje_Part_Collection *pc; + Edje_Program *ep; + + pc = evas_list_data(evas_list_last(edje_collections)); + ep = evas_list_data(evas_list_last(pc->programs)); + { + Edje_Program_Target *et; + char *name; + + et = mem_alloc(SZ(Edje_Program_Target)); + ep->targets = evas_list_append(ep->targets, et); + + name = parse_str(0); + if (ep->action == EDJE_ACTION_TYPE_STATE_SET) + data_queue_part_lookup(pc, name, &(et->id)); + else if (ep->action == EDJE_ACTION_TYPE_ACTION_STOP) + data_queue_program_lookup(pc, name, &(et->id)); + else + { + /* FIXME: not type specified. guess */ + data_queue_part_lookup(pc, name, &(et->id)); + data_queue_program_lookup(pc, name, &(et->id)); + } + free(name); + } +} + +static void +st_collections_group_programs_program_after(void) +{ + Edje_Part_Collection *pc; + Edje_Program *ep; + + pc = evas_list_data(evas_list_last(edje_collections)); + ep = evas_list_data(evas_list_last(pc->programs)); + { + char *name; + + name = parse_str(0); + data_queue_program_lookup(pc, name, &(ep->after)); + free(name); + } } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_out.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- edje_cc_out.c 14 Jun 2003 03:06:35 -0000 1.3 +++ edje_cc_out.c 16 Jun 2003 13:55:12 -0000 1.4 @@ -1,6 +1,7 @@ #include "edje_cc.h" typedef struct _Part_Lookup Part_Lookup; +typedef struct _Program_Lookup Program_Lookup; typedef struct _Image_Lookup Image_Lookup; struct _Part_Lookup @@ -10,6 +11,13 @@ int *dest; }; +struct _Program_Lookup +{ + Edje_Part_Collection *pc; + char *name; + int *dest; +}; + struct _Image_Lookup { char *name; @@ -17,28 +25,40 @@ }; Edje_File *edje_file = NULL; +Evas_List *edje_collections = NULL; static Eet_Data_Descriptor *edd_edje_file = NULL; static Eet_Data_Descriptor *edd_edje_image_directory = NULL; static Eet_Data_Descriptor *edd_edje_image_directory_entry = NULL; +static Eet_Data_Descriptor *edd_edje_program = NULL; +static Eet_Data_Descriptor *edd_edje_program_target = NULL; +static Eet_Data_Descriptor *edd_edje_part_collection_directory = NULL; +static Eet_Data_Descriptor *edd_edje_part_collection_directory_entry = NULL; +static Eet_Data_Descriptor *edd_edje_part_collection = NULL; +static Eet_Data_Descriptor *edd_edje_part = NULL; +static Eet_Data_Descriptor *edd_edje_part_description = NULL; +static Eet_Data_Descriptor *edd_edje_part_image_id = NULL; static Evas_List *part_lookups = NULL; +static Evas_List *program_lookups = NULL; static Evas_List *image_lookups = NULL; void data_setup(void) { + /* image directory */ edd_edje_image_directory_entry = eet_data_descriptor_new("Edje_Image_Directory_Entry", - sizeof(Edje_Image_Directory_Entry), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); + sizeof(Edje_Image_Directory_Entry), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "entry", entry, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_type", source_type, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_param", source_param, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "id", id, EET_T_INT); + edd_edje_image_directory = eet_data_descriptor_new("Edje_Image_Directory", sizeof(Edje_Image_Directory), evas_list_next, @@ -47,6 +67,28 @@ evas_hash_foreach, evas_hash_add); EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_image_directory, Edje_Image_Directory, "entries", entries, edd_edje_image_directory_entry); + + /* collection directory */ + edd_edje_part_collection_directory_entry = eet_data_descriptor_new("Edje_Part_Collection_Directory_Entry", + sizeof(Edje_Part_Collection_Directory_Entry), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "entry", entry, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "id", id, EET_T_INT); + + edd_edje_part_collection_directory = eet_data_descriptor_new("Edje_Part_Collection_Directory", + sizeof(Edje_Part_Collection_Directory), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_collection_directory, Edje_Part_Collection_Directory, "entries", entries, edd_edje_part_collection_directory_entry); + + /* the main file directory */ edd_edje_file = eet_data_descriptor_new("Edje_File", sizeof(Edje_File), evas_list_next, @@ -55,6 +97,148 @@ evas_hash_foreach, evas_hash_add); EET_DATA_DESCRIPTOR_ADD_SUB(edd_edje_file, Edje_File, "image_dir", image_dir, edd_edje_image_directory); + EET_DATA_DESCRIPTOR_ADD_SUB(edd_edje_file, Edje_File, "collection_dir", collection_dir, edd_edje_part_collection_directory); + + /* parts & programs - loaded induvidually */ + edd_edje_program_target = eet_data_descriptor_new("Edje_Program_Target", + sizeof(Edje_Program_Target), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program_target, Edje_Program_Target, "id", id, EET_T_INT); + + edd_edje_program = eet_data_descriptor_new("Edje_Program", + sizeof(Edje_Program), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "id", id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "name", name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "signal", signal, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "source", source, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "action", action, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "state", state, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "value", value, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "tween.mode", tween.mode, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "tween.time", tween.time, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_program, Edje_Program, "targets", targets, edd_edje_program_target); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "after", after, EET_T_INT); + + edd_edje_part_image_id = eet_data_descriptor_new("Edje_Part_Image_Id", + sizeof(Edje_Part_Image_Id), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_image_id, Edje_Part_Image_Id, "id", id, EET_T_INT); + + edd_edje_part_description = eet_data_descriptor_new("Edje_Part_Description", + sizeof(Edje_Part_Description), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "state.name", state.name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "state.value", state.value, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "visible", visible, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.x", dragable.x, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.step_x", dragable.step_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.count_x", dragable.count_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.y", dragable.y, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.step_y", dragable.step_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.count_y", dragable.count_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.counfine_id", dragable.confine_id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "clip_to_id", clip_to_id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "align.x", align.x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "align.y", align.y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "min.w", min.w, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "min.h", min.h, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "max.w", max.w, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "max.h", max.h, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "step.x", step.x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "step.y", step.y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "aspect.min", aspect.min, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "aspect.max", aspect.max, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.relative_x", rel1.relative_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.relative_y", rel1.relative_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.offset_x", rel1.offset_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.offset_y", rel1.offset_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.id", rel1.id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.relative_x", rel2.relative_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.relative_y", rel2.relative_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.offset_x", rel2.offset_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.offset_y", rel2.offset_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.id", rel2.id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "image.id", image.id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_description, Edje_Part_Description, "image.tween_list", image.tween_list, edd_edje_part_image_id); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.l", border.l, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.r", border.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.t", border.t, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.b", border.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_x", fill.pos_rel_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_x", fill.pos_abs_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.rel_x", fill.rel_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.abs_x", fill.abs_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_y", fill.pos_rel_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_y", fill.pos_abs_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.rel_y", fill.rel_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.abs_y", fill.abs_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.r", color.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.g", color.g, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.b", color.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.a", color.a, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.r", color2.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.g", color2.g, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.b", color2.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.a", color2.a, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.r", color3.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.g", color3.g, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.b", color3.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.a", color3.a, EET_T_INT); + + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.text", text.text, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.font", text.font, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.size", text.size, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.effect", text.effect, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.fit_x", text.fit_x, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.fit_y", text.fit_y, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.min_x", text.min_x, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.min_y", text.min_y, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.align.x", text.align.x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.align.y", text.align.y, EET_T_DOUBLE); + + edd_edje_part = eet_data_descriptor_new("Edje_Part", + sizeof(Edje_Part), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "name", name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "id", id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "type", type, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "mouse_events", mouse_events, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "color_class", color_class, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "text_class", text_class, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_SUB(edd_edje_part, Edje_Part, "default_desc", default_desc, edd_edje_part_description); + EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part, Edje_Part, "other_desc", other_desc, edd_edje_part_description); + + edd_edje_part_collection = eet_data_descriptor_new("Edje_Part_Collection", + sizeof(Edje_Part_Collection), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_collection, Edje_Part_Collection, "programs", programs, edd_edje_program); + EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_collection, Edje_Part_Collection, "parts", parts, edd_edje_part); + EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_collection, Edje_Part_Collection, "id", id, EET_T_INT); } void @@ -62,15 +246,27 @@ { Eet_File *ef; Evas_List *l; + int bytes; ef = eet_open(file_out, EET_FILE_MODE_WRITE); if (!ef) { - fprintf(stderr, "%s: Error. unable to open %s for writing output\n", + fprintf(stderr, "%s: Error. unable to open \"%s\" for writing output\n", progname, file_out); exit(-1); } - eet_data_write(ef, edd_edje_file, "data", edje_file, 1); + bytes = eet_data_write(ef, edd_edje_file, "edje_file", edje_file, 1); + if (bytes <= 0) + { + fprintf(stderr, "%s: Error. unable to write \"edje_file\" entry to \"%s\" \n", + progname, file_out); + exit(-1); + } + if (verbose) + { + printf("%s: Wrote %9i bytes (%4iKb) for \"edje_file\" header\n", + progname, bytes, (bytes + 512) / 1024); + } for (l = edje_file->image_dir->entries; l; l = l->next) { Edje_Image_Directory_Entry *img; @@ -95,8 +291,8 @@ if (im) { DATA32 *im_data; - int im_w, im_h; - int im_alpha; + int im_w, im_h; + int im_alpha; char buf[256]; imlib_context_set_image(im); @@ -104,25 +300,59 @@ im_h = imlib_image_get_height(); im_alpha = imlib_image_has_alpha(); im_data = imlib_image_get_data_for_reading_only(); - snprintf(buf, sizeof(buf), "/images/%i", img->id); + snprintf(buf, sizeof(buf), "images/%i", img->id); if (img->source_type == EDJE_IMAGE_SOURCE_TYPE_INLINE_PERFECT) - eet_data_image_write(ef, buf, - im_data, im_w, im_h, im_alpha, - img->source_param, 0, 0); + bytes = eet_data_image_write(ef, buf, + im_data, im_w, im_h, + im_alpha, + img->source_param, 0, 0); else - eet_data_image_write(ef, buf, - im_data, im_w, im_h, im_alpha, - 0, img->source_param, 1); + bytes = eet_data_image_write(ef, buf, + im_data, im_w, im_h, + im_alpha, + 0, img->source_param, 1); + if (bytes <= 0) + { + fprintf(stderr, "%s: Error. unable to write image part \"%s\" as \"%s\" part entry to %s \n", + progname, img->entry, buf, file_out); + exit(-1); + } + if (verbose) + { + printf("%s: Wrote %9i bytes (%4iKb) for \"%s\" image entry \"%s\"\n", + progname, bytes, (bytes + 512) / 1024, buf, img->entry); + } imlib_image_put_back_data(im_data); imlib_free_image(); } else { - fprintf(stderr, "%s: Warning. unable to open image %s for inclusion in output\n", + fprintf(stderr, "%s: Warning. unable to open image \"%s\" for inclusion in output\n", progname, img->entry); } } } + for (l = edje_collections; l; l = l->next) + { + Edje_Part_Collection *pc; + char buf[456]; + + pc = l->data; + + snprintf(buf, sizeof(buf), "collections/%i", pc->id); + bytes = eet_data_write(ef, edd_edje_part_collection, buf, pc, 1); + if (bytes <= 0) + { + fprintf(stderr, "%s: Error. unable to write \"%s\" part entry to %s \n", + progname, buf, file_out); + exit(-1); + } + if (verbose) + { + printf("%s: Wrote %9i bytes (%4iKb) for \"%s\" collection entry\n", + progname, bytes, (bytes + 512) / 1024, buf); + } + } eet_close(ef); } @@ -139,6 +369,18 @@ } void +data_queue_program_lookup(Edje_Part_Collection *pc, char *name, int *dest) +{ + Program_Lookup *pl; + + pl = mem_alloc(SZ(Program_Lookup)); + program_lookups = evas_list_append(program_lookups, pl); + pl->pc = pc; + pl->name = mem_strdup(name); + pl->dest = dest; +} + +void data_queue_image_lookup(char *name, int *dest) { Image_Lookup *il; @@ -182,6 +424,34 @@ free(pl); } + while (program_lookups) + { + Program_Lookup *pl; + + pl = program_lookups->data; + + for (l = pl->pc->programs; l; l = l->next) + { + Edje_Program *ep; + + ep = l->data; + if ((ep->name) && (!strcmp(ep->name, pl->name))) + { + *(pl->dest) = ep->id; + break; + } + } + if (!l) + { + fprintf(stderr, "%s: Error. unable find program name %s\n", + progname, pl->name); + exit(-1); + } + program_lookups = evas_list_remove(program_lookups, pl); + free(pl->name); + free(pl); + } + while (image_lookups) { Image_Lookup *il; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_parse.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- edje_cc_parse.c 12 Jun 2003 22:34:51 -0000 1.4 +++ edje_cc_parse.c 16 Jun 2003 13:55:12 -0000 1.5 @@ -245,7 +245,12 @@ char *p, *end, *token; int delim = 0; int do_params = 0; - + + if (verbose) + { + printf("%s: Parsing input file\n", + progname); + } p = data; end = data + size; line = 1; @@ -303,6 +308,11 @@ } } } + if (verbose) + { + printf("%s: Parsing done\n", + progname); + } } void @@ -315,10 +325,15 @@ fd = open(file_in, O_RDONLY); if (fd < 0) { - fprintf(stderr, "%s: Error. cannot open file %s for input. %s\n", + fprintf(stderr, "%s: Error. cannot open file \"%s\" for input. %s\n", progname, file_in, strerror(errno)); exit(-1); } + if (verbose) + { + printf("%s: Opening \"%s\" for input\n", + progname, file_in); + } size = lseek(fd, 0, SEEK_END); lseek(fd, 0, SEEK_SET); @@ -330,7 +345,7 @@ } else { - fprintf(stderr, "%s: Error. cannot mmap file %s for input. %s\n", + fprintf(stderr, "%s: Error. cannot mmap file \"%s\" for input. %s\n", progname, file_in, strerror(errno)); exit(-1); } |
From: <enl...@li...> - 2003-06-16 23:08:29
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data Log Message: Directory /cvsroot/enlightenment/e17/libs/edje/data added to the repository |
From: <enl...@li...> - 2003-06-16 23:13:28
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data/images Log Message: Directory /cvsroot/enlightenment/e17/libs/edje/data/images added to the repository |
From: <enl...@li...> - 2003-06-16 23:13:29
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data/src Log Message: Directory /cvsroot/enlightenment/e17/libs/edje/data/src added to the repository |
From: <enl...@li...> - 2003-06-16 23:44:14
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/bin Modified Files: edje_cc_handlers.c Log Message: some default "sane" values to save a lot of typing in edje .edc files + a test .edc with comments and some images to use for compiling.... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_handlers.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- edje_cc_handlers.c 16 Jun 2003 13:55:12 -0000 1.7 +++ edje_cc_handlers.c 16 Jun 2003 23:44:13 -0000 1.8 @@ -297,6 +297,8 @@ pc = evas_list_data(evas_list_last(edje_collections)); pc->parts = evas_list_append(pc->parts, ep); ep->id = evas_list_count(pc->parts) - 1; + ep->type = EDJE_PART_TYPE_IMAGE; + ep->mouse_events = 1; } static void @@ -362,6 +364,31 @@ ep->default_desc = ed; else ep->other_desc = evas_list_append(ep->other_desc, ed); + ed->visible = 1; + ed->dragable.confine_id = -1; + ed->clip_to_id = -1; + ed->align.x = 0.5; + ed->align.y = 0.5; + ed->fill.pos_rel_x = 0.0; + ed->fill.pos_abs_x = 0; + ed->fill.rel_x = 1.0; + ed->fill.abs_x = 0; + ed->fill.pos_rel_y = 0.0; + ed->fill.pos_abs_y = 0; + ed->fill.rel_y = 1.0; + ed->fill.abs_y = 0; + ed->color.r = 255; + ed->color.g = 255; + ed->color.b = 255; + ed->color.a = 255; + ed->color2.r = 0; + ed->color2.g = 0; + ed->color2.b = 0; + ed->color2.a = 255; + ed->color3.r = 0; + ed->color3.g = 0; + ed->color3.b = 0; + ed->color3.a = 128; } static void @@ -914,6 +941,8 @@ ep = mem_alloc(SZ(Edje_Program)); pc->programs = evas_list_append(pc->programs, ep); ep->id = evas_list_count(pc->programs) - 1; + ep->tween.mode = EDJE_TWEEN_MODE_LINEAR; + ep->after = -1; } static void |
From: <enl...@li...> - 2003-06-16 23:44:14
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data/images Added Files: bg.png e.png Log Message: some default "sane" values to save a lot of typing in edje .edc files + a test .edc with comments and some images to use for compiling.... :) |
From: <enl...@li...> - 2003-06-16 23:44:15
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data/src Added Files: test.edc Log Message: some default "sane" values to save a lot of typing in edje .edc files + a test .edc with comments and some images to use for compiling.... :) |
From: <enl...@li...> - 2003-06-16 23:44:43
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje Modified Files: Makefile.am Log Message: some default "sane" values to save a lot of typing in edje .edc files + a test .edc with comments and some images to use for compiling.... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.am 2 Jun 2003 23:49:54 -0000 1.1 +++ Makefile.am 16 Jun 2003 23:44:12 -0000 1.2 @@ -7,12 +7,30 @@ ltconfig ltmain.sh missing mkinstalldirs \ stamp-h.in edje_docs.tar edje_docs.tar.gz edje.c +install-data-local: + @$(NORMAL_INSTALL) + if test -d $(srcdir)/data; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/data; \ + for d in $(srcdir)/data/*; do \ + cp -pR $$d $(DESTDIR)$(pkgdatadir)/data; \ + done \ + fi + dist-hook: ./gendoc; \ - tar cvf edje_docs.tar doc; \ + tar cvf edje_docs.tar doc/html doc/latex doc/man; \ rm -f edje_docs.tar.gz; \ - gzip -9 edje_docs.tar; + gzip -9 edje_docs.tar; \ + if test -d data; then \ + mkdir $(distdir)/data; \ + for file in data/*; do \ + if test -f $$file; then \ + cp -p $$file $(distdir)/data; \ + fi \ + done \ + fi bin_SCRIPTS = edje-config EXTRA_DIST = README AUTHORS COPYING COPYING-PLAIN edje.spec edje.c.in gendoc Doxyfile edje_docs.tar.gz + |
From: <enl...@li...> - 2003-06-17 01:28:02
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data Added Files: e_logo.sh Log Message: some of my other changes from this morning go into edje. more defaults. more example files... and a build script to make an "e_logo.eet" edje file |
From: <enl...@li...> - 2003-06-17 01:28:02
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data/src Added Files: e_logo.edc Log Message: some of my other changes from this morning go into edje. more defaults. more example files... and a build script to make an "e_logo.eet" edje file |
From: <enl...@li...> - 2003-06-17 01:28:32
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/bin Modified Files: edje_cc_handlers.c Log Message: some of my other changes from this morning go into edje. more defaults. more example files... and a build script to make an "e_logo.eet" edje file =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_handlers.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- edje_cc_handlers.c 16 Jun 2003 23:44:13 -0000 1.8 +++ edje_cc_handlers.c 17 Jun 2003 01:28:01 -0000 1.9 @@ -369,6 +369,17 @@ ed->clip_to_id = -1; ed->align.x = 0.5; ed->align.y = 0.5; + ed->rel1.relative_x = 0.0; + ed->rel1.relative_y = 0.0; + ed->rel1.offset_x = 0; + ed->rel1.offset_x = 0; + ed->rel1.id = -1; + ed->rel2.relative_x = 1.0; + ed->rel2.relative_y = 1.0; + ed->rel2.offset_x = -1; + ed->rel2.offset_x = -1; + ed->rel2.id = -1; + ed->image.id = -1; ed->fill.pos_rel_x = 0.0; ed->fill.pos_abs_x = 0; ed->fill.rel_x = 1.0; |
From: <enl...@li...> - 2003-06-17 08:15:37
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data/src Modified Files: e_logo.edc Log Message: the edje test program displays an edje .eet file now! build it all then: cd data ./e_logo.sh cd .. ./src/bin/edje you can resize the window to watch the edje "bit" resize. this is just held togetehr with sitckytape right now... its not done right.. it's only a bootstrap - but it works. it needs to be cleaned up. definitely. will be working on that. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/data/src/e_logo.edc,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_logo.edc 17 Jun 2003 01:28:01 -0000 1.1 +++ e_logo.edc 17 Jun 2003 08:15:06 -0000 1.2 @@ -1,6 +1,6 @@ images { - image, "bg.png" LOSSY 90; - image, "e.png" LOSSY 90; + image, "bg.png" LOSSY 98; + image, "e.png" LOSSY 98; } collections { @@ -30,7 +30,8 @@ name, "logo"; description { state, "default" 0.0; - max, 64 64; + max, 320 320; + aspect, 1.0 1.0; rel1 { relative, 0.0 0.0; offset, 16 16; @@ -45,7 +46,7 @@ } description { state, "clicked" 0.0; - max, 64 64; + max, 16 16; rel1 { relative, 0.0 0.0; offset, 16 16; |
From: <enl...@li...> - 2003-06-17 08:15:38
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/bin Modified Files: edje_cc.c edje_cc_handlers.c edje_cc_out.c edje_main.c Log Message: the edje test program displays an edje .eet file now! build it all then: cd data ./e_logo.sh cd .. ./src/bin/edje you can resize the window to watch the edje "bit" resize. this is just held togetehr with sitckytape right now... its not done right.. it's only a bootstrap - but it works. it needs to be cleaned up. definitely. will be working on that. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- edje_cc.c 16 Jun 2003 13:55:12 -0000 1.7 +++ edje_cc.c 17 Jun 2003 08:15:06 -0000 1.8 @@ -63,7 +63,9 @@ main_help(); exit(-1); } - + + edje_init(); + edje_file = mem_alloc(SZ(Edje_File)); data_setup(); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_handlers.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- edje_cc_handlers.c 17 Jun 2003 01:28:01 -0000 1.9 +++ edje_cc_handlers.c 17 Jun 2003 08:15:06 -0000 1.10 @@ -369,6 +369,10 @@ ed->clip_to_id = -1; ed->align.x = 0.5; ed->align.y = 0.5; + ed->min.w = 0; + ed->min.h = 0; + ed->max.w = -1; + ed->max.h = -1; ed->rel1.relative_x = 0.0; ed->rel1.relative_y = 0.0; ed->rel1.offset_x = 0; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_out.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- edje_cc_out.c 16 Jun 2003 13:55:12 -0000 1.4 +++ edje_cc_out.c 17 Jun 2003 08:15:06 -0000 1.5 @@ -46,199 +46,17 @@ void data_setup(void) { - /* image directory */ - edd_edje_image_directory_entry = eet_data_descriptor_new("Edje_Image_Directory_Entry", - sizeof(Edje_Image_Directory_Entry), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "entry", entry, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_type", source_type, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_param", source_param, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "id", id, EET_T_INT); - - edd_edje_image_directory = eet_data_descriptor_new("Edje_Image_Directory", - sizeof(Edje_Image_Directory), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_image_directory, Edje_Image_Directory, "entries", entries, edd_edje_image_directory_entry); - - /* collection directory */ - edd_edje_part_collection_directory_entry = eet_data_descriptor_new("Edje_Part_Collection_Directory_Entry", - sizeof(Edje_Part_Collection_Directory_Entry), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "entry", entry, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "id", id, EET_T_INT); - - edd_edje_part_collection_directory = eet_data_descriptor_new("Edje_Part_Collection_Directory", - sizeof(Edje_Part_Collection_Directory), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_collection_directory, Edje_Part_Collection_Directory, "entries", entries, edd_edje_part_collection_directory_entry); - - /* the main file directory */ - edd_edje_file = eet_data_descriptor_new("Edje_File", - sizeof(Edje_File), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_SUB(edd_edje_file, Edje_File, "image_dir", image_dir, edd_edje_image_directory); - EET_DATA_DESCRIPTOR_ADD_SUB(edd_edje_file, Edje_File, "collection_dir", collection_dir, edd_edje_part_collection_directory); - - /* parts & programs - loaded induvidually */ - edd_edje_program_target = eet_data_descriptor_new("Edje_Program_Target", - sizeof(Edje_Program_Target), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program_target, Edje_Program_Target, "id", id, EET_T_INT); - - edd_edje_program = eet_data_descriptor_new("Edje_Program", - sizeof(Edje_Program), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "id", id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "name", name, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "signal", signal, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "source", source, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "action", action, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "state", state, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "value", value, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "tween.mode", tween.mode, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "tween.time", tween.time, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_program, Edje_Program, "targets", targets, edd_edje_program_target); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_program, Edje_Program, "after", after, EET_T_INT); - - edd_edje_part_image_id = eet_data_descriptor_new("Edje_Part_Image_Id", - sizeof(Edje_Part_Image_Id), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_image_id, Edje_Part_Image_Id, "id", id, EET_T_INT); - - edd_edje_part_description = eet_data_descriptor_new("Edje_Part_Description", - sizeof(Edje_Part_Description), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "state.name", state.name, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "state.value", state.value, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "visible", visible, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.x", dragable.x, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.step_x", dragable.step_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.count_x", dragable.count_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.y", dragable.y, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.step_y", dragable.step_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.count_y", dragable.count_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "dragable.counfine_id", dragable.confine_id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "clip_to_id", clip_to_id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "align.x", align.x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "align.y", align.y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "min.w", min.w, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "min.h", min.h, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "max.w", max.w, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "max.h", max.h, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "step.x", step.x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "step.y", step.y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "aspect.min", aspect.min, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "aspect.max", aspect.max, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.relative_x", rel1.relative_x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.relative_y", rel1.relative_y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.offset_x", rel1.offset_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.offset_y", rel1.offset_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel1.id", rel1.id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.relative_x", rel2.relative_x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.relative_y", rel2.relative_y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.offset_x", rel2.offset_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.offset_y", rel2.offset_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "rel2.id", rel2.id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "image.id", image.id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_description, Edje_Part_Description, "image.tween_list", image.tween_list, edd_edje_part_image_id); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.l", border.l, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.r", border.r, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.t", border.t, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "border.b", border.b, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_x", fill.pos_rel_x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_x", fill.pos_abs_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.rel_x", fill.rel_x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.abs_x", fill.abs_x, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_y", fill.pos_rel_y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_y", fill.pos_abs_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.rel_y", fill.rel_y, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "fill.abs_y", fill.abs_y, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.r", color.r, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.g", color.g, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.b", color.b, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color.a", color.a, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.r", color2.r, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.g", color2.g, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.b", color2.b, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color2.a", color2.a, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.r", color3.r, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.g", color3.g, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.b", color3.b, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "color3.a", color3.a, EET_T_INT); - - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.text", text.text, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.font", text.font, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.size", text.size, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.effect", text.effect, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.fit_x", text.fit_x, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.fit_y", text.fit_y, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.min_x", text.min_x, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.min_y", text.min_y, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.align.x", text.align.x, EET_T_DOUBLE); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_description, Edje_Part_Description, "text.align.y", text.align.y, EET_T_DOUBLE); - - edd_edje_part = eet_data_descriptor_new("Edje_Part", - sizeof(Edje_Part), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "name", name, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "id", id, EET_T_INT); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "type", type, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "mouse_events", mouse_events, EET_T_CHAR); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "color_class", color_class, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part, Edje_Part, "text_class", text_class, EET_T_STRING); - EET_DATA_DESCRIPTOR_ADD_SUB(edd_edje_part, Edje_Part, "default_desc", default_desc, edd_edje_part_description); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part, Edje_Part, "other_desc", other_desc, edd_edje_part_description); - - edd_edje_part_collection = eet_data_descriptor_new("Edje_Part_Collection", - sizeof(Edje_Part_Collection), - evas_list_next, - evas_list_append, - evas_list_data, - evas_hash_foreach, - evas_hash_add); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_collection, Edje_Part_Collection, "programs", programs, edd_edje_program); - EET_DATA_DESCRIPTOR_ADD_LIST(edd_edje_part_collection, Edje_Part_Collection, "parts", parts, edd_edje_part); - EET_DATA_DESCRIPTOR_ADD_BASIC(edd_edje_part_collection, Edje_Part_Collection, "id", id, EET_T_INT); + edd_edje_file = _edje_edd_edje_file; + edd_edje_image_directory = _edje_edd_edje_image_directory; + edd_edje_image_directory_entry = _edje_edd_edje_image_directory_entry; + edd_edje_program = _edje_edd_edje_program; + edd_edje_program_target = _edje_edd_edje_program_target; + edd_edje_part_collection_directory = _edje_edd_edje_part_collection_directory; + edd_edje_part_collection_directory_entry = _edje_edd_edje_part_collection_directory_entry; + edd_edje_part_collection = _edje_edd_edje_part_collection; + edd_edje_part = _edje_edd_edje_part; + edd_edje_part_description = _edje_edd_edje_part_description; + edd_edje_part_image_id = _edje_edd_edje_part_image_id; } void =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_main.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- edje_main.c 3 Jun 2003 02:30:25 -0000 1.2 +++ edje_main.c 17 Jun 2003 08:15:06 -0000 1.3 @@ -1,15 +1,21 @@ #include "edje.h" -double start_time = 0.0; -Ecore_Evas *ecore_evas = NULL; -Evas *evas = NULL; - static int main_start(int argc, char **argv); static void main_stop(void); static void main_resize(Ecore_Evas *ee); static int main_signal_exit(void *data, int ev_type, void *ev); static void main_delete_request(Ecore_Evas *ee); +void bg_setup(void); +void bg_resize(double w, double h); + +void test_setup(char *file, char *name); +void test_reize(double w, double h); + +double start_time = 0.0; +Ecore_Evas *ecore_evas = NULL; +Evas *evas = NULL; + static int main_start(int argc, char **argv) { @@ -60,7 +66,8 @@ double w, h; evas_output_viewport_get(evas, NULL, NULL, &w, &h); - // FIXME: do something for resize + bg_resize(w, h); + test_reize(w, h); } static int @@ -76,10 +83,61 @@ ecore_main_loop_quit(); } +static Evas_Object *o_bg = NULL; + +void +bg_setup(void) +{ + Evas_Object *o; + + o = evas_object_rectangle_add(evas); + evas_object_move(o, 0, 0); + evas_object_resize(o, 240, 320); + evas_object_layer_set(o, -999); + evas_object_color_set(o, 240, 240, 240, 255); + evas_object_show(o); + o_bg = o; +} + +void +bg_resize(double w, double h) +{ + evas_object_resize(o_bg, w, h); +} + +static Evas_Object *o_edje = NULL; + +void +test_setup(char *file, char *name) +{ + Evas_Object *o; + + o = edje_add(evas); + edje_file_set(o, file, name); + evas_object_move(o, 10, 10); + evas_object_resize(o, 220, 300); + evas_object_show(o); + o_edje = o; +} + +void +test_reize(double w, double h) +{ + evas_object_move(o_edje, 10, 10); + evas_object_resize(o_edje, w - 20, h - 20); +} + int main(int argc, char **argv) { if (main_start(argc, argv) < 1) return -1; + + edje_init(); + + bg_setup(); + + /* FIXME: hard-coded. need to make this proper options later */ + test_setup("./data/e_logo.eet", "test"); ecore_main_loop_begin(); |
From: <enl...@li...> - 2003-06-17 08:15:38
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/lib Modified Files: Edje.h edje_main.c edje_private.h Log Message: the edje test program displays an edje .eet file now! build it all then: cd data ./e_logo.sh cd .. ./src/bin/edje you can resize the window to watch the edje "bit" resize. this is just held togetehr with sitckytape right now... its not done right.. it's only a bootstrap - but it works. it needs to be cleaned up. definitely. will be working on that. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/Edje.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Edje.h 2 Jun 2003 23:49:56 -0000 1.1 +++ Edje.h 17 Jun 2003 08:15:06 -0000 1.2 @@ -10,7 +10,8 @@ /***************************************************************************/ /* API here */ /***************************************************************************/ - + + void edje_init(void); Evas_Object *edje_add(Evas *evas); void edje_file_set(Evas_Object *o, const char *file, const char *part); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- edje_main.c 14 Jun 2003 03:06:35 -0000 1.4 +++ edje_main.c 17 Jun 2003 08:15:06 -0000 1.5 @@ -3,6 +3,8 @@ Edje *_edje_fetch(Evas_Object *obj); +static void _edje_edd_setup(void); + static void _edje_smart_add(Evas_Object * obj); static void _edje_smart_del(Evas_Object * obj); static void _edje_smart_layer_set(Evas_Object * obj, int layer); @@ -18,28 +20,53 @@ static void _edje_smart_clip_set(Evas_Object * obj, Evas_Object * clip); static void _edje_smart_clip_unset(Evas_Object * obj); +Eet_Data_Descriptor *_edje_edd_edje_file = NULL; +Eet_Data_Descriptor *_edje_edd_edje_image_directory = NULL; +Eet_Data_Descriptor *_edje_edd_edje_image_directory_entry = NULL; +Eet_Data_Descriptor *_edje_edd_edje_program = NULL; +Eet_Data_Descriptor *_edje_edd_edje_program_target = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_collection_directory = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_collection_directory_entry = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_collection = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_description = NULL; +Eet_Data_Descriptor *_edje_edd_edje_part_image_id = NULL; + static Evas_Smart *_edje_smart = NULL; +void +edje_init(void) +{ + static int initted = 0; + + if (initted) return; + initted = 1; + _edje_edd_setup(); +} + Evas_Object * edje_add(Evas *evas) { if (!_edje_smart) - _edje_smart = evas_smart_new("edje", - _edje_smart_add, - _edje_smart_del, - _edje_smart_layer_set, - _edje_smart_raise, - _edje_smart_lower, - _edje_smart_stack_above, - _edje_smart_stack_below, - _edje_smart_move, - _edje_smart_resize, - _edje_smart_show, - _edje_smart_hide, - _edje_smart_color_set, - _edje_smart_clip_set, - _edje_smart_clip_unset, - NULL); + { + edje_init(); + _edje_smart = evas_smart_new("edje", + _edje_smart_add, + _edje_smart_del, + _edje_smart_layer_set, + _edje_smart_raise, + _edje_smart_lower, + _edje_smart_stack_above, + _edje_smart_stack_below, + _edje_smart_move, + _edje_smart_resize, + _edje_smart_show, + _edje_smart_hide, + _edje_smart_color_set, + _edje_smart_clip_set, + _edje_smart_clip_unset, + NULL); + } return evas_object_smart_add(evas, _edje_smart); } @@ -50,6 +77,96 @@ ed = _edje_fetch(obj); if (!ed) return; + + /* FIXME: THIS IS A MESS! this nmeeds to be done properly. I've only done */ + /* a quick hack here to "bootstrap" edje to display at all.. anything! */ + /* as a matter of fact it does quite well so far! :) */ + if (ed->collection) + { + printf("FIXME: leak!\n"); + } + if (ed->file) + { + printf("FIXME: leak!\n"); + } + /*****/ + { + Eet_File *ef; + Edje_Part_Collection *pc; + + ef = eet_open(file, EET_FILE_MODE_READ); + if (!ef) return; + ed->file = eet_data_read(ef, _edje_edd_edje_file, "edje_file"); + if (ed->file) + { + Evas_List *l; + int id; + + ed->file->path = strdup(file); + printf("images...!\n"); + for (l = ed->file->image_dir->entries; l; l = l->next) + { + Edje_Image_Directory_Entry *ie; + + ie = l->data; + printf("img: \"%s\" type=%i param=%i id=%i\n", + ie->entry, ie->source_type, ie->source_param, ie->id); + } + id = -1; + for (l = ed->file->collection_dir->entries; l; l = l->next) + { + Edje_Part_Collection_Directory_Entry *ce; + + ce = l->data; + if ((ce->entry) && (!strcmp(ce->entry, part))) + { + id = ce->id; + break; + } + } + if (id >= 0) + { + char buf[256]; + + snprintf(buf, sizeof(buf), "collections/%i", id); + printf("need %s\n", buf); + ed->collection = eet_data_read(ef, _edje_edd_edje_part_collection, buf); + } + } + eet_close(ef); + } + if (ed->collection) + { + Evas_List *l; + + printf("LOAD done... build\n"); + for (l = ed->collection->parts; l; l = l->next) + { + Edje_Part *ep; + Edje_Real_Part *rp; + char buf[256]; + + ep = l->data; + rp = calloc(1, sizeof(Edje_Real_Part)); + if (!rp) + { + /* FIXME: memory error! */ + return; + } + ed->parts = evas_list_append(ed->parts, rp); + rp->part = ep; + printf("part %s\n", rp->part->name); + rp->param1.description = rp->part->default_desc; + rp->object = evas_object_image_add(ed->evas); + evas_object_clip_set(rp->object, ed->clipper); + evas_object_show(rp->object); + snprintf(buf, sizeof(buf), "images/%i", rp->part->default_desc->image.id); + evas_object_image_file_set(rp->object, ed->file->path, buf); + } + for (l = ed->parts; l; l = l->next) + { + } + } } /*** internal calls ***/ @@ -89,7 +206,7 @@ Edje_Calc_Params *params) { int minw, minh; - + /* relative coords of top left & bottom right */ if (rel1_to) { @@ -116,45 +233,68 @@ } else { - params->w = desc->rel2.offset_x + - (desc->rel2.relative_x * ed->w) - - params->x; - params->h = desc->rel2.offset_y + - (desc->rel2.relative_y * ed->h) - - params->y; + params->w = (double)desc->rel2.offset_x + + (desc->rel2.relative_x * (double)ed->w) - + params->x + 1; + params->h = (double)desc->rel2.offset_y + + (desc->rel2.relative_y * (double)ed->h) - + params->y + 1; } + /* aspect */ if (params->h > 0) { double aspect; - int new_h; + double new_w, new_h; new_h = params->h; + new_w = params->w; aspect = (double)params->w / (double)params->h; /* adjust for max aspect (width / height) */ if ((desc->aspect.max > 0.0) && (aspect > desc->aspect.max)) { - new_h = (int)((double)params->w / desc->aspect.max); + new_h = (params->w / desc->aspect.max); + new_w = (params->h * desc->aspect.max); } /* adjust for min aspect (width / height) */ if ((desc->aspect.min > 0.0) && (aspect < desc->aspect.min)) { - new_h = (int)((double)params->w / desc->aspect.min); + new_h = (params->w / desc->aspect.min); + new_w = (params->w * desc->aspect.min); } /* do real adjustment */ - if (params->h < new_h) + if ((params->h - new_h) > (params->w - new_w)) { - params->y = params->y + - ((params->h - new_h) * (1.0 - desc->align.y)); - params->h = new_h; + if (params->h < new_h) + { + params->y = params->y + + ((params->h - new_h) * (1.0 - desc->align.y)); + params->h = new_h; + } + else if (params->h > new_h) + { + params->y = params->y + + ((params->h - new_h) * desc->align.y); + params->h = new_h; + } } - else if (params->h > new_h) + else { - params->y = params->y + - ((params->h - new_h) * desc->align.y); - params->h = new_h; - } + if (params->w < new_w) + { + params->x = params->x + + ((params->w - new_w) * (1.0 - desc->align.x)); + params->w = new_w; + } + else if (params->w > new_w) + { + params->x = params->x + + ((params->w - new_w) * desc->align.x); + params->w = new_w; + } + } } + /* size step */ if (desc->step.x > 0) { @@ -346,7 +486,7 @@ { Edje_Calc_Params p1, p2, p3; Edje_Part_Description *chosen_desc; - double pos; + double pos = 0.0; if (ep->calculated) return; if (ep->param1.rel1_to) _edje_part_recalc(ed, ep->param1.rel1_to); @@ -436,10 +576,13 @@ char buf[4096]; int image_id; int image_count, image_num; - + +// printf("loc %3.3f %3.3f %3.3fx%3.3f\n", p3.x, p3.y, p3.w, p3.h); evas_object_move(ep->object, ed->x + p3.x, ed->y + p3.y); evas_object_resize(ep->object, p3.w, p3.h); evas_object_image_fill_set(ep->object, p3.fill.x, p3.fill.y, p3.fill.w, p3.fill.h); +// printf("fill %3.3f %3.3f %3.3fx%3.3f\n", p3.fill.x, p3.fill.y, p3.fill.w, p3.fill.h); + evas_object_image_border_set(ep->object, p3.border.l, p3.border.r, p3.border.t, p3.border.b); image_id = ep->param1.description->image.id; image_count = 2; @@ -459,13 +602,19 @@ imid = evas_list_nth(ep->param2.description->image.tween_list, image_num - 1); if (imid) image_id = imid->id; } - - snprintf(buf, sizeof(buf), "/images/%i", image_id); + + snprintf(buf, sizeof(buf), "images/%i", image_id); evas_object_image_file_set(ep->object, ed->file->path, buf); } if (p3.visible) evas_object_show(ep->object); else evas_object_hide(ep->object); evas_object_color_set(ep->object, p3.color.r, p3.color.g, p3.color.b, p3.color.a); + + ep->x = p3.x; + ep->y = p3.y; + ep->w = p3.w; + ep->h = p3.h; + ep->calculated = 1; ep->dirty = 0; } @@ -508,6 +657,204 @@ return ed; } +static void +_edje_edd_setup(void) +{ + /* image directory */ + _edje_edd_edje_image_directory_entry = eet_data_descriptor_new("Edje_Image_Directory_Entry", + sizeof(Edje_Image_Directory_Entry), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "entry", entry, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_type", source_type, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "source_param", source_param, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_image_directory_entry, Edje_Image_Directory_Entry, "id", id, EET_T_INT); + + _edje_edd_edje_image_directory = eet_data_descriptor_new("Edje_Image_Directory", + sizeof(Edje_Image_Directory), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_image_directory, Edje_Image_Directory, "entries", entries, _edje_edd_edje_image_directory_entry); + + /* collection directory */ + _edje_edd_edje_part_collection_directory_entry = eet_data_descriptor_new("Edje_Part_Collection_Directory_Entry", + sizeof(Edje_Part_Collection_Directory_Entry), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "entry", entry, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection_directory_entry, Edje_Part_Collection_Directory_Entry, "id", id, EET_T_INT); + + _edje_edd_edje_part_collection_directory = eet_data_descriptor_new("Edje_Part_Collection_Directory", + sizeof(Edje_Part_Collection_Directory), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection_directory, Edje_Part_Collection_Directory, "entries", entries, _edje_edd_edje_part_collection_directory_entry); + + /* the main file directory */ + _edje_edd_edje_file = eet_data_descriptor_new("Edje_File", + sizeof(Edje_File), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "image_dir", image_dir, _edje_edd_edje_image_directory); + EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "collection_dir", collection_dir, _edje_edd_edje_part_collection_directory); + + /* parts & programs - loaded induvidually */ + _edje_edd_edje_program_target = eet_data_descriptor_new("Edje_Program_Target", + sizeof(Edje_Program_Target), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program_target, Edje_Program_Target, "id", id, EET_T_INT); + + _edje_edd_edje_program = eet_data_descriptor_new("Edje_Program", + sizeof(Edje_Program), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "id", id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "name", name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "signal", signal, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "source", source, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "action", action, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "state", state, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "value", value, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tween.mode", tween.mode, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tween.time", tween.time, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_program, Edje_Program, "targets", targets, _edje_edd_edje_program_target); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "after", after, EET_T_INT); + + _edje_edd_edje_part_image_id = eet_data_descriptor_new("Edje_Part_Image_Id", + sizeof(Edje_Part_Image_Id), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_image_id, Edje_Part_Image_Id, "id", id, EET_T_INT); + + _edje_edd_edje_part_description = eet_data_descriptor_new("Edje_Part_Description", + sizeof(Edje_Part_Description), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.name", state.name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "state.value", state.value, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "visible", visible, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.x", dragable.x, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.step_x", dragable.step_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.count_x", dragable.count_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.y", dragable.y, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.step_y", dragable.step_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.count_y", dragable.count_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "dragable.counfine_id", dragable.confine_id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "clip_to_id", clip_to_id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.x", align.x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "align.y", align.y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.w", min.w, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "min.h", min.h, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.w", max.w, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "max.h", max.h, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.x", step.x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "step.y", step.y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.min", aspect.min, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "aspect.max", aspect.max, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_x", rel1.relative_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.relative_y", rel1.relative_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_x", rel1.offset_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.offset_y", rel1.offset_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel1.id", rel1.id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_x", rel2.relative_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.relative_y", rel2.relative_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_x", rel2.offset_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.offset_y", rel2.offset_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "rel2.id", rel2.id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "image.id", image.id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_description, Edje_Part_Description, "image.tween_list", image.tween_list, _edje_edd_edje_part_image_id); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.l", border.l, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.r", border.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.t", border.t, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "border.b", border.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_x", fill.pos_rel_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_x", fill.pos_abs_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.rel_x", fill.rel_x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.abs_x", fill.abs_x, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_rel_y", fill.pos_rel_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.pos_abs_y", fill.pos_abs_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.rel_y", fill.rel_y, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "fill.abs_y", fill.abs_y, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.r", color.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.g", color.g, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.b", color.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color.a", color.a, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.r", color2.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.g", color2.g, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.b", color2.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color2.a", color2.a, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.r", color3.r, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.g", color3.g, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.b", color3.b, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "color3.a", color3.a, EET_T_INT); + + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.text", text.text, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.font", text.font, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.size", text.size, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.effect", text.effect, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.fit_x", text.fit_x, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.fit_y", text.fit_y, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.min_x", text.min_x, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.min_y", text.min_y, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.align.x", text.align.x, EET_T_DOUBLE); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "text.align.y", text.align.y, EET_T_DOUBLE); + + _edje_edd_edje_part = eet_data_descriptor_new("Edje_Part", + sizeof(Edje_Part), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "name", name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "id", id, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "type", type, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "mouse_events", mouse_events, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "color_class", color_class, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "text_class", text_class, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_part, Edje_Part, "default_desc", default_desc, _edje_edd_edje_part_description); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part, Edje_Part, "other_desc", other_desc, _edje_edd_edje_part_description); + + _edje_edd_edje_part_collection = eet_data_descriptor_new("Edje_Part_Collection", + sizeof(Edje_Part_Collection), + evas_list_next, + evas_list_append, + evas_list_data, + evas_hash_foreach, + evas_hash_add); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Edje_Part_Collection, "programs", programs, _edje_edd_edje_program); + EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Edje_Part_Collection, "parts", parts, _edje_edd_edje_part); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "id", id, EET_T_INT); +} + /* Edje_File * _edje_add(Evas (evas) @@ -673,11 +1020,11 @@ ed = evas_object_smart_data_get(obj); if (!ed) return; - nw = w; - nh = h; + nw = ed->w; + nh = ed->h; ed->w = w; ed->h = h; - if ((nw == ed->w) || (nh == ed->h)) return; + if ((nw == ed->w) && (nh == ed->h)) return; evas_object_resize(ed->clipper, ed->w, ed->h); ed->dirty = 1; _edje_recalc(ed); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- edje_private.h 16 Jun 2003 13:55:13 -0000 1.6 +++ edje_private.h 17 Jun 2003 08:15:06 -0000 1.7 @@ -105,7 +105,6 @@ struct _Edje_Image_Directory { Evas_List *entries; /* a list of Edje_Image_Directory_Entry */ - int references; }; struct _Edje_Image_Directory_Entry @@ -344,4 +343,15 @@ } border; }; +extern Eet_Data_Descriptor *_edje_edd_edje_file; +extern Eet_Data_Descriptor *_edje_edd_edje_image_directory; +extern Eet_Data_Descriptor *_edje_edd_edje_image_directory_entry; +extern Eet_Data_Descriptor *_edje_edd_edje_program; +extern Eet_Data_Descriptor *_edje_edd_edje_program_target; +extern Eet_Data_Descriptor *_edje_edd_edje_part_collection_directory; +extern Eet_Data_Descriptor *_edje_edd_edje_part_collection_directory_entry; +extern Eet_Data_Descriptor *_edje_edd_edje_part_collection; +extern Eet_Data_Descriptor *_edje_edd_edje_part; +extern Eet_Data_Descriptor *_edje_edd_edje_part_description; +extern Eet_Data_Descriptor *_edje_edd_edje_part_image_id; #endif |
From: <enl...@li...> - 2003-06-18 14:20:58
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/lib Modified Files: Makefile.am edje_main.c edje_private.h Log Message: workin g on the code... looking cleaner. properly have shared data hashes. started putting in infrastructure to do edje part programs. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.am 2 Jun 2003 23:49:56 -0000 1.1 +++ Makefile.am 18 Jun 2003 14:20:26 -0000 1.2 @@ -19,6 +19,6 @@ edje_main.c \ edje_private.h -libedje_la_LIBADD = $(LDFLAGS) @my_libs@ +libedje_la_LIBADD = $(LDFLAGS) -lm @my_libs@ libedje_la_DEPENDENCIES = $(top_builddir)/config.h libedje_la_LDFLAGS = -version-info 0:1:0 =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- edje_main.c 17 Jun 2003 08:15:06 -0000 1.5 +++ edje_main.c 18 Jun 2003 14:20:26 -0000 1.6 @@ -1,8 +1,19 @@ #include "Edje.h" #include "edje_private.h" -Edje *_edje_fetch(Evas_Object *obj); - +Edje *_edje_fetch(Evas_Object *obj); +Edje *_edje_add(Evas_Object *obj); +void _edje_del(Edje *ed); +void _edje_file_add(Edje *ed); +void _edje_file_del(Edje *ed); +void _edje_file_free(Edje_File *edf); +void _edje_collection_free(Edje_Part_Collection *ec); + +static void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, double pos); +static void _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, char *d1, double v1, char *d2, double v2); +static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep, Edje_Part_Description *desc, Edje_Part_Description *chosen_desc, Edje_Real_Part *rel1_to, Edje_Real_Part *rel2_to, Edje_Real_Part *confine_to, Edje_Calc_Params *params); +static void _edje_part_recalc(Edje *ed, Edje_Real_Part *ep); +static void _edje_recalc(Edje *ed); static void _edje_edd_setup(void); static void _edje_smart_add(Evas_Object * obj); @@ -77,119 +88,370 @@ ed = _edje_fetch(obj); if (!ed) return; - - /* FIXME: THIS IS A MESS! this nmeeds to be done properly. I've only done */ - /* a quick hack here to "bootstrap" edje to display at all.. anything! */ - /* as a matter of fact it does quite well so far! :) */ + if (!file) return; + if (!part) return; + if (((ed->path) && (!strcmp(file, ed->path))) && + (ed->part) && (!strcmp(part, ed->part))) + return; + _edje_file_del(ed); + if (ed->path) free(ed->path); + ed->path = strdup(file); + if (ed->part) free(ed->part); + ed->part = strdup(part); + _edje_file_add(ed); if (ed->collection) { - printf("FIXME: leak!\n"); + Evas_List *l; + + for (l = ed->collection->parts; l; l = l->next) + { + Edje_Part *ep; + Edje_Real_Part *rp; + char buf[256]; + + ep = l->data; + rp = calloc(1, sizeof(Edje_Real_Part)); + if (!rp) return; + ed->parts = evas_list_append(ed->parts, rp); + rp->param1.description = ep->default_desc; + if (ep->type == EDJE_PART_TYPE_RECTANGLE) + rp->object = evas_object_rectangle_add(ed->evas); + else if (ep->type == EDJE_PART_TYPE_IMAGE) + rp->object = evas_object_image_add(ed->evas); + else if (ep->type == EDJE_PART_TYPE_TEXT) + rp->object = evas_object_text_add(ed->evas); + evas_object_clip_set(rp->object, ed->clipper); + evas_object_show(rp->object); + rp->part = ep; + } + for (l = ed->parts; l; l = l->next) + { + Edje_Real_Part *rp; + + rp = l->data; + if (rp->param1.description->rel1.id >= 0) + rp->param1.rel1_to = evas_list_nth(ed->parts, rp->param1.description->rel1.id); + if (rp->param1.description->rel2.id >= 0) + rp->param1.rel2_to = evas_list_nth(ed->parts, rp->param1.description->rel2.id); + } + ed->dirty = 1; + _edje_recalc(ed); } +} + +/*** internal calls ***/ + +/* utility functions we will use a lot */ + +Edje * +_edje_fetch(Evas_Object *obj) +{ + Edje *ed; + char *type; + + type = (char *)evas_object_type_get(obj); + if (!type) return NULL; + if (strcmp(type, "edje")) return NULL; + ed = evas_object_smart_data_get(obj); + return ed; +} + +Edje * +_edje_add(Evas_Object *obj) +{ + Edje *ed; + + ed = calloc(1, sizeof(Edje)); + if (!ed) return NULL; + ed->evas = evas_object_evas_get(obj); + ed->clipper = evas_object_rectangle_add(ed->evas); + evas_object_smart_member_add(ed->clipper, obj); + evas_object_color_set(ed->clipper, 255, 255, 255, 255); + evas_object_move(ed->clipper, 0, 0); + evas_object_resize(ed->clipper, 0, 0); + return ed; +} + +void +_edje_del(Edje *ed) +{ + evas_object_del(ed->clipper); + free(ed); +} + +static Evas_Hash *_edje_file_hash = NULL; + +void +_edje_file_add(Edje *ed) +{ + Eet_File *ef = NULL; + Edje_Part_Collection *pc = NULL; + Evas_List *l; + int id = -1; + + /* FIXME: look in hash table first */ + ed->file = evas_hash_find(_edje_file_hash, ed->path); if (ed->file) { - printf("FIXME: leak!\n"); + ed->file->references++; } - /*****/ + else { - Eet_File *ef; - Edje_Part_Collection *pc; - - ef = eet_open(file, EET_FILE_MODE_READ); + ef = eet_open(ed->path, EET_FILE_MODE_READ); if (!ef) return; + ed->file = eet_data_read(ef, _edje_edd_edje_file, "edje_file"); - if (ed->file) + if (!ed->file) goto out; + + ed->file->references = 1; + ed->file->path = strdup(ed->path); + if (!ed->file->collection_dir) { - Evas_List *l; - int id; - - ed->file->path = strdup(file); - printf("images...!\n"); - for (l = ed->file->image_dir->entries; l; l = l->next) - { - Edje_Image_Directory_Entry *ie; - - ie = l->data; - printf("img: \"%s\" type=%i param=%i id=%i\n", - ie->entry, ie->source_type, ie->source_param, ie->id); - } - id = -1; - for (l = ed->file->collection_dir->entries; l; l = l->next) - { - Edje_Part_Collection_Directory_Entry *ce; - - ce = l->data; - if ((ce->entry) && (!strcmp(ce->entry, part))) - { - id = ce->id; - break; - } - } - if (id >= 0) - { - char buf[256]; - - snprintf(buf, sizeof(buf), "collections/%i", id); - printf("need %s\n", buf); - ed->collection = eet_data_read(ef, _edje_edd_edje_part_collection, buf); - } + /* FIXME: free up ed->file */ + ed->file = NULL; + goto out; } - eet_close(ef); + _edje_file_hash = evas_hash_add(_edje_file_hash, ed->path, ed->file); } + + ed->collection = evas_hash_find(ed->file->collection_hash, ed->part); if (ed->collection) { - Evas_List *l; - - printf("LOAD done... build\n"); - for (l = ed->collection->parts; l; l = l->next) + ed->collection->references++; + } + else + { + for (l = ed->file->collection_dir->entries; l; l = l->next) { - Edje_Part *ep; - Edje_Real_Part *rp; - char buf[256]; + Edje_Part_Collection_Directory_Entry *ce; - ep = l->data; - rp = calloc(1, sizeof(Edje_Real_Part)); - if (!rp) + ce = l->data; + if ((ce->entry) && (!strcmp(ce->entry, ed->part))) { - /* FIXME: memory error! */ - return; + id = ce->id; + break; } - ed->parts = evas_list_append(ed->parts, rp); - rp->part = ep; - printf("part %s\n", rp->part->name); - rp->param1.description = rp->part->default_desc; - rp->object = evas_object_image_add(ed->evas); - evas_object_clip_set(rp->object, ed->clipper); - evas_object_show(rp->object); - snprintf(buf, sizeof(buf), "images/%i", rp->part->default_desc->image.id); - evas_object_image_file_set(rp->object, ed->file->path, buf); } - for (l = ed->parts; l; l = l->next) + if (id >= 0) { + char buf[256]; + + snprintf(buf, sizeof(buf), "collections/%i", id); + if (!ef) eet_open(ed->path, EET_FILE_MODE_READ); + if (!ef) goto out; + ed->collection = eet_data_read(ef, + _edje_edd_edje_part_collection, + buf); + if (!ed->collection) goto out; + ed->collection->references = 1; + ed->file->collection_hash = evas_hash_add(ed->file->collection_hash, ed->part, ed->collection); } } + out: + if (ef) eet_close(ef); } -/*** internal calls ***/ +void +_edje_file_del(Edje *ed) +{ + if (ed->collection) + { + ed->collection->references--; + if (ed->collection->references <= 0) + _edje_collection_free(ed->collection); + ed->collection = NULL; + } + if (ed->file) + { + ed->file->references--; + if (ed->file->references <= 0) + _edje_file_free(ed->file); + ed->file = NULL; + } + if (ed->parts) + { + while (ed->parts) + { + Edje_Real_Part *rp; + + rp = ed->parts->data; + evas_object_del(rp->object); + if (rp->text.text) free(rp->text.text); + if (rp->text.font) free(rp->text.font); + free(rp); + ed->parts = evas_list_remove(ed->parts, ed->parts->data); + } + ed->parts = NULL; + } + if (ed->actions) + { +// printf("FIXME: leak!\n"); + ed->actions = NULL; + } +} + +void +_edje_file_free(Edje_File *edf) +{ + printf("FIXME: leak!\n"); +} + +void +_edje_collection_free(Edje_Part_Collection *ec) +{ + printf("FIXME: leak!\n"); +} /* manipulation calls */ static void -_edje_part_description_apply(Edje *ed, - Edje_Real_Part *ep, - Edje_Part_Description *de1, - Edje_Part_Description *de2, - double pos) -{ - if ((ep->param1.description == de1) && - (ep->param2.description == de2) && - (ep->description_pos == pos)) - return; +_edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, double pos) +{ + double npos; + + if (pos > 1.0) pos = 1.0; + else if (pos < 0.0) pos = 0.0; + npos = 0.0; + /* take linear pos along timescale and use interpolation method */ + switch (mode) + { + case EDJE_TWEEN_MODE_SINUSOIDAL: + npos = (1.0 - cos(pos * PI)) / 2.0; + break; + case EDJE_TWEEN_MODE_ACCELERATE: + npos = 1.0 - sin((PI / 2.0) + (pos * PI / 2.0)); + break; + case EDJE_TWEEN_MODE_DECELERATE: + npos = sin(pos * PI / 2.0); + break; + case EDJE_TWEEN_MODE_LINEAR: + default: + npos = ep->description_pos; + break; + } + if (npos == ep->description_pos) return; - ep->param1.description = de1; - ep->param2.description = de2; - ep->description_pos = pos; + ep->description_pos = npos; ed->dirty = 1; + ep->dirty = 1; +} + +static void +_edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, char *d1, double v1, char *d2, double v2) +{ + char *cd1 = "default", *cd2 = "default"; + double cv1 = 0.0, cv2 = 0.0; + int d1_change = 0; + int d2_change = 0; + + if (!d1) d1 = "default"; + if (!d2) d2 = "default"; + if (ep->param1.description) + { + cd1 = ep->param1.description->state.name; + cv1 = ep->param1.description->state.value; + } + if (ep->param2.description) + { + cd2 = ep->param2.description->state.name; + cv2 = ep->param2.description->state.value; + } + if ((v1 != cv1) || (strcmp(d1, cd1))) d1_change = 1; + if ((v2 != cv2) || (strcmp(d2, cd2))) d2_change = 1; + if ((!d1_change) && (!d2_change)) return; + + if (d1_change) + { + if (!strcmp(d1, "default") && (v1 == 0.0)) + ep->param1.description = ep->part->default_desc; + else + { + Evas_List *l; + double min_dst = 999.0; + Edje_Part_Description *desc_found = NULL; + + for (l = ep->part->other_desc; l; l = l->next) + { + Edje_Part_Description *desc; + + desc = l->data; + if (!strcmp(desc->state.name, d1)) + { + double dst; + + dst = desc->state.value - v1; + if (dst == 0.0) + { + desc_found = desc; + break; + } + if (dst < 0.0) dst = -dst; + if (dst < min_dst) + { + desc_found = desc; + min_dst = dst; + } + } + } + ep->param1.description = desc_found; + } + ep->param1.rel1_to = NULL; + ep->param1.rel2_to = NULL; + if (ep->param1.description) + { + if (ep->param1.description->rel1.id >= 0) + ep->param1.rel1_to = evas_list_nth(ed->parts, ep->param1.description->rel1.id); + if (ep->param1.description->rel2.id >= 0) + ep->param1.rel2_to = evas_list_nth(ed->parts, ep->param1.description->rel2.id); + } + } + if (d2_change) + { + if (!strcmp(d2, "default") && (v2 == 0.0)) + ep->param2.description = ep->part->default_desc; + else + { + Evas_List *l; + double min_dst = 999.0; + Edje_Part_Description *desc_found = NULL; + + for (l = ep->part->other_desc; l; l = l->next) + { + Edje_Part_Description *desc; + + desc = l->data; + if (!strcmp(desc->state.name, d2)) + { + double dst; + + dst = desc->state.value - v2; + if (dst == 0.0) + { + desc_found = desc; + break; + } + if (dst < 0.0) dst = -dst; + if (dst < min_dst) + { + desc_found = desc; + min_dst = dst; + } + } + } + ep->param2.description = desc_found; + } + ep->param2.rel1_to = NULL; + ep->param2.rel2_to = NULL; + if (ep->param2.description) + { + if (ep->param2.description->rel2.id >= 0) + ep->param2.rel1_to = evas_list_nth(ed->parts, ep->param2.description->rel1.id); + if (ep->param2.description->rel2.id >= 0) + ep->param2.rel2_to = evas_list_nth(ed->parts, ep->param2.description->rel2.id); + } + } + ed->dirty = 1; ep->dirty = 1; } @@ -642,21 +904,6 @@ ed->dirty = 0; } -/* utility functions we will use a lot */ - -Edje * -_edje_fetch(Evas_Object *obj) -{ - Edje *ed; - char *type; - - type = (char *)evas_object_type_get(obj); - if (!type) return NULL; - if (strcmp(type, "edje")) return NULL; - ed = evas_object_smart_data_get(obj); - return ed; -} - static void _edje_edd_setup(void) { @@ -855,24 +1102,6 @@ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "id", id, EET_T_INT); } -/* -Edje_File * -_edje_add(Evas (evas) -{ - Edje *ed; - - ed = calloc(1, sizeof(Edje)); - ed->evas = evas; - return ed; -} - -void -_edje_free(Edje *ed) -{ - free(ed); -} -*/ - /* evas smart object methods - required by evas smart objects to do the */ /* dirty work on smrt objects */ @@ -880,16 +1109,10 @@ _edje_smart_add(Evas_Object * obj) { Edje *ed; - - ed = calloc(1, sizeof(Edje)); + + ed = _edje_add(obj); if (!ed) return; evas_object_smart_data_set(obj, ed); - ed->evas = evas_object_evas_get(obj); - ed->clipper = evas_object_rectangle_add(ed->evas); - evas_object_smart_member_add(ed->clipper, obj); - evas_object_color_set(ed->clipper, 255, 255, 255, 255); - evas_object_move(ed->clipper, 0, 0); - evas_object_resize(ed->clipper, 0, 0); } static void @@ -899,8 +1122,7 @@ ed = evas_object_smart_data_get(obj); if (!ed) return; - evas_object_del(ed->clipper); - free(ed); + _edje_del(ed); } static void =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- edje_private.h 17 Jun 2003 08:15:06 -0000 1.7 +++ edje_private.h 18 Jun 2003 14:20:26 -0000 1.8 @@ -7,6 +7,8 @@ #include <Ecore.h> #include <Eet.h> +#include <math.h> + /* HOW THIS ALL WORKS: * ------------------- * @@ -55,6 +57,8 @@ typedef struct _Edje_Part_Image_Id Edje_Part_Image_Id; typedef struct _Edje_Part_Description Edje_Part_Description; +#define PI 3.14159265358979323846 + #define EDJE_IMAGE_SOURCE_TYPE_NONE 0 #define EDJE_IMAGE_SOURCE_TYPE_INLINE_PERFECT 1 #define EDJE_IMAGE_SOURCE_TYPE_INLINE_LOSSY 2 @@ -95,8 +99,7 @@ Edje_Image_Directory *image_dir; Edje_Part_Collection_Directory *collection_dir; - Evas_List *collection_loaded; - + Evas_Hash *collection_hash; int references; }; @@ -290,7 +293,9 @@ struct _Edje { + char *path; char *part; + int layer; int x, y, w, h; unsigned char dirty : 1; |
From: <enl...@li...> - 2003-06-19 14:43:49
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data/images Added Files: e001.png e002.png e003.png e004.png e005.png e006.png e007.png e008.png e009.png e010.png e011.png e012.png e013.png e014.png e015.png e016.png e017.png e018.png e019.png e020.png e021.png e022.png e023.png e024.png e025.png e026.png e027.png e028.png e029.png e030.png e031.png e032.png e033.png e034.png e035.png e036.png e037.png e038.png e039.png e040.png e041.png e042.png e043.png e044.png e045.png e046.png e047.png e048.png e049.png e050.png e051.png e052.png e053.png e054.png e055.png e056.png e057.png e058.png e059.png e060.png e061.png e062.png e063.png e064.png e065.png e066.png e067.png e068.png e069.png e070.png e071.png e072.png e073.png e074.png e075.png e076.png e077.png e078.png e079.png e080.png e081.png e082.png e083.png e084.png e085.png e086.png e087.png e088.png e089.png e090.png e091.png e092.png e093.png e094.png e095.png e096.png e097.png e098.png e099.png e100.png e101.png e102.png e103.png e104.png e105.png e106.png e107.png e108.png e109.png e110.png e111.png e112.png e113.png e114.png e115.png e116.png e117.png e118.png e119.png e120.png Log Message: Adding code to handle programs, signals, emissions, loops, animation, timers and the whole lot. it WORKS! :) just re-run the e_logo.sh to rebuild an edje .eet file that has animation built in... you'll see. |
From: <enl...@li...> - 2003-06-19 14:44:19
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/bin Modified Files: edje_main.c Log Message: Adding code to handle programs, signals, emissions, loops, animation, timers and the whole lot. it WORKS! :) just re-run the e_logo.sh to rebuild an edje .eet file that has animation built in... you'll see. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_main.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- edje_main.c 17 Jun 2003 08:15:06 -0000 1.3 +++ edje_main.c 19 Jun 2003 14:43:48 -0000 1.4 @@ -47,8 +47,8 @@ ecore_evas_name_class_set(ecore_evas, "edje", "main"); ecore_evas_show(ecore_evas); evas = ecore_evas_get(ecore_evas); - evas_image_cache_set(evas, 8192 * 1024); - evas_font_cache_set(evas, 512 * 1024); + evas_image_cache_set(evas, 1024 * 1024); + evas_font_cache_set(evas, 256 * 1024); // evas_font_path_append(evas, FN); return 1; } @@ -133,6 +133,7 @@ if (main_start(argc, argv) < 1) return -1; edje_init(); + edje_frametime_set(1.0 / 60.0); /* 60 fps */ bg_setup(); |
From: <enl...@li...> - 2003-06-19 14:44:19
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data/src Modified Files: e_logo.edc Log Message: Adding code to handle programs, signals, emissions, loops, animation, timers and the whole lot. it WORKS! :) just re-run the e_logo.sh to rebuild an edje .eet file that has animation built in... you'll see. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/data/src/e_logo.edc,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_logo.edc 17 Jun 2003 08:15:06 -0000 1.2 +++ e_logo.edc 19 Jun 2003 14:43:48 -0000 1.3 @@ -1,6 +1,127 @@ images { image, "bg.png" LOSSY 98; image, "e.png" LOSSY 98; + // used for anim + image, "e001.png" LOSSY 98; + image, "e002.png" LOSSY 98; + image, "e003.png" LOSSY 98; + image, "e004.png" LOSSY 98; + image, "e005.png" LOSSY 98; + image, "e006.png" LOSSY 98; + image, "e007.png" LOSSY 98; + image, "e008.png" LOSSY 98; + image, "e009.png" LOSSY 98; + image, "e010.png" LOSSY 98; + image, "e011.png" LOSSY 98; + image, "e012.png" LOSSY 98; + image, "e013.png" LOSSY 98; + image, "e014.png" LOSSY 98; + image, "e015.png" LOSSY 98; + image, "e016.png" LOSSY 98; + image, "e017.png" LOSSY 98; + image, "e018.png" LOSSY 98; + image, "e019.png" LOSSY 98; + image, "e020.png" LOSSY 98; + image, "e021.png" LOSSY 98; + image, "e022.png" LOSSY 98; + image, "e023.png" LOSSY 98; + image, "e024.png" LOSSY 98; + image, "e025.png" LOSSY 98; + image, "e026.png" LOSSY 98; + image, "e027.png" LOSSY 98; + image, "e028.png" LOSSY 98; + image, "e029.png" LOSSY 98; + image, "e030.png" LOSSY 98; + image, "e031.png" LOSSY 98; + image, "e032.png" LOSSY 98; + image, "e033.png" LOSSY 98; + image, "e034.png" LOSSY 98; + image, "e035.png" LOSSY 98; + image, "e036.png" LOSSY 98; + image, "e037.png" LOSSY 98; + image, "e038.png" LOSSY 98; + image, "e039.png" LOSSY 98; + image, "e040.png" LOSSY 98; + image, "e041.png" LOSSY 98; + image, "e042.png" LOSSY 98; + image, "e043.png" LOSSY 98; + image, "e044.png" LOSSY 98; + image, "e045.png" LOSSY 98; + image, "e046.png" LOSSY 98; + image, "e047.png" LOSSY 98; + image, "e048.png" LOSSY 98; + image, "e049.png" LOSSY 98; + image, "e050.png" LOSSY 98; + image, "e051.png" LOSSY 98; + image, "e052.png" LOSSY 98; + image, "e053.png" LOSSY 98; + image, "e054.png" LOSSY 98; + image, "e055.png" LOSSY 98; + image, "e056.png" LOSSY 98; + image, "e057.png" LOSSY 98; + image, "e058.png" LOSSY 98; + image, "e059.png" LOSSY 98; + image, "e060.png" LOSSY 98; + image, "e061.png" LOSSY 98; + image, "e062.png" LOSSY 98; + image, "e063.png" LOSSY 98; + image, "e064.png" LOSSY 98; + image, "e065.png" LOSSY 98; + image, "e066.png" LOSSY 98; + image, "e067.png" LOSSY 98; + image, "e068.png" LOSSY 98; + image, "e069.png" LOSSY 98; + image, "e070.png" LOSSY 98; + image, "e071.png" LOSSY 98; + image, "e072.png" LOSSY 98; + image, "e073.png" LOSSY 98; + image, "e074.png" LOSSY 98; + image, "e075.png" LOSSY 98; + image, "e076.png" LOSSY 98; + image, "e077.png" LOSSY 98; + image, "e078.png" LOSSY 98; + image, "e079.png" LOSSY 98; + image, "e080.png" LOSSY 98; + image, "e081.png" LOSSY 98; + image, "e082.png" LOSSY 98; + image, "e083.png" LOSSY 98; + image, "e084.png" LOSSY 98; + image, "e085.png" LOSSY 98; + image, "e086.png" LOSSY 98; + image, "e087.png" LOSSY 98; + image, "e088.png" LOSSY 98; + image, "e089.png" LOSSY 98; + image, "e090.png" LOSSY 98; + image, "e091.png" LOSSY 98; + image, "e092.png" LOSSY 98; + image, "e093.png" LOSSY 98; + image, "e094.png" LOSSY 98; + image, "e095.png" LOSSY 98; + image, "e096.png" LOSSY 98; + image, "e097.png" LOSSY 98; + image, "e098.png" LOSSY 98; + image, "e099.png" LOSSY 98; + image, "e100.png" LOSSY 98; + image, "e101.png" LOSSY 98; + image, "e102.png" LOSSY 98; + image, "e103.png" LOSSY 98; + image, "e104.png" LOSSY 98; + image, "e105.png" LOSSY 98; + image, "e106.png" LOSSY 98; + image, "e107.png" LOSSY 98; + image, "e108.png" LOSSY 98; + image, "e109.png" LOSSY 98; + image, "e110.png" LOSSY 98; + image, "e111.png" LOSSY 98; + image, "e112.png" LOSSY 98; + image, "e113.png" LOSSY 98; + image, "e114.png" LOSSY 98; + image, "e115.png" LOSSY 98; + image, "e116.png" LOSSY 98; + image, "e117.png" LOSSY 98; + image, "e118.png" LOSSY 98; + image, "e119.png" LOSSY 98; + image, "e120.png" LOSSY 98; } collections { @@ -26,6 +147,7 @@ border, 12 12 12 12; } } +/* part { name, "logo"; description { @@ -60,21 +182,171 @@ } } } + */ + part { + name, "logo_anim"; + description { + state, "default" 0.0; + max, 160 120; + aspect, 1.3333 1.3333; + rel1 { + relative, 0.0 0.0; + offset, 16 16; + } + rel2 { + relative, 1.0 1.0; + offset, -17 -17; + } + image { + normal, "e120.png"; + tween, "e001.png"; + tween, "e002.png"; + tween, "e003.png"; + tween, "e004.png"; + tween, "e005.png"; + tween, "e006.png"; + tween, "e007.png"; + tween, "e008.png"; + tween, "e009.png"; + tween, "e010.png"; + tween, "e011.png"; + tween, "e012.png"; + tween, "e013.png"; + tween, "e014.png"; + tween, "e015.png"; + tween, "e016.png"; + tween, "e017.png"; + tween, "e018.png"; + tween, "e019.png"; + tween, "e020.png"; + tween, "e021.png"; + tween, "e022.png"; + tween, "e023.png"; + tween, "e024.png"; + tween, "e025.png"; + tween, "e026.png"; + tween, "e027.png"; + tween, "e028.png"; + tween, "e029.png"; + tween, "e030.png"; + tween, "e031.png"; + tween, "e032.png"; + tween, "e033.png"; + tween, "e034.png"; + tween, "e035.png"; + tween, "e036.png"; + tween, "e037.png"; + tween, "e038.png"; + tween, "e039.png"; + tween, "e040.png"; + tween, "e041.png"; + tween, "e042.png"; + tween, "e043.png"; + tween, "e044.png"; + tween, "e045.png"; + tween, "e046.png"; + tween, "e047.png"; + tween, "e048.png"; + tween, "e049.png"; + tween, "e050.png"; + tween, "e051.png"; + tween, "e052.png"; + tween, "e053.png"; + tween, "e054.png"; + tween, "e055.png"; + tween, "e056.png"; + tween, "e057.png"; + tween, "e058.png"; + tween, "e059.png"; + tween, "e060.png"; + tween, "e061.png"; + tween, "e062.png"; + tween, "e063.png"; + tween, "e064.png"; + tween, "e065.png"; + tween, "e066.png"; + tween, "e067.png"; + tween, "e068.png"; + tween, "e069.png"; + tween, "e070.png"; + tween, "e071.png"; + tween, "e072.png"; + tween, "e073.png"; + tween, "e074.png"; + tween, "e075.png"; + tween, "e076.png"; + tween, "e077.png"; + tween, "e078.png"; + tween, "e079.png"; + tween, "e080.png"; + tween, "e081.png"; + tween, "e082.png"; + tween, "e083.png"; + tween, "e084.png"; + tween, "e085.png"; + tween, "e086.png"; + tween, "e087.png"; + tween, "e088.png"; + tween, "e089.png"; + tween, "e090.png"; + tween, "e091.png"; + tween, "e092.png"; + tween, "e093.png"; + tween, "e094.png"; + tween, "e095.png"; + tween, "e096.png"; + tween, "e097.png"; + tween, "e098.png"; + tween, "e099.png"; + tween, "e100.png"; + tween, "e101.png"; + tween, "e102.png"; + tween, "e103.png"; + tween, "e104.png"; + tween, "e105.png"; + tween, "e106.png"; + tween, "e107.png"; + tween, "e108.png"; + tween, "e109.png"; + tween, "e110.png"; + tween, "e111.png"; + tween, "e112.png"; + tween, "e113.png"; + tween, "e114.png"; + tween, "e115.png"; + tween, "e116.png"; + tween, "e117.png"; + tween, "e118.png"; + tween, "e119.png"; + } + } + } } programs { +/* program { name, "logo_click"; - signal, "mouse-down-1"; + signal, "mouse,down,1"; source, "logo"; action, STATE_SET "clicked" 0.0; target, "logo"; } program { name, "logo_unclick"; - signal, "mouse-up-1"; + signal, "mouse,up,1"; source, "logo"; action, STATE_SET "default" 0.0; target, "logo"; + } + */ + program { + name, "logo_animate"; + signal, "load"; + source, "test"; + action, STATE_SET "default" 0.0; + transition, LINEAR, 4.0; + target, "logo_anim"; + after, "logo_animate"; // at end... loop } } } |
From: <enl...@li...> - 2003-06-19 14:44:20
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/lib Modified Files: Edje.h edje_main.c edje_private.h Log Message: Adding code to handle programs, signals, emissions, loops, animation, timers and the whole lot. it WORKS! :) just re-run the e_logo.sh to rebuild an edje .eet file that has animation built in... you'll see. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/Edje.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Edje.h 17 Jun 2003 08:15:06 -0000 1.2 +++ Edje.h 19 Jun 2003 14:43:49 -0000 1.3 @@ -12,6 +12,8 @@ /***************************************************************************/ void edje_init(void); + void edje_frametime_set(double t); + double edje_frametime_get(void); Evas_Object *edje_add(Evas *evas); void edje_file_set(Evas_Object *o, const char *file, const char *part); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- edje_main.c 18 Jun 2003 14:20:26 -0000 1.6 +++ edje_main.c 19 Jun 2003 14:43:49 -0000 1.7 @@ -9,6 +9,17 @@ void _edje_file_free(Edje_File *edf); void _edje_collection_free(Edje_Part_Collection *ec); +static void _edje_mouse_in_cb(void *data, Evas * e, Evas_Object * obj, void *event_info); +static void _edje_mouse_out_cb(void *data, Evas * e, Evas_Object * obj, void *event_info); +static void _edje_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, void *event_info); +static void _edje_mouse_up_cb(void *data, Evas * e, Evas_Object * obj, void *event_info); +static void _edje_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, void *event_info); +static void _edje_mouse_wheel_cb(void *data, Evas * e, Evas_Object * obj, void *event_info); +static int _edje_timer_cb(void *data); +static int _edje_program_run_iterate(Edje_Running_Program *runp, double tim); +static void _edje_program_run(Edje *ed, Edje_Program *pr); +static void _edje_emit(Edje *ed, char *sig, char *src); +static int _edje_glob_match(char *str, char *glob); static void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, double pos); static void _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, char *d1, double v1, char *d2, double v2); static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep, Edje_Part_Description *desc, Edje_Part_Description *chosen_desc, Edje_Real_Part *rel1_to, Edje_Real_Part *rel2_to, Edje_Real_Part *confine_to, Edje_Calc_Params *params); @@ -43,6 +54,11 @@ Eet_Data_Descriptor *_edje_edd_edje_part_description = NULL; Eet_Data_Descriptor *_edje_edd_edje_part_image_id = NULL; +static int _edje_anim_count = 0; +static double _edje_frametime = 1.0 / 60.0; +static Ecore_Timer *_edje_timer = NULL; +static Evas_List *_edje_animators = NULL; + static Evas_Smart *_edje_smart = NULL; void @@ -55,6 +71,24 @@ _edje_edd_setup(); } +void +edje_frametime_set(double t) +{ + if (t == _edje_frametime) return; + _edje_frametime = t; + if (_edje_timer) + { + ecore_timer_del(_edje_timer); + _edje_timer = ecore_timer_add(_edje_frametime, _edje_timer_cb, NULL); + } +} + +double +edje_frametime_get(void) +{ + return _edje_frametime; +} + Evas_Object * edje_add(Evas *evas) { @@ -120,6 +154,34 @@ rp->object = evas_object_image_add(ed->evas); else if (ep->type == EDJE_PART_TYPE_TEXT) rp->object = evas_object_text_add(ed->evas); + if (ep->mouse_events) + { + evas_object_event_callback_add(rp->object, + EVAS_CALLBACK_MOUSE_IN, + _edje_mouse_in_cb, + ed); + evas_object_event_callback_add(rp->object, + EVAS_CALLBACK_MOUSE_OUT, + _edje_mouse_out_cb, + ed); + evas_object_event_callback_add(rp->object, + EVAS_CALLBACK_MOUSE_DOWN, + _edje_mouse_down_cb, + ed); + evas_object_event_callback_add(rp->object, + EVAS_CALLBACK_MOUSE_UP, + _edje_mouse_up_cb, + ed); + evas_object_event_callback_add(rp->object, + EVAS_CALLBACK_MOUSE_MOVE, + _edje_mouse_move_cb, + ed); + evas_object_event_callback_add(rp->object, + EVAS_CALLBACK_MOUSE_WHEEL, + _edje_mouse_wheel_cb, + ed); + evas_object_data_set(rp->object, "real_part", rp); + } evas_object_clip_set(rp->object, ed->clipper); evas_object_show(rp->object); rp->part = ep; @@ -136,6 +198,7 @@ } ed->dirty = 1; _edje_recalc(ed); + _edje_emit(ed, "load", ed->part); } } @@ -175,6 +238,9 @@ void _edje_del(Edje *ed) { + _edje_file_del(ed); + if (ed->path) free(ed->path); + if (ed->part) free(ed->part); evas_object_del(ed->clipper); free(ed); } @@ -305,6 +371,254 @@ /* manipulation calls */ static void +_edje_mouse_in_cb(void *data, Evas * e, Evas_Object * obj, void *event_info) +{ + Evas_Event_Mouse_In *ev; + Edje *ed; + Edje_Real_Part *rp; + + ev = event_info; + ed = data; + rp = evas_object_data_get(obj, "real_part"); + if (!rp) return; + _edje_emit(ed, "mouse,in", rp->part->name); +} + +static void +_edje_mouse_out_cb(void *data, Evas * e, Evas_Object * obj, void *event_info) +{ + Evas_Event_Mouse_Out *ev; + Edje *ed; + Edje_Real_Part *rp; + + ev = event_info; + ed = data; + rp = evas_object_data_get(obj, "real_part"); + if (!rp) return; + _edje_emit(ed, "mouse,out", rp->part->name); +} + +static void +_edje_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, void *event_info) +{ + Evas_Event_Mouse_Down *ev; + Edje *ed; + Edje_Real_Part *rp; + char buf[256]; + + ev = event_info; + ed = data; + rp = evas_object_data_get(obj, "real_part"); + if (!rp) return; + snprintf(buf, sizeof(buf), "mouse,down,%i", ev->button); + _edje_emit(ed, buf, rp->part->name); +} + +static void +_edje_mouse_up_cb(void *data, Evas * e, Evas_Object * obj, void *event_info) +{ + Evas_Event_Mouse_Up *ev; + Edje *ed; + Edje_Real_Part *rp; + char buf[256]; + + ev = event_info; + ed = data; + rp = evas_object_data_get(obj, "real_part"); + if (!rp) return; + snprintf(buf, sizeof(buf), "mouse,down,%i", ev->button); + _edje_emit(ed, buf, rp->part->name); +} + +static void +_edje_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, void *event_info) +{ + Evas_Event_Mouse_Move *ev; + Edje *ed; + Edje_Real_Part *rp; + + ev = event_info; + ed = data; + rp = evas_object_data_get(obj, "real_part"); + if (!rp) return; + _edje_emit(ed, "mouse,move", rp->part->name); +} + +static void +_edje_mouse_wheel_cb(void *data, Evas * e, Evas_Object * obj, void *event_info) +{ + Evas_Event_Mouse_Wheel *ev; + Edje *ed; + Edje_Real_Part *rp; + char buf[256]; + + ev = event_info; + ed = data; + rp = evas_object_data_get(obj, "real_part"); + if (!rp) return; + snprintf(buf, sizeof(buf), "mouse,wheel,%i,%i", ev->direction, (ev->z < 0) ? (-1) : (1)); + _edje_emit(ed, buf, rp->part->name); +} + +static int +_edje_timer_cb(void *data) +{ + double t; + Evas_List *l; + Evas_List *animl = NULL; + + t = ecore_time_get(); + for (l = _edje_animators; l; l = l->next) + animl = evas_list_append(animl, l->data); + while (animl) + { + Edje *ed; + Evas_List *ll, *newl = NULL; + + ed = animl->data; + animl = evas_list_remove(animl, animl->data); + for (ll = ed->actions; ll; ll = ll->next) + newl = evas_list_append(newl, ll->data); + while (newl) + { + Edje_Running_Program *runp; + + runp = newl->data; + newl = evas_list_remove(newl, newl->data); + _edje_program_run_iterate(runp, t); + } + } + if (_edje_anim_count > 0) return 1; + _edje_timer = NULL; + return 0; +} + +static int +_edje_program_run_iterate(Edje_Running_Program *runp, double tim) +{ + double t, total; + Evas_List *l; + + t = tim - runp->start_time; + total = runp->program->tween.time; + t /= total; + if (t > 1.0) t = 1.0; + for (l = runp->program->targets; l; l = l->next) + { + Edje_Real_Part *rp; + Edje_Program_Target *pt; + + pt = l->data; + rp = evas_list_nth(runp->edje->parts, pt->id); + if (rp) _edje_part_pos_set(runp->edje, rp, + runp->program->tween.mode, t); + } + if (t >= 1.0) + { + for (l = runp->program->targets; l; l = l->next) + { + Edje_Real_Part *rp; + Edje_Program_Target *pt; + + pt = l->data; + rp = evas_list_nth(runp->edje->parts, pt->id); + if (rp) + { + _edje_part_description_apply(runp->edje, rp, + runp->program->state, + runp->program->value, + NULL, + 0.0); + _edje_part_pos_set(runp->edje, rp, + runp->program->tween.mode, 0.0); + } + } + _edje_recalc(runp->edje); + _edje_anim_count--; + runp->edje->actions = evas_list_remove(runp->edje->actions, runp); + if (!runp->edje->actions) + _edje_animators = evas_list_remove(_edje_animators, runp->edje); + _edje_emit(runp->edje, "anim,stop", runp->program->name); + if (runp->program->after >= 0) + { + Edje_Program *pr; + + pr = evas_list_nth(runp->edje->collection->programs, + runp->program->after); + if (pr) _edje_program_run(runp->edje, pr); + } + free(runp); + return 0; + } + _edje_recalc(runp->edje); + return 1; +} + +static void +_edje_program_run(Edje *ed, Edje_Program *pr) +{ + Evas_List *l; + + for (l = pr->targets; l; l = l->next) + { + Edje_Real_Part *rp; + Edje_Program_Target *pt; + + pt = l->data; + rp = evas_list_nth(ed->parts, pt->id); + if (rp) + { + _edje_part_description_apply(ed, rp, + rp->param1.description->state.name, + rp->param1.description->state.value, + pr->state, + pr->value); + _edje_part_pos_set(ed, rp, pr->tween.mode, 0.0); + } + } + _edje_emit(ed, "anim,start", pr->name); + if (pr->tween.time > 0.0) + { + Edje_Running_Program *runp; + + runp = calloc(1, sizeof(Edje_Running_Program)); + if (!ed->actions) + _edje_animators = evas_list_append(_edje_animators, ed); + ed->actions = evas_list_append(ed->actions, runp); + runp->start_time = ecore_time_get(); + runp->edje = ed; + runp->program = pr; + if (!_edje_timer) + _edje_timer = ecore_timer_add(_edje_frametime, _edje_timer_cb, NULL); + _edje_anim_count++; + } +} + +static void +_edje_emit(Edje *ed, char *sig, char *src) +{ + Evas_List *l; + + printf("EMIT %s %s\n", sig, src); + for (l = ed->collection->programs; l; l = l->next) + { + Edje_Program *pr; + + pr = l->data; + if ((_edje_glob_match(sig, pr->signal)) && + (_edje_glob_match(src, pr->source))) + _edje_program_run(ed, pr); + } +} + +static int +_edje_glob_match(char *str, char *glob) +{ + if (!fnmatch(glob, str, 0)) return 1; + return 0; +} + +static void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, double pos) { double npos; @@ -325,16 +639,17 @@ npos = sin(pos * PI / 2.0); break; case EDJE_TWEEN_MODE_LINEAR: + npos = pos; + break; default: - npos = ep->description_pos; break; } if (npos == ep->description_pos) return; - + ep->description_pos = npos; ed->dirty = 1; - ep->dirty = 1; + ep->dirty = 1; } static void @@ -357,10 +672,12 @@ cd2 = ep->param2.description->state.name; cv2 = ep->param2.description->state.value; } + d1_change = 1; + d2_change = 1; if ((v1 != cv1) || (strcmp(d1, cd1))) d1_change = 1; if ((v2 != cv2) || (strcmp(d2, cd2))) d2_change = 1; if ((!d1_change) && (!d2_change)) return; - + if (d1_change) { if (!strcmp(d1, "default") && (v1 == 0.0)) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- edje_private.h 18 Jun 2003 14:20:26 -0000 1.8 +++ edje_private.h 19 Jun 2003 14:43:49 -0000 1.9 @@ -8,6 +8,7 @@ #include <Eet.h> #include <math.h> +#include <fnmatch.h> /* HOW THIS ALL WORKS: * ------------------- @@ -290,6 +291,7 @@ typedef struct _Edje Edje; typedef struct _Edje_Real_Part Edje_Real_Part; +typedef struct _Edje_Running_Program Edje_Running_Program; struct _Edje { @@ -329,6 +331,13 @@ Edje_Real_Part *rel2_to; Edje_Real_Part *confine_to; } param1, param2; +}; + +struct _Edje_Running_Program +{ + Edje *edje; + Edje_Program *program; + double start_time; }; typedef struct _Edje_Calc_Params Edje_Calc_Params; |
From: <enl...@li...> - 2003-06-19 15:02:23
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/lib Modified Files: edje_main.c Log Message: 1 copy & paste bug in edje_cc. fixed non animated programs =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_main.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- edje_main.c 19 Jun 2003 14:43:49 -0000 1.7 +++ edje_main.c 19 Jun 2003 15:02:21 -0000 1.8 @@ -426,7 +426,7 @@ ed = data; rp = evas_object_data_get(obj, "real_part"); if (!rp) return; - snprintf(buf, sizeof(buf), "mouse,down,%i", ev->button); + snprintf(buf, sizeof(buf), "mouse,up,%i", ev->button); _edje_emit(ed, buf, rp->part->name); } @@ -559,27 +559,28 @@ { Evas_List *l; - for (l = pr->targets; l; l = l->next) - { - Edje_Real_Part *rp; - Edje_Program_Target *pt; - - pt = l->data; - rp = evas_list_nth(ed->parts, pt->id); - if (rp) - { - _edje_part_description_apply(ed, rp, - rp->param1.description->state.name, - rp->param1.description->state.value, - pr->state, - pr->value); - _edje_part_pos_set(ed, rp, pr->tween.mode, 0.0); - } - } _edje_emit(ed, "anim,start", pr->name); if (pr->tween.time > 0.0) { Edje_Running_Program *runp; + + for (l = pr->targets; l; l = l->next) + { + Edje_Real_Part *rp; + Edje_Program_Target *pt; + + pt = l->data; + rp = evas_list_nth(ed->parts, pt->id); + if (rp) + { + _edje_part_description_apply(ed, rp, + rp->param1.description->state.name, + rp->param1.description->state.value, + pr->state, + pr->value); + _edje_part_pos_set(ed, rp, pr->tween.mode, 0.0); + } + } runp = calloc(1, sizeof(Edje_Running_Program)); if (!ed->actions) @@ -591,6 +592,26 @@ if (!_edje_timer) _edje_timer = ecore_timer_add(_edje_frametime, _edje_timer_cb, NULL); _edje_anim_count++; + } + else + { + for (l = pr->targets; l; l = l->next) + { + Edje_Real_Part *rp; + Edje_Program_Target *pt; + + pt = l->data; + rp = evas_list_nth(ed->parts, pt->id); + if (rp) + { + _edje_part_description_apply(ed, rp, + pr->state, + pr->value, + NULL, + 0.0); + _edje_part_pos_set(ed, rp, pr->tween.mode, 0.0); + } + } } } |
From: <enl...@li...> - 2003-06-19 15:02:52
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/src/bin Modified Files: edje_cc_parse.c Log Message: 1 copy & paste bug in edje_cc. fixed non animated programs =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/src/bin/edje_cc_parse.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- edje_cc_parse.c 16 Jun 2003 13:55:12 -0000 1.5 +++ edje_cc_parse.c 19 Jun 2003 15:02:21 -0000 1.6 @@ -487,10 +487,10 @@ progname, file_in, line, n + 1); exit(-1); } - i = atoi(str); + i = atof(str); if ((i < f) || (i > t)) { - fprintf(stderr, "%s: Error. %s:%i integer %i out of range of %i to %i inclusive\n", + fprintf(stderr, "%s: Error. %s:%i integer %i out of range of %3.3f to %3.3f inclusive\n", progname, file_in, line, i, f, t); exit(-1); } |
From: <enl...@li...> - 2003-06-19 15:02:51
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje Dir : e17/libs/edje/data/src Modified Files: e_logo.edc Log Message: 1 copy & paste bug in edje_cc. fixed non animated programs =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/edje/data/src/e_logo.edc,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_logo.edc 19 Jun 2003 14:43:48 -0000 1.3 +++ e_logo.edc 19 Jun 2003 15:02:20 -0000 1.4 @@ -147,11 +147,11 @@ border, 12 12 12 12; } } -/* part { name, "logo"; description { state, "default" 0.0; + min, 64 64; max, 320 320; aspect, 1.0 1.0; rel1 { @@ -159,8 +159,8 @@ offset, 16 16; } rel2 { - relative, 1.0 1.0; - offset, -17 -17; + relative, 0.3 0.3; + offset, 15 16; } image { normal, "e.png"; @@ -168,21 +168,22 @@ } description { state, "clicked" 0.0; - max, 16 16; + min, 48 48; + max, 280 280; + aspect, 1.0 1.0; rel1 { relative, 0.0 0.0; - offset, 16 16; + offset, 20 20; } rel2 { - relative, 1.0 1.0; - offset, -17 -17; + relative, 0.3 0.3; + offset, 12 12; } image { normal, "e.png"; } } } - */ part { name, "logo_anim"; description { @@ -323,7 +324,6 @@ } } programs { -/* program { name, "logo_click"; signal, "mouse,down,1"; @@ -338,7 +338,6 @@ action, STATE_SET "default" 0.0; target, "logo"; } - */ program { name, "logo_animate"; signal, "load"; |