Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        Edje_Edit.h edje_callbacks.c edje_embryo.c edje_private.h 
        edje_program.c 


Log Message:


and.... edje_cc can take small code snippets in script{} areas and compile
them, include them int eh edje.eet and edje can run them. all i have to do
now is actually give the small scripts an api worht talking about

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/Edje_Edit.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- Edje_Edit.h 26 Mar 2004 09:10:05 -0000      1.4
+++ Edje_Edit.h 28 Mar 2004 05:26:17 -0000      1.5
@@ -113,7 +113,8 @@
 #define EDJE_ACTION_TYPE_DRAG_VAL_SET  4
 #define EDJE_ACTION_TYPE_DRAG_VAL_STEP 5
 #define EDJE_ACTION_TYPE_DRAG_VAL_PAGE 6
-#define EDJE_ACTION_TYPE_LAST          7
+#define EDJE_ACTION_TYPE_SCRIPT        7
+#define EDJE_ACTION_TYPE_LAST          8
 
 #define EDJE_TWEEN_MODE_NONE       0
 #define EDJE_TWEEN_MODE_LINEAR     1
@@ -597,7 +598,7 @@
     
 int   _edje_program_run_iterate(Edje_Running_Program *runp, double tim);
 void  _edje_program_end(Edje *ed, Edje_Running_Program *runp);
-void  _edje_program_run(Edje *ed, Edje_Program *pr, int force);
+void  _edje_program_run(Edje *ed, Edje_Program *pr, int force, char *ssig, char 
*ssrc);
 void  _edje_emit(Edje *ed, char *sig, char *src);
 
 void  _edje_text_init(void);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_callbacks.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- edje_callbacks.c    16 Mar 2004 08:38:51 -0000      1.13
+++ edje_callbacks.c    28 Mar 2004 05:26:17 -0000      1.14
@@ -307,7 +307,7 @@
    
    pp = data;
    pp->edje->pending_actions = evas_list_remove(pp->edje->pending_actions, pp);
-   _edje_program_run(pp->edje, pp->program, 1);
+   _edje_program_run(pp->edje, pp->program, 1, "", "");
    free(pp);
    return 0;
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_embryo.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- edje_embryo.c       26 Mar 2004 09:10:05 -0000      1.1
+++ edje_embryo.c       28 Mar 2004 05:26:17 -0000      1.2
@@ -93,3 +93,23 @@
    if (embryo_program_recursion_get(ed->collection->script) > 0) return;
    embryo_program_vm_reset(ed->collection->script);
 }
+
+void
+_edje_embryo_test_run(Edje *ed, char *fname, char *sig, char *src)
+{
+   Embryo_Function fn;
+   
+   if (!ed) return;
+   if (!ed->collection) return;
+   if (!ed->collection->script) return;
+   _edje_embryo_script_reset(ed);
+   fn = embryo_program_function_find(ed->collection->script, fname);
+   if (fn != EMBRYO_FUNCTION_NONE)
+     {
+       printf("EDJE DEBUG: About to run script from progrqm.\n");
+       embryo_parameter_string_push(ed->collection->script, sig);
+       embryo_parameter_string_push(ed->collection->script, src);
+       embryo_program_run(ed->collection->script, fn);
+       printf("EDJE DEBUG: Done.\n");
+     }
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -3 -r1.60 -r1.61
--- edje_private.h      26 Mar 2004 09:10:05 -0000      1.60
+++ edje_private.h      28 Mar 2004 05:26:17 -0000      1.61
@@ -59,5 +59,6 @@
 void _edje_embryo_script_init     (Edje *ed);
 void _edje_embryo_script_shutdown (Edje *ed);
 void _edje_embryo_script_reset    (Edje *ed);
+void _edje_embryo_test_run        (Edje *ed, char *fname, char *sig, char *src);
     
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_program.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- edje_program.c      26 Mar 2004 09:10:05 -0000      1.30
+++ edje_program.c      28 Mar 2004 05:26:17 -0000      1.31
@@ -276,7 +276,7 @@
             if (pa->id >= 0)
               {
                  pr = evas_list_nth(ed->collection->programs, pa->id);
-                 if (pr) _edje_program_run(ed, pr, 0);
+                 if (pr) _edje_program_run(ed, pr, 0, "", "");
                  if (_edje_block_break(ed))
                    {
                       if (!ed->walking_actions) free(runp);
@@ -345,7 +345,7 @@
 }
    
 void
-_edje_program_run(Edje *ed, Edje_Program *pr, int force)
+_edje_program_run(Edje *ed, Edje_Program *pr, int force, char *ssig, char *ssrc)
 {
    Evas_List *l;
    /* limit self-feeding loops in programs to 64 levels */
@@ -461,7 +461,7 @@
                  if (pa->id >= 0)
                    {
                       pr2 = evas_list_nth(ed->collection->programs, pa->id);
-                      if (pr2) _edje_program_run(ed, pr2, 0);
+                      if (pr2) _edje_program_run(ed, pr2, 0, "", "");
                       if (_edje_block_break(ed)) goto break_prog;
                    }
               }
@@ -597,6 +597,17 @@
        _edje_emit(ed, "program,stop", pr->name);
        if (_edje_block_break(ed)) goto break_prog;
      }
+   else if (pr->action == EDJE_ACTION_TYPE_SCRIPT)
+     {
+       char fname[128];
+       
+       _edje_emit(ed, "program,start", pr->name);
+       if (_edje_block_break(ed)) goto break_prog;
+       snprintf(fname, sizeof(fname), "_p%i", pr->id);
+       _edje_embryo_test_run(ed, fname, ssig, ssrc);
+       _edje_emit(ed, "program,stop", pr->name);
+       if (_edje_block_break(ed)) goto break_prog;
+     }
    if (!((pr->action == EDJE_ACTION_TYPE_STATE_SET) 
         /* hmm this fucks somethgin up. must look into it later */
         /* && (pr->tween.time > 0.0) && (!ed->no_anim))) */
@@ -610,7 +621,7 @@
             if (pa->id >= 0)
               {
                pr2 = evas_list_nth(ed->collection->programs, pa->id);
-               if (pr2) _edje_program_run(ed, pr2, 0);
+               if (pr2) _edje_program_run(ed, pr2, 0, "", "");
                if (_edje_block_break(ed)) goto break_prog;
               }
          }
@@ -734,7 +745,7 @@
                            Edje_Program *pr;
                            
                            pr = l->data;
-                           _edje_program_run(ed, pr, 0);
+                           _edje_program_run(ed, pr, 0, sig, src);
                            if (_edje_block_break(ed))
                              {
                                 if (tmps) free(tmps);
@@ -767,7 +778,7 @@
 #ifdef EDJE_PROGRAM_CACHE
                            matched++;
 #endif                     
-                           _edje_program_run(ed, pr, 0);
+                           _edje_program_run(ed, pr, 0, ee->signal, ee->source);
                            if (_edje_block_break(ed))
                              {
 #ifdef EDJE_PROGRAM_CACHE




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to