From 953835bad8315ee1d05e00ba89914d40612693b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Briano?= Date: Tue, 5 Jan 2010 19:26:18 +0000 Subject: [PATCH] Add 'api' keyword to parts and programs. Not used yet, stay tuned. Patch by Thiago Masaki SVN revision: 44912 --- legacy/edje/src/bin/edje_cc_handlers.c | 74 ++++++++++++++++++++++++++ legacy/edje/src/lib/edje_data.c | 4 ++ legacy/edje/src/lib/edje_private.h | 9 ++++ 3 files changed, 87 insertions(+) diff --git a/legacy/edje/src/bin/edje_cc_handlers.c b/legacy/edje/src/bin/edje_cc_handlers.c index 28a362fb69..2e7234acfb 100644 --- a/legacy/edje/src/bin/edje_cc_handlers.c +++ b/legacy/edje/src/bin/edje_cc_handlers.c @@ -201,6 +201,7 @@ static void st_collections_group_parts_part_description_box_min(void); static void st_collections_group_parts_part_description_table_homogeneous(void); static void st_collections_group_parts_part_description_table_align(void); static void st_collections_group_parts_part_description_table_padding(void); +static void st_collections_group_parts_part_api(void); /* external part parameters */ static void st_collections_group_parts_part_description_params_int(void); @@ -216,6 +217,7 @@ 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); +static void st_collections_group_programs_program_api(void); static void ob_collections_group_programs_program_script(void); static void ob_collections_group_programs_program_lua_script(void); @@ -282,6 +284,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.parts.color_classes.color_class.color2", st_color_class_color2}, /* dup */ {"collections.group.parts.color_classes.color_class.color3", st_color_class_color3}, /* dup */ {"collections.group.parts.part.name", st_collections_group_parts_part_name}, + {"collections.group.parts.part.api", st_collections_group_parts_part_api}, {"collections.group.parts.part.type", st_collections_group_parts_part_type}, {"collections.group.parts.part.effect", st_collections_group_parts_part_effect}, {"collections.group.parts.part.mouse_events", st_collections_group_parts_part_mouse_events}, @@ -434,6 +437,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.parts.part.description.programs.program.transition", st_collections_group_programs_program_transition}, /* dup */ {"collections.group.parts.part.description.programs.program.target", st_collections_group_programs_program_target}, /* dup */ {"collections.group.parts.part.description.programs.program.after", st_collections_group_programs_program_after}, /* dup */ + {"collections.group.parts.part.description.programs.program.api", st_collections_group_programs_program_api}, /* dup */ {"collections.group.parts.part.description.program.name", st_collections_group_programs_program_name}, /* dup */ {"collections.group.parts.part.description.program.signal", st_collections_group_programs_program_signal}, /* dup */ {"collections.group.parts.part.description.program.source", st_collections_group_programs_program_source}, /* dup */ @@ -442,6 +446,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.parts.part.description.program.transition", st_collections_group_programs_program_transition}, /* dup */ {"collections.group.parts.part.description.program.target", st_collections_group_programs_program_target}, /* dup */ {"collections.group.parts.part.description.program.after", st_collections_group_programs_program_after}, /* dup */ + {"collections.group.parts.part.description.program.api", st_collections_group_programs_program_api}, /* dup */ {"collections.group.parts.part.programs.image", st_images_image}, /* dup */ {"collections.group.parts.part.programs.images.image", st_images_image}, /* dup */ {"collections.group.parts.part.programs.font", st_fonts_font}, /* dup */ @@ -454,6 +459,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.parts.part.programs.program.transition", st_collections_group_programs_program_transition}, /* dup */ {"collections.group.parts.part.programs.program.target", st_collections_group_programs_program_target}, /* dup */ {"collections.group.parts.part.programs.program.after", st_collections_group_programs_program_after}, /* dup */ + {"collections.group.parts.part.programs.program.api", st_collections_group_programs_program_api}, /* dup */ {"collections.group.parts.part.program.name", st_collections_group_programs_program_name}, /* dup */ {"collections.group.parts.part.program.signal", st_collections_group_programs_program_signal}, /* dup */ {"collections.group.parts.part.program.source", st_collections_group_programs_program_source}, /* dup */ @@ -462,6 +468,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.parts.part.program.transition", st_collections_group_programs_program_transition}, /* dup */ {"collections.group.parts.part.program.target", st_collections_group_programs_program_target}, /* dup */ {"collections.group.parts.part.program.after", st_collections_group_programs_program_after}, /* dup */ + {"collections.group.parts.part.program.api", st_collections_group_programs_program_api}, /* dup */ {"collections.group.parts.programs.image", st_images_image}, /* dup */ {"collections.group.parts.programs.images.image", st_images_image}, /* dup */ {"collections.group.parts.programs.font", st_fonts_font}, /* dup */ @@ -474,6 +481,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.parts.programs.program.transition", st_collections_group_programs_program_transition}, /* dup */ {"collections.group.parts.programs.program.target", st_collections_group_programs_program_target}, /* dup */ {"collections.group.parts.programs.program.after", st_collections_group_programs_program_after}, + {"collections.group.parts.programs.program.api", st_collections_group_programs_program_api}, {"collections.group.parts.program.name", st_collections_group_programs_program_name}, /* dup */ {"collections.group.parts.program.signal", st_collections_group_programs_program_signal}, /* dup */ {"collections.group.parts.program.source", st_collections_group_programs_program_source}, /* dup */ @@ -482,6 +490,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.parts.program.transition", st_collections_group_programs_program_transition}, /* dup */ {"collections.group.parts.program.target", st_collections_group_programs_program_target}, /* dup */ {"collections.group.parts.program.after", st_collections_group_programs_program_after}, /* dup */ + {"collections.group.parts.program.api", st_collections_group_programs_program_api}, /* dup */ {"collections.group.program.name", st_collections_group_programs_program_name}, /* dup */ {"collections.group.program.signal", st_collections_group_programs_program_signal}, /* dup */ {"collections.group.program.source", st_collections_group_programs_program_source}, /* dup */ @@ -490,6 +499,7 @@ New_Statement_Handler statement_handlers[] = {"collections.group.program.transition", st_collections_group_programs_program_transition}, /* dup */ {"collections.group.program.target", st_collections_group_programs_program_target}, /* dup */ {"collections.group.program.after", st_collections_group_programs_program_after}, /* dup */ + {"collections.group.program.api", st_collections_group_programs_program_api}, /* dup */ {"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}, @@ -498,6 +508,7 @@ New_Statement_Handler statement_handlers[] = {"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}, + {"collections.group.programs.program.api", st_collections_group_programs_program_api}, {"collections.group.programs.image", st_images_image}, /* dup */ {"collections.group.programs.images.image", st_images_image}, /* dup */ {"collections.group.programs.font", st_fonts_font}, /* dup */ @@ -6048,6 +6059,69 @@ st_collections_group_programs_program_after(void) } } +/** + @page edcref + @property + api + @parameters + [name] [description] + @effect + Specifies a hint to let applications (or IDE's) know how to bind + things. The parameter name should contain the name of the function that + the application should use, and description describes how it should + be used. + @endproperty +*/ +static void +st_collections_group_programs_program_api(void) +{ + Edje_Part_Collection *pc; + Edje_Program *ep; + + check_min_arg_count(1); + + pc = eina_list_data_get(eina_list_last(edje_collections)); + ep = eina_list_data_get(eina_list_last(pc->programs)); + ep->api.name = parse_str(0); + + if (is_param(1)) + { + check_arg_count(2); + ep->api.description = parse_str(1); + } +} + +/** + @page edcref + @property + api + @parameters + [name] [description] + @effect + Specifies a hint to let applications (or IDE's) know how to bind + things. The parameter name should contain the name of the function that + the application should use, and description describes how it should + be used. + @endproperty +*/ +static void +st_collections_group_parts_part_api(void) +{ + Edje_Part_Collection *pc; + Edje_Part *ep; + + check_min_arg_count(1); + + pc = eina_list_data_get(eina_list_last(edje_collections)); + ep = eina_list_data_get(eina_list_last(pc->parts)); + ep->api.name = parse_str(0); + if (is_param(1)) + { + check_arg_count(2); + ep->api.description = parse_str(1); + } +} + static void ob_collections_group_programs_program_script(void) { diff --git a/legacy/edje/src/lib/edje_data.c b/legacy/edje/src/lib/edje_data.c index 46418687fb..b153e7db40 100644 --- a/legacy/edje/src/lib/edje_data.c +++ b/legacy/edje/src/lib/edje_data.c @@ -225,6 +225,8 @@ _edje_edd_init(void) 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_LIST(_edje_edd_edje_program, Edje_Program, "after", after, _edje_edd_edje_program_after); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "api.name", api.name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "api.description", api.description, EET_T_STRING); EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Image_Id); _edje_edd_edje_part_image_id = @@ -411,6 +413,8 @@ _edje_edd_init(void) EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source5", source5, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "source6", source6, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part, Edje_Part, "items", items, _edje_edd_edje_pack_element); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "api.name", api.name, EET_T_STRING); + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "api.description", api.description, EET_T_STRING); EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part_Collection); _edje_edd_edje_part_collection = diff --git a/legacy/edje/src/lib/edje_private.h b/legacy/edje/src/lib/edje_private.h index 3273b9d4e1..9ea65cd05b 100644 --- a/legacy/edje/src/lib/edje_private.h +++ b/legacy/edje/src/lib/edje_private.h @@ -416,6 +416,11 @@ struct _Edje_Program /* a conditional program to be run */ Eina_List *targets; /* list of target parts to apply the state to */ Eina_List *after; /* list of actions to run at the end of this, for looping */ + + struct { + const char *name; + const char *description; + } api; }; struct _Edje_Program_Target /* the target of an action */ @@ -532,6 +537,10 @@ struct _Edje_Part unsigned char entry_mode; unsigned char select_mode; unsigned char multiline; + struct { + const char *name; + const char *description; + } api; }; struct _Edje_Part_Image_Id