do you intend this usage?
targets: "a b c d"; 

------------------------------------
-Regards, Hermet-

-----Original Message-----
From: "Mike Blumenkrantz"<michael.blumenkra...@gmail.com> 
To: <g...@lists.enlightenment.org>; 
Cc: 
Sent: 2014-03-21 (금) 08:41:06
Subject: [EGIT] [core/efl] master 01/01: edje_cc now supports program.targets 
keyword for adding N targets in one line

discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c4fc401d87c681ab7e8d0b36ab0aeb7c749c54d3

commit c4fc401d87c681ab7e8d0b36ab0aeb7c749c54d3
Author: Mike Blumenkrantz <zmike>@samsung.com>
Date:   Thu Mar 20 19:36:00 2014 -0400

    edje_cc now supports program.targets keyword for adding N targets in one 
line
    
    @feature
---
 src/bin/edje/edje_cc_handlers.c  144 ++++++++++++++++++++++++----------------
 1 file changed, 88 insertions(+), 56 deletions(-)

diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index ddb765e..4f3a9b3 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -382,6 +382,7 @@ static void st_collections_group_programs_program_in(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_targets(void);
 static void st_collections_group_programs_program_after(void);
 static void st_collections_group_programs_program_api(void);
 
@@ -748,6 +749,7 @@ New_Statement_Handler statement_handlers[] =
      {"collections.group.parts.part.description.programs.program.action", 
st_collections_group_programs_program_action}, /* dup */
      {"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.targets", 
st_collections_group_programs_program_targets}, /* 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 */
@@ -757,6 +759,7 @@ New_Statement_Handler statement_handlers[] =
      {"collections.group.parts.part.description.program.action", 
st_collections_group_programs_program_action}, /* dup */
      {"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.targets", 
st_collections_group_programs_program_targets}, /* 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 
*/
@@ -780,6 +783,7 @@ New_Statement_Handler statement_handlers[] =
      {"collections.group.parts.part.programs.program.action", 
st_collections_group_programs_program_action}, /* dup */
      {"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.targets", 
st_collections_group_programs_program_targets}, /* 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 */
@@ -789,6 +793,7 @@ New_Statement_Handler statement_handlers[] =
      {"collections.group.parts.part.program.action", 
st_collections_group_programs_program_action}, /* dup */
      {"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.targets", 
st_collections_group_programs_program_targets}, /* 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 */
@@ -813,6 +818,7 @@ New_Statement_Handler statement_handlers[] =
      {"collections.group.parts.programs.program.action", 
st_collections_group_programs_program_action}, /* dup */
      {"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.targets", 
st_collections_group_programs_program_targets}, /* 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 */
@@ -823,6 +829,7 @@ New_Statement_Handler statement_handlers[] =
      {"collections.group.parts.program.action", 
st_collections_group_programs_program_action}, /* dup */
      {"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.targets", 
st_collections_group_programs_program_targets}, /* 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 */
 #ifdef HAVE_EPHYSICS
@@ -839,6 +846,7 @@ New_Statement_Handler statement_handlers[] =
      {"collections.group.program.action", 
st_collections_group_programs_program_action}, /* dup */
      {"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.targets", 
st_collections_group_programs_program_targets}, /* 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},
@@ -849,6 +857,7 @@ New_Statement_Handler statement_handlers[] =
      {"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.targets", 
st_collections_group_programs_program_targets},
      {"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 */
@@ -9621,6 +9630,64 @@ st_collections_group_programs_program_transition(void)
      }
 }
 
+static void
+_program_target_add(char *name)
+{
+   Edje_Part_Collection *pc;
+   Edje_Program *ep;
+   Edje_Program_Target *et;
+   Edje_Program_Target *etw;
+   Eina_List *l;
+   char *copy;
+
+   pc = eina_list_data_get(eina_list_last(edje_collections));
+   ep = current_program;
+
+   EINA_LIST_FOREACH(ep->targets, l, etw)
+     {
+        if (!strcmp(name, (char*) (etw + 1)))
+          {
+             free(name);
+             return;
+          }
+     }
+
+   et = mem_alloc(SZ(Edje_Program_Target) + strlen(name) + 1);
+   ep->targets = eina_list_append(ep->targets, et);
+   copy = (char*) (et + 1);
+   memcpy(copy, name, strlen(name) + 1);
+   switch (ep->action)
+     {
+      case EDJE_ACTION_TYPE_ACTION_STOP:
+         data_queue_program_lookup(pc, name, &(et->id));
+         break;
+      case EDJE_ACTION_TYPE_STATE_SET:
+      case EDJE_ACTION_TYPE_DRAG_VAL_SET:
+      case EDJE_ACTION_TYPE_DRAG_VAL_STEP:
+      case EDJE_ACTION_TYPE_DRAG_VAL_PAGE:
+      case EDJE_ACTION_TYPE_FOCUS_SET:
+      case EDJE_ACTION_TYPE_FOCUS_OBJECT:
+#ifdef HAVE_EPHYSICS
+      case EDJE_ACTION_TYPE_PHYSICS_IMPULSE:
+      case EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE:
+      case EDJE_ACTION_TYPE_PHYSICS_FORCE:
+      case EDJE_ACTION_TYPE_PHYSICS_TORQUE:
+      case EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR:
+      case EDJE_ACTION_TYPE_PHYSICS_VEL_SET:
+      case EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET:
+      case EDJE_ACTION_TYPE_PHYSICS_STOP:
+      case EDJE_ACTION_TYPE_PHYSICS_ROT_SET:
+#endif
+         data_queue_part_lookup(pc, name, &(et->id));
+         break;
+      default:
+         ERR("parse error %s:%i. target may only be used after action",
+             file_in, line - 1);
+         exit(-1);
+     }
+   free(name);
+}
+
 /**
     @page edcref
     @property
@@ -9636,66 +9703,31 @@ st_collections_group_programs_program_transition(void)
 static void
 st_collections_group_programs_program_target(void)
 {
-   Edje_Part_Collection *pc;
-   Edje_Program *ep;
-
    check_arg_count(1);
 
-   pc = eina_list_data_get(eina_list_last(edje_collections));
-   ep = current_program;
-     {
-Edje_Program_Target *et;
-Edje_Program_Target *etw;
-Eina_List *l;
-char *name;
-char *copy;
+   _program_target_add(parse_str(0));
+}
 
-name = parse_str(0);
-        
-EINA_LIST_FOREACH(ep->targets, l, etw)
-          {
-             if (!strcmp(name, (char*) (etw + 1)))
-               {
-                  free(name);
-                  return;
-               }
-          }
+/**
+    @page edcref
+    @property
+        target
+    @parameters
+        [target1] [target2] [target3] ...
+    @since 1.10
+    @effect
+        Programs or parts upon which the specified action will act. Multiple 
target
+        or targets keywords may be specified. SIGNAL_EMITs do not have
+        targets.
+    @endproperty
+*/
+static void
+st_collections_group_programs_program_targets(void)
+{
+   int n, argc;
 
-et = mem_alloc(SZ(Edje_Program_Target) + strlen(name) + 1);
-ep->targets = eina_list_append(ep->targets, et);
-copy = (char*) (et + 1);
-memcpy(copy, name, strlen(name) + 1);
-        switch (ep->action)
-          {
-           case EDJE_ACTION_TYPE_ACTION_STOP:
-              data_queue_program_lookup(pc, name, &(et->id));
-              break;
-           case EDJE_ACTION_TYPE_STATE_SET:
-           case EDJE_ACTION_TYPE_DRAG_VAL_SET:
-           case EDJE_ACTION_TYPE_DRAG_VAL_STEP:
-           case EDJE_ACTION_TYPE_DRAG_VAL_PAGE:
-           case EDJE_ACTION_TYPE_FOCUS_SET:
-           case EDJE_ACTION_TYPE_FOCUS_OBJECT:
-#ifdef HAVE_EPHYSICS
-           case EDJE_ACTION_TYPE_PHYSICS_IMPULSE:
-           case EDJE_ACTION_TYPE_PHYSICS_TORQUE_IMPULSE:
-           case EDJE_ACTION_TYPE_PHYSICS_FORCE:
-           case EDJE_ACTION_TYPE_PHYSICS_TORQUE:
-           case EDJE_ACTION_TYPE_PHYSICS_FORCES_CLEAR:
-           case EDJE_ACTION_TYPE_PHYSICS_VEL_SET:
-           case EDJE_ACTION_TYPE_PHYSICS_ANG_VEL_SET:
-           case EDJE_ACTION_TYPE_PHYSICS_STOP:
-           case EDJE_ACTION_TYPE_PHYSICS_ROT_SET:
-#endif
-              data_queue_part_lookup(pc, name, &(et->id));
-              break;
-           default:
-              ERR("parse error %s:%i. target may only be used after action",
-                  file_in, line - 1);
-              exit(-1);
-          }
-free(name);
-     }
+   for (n = 0, argc = get_arg_count(); n < argc; n++)
+     _program_target_add(parse_str(n));
 }
 
 /**

-- 



------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to