From ffc3810ee8330a80b8b50a95f630981a44a185c7 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Thu, 12 Jun 2003 23:02:45 +0000 Subject: [PATCH] a few more handlers. i think next i need to add a verbose mode for the parser SVN revision: 7019 --- legacy/edje/src/bin/edje_cc_handlers.c | 125 +++++++++++++++++++++++-- 1 file changed, 117 insertions(+), 8 deletions(-) diff --git a/legacy/edje/src/bin/edje_cc_handlers.c b/legacy/edje/src/bin/edje_cc_handlers.c index 0b6f56ae4f..66a7ae77bb 100644 --- a/legacy/edje/src/bin/edje_cc_handlers.c +++ b/legacy/edje/src/bin/edje_cc_handlers.c @@ -1,15 +1,28 @@ #include "edje_cc.h" static void ob_images(void); + static void ob_images_image(void); static void st_images_image(void); static void ob_collections(void); + static void ob_collections_group(void); +static void st_collections_group_name(void); + static void ob_collections_group_parts(void); + static void ob_collections_group_parts_part(void); +static void st_collections_group_parts_part_name(void); +static void st_collections_group_parts_part_type(void); +static void st_collections_group_parts_part_mouse_events(void); +static void st_collections_group_parts_part_color_class(void); + static void ob_collections_group_parts_part_description(void); +static void st_collections_group_parts_part_description_state(void); + static void ob_collections_group_programs(void); + static void ob_collections_group_programs_program(void); /*****/ @@ -41,12 +54,12 @@ New_Object_Handler object_handlers[] = New_Statement_Handler statement_handlers[] = { {"images.image", st_images_image}, - {"collections.group.name", NULL}, - {"collections.group.parts.part.name", NULL}, - {"collections.group.parts.part.type", NULL}, - {"collections.group.parts.part.mouse_events", NULL}, - {"collections.group.parts.part.color_class", NULL}, - {"collections.group.parts.part.description.state", NULL}, + {"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}, @@ -133,24 +146,120 @@ static void ob_collections_group(void) { Edje_Part_Collection_Directory_Entry *de; - + Edje_Part_Collection *pc; + de = mem_alloc(SZ(Edje_Part_Collection_Directory_Entry)); + edje_file->collection_dir->entries = evas_list_append(edje_file->collection_dir->entries, de); + 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; +} + +static void +st_collections_group_name(void) +{ + Edje_Part_Collection_Directory_Entry *de; + + de = evas_list_data(evas_list_last(edje_file->collection_dir->entries)); + de->entry = parse_str(0); } static void ob_collections_group_parts(void) { - Edje_Part_Collection *pc; } static void ob_collections_group_parts_part(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + + ep = mem_alloc(SZ(Edje_Part)); + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + pc->parts = evas_list_append(pc->parts, ep); + ep->id = evas_list_count(pc->parts) - 1; +} + +static void +st_collections_group_parts_part_name(void) { + Edje_Part_Collection *pc; + Edje_Part *ep; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ep->name = parse_str(0); +} + +static void +st_collections_group_parts_part_type(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + + 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, + "RECT", EDJE_PART_TYPE_RECTANGLE, + "TEXT", EDJE_PART_TYPE_TEXT, + "IMAGE", EDJE_PART_TYPE_IMAGE, + NULL); +} + +static void +st_collections_group_parts_part_mouse_events(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ep->mouse_events = parse_int_range(0, 0, 1); +} + +static void +st_collections_group_parts_part_color_class(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + + pc = evas_list_data(evas_list_last(edje_file->collection_loaded)); + ep = evas_list_data(evas_list_last(pc->parts)); + ep->color_class = parse_str(0); } static void ob_collections_group_parts_part_description(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 = mem_alloc(SZ(Edje_Part_Description)); + if (!ep->default_desc) + ep->default_desc = ed; + else + ep->other_desc = evas_list_append(ep->other_desc, ed); +} + +static void +st_collections_group_parts_part_description_state(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->state.name = parse_str(0); + ed->state.value = parse_float_range(1, 0.0, 1.0); } static void