Enlightenment CVS committal

Author  : davemds
Project : e17
Module  : proto/edje_editor

Dir     : e17/proto/edje_editor/src/bin


Modified Files:
        callbacks.c interface.c interface.h main.c 


Log Message:
 ...and finally have the ability to set the stacking of the various edje part 
:) 

===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -3 -r1.34 -r1.35
--- callbacks.c 26 Nov 2007 17:40:12 -0000      1.34
+++ callbacks.c 27 Nov 2007 01:28:47 -0000      1.35
@@ -13,6 +13,8 @@
 extern void PROTO_engrave_file_group_remove(Engrave_File *ef, Engrave_Group 
*eg);
 extern void PROTO_engrave_part_state_image_tween_remove_nth(Engrave_Part_State 
*eps,int tween_num);
 extern void PROTO_engrave_part_state_image_tween_remove_all(Engrave_Part_State 
*eps);
+extern int PROTO_engrave_part_raise(Engrave_Part *ep);
+extern int PROTO_engrave_part_lower(Engrave_Part *ep);
 
 int current_color_object;
 
@@ -61,29 +63,71 @@
          etk_menu_popup(ETK_MENU(UI_RemoveMenu));
          //etk_menu_popup_at_xy (ETK_MENU(AddMenu), 10, 10);
          break;
-      case TOOLBAR_MOVE_UP:
-         printf("Clicked signal on Toolbar Button 'MoveUp' EMITTED\n");
-         /* if (selected_desc){
-            printf("MoveUP DESC: %s\n",selected_desc->state->str);
+      case TOOLBAR_MOVE_UP: //Lower
+         if (Cur.ep){
+            Evas_List *l;
+            Engrave_Part_State *eps;
+            printf("Lower %s\n",Cur.ep->name);
+            
+            PROTO_engrave_part_lower(Cur.ep);
+            
+            l = evas_list_find_list(Cur.eg->parts, Cur.ep);
+            if (!l) return ETK_TRUE;
+            
+            //delete part row with all childrens
+            etk_tree_row_delete(ecore_hash_get(hash,Cur.ep));
+            ecore_hash_remove(hash,Cur.ep);
+            
+            //re-add the row in correct place
+            if (l->prev)
+               AddPartToTree(Cur.ep, TRUE, l->prev->data); 
+            else
+               AddPartToTree(Cur.ep, TRUE, NULL);
+            
+            //re-add all childrens
+            l = Cur.ep->states;
+            while (l)
+            {
+               AddStateToTree(l->data);
+               l = l->next;
+            }
+            etk_tree_row_select (ecore_hash_get(hash,Cur.ep));
          }
-         else if (selected_part){
-            if ((current = 
g_list_find(selected_part->group->parts,selected_part))){
-               if ((prev = g_list_previous(current))){
-                  printf("MoveUP PART: %s\n",selected_part->name->str);
-                  //current->data = prev->data;
-                  //prev->data = selected_part;
-                  //Update the tree
-               }
+         else
+            ShowAlert("You must choose a part to lower");
+         break;
+      case TOOLBAR_MOVE_DOWN: //Raise
+         if (Cur.ep){
+            Evas_List *l;
+            Engrave_Part_State *eps;
+            printf("Raise %s\n",Cur.ep->name);
+            
+            PROTO_engrave_part_raise(Cur.ep);
+            
+            l = evas_list_find_list(Cur.eg->parts, Cur.ep);
+            if (!l) return ETK_TRUE;
+            
+            //delete part row with all childrens
+            etk_tree_row_delete(ecore_hash_get(hash,Cur.ep));
+            ecore_hash_remove(hash,Cur.ep);
+             
+            //re-add the row in correct place
+            if (l->prev)
+               AddPartToTree(Cur.ep, TRUE, l->prev->data); 
+            else
+               AddPartToTree(Cur.ep, TRUE, NULL);
+            
+            //re-add all childrens
+            l = Cur.ep->states;
+            while (l)
+            {
+               AddStateToTree(l->data);
+               l = l->next;
             }
+            etk_tree_row_select (ecore_hash_get(hash,Cur.ep));
          }
-         else{
-            ShowAlert("No part to move selected");
-         } */
-         ShowAlert("Not yet implemented");
-         break;
-      case TOOLBAR_MOVE_DOWN:
-         printf("Clicked signal on Toolbar Button 'MoveDown' EMITTED\n");
-         ShowAlert("Not yet implemented");
+         else
+            ShowAlert("You must choose a part to raise");
          break;
       case TOOLBAR_OPTIONS:
          etk_menu_popup(ETK_MENU(UI_OptionsMenu));
@@ -1180,7 +1224,7 @@
             part = engrave_part_new(ENGRAVE_PART_TYPE_RECT);
             engrave_part_name_set (part, "new rectangle");
             engrave_group_part_add(Cur.eg, part);
-            AddPartToTree(part);
+            AddPartToTree(part, 0, NULL);
 
             new_state = engrave_part_state_new();
             engrave_part_state_name_set(new_state, "default", 0.0);
@@ -1205,7 +1249,7 @@
             part = engrave_part_new(ENGRAVE_PART_TYPE_IMAGE);
             engrave_part_name_set (part, "new image");
             engrave_group_part_add(Cur.eg, part);
-            AddPartToTree(part);
+            AddPartToTree(part, 0, NULL);
 
             new_state = engrave_part_state_new();
             engrave_part_state_name_set(new_state, "default", 0.0);
@@ -1230,7 +1274,7 @@
             part = engrave_part_new(ENGRAVE_PART_TYPE_TEXT);
             engrave_part_name_set (part, "new text");
             engrave_group_part_add(Cur.eg, part);
-            AddPartToTree(part);
+            AddPartToTree(part, 0, NULL);
 
             new_state = engrave_part_state_new();
             engrave_part_state_name_set(new_state, "default", 0.0);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -3 -r1.41 -r1.42
--- interface.c 26 Nov 2007 17:40:12 -0000      1.41
+++ interface.c 27 Nov 2007 01:28:48 -0000      1.42
@@ -37,7 +37,7 @@
 }
 
 void
-AddPartToTree(Engrave_Part* part)
+AddPartToTree(Engrave_Part* part, int place_after, Engrave_Part* after)
 {
    Etk_Tree_Col *col1,*col2,*col3;
    Etk_Tree_Row *row=NULL;
@@ -62,12 +62,20 @@
          strcpy(buf,"NONE.PNG");
       break;
    }
-
-   row = etk_tree_row_append(ETK_TREE(UI_PartsTree),
-               ecore_hash_get(hash,part->parent),
-               col1, EdjeFile,buf, part->name,
-               col3,ROW_PART,
-               NULL);
+   
+   if (place_after)
+      row = etk_tree_row_insert(ETK_TREE(UI_PartsTree),
+                                ecore_hash_get(hash,part->parent),
+                                ecore_hash_get(hash,after),
+                                col1, EdjeFile,buf, part->name,
+                                col3,ROW_PART,
+                                NULL);
+   else
+      row = etk_tree_row_append(ETK_TREE(UI_PartsTree),
+                                ecore_hash_get(hash,part->parent),
+                                col1, EdjeFile,buf, part->name,
+                                col3,ROW_PART,
+                                NULL);
 
    ecore_hash_set(hash, part, row);
    etk_tree_row_data_set(row, part);
@@ -140,7 +148,7 @@
       for (pp = group->parts; pp ;pp = pp->next)
       {
          part = pp->data;
-         AddPartToTree(part);
+         AddPartToTree(part, 0, NULL);
          for (sp = part->states; sp; sp = sp->next)
          {
             state = sp->data;
@@ -1203,12 +1211,14 @@
 
    //MoveUp Button
    button = etk_tool_button_new_from_stock( ETK_STOCK_GO_UP);
+   etk_object_properties_set(ETK_OBJECT(button),"label","Lower",NULL);
    etk_signal_connect("clicked", ETK_OBJECT(button),
                      ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_MOVE_UP);
    etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), button, ETK_BOX_START);
 
    //MoveDown Button
    button = etk_tool_button_new_from_stock( ETK_STOCK_GO_DOWN);
+   etk_object_properties_set(ETK_OBJECT(button),"label","Raise",NULL);
    etk_signal_connect("clicked", ETK_OBJECT(button),
                   ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_MOVE_DOWN);
    etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), button, ETK_BOX_START);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- interface.h 25 Nov 2007 18:42:55 -0000      1.19
+++ interface.h 27 Nov 2007 01:28:48 -0000      1.20
@@ -114,7 +114,7 @@
 void     _embed_position_set     (void *position_data, int *x, int *y);
 void     PopulateTree            (void);
 void     AddGroupToTree          (Engrave_Group* group);
-void     AddPartToTree           (Engrave_Part* part);
+void     AddPartToTree           (Engrave_Part* part, int place_after, 
Engrave_Part* after);
 void     AddStateToTree          (Engrave_Part_State* state);
 void     AddProgramToTree        (Engrave_Program* prog);
 void     PopulateRelComboBoxes (void);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- main.c      25 Nov 2007 18:42:56 -0000      1.15
+++ main.c      27 Nov 2007 01:28:48 -0000      1.16
@@ -172,7 +172,51 @@
    ef->groups = evas_list_remove(ef->groups, eg);
    engrave_group_parent_set(eg, NULL);
 }
-
+void
+PROTO_engrave_part_raise(Engrave_Part *ep)
+{
+   Engrave_Group *eg;
+   Engrave_Part *next;
+   Evas_List *l;
+    
+   if (!ep) return;
+   
+   eg = ep->parent;
+   if (!eg) return;
+   
+   printf("RAISE part: '%s' in group: '%s'\n",ep->name, eg->name);
+   
+   l = evas_list_find_list(eg->parts, ep);
+   if (!l || !l->next) return;
+   
+   next = l->next->data;
+   eg->parts = evas_list_remove (eg->parts, ep);
+   eg->parts = evas_list_append_relative (eg->parts, ep, next);
+}
+int
+PROTO_engrave_part_lower(Engrave_Part *ep)
+{
+   Engrave_Group *eg;
+   Engrave_Part *prev;
+   Evas_List *l;
+    
+   if (!ep) return FALSE;
+   
+   eg = ep->parent;
+   if (!eg) return FALSE;
+   
+   printf("LOWER part: '%s' in group: '%s'\n",ep->name, eg->name);
+   
+   l = evas_list_find_list(eg->parts, ep);
+   if (!l || !l->prev) return FALSE;
+   
+   prev = l->prev->data;
+   eg->parts = evas_list_remove (eg->parts, ep);
+   eg->parts = evas_list_prepend_relative (eg->parts, ep, prev);
+    
+   //evas_object_lower(ep->object);
+   return TRUE;
+}
 void
 DebugInfo(int full)
 {



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
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