Enlightenment CVS committal

Author  : davemds
Project : e17
Module  : proto/edje_editor

Dir     : e17/proto/edje_editor


Modified Files:
        edje_edit.patch 


Log Message:
 * more work on remove/restack of part

===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/edje_edit.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- edje_edit.patch     19 Feb 2008 06:16:25 -0000      1.8
+++ edje_edit.patch     19 Feb 2008 23:44:41 -0000      1.9
@@ -4,7 +4,7 @@
 retrieving revision 1.4
 diff -u -r1.4 Doxyfile
 --- Doxyfile   6 Dec 2007 23:40:48 -0000       1.4
-+++ Doxyfile   19 Feb 2008 06:13:15 -0000
++++ Doxyfile   19 Feb 2008 23:41:27 -0000
 @@ -1,7 +1,7 @@
  PROJECT_NAME           = Edje
  PROJECT_NUMBER         =
@@ -29,7 +29,7 @@
 retrieving revision 1.93
 diff -u -r1.93 configure.in
 --- configure.in       25 Jan 2008 03:35:46 -0000      1.93
-+++ configure.in       19 Feb 2008 06:13:15 -0000
++++ configure.in       19 Feb 2008 23:41:27 -0000
 @@ -66,6 +66,7 @@
    evas >= 0.9.9
    ecore-evas >= 0.9.9
@@ -44,7 +44,7 @@
 retrieving revision 1.6
 diff -u -r1.6 gendoc
 --- gendoc     6 Dec 2007 23:42:38 -0000       1.6
-+++ gendoc     19 Feb 2008 06:13:15 -0000
++++ gendoc     19 Feb 2008 23:41:27 -0000
 @@ -1,7 +1,7 @@
  #!/bin/sh
  cp ./edje.c.in ./edje.c
@@ -68,7 +68,7 @@
 RCS file: src/lib/Edje_Edit.h
 diff -N src/lib/Edje_Edit.h
 --- /dev/null  1 Jan 1970 00:00:00 -0000
-+++ src/lib/Edje_Edit.h        19 Feb 2008 06:13:15 -0000
++++ src/lib/Edje_Edit.h        19 Feb 2008 23:41:28 -0000
 @@ -0,0 +1,1277 @@
 +#ifndef _EDJE_EDIT_H
 +#define _EDJE_EDIT_H
@@ -1353,7 +1353,7 @@
 retrieving revision 1.39
 diff -u -r1.39 Makefile.am
 --- src/lib/Makefile.am        18 Jan 2008 06:38:46 -0000      1.39
-+++ src/lib/Makefile.am        19 Feb 2008 06:13:15 -0000
++++ src/lib/Makefile.am        19 Feb 2008 23:41:28 -0000
 @@ -14,7 +14,8 @@
  libedje.la
  
@@ -1379,8 +1379,8 @@
 RCS file: src/lib/edje_edit.c
 diff -N src/lib/edje_edit.c
 --- /dev/null  1 Jan 1970 00:00:00 -0000
-+++ src/lib/edje_edit.c        19 Feb 2008 06:13:15 -0000
-@@ -0,0 +1,3133 @@
++++ src/lib/edje_edit.c        19 Feb 2008 23:41:28 -0000
+@@ -0,0 +1,3184 @@
 +/*
 + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
 + */
@@ -1997,15 +1997,15 @@
 +   
 +   GET_ED_OR_RETURN(FALSE)
 +   
-+   //Check if part already exists
++   /* Check if part already exists */
 +   if (_edje_real_part_get(ed, name))
 +      return FALSE;
 +   
-+   //Alloc Edje_Part or return
++   /* Alloc Edje_Part or return */
 +   ep = mem_alloc(sizeof(Edje_Part));
 +   if (!ep) return FALSE;
 +   
-+   //Alloc Edje_Real_Part or return
++   /* Alloc Edje_Real_Part or return */
 +   rp = mem_alloc(sizeof(Edje_Real_Part));
 +   if (!rp)
 +   {
@@ -2013,7 +2013,7 @@
 +      return FALSE;
 +   }
 +   
-+   //Init Edje_Part
++   /* Init Edje_Part */
 +   pc = ed->collection;
 +   pc->parts = evas_list_append(pc->parts, ep);
 +   
@@ -2032,7 +2032,7 @@
 +   ep->default_desc = NULL;
 +   ep->other_desc = NULL;
 +   
-+   //Init Edje_Real_Part
++   /* Init Edje_Real_Part */
 +   rp->edje = ed;
 +   _edje_ref(rp->edje);
 +   rp->part = ep;
@@ -2094,7 +2094,7 @@
 +   rp->gradient_id = -1;
 +
 +   
-+   //Update table_parts
++   /* Update table_parts */
 +   ed->table_parts_size++;
 +   ed->table_parts = realloc(ed->table_parts,
 +                             sizeof(Edje_Real_Part *) * ed->table_parts_size);
@@ -2102,7 +2102,7 @@
 +   ed->table_parts[ep->id % ed->table_parts_size] = rp;
 +   
 +   
-+   //create default description
++   /* Create default description */
 +   edje_edit_state_add(obj, name, "default");
 +   
 +   rp->param1.description = ep->default_desc;
@@ -2123,7 +2123,7 @@
 +    */
 +   int old_id;
 +   Edje_Part *part;
-+   Evas_List *l;
++   Evas_List *l, *ll;
 +   
 +   part = rp->part;
 +   
@@ -2137,31 +2137,30 @@
 +   old_id = part->id;
 +   part->id = new_id;
 +   
-+   // Fix all the dependecies in all parts...
++   /* Fix all the dependecies in all parts... */
 +   for (l = ed->collection->parts; l; l = l->next)
 +   {
 +      Edje_Part *p;
 +      p = l->data;
-+      printf("   search id: %d in %s\n", old_id, p->name);
++      //printf("   search id: %d in %s\n", old_id, p->name);
 +      if (p->clip_to_id == old_id) p->clip_to_id = new_id;
 +      if (p->dragable.confine_id == old_id) p->dragable.confine_id = new_id;
 +      
-+      // ...in default description
-+      Evas_List *ll;
++      /* ...in default description */
 +      Edje_Part_Description *d;
 +      d = p->default_desc;
-+      printf("      search in %s (%s)\n", p->name, d->state.name);
++      //printf("      search in %s (%s)\n", p->name, d->state.name);
 +      if (d->rel1.id_x == old_id) d->rel1.id_x = new_id;
 +      if (d->rel1.id_y == old_id) d->rel1.id_y = new_id;
 +      if (d->rel2.id_x == old_id) d->rel2.id_x = new_id;
 +      if (d->rel2.id_y == old_id) d->rel2.id_y = new_id;
 +      if (d->text.id_source == old_id) d->text.id_source = new_id;
 +      if (d->text.id_text_source == old_id) d->text.id_text_source = new_id;
-+      // ...and in all other descriptions
++      /* ...and in all other descriptions */
 +      for (ll = p->other_desc; ll; ll = ll->next)
 +      {
 +         d = ll->data;
-+         printf("      search in %s (%s)\n", p->name, d->state.name);
++         //printf("      search in %s (%s)\n", p->name, d->state.name);
 +         if (d->rel1.id_x == old_id) d->rel1.id_x = new_id;
 +         if (d->rel1.id_y == old_id) d->rel1.id_y = new_id;
 +         if (d->rel2.id_x == old_id) d->rel2.id_x = new_id;
@@ -2171,12 +2170,28 @@
 +      }
 +   }
 +   
-+   //TODO search also in programs
-+   
++   /*...and also in programs targets */
++   for (l = ed->collection->programs; l; l = l->next)
++   {
++      Edje_Program *epr;
++      
++      epr = l->data;
++      if (epr->action != EDJE_ACTION_TYPE_STATE_SET)
++         continue;
++      
++      for (ll = epr->targets; ll; ll = ll->next)
++      {
++         Edje_Program_Target *pt;
++         
++         pt = ll->data;
++         if (pt->id == old_id) pt->id = new_id;
++      }
++   }
 +   
-+   // adjust table_parts
++   /* Adjust table_parts */
 +   ed->table_parts[new_id] = rp;
 +}
++
 +static void
 +_edje_part_id_switch(Edje *ed, Edje_Real_Part *rp1, Edje_Real_Part *rp2)
 +{
@@ -2187,7 +2202,7 @@
 +    */
 +   int id1;
 +   int id2;
-+   Evas_List *l;
++   Evas_List *l, *ll;
 +   
 +   printf("SWITCH ID OF PART %d AND %d\n", rp1->part->id, rp2->part->id);
 +   
@@ -2197,11 +2212,11 @@
 +   id1 = rp1->part->id;
 +   id2 = rp2->part->id;
 +   
-+   //Switch ids
++   /* Switch ids */
 +   rp1->part->id = id2;
 +   rp2->part->id = id1;
 +   
-+   // adjust table_parts
++   /* adjust table_parts */
 +   ed->table_parts[id1] = rp2;
 +   ed->table_parts[id2] = rp1;
 +   
@@ -2237,7 +2252,7 @@
 +      for (ll = p->other_desc; ll; ll = ll->next)
 +      {
 +         d = ll->data;
-+         printf("      search in %s (%s)\n", p->name, d->state.name);
++         //printf("      search in %s (%s)\n", p->name, d->state.name);
 +         if (d->rel1.id_x == id1) d->rel1.id_x = id2;
 +         else if (d->rel1.id_x == id2) d->rel1.id_x = id1;
 +         if (d->rel1.id_y == id1) d->rel1.id_y = id2;
@@ -2252,8 +2267,24 @@
 +         else if (d->text.id_text_source == id2) d->text.id_text_source = id2;
 +      }
 +   }
-+   
-+   //TODO search also in programs
++   //...and also in programs targets
++   for (l = ed->collection->programs; l; l = l->next)
++   {
++      Edje_Program *epr;
++      
++      epr = l->data;
++      if (epr->action != EDJE_ACTION_TYPE_STATE_SET)
++         continue;
++      
++      for (ll = epr->targets; ll; ll = ll->next)
++      {
++         Edje_Program_Target *pt;
++         
++         pt = ll->data;
++         if (pt->id == id1) pt->id = id2;
++         else if (pt->id == id2) pt->id = id1;
++      }
++   }
 +   //TODO Real part dependencies are ok?
 +}
 +static void
@@ -2270,21 +2301,21 @@
 +   
 +   //TODO order the list first to be more robust
 +   
-+   //Give a correct id to all the parts
++   /* Give a correct id to all the parts */
 +   correct_id = 0;
 +   for (l = ed->collection->parts; l; l = l->next)
 +   {
 +      Edje_Part *p;
 +      
 +      p = l->data;
-+      printf(" [%d]Checking part: %s id: %d\n", correct_id, p->name, p->id);
++      //printf(" [%d]Checking part: %s id: %d\n", correct_id, p->name, p->id);
 +      if (p->id != correct_id)
 +         _edje_part_id_set(ed, ed->table_parts[p->id], correct_id);
 +      
 +      correct_id++;
 +   }
 +   
-+   //If we have removed some parts realloc table_parts
++   /* If we have removed some parts realloc table_parts */
 +   count = evas_list_count(ed->collection->parts);
 +   if (count != ed->table_parts_size)
 +   {
@@ -2292,7 +2323,7 @@
 +      ed->table_parts_size = count;
 +   }
 +   
-+   printf("\n");
++   //printf("\n");
 +}
 +
 +EAPI unsigned char
@@ -2300,43 +2331,23 @@
 +{
 +   printf("REMOVE PART: %s\n", part);
 +   Evas_List *l;
++   Edje_Part *ep;
 +   int id;
++   
 +   GET_RP_OR_RETURN()
-+   Edje_Part *ep;
 +   ep = rp->part;
 +   id = ep->id;
 +   
 +   if (ed->table_parts_size <= 1) return FALSE; //don't remove the last part
-+   
-+   //Remove part from parts list
-+   //...at the end of the function we fix the list/table association
-+   Edje_Part_Collection *pc;
-+   pc = ed->collection;
-+   pc->parts = evas_list_remove(pc->parts, ep);
-+   
-+   //Free Edje_Part and all descriptions
-+   if (ep->name) evas_stringshare_del(ep->name);
-+   if (ep->default_desc)
-+   {
-+      _edje_collection_free_part_description_free(ep->default_desc);
-+      ep->default_desc = NULL;
-+   }
-+   while (ep->other_desc)
-+   {
-+      Edje_Part_Description *desc;
 +      
-+      desc = ep->other_desc->data;
-+      ep->other_desc = evas_list_remove(ep->other_desc, desc);
-+      _edje_collection_free_part_description_free(desc);
-+   }
-+   free(ep);
-+   
-+   //Clear real_parts that link to the removed one
++   /* Clear Edje_Real_Parts that link to the removed one */
 +   int i;
 +   for (i = 0; i < ed->table_parts_size; i++)
 +   {
++      if (i == id) continue; //don't check the deleted id
 +      Edje_Real_Part *real;
-+      real = ed->table_parts[i];
++      real = ed->table_parts[i % ed->table_parts_size];
++
 +      if (real->text.source == rp) real->text.source = NULL;
 +      if (real->text.text_source == rp) real->text.text_source = NULL;
 +      
@@ -2354,15 +2365,22 @@
 +      if (real->custom.rel1_to_y == rp) real->custom.rel1_to_y = NULL;
 +      if (real->custom.rel2_to_x == rp) real->custom.rel2_to_x = NULL;
 +      if (real->custom.rel2_to_y == rp) real->custom.rel2_to_y = NULL;
-+      //TODO clip_to ??  confine ??
++      
++      if (real->clip_to == rp)
++      {
++         evas_object_clip_set(real->object, ed->clipper);
++         real->clip_to = NULL;
++      }
++      //TODO confine ??
 +   }
 +   
-+   // Clear all the parts and descriptions that refer to id
++   /* Clear all the parts and descriptions that refer to id */
 +   for (l = ed->collection->parts; l; l = l->next)
 +   {
 +      Edje_Part *p;
++      
 +      p = l->data;
-+      if (p->clip_to_id == id) p->clip_to_id = -1;  //TODO is 0 right?? don't 
tink so (maybe we need to unclip in some way)
++      if (p->clip_to_id == id) p->clip_to_id = -1;
 +      if (p->dragable.confine_id == id) p->dragable.confine_id = 0; //TODO is 
0 right?? don't tink so
 +      
 +      Evas_List *ll;
@@ -2386,16 +2404,35 @@
 +         if (d->text.id_text_source == id) d->text.id_text_source = -1;
 +      }
 +   }
++  
++   /* Remove part from parts list */
++   Edje_Part_Collection *pc;
++   pc = ed->collection;
++   pc->parts = evas_list_remove(pc->parts, ep);
++   _edje_fix_parts_id(ed);
 +   
++   /* Free Edje_Part and all descriptions */
++   if (ep->name) evas_stringshare_del(ep->name);
++   if (ep->default_desc)
++   {
++      _edje_collection_free_part_description_free(ep->default_desc);
++      ep->default_desc = NULL;
++   }
++   while (ep->other_desc)
++   {
++      Edje_Part_Description *desc;
++      
++      desc = ep->other_desc->data;
++      ep->other_desc = evas_list_remove(ep->other_desc, desc);
++      _edje_collection_free_part_description_free(desc);
++   }
++   free(ep);
 +   
-+   //Free real_part
++   /* Free real_part */
 +   _edje_real_part_free(rp);
 +   
-+   //We have now a hole in the id sequence...fixing it
-+   _edje_fix_parts_id(ed);
 +   
 +   edje_object_calc_force(obj);
-+   
 +   return TRUE;
 +}
 +
@@ -4490,23 +4527,37 @@
 +   printf("    path: '%s'\n", ed->path);
 +   printf("    part: '%s'\n", ed->part);
 +   printf("    parent: '%s'\n", ed->parent);
-+   printf("\n");
 +   
-+   printf("*** Parts [table:%d list:%d]\n", ed->table_parts_size, 
evas_list_count(ed->collection->parts));
-+   for (i = 0; i < ed->table_parts_size; i++)
++   printf("\n*** Parts [table:%d list:%d]\n", ed->table_parts_size,
++          evas_list_count(ed->collection->parts));
++   for (l = ed->collection->parts; l; l = l->next)
 +   {
++      Edje_Part *p;
 +      Edje_Real_Part *rp;
 +      
-+      rp = ed->table_parts[i % ed->table_parts_size];
-+      printf("    [%d]%s (id:%d)\n", i , rp->part->name, rp->part->id);
++      p = l->data;
++      rp = ed->table_parts[p->id % ed->table_parts_size];
++      printf("    [%d]%s ",p->id, p->name);
++      if (p == rp->part)
++         printf(" OK!\n");
++      else
++         printf(" WRONG (table[%id]->name = '%s')\n", p->id, rp->part->name);
 +   }
-+   printf("---------\n");
-+   for (l = ed->collection->parts; l; l = l->next)
++   
++   printf("\n*** Programs [table:%d list:%d]\n", ed->table_programs_size,
++          evas_list_count(ed->collection->programs));
++   for (l = ed->collection->programs; l; l = l->next)
 +   {
-+      Edje_Part *p;
++      Edje_Program *epr;
++      Edje_Program *epr2;
 +      
-+      p = l->data;
-+      printf("    []%s (id:%d)\n", p->name, p->id);
++      epr = l->data;
++      epr2 = ed->table_programs[epr->id % ed->table_programs_size];
++      printf("     [%d]%s ", epr->id, epr->name);
++      if (epr == epr2)
++         printf(" OK!\n");
++      else
++         printf(" WRONG (table[%id]->name = '%s')\n", epr->id, epr2->name);
 +   }
 +   
 +   printf("\n");
@@ -4520,7 +4571,7 @@
 retrieving revision 1.111
 diff -u -r1.111 edje_load.c
 --- src/lib/edje_load.c        18 Jan 2008 06:34:04 -0000      1.111
-+++ src/lib/edje_load.c        19 Feb 2008 06:13:15 -0000
++++ src/lib/edje_load.c        19 Feb 2008 23:41:28 -0000
 @@ -5,7 +5,7 @@
  #include "Edje.h"
  #include "edje_private.h"



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to