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 


Log Message:
 * implemented parts stacking order (lower & rise buttons)

===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -3 -r1.51 -r1.52
--- callbacks.c 18 Feb 2008 00:07:14 -0000      1.51
+++ callbacks.c 18 Feb 2008 02:58:14 -0000      1.52
@@ -63,7 +63,8 @@
    char cmd[1024];
    Etk_String *text;
    char *tween;
-   Etk_Tree_Row *row, *next;
+   char *name;
+   Etk_Tree_Row *row, *next, *prev;
    Etk_Combobox_Item *item;
 
    switch ((int)data)
@@ -72,7 +73,6 @@
       system("edje_editor &");
       break;
    case TOOLBAR_OPEN:
-      //ShowAlert("Not yet implemented");
       ShowFilechooser(FILECHOOSER_OPEN);
       break;
    case TOOLBAR_SAVE:
@@ -96,24 +96,63 @@
       break;
    case TOOLBAR_ADD:
       etk_menu_popup(ETK_MENU(UI_AddMenu));
-      //ShowAlert("Not yet reimplemented ;)");
       break;
    case TOOLBAR_REMOVE:
       etk_menu_popup(ETK_MENU(UI_RemoveMenu));
-      //ShowAlert("Not yet reimplemented ;)");
       break;
+   
    case TOOLBAR_MOVE_UP: //Lower
-      ShowAlert("Not yet reimplemented ;)");
+      if (!etk_string_length_get(Cur.part))
+      {
+         ShowAlert("You must select a part to lower");
+         break;
+      }
+      row = evas_hash_find(Parts_Hash, Cur.part->string);
+      prev = etk_tree_row_prev_get(row);
+      if (!prev) break;
+      prev = etk_tree_row_prev_get(prev);
+      if (prev)
+         etk_tree_row_fields_get(prev, COL_NAME, NULL, NULL, &name, NULL);
+      else
+         name = NULL;
+      if (!edje_edit_part_restack(edje_o, Cur.part->string, name))
+         break;
+      Parts_Hash = evas_hash_del(Parts_Hash, NULL, row);
+      etk_tree_row_delete(row);
+      
+      if (prev)
+         row = AddPartToTree(Cur.part->string, prev);
+      else
+         row = AddPartToTree(Cur.part->string, (void*)1);
+      etk_tree_row_select(row);
       break;
+   
    case TOOLBAR_MOVE_DOWN: //Raise
-      ShowAlert("Not yet reimplemented ;)");
+      if (!etk_string_length_get(Cur.part))
+      {
+         ShowAlert("You must select a part to lower");
+         break;
+      }
+      row = evas_hash_find(Parts_Hash, Cur.part->string);
+      next = etk_tree_row_next_get(row);
+      if (!next)
+         break;
+      
+      etk_tree_row_fields_get(next, COL_NAME, NULL, NULL, &name, NULL);
+      if (!edje_edit_part_restack(edje_o, Cur.part->string, name))
+         break;
+      Parts_Hash = evas_hash_del(Parts_Hash, NULL, row);
+      etk_tree_row_delete(row);
+      row = AddPartToTree(Cur.part->string, next);
+      etk_tree_row_select(row);
+      
       break;
+      
    case TOOLBAR_IMAGE_FILE_ADD:
       ShowFilechooser(FILECHOOSER_IMAGE);
       break;
    case TOOLBAR_FONT_FILE_ADD:
       ShowFilechooser(FILECHOOSER_FONT);
-      //ShowAlert("Not yet reimplemented ;)");
       break;
    case IMAGE_TWEEN_ADD:
       item = etk_combobox_active_item_get(ETK_COMBOBOX(UI_ImageComboBox));
@@ -180,16 +219,13 @@
          ShowAlert("You need to save the file before testing it.");
       else
       {
-         snprintf(cmd,1024,"edje_editor -t \"%s\" \"%s\" 
&",Cur.open_file_name,Cur.eg->name);
+         snprintf(cmd,1024,"edje_editor -t \"%s\" \"%s\" &",
+                  Cur.open_file_name,Cur.eg->name);
          printf("TESTING EDJE. cmd: %s\n",cmd);
          system(cmd);
       }
       break;
    case TOOLBAR_DEBUG:
-      //on_RemoveMenu_item_activated(NULL, REMOVE_PART);
-      //on_AddMenu_item_activated(NULL, NEW_RECT);
-      //PopulateGroupsComboBox();
-      //ChangeGroup("New group");
       DebugInfo(FALSE);
       break;
    case IMAGE_TWEEN_UP:
@@ -199,17 +235,9 @@
          ShowAlert("Down not yet implemented.");
       break;
    case SAVE_SCRIPT:
-         text = 
etk_textblock_text_get(ETK_TEXT_VIEW(UI_ScriptBox)->textblock,ETK_TRUE);
-         if (Cur.epr)
-         {
-            printf("Save script (in prog %s): 
%s\n",Cur.epr->name,text->string);
-            engrave_program_script_set (Cur.epr, text->string);
-            
-         }else if (Cur.eg)
-         {
-            printf("Save script (in group %s): 
%s\n",Cur.eg->name,text->string);
-            engrave_group_script_set(Cur.eg, text->string);
-         }
+         text = etk_textblock_text_get(ETK_TEXT_VIEW(UI_ScriptBox)->textblock,
+                                       ETK_TRUE);
+         ShowAlert("Script not yet implemented.");
          etk_object_destroy(ETK_OBJECT(text));
       break;
    default:
@@ -1280,10 +1308,9 @@
             break;
          }
          //TODO generate a unique new name
-         AddPartToTree("New rectangle");
-         row = AddStateToTree("New rectangle", "default 0.00");
+         row = AddPartToTree("New rectangle", NULL);
          etk_tree_row_select(row);
-         etk_tree_row_unfold(evas_hash_find(Parts_Hash, "New rectangle"));
+         etk_tree_row_unfold(row);
          PopulateRelComboBoxes();
          break;
       
@@ -1299,8 +1326,7 @@
             break;
          }
          //TODO generate a unique new name
-         AddPartToTree("New image");
-         row = AddStateToTree("New image", "default 0.00");
+         row = AddPartToTree("New image", NULL);
          
          char *image;
          item = etk_combobox_first_item_get(ETK_COMBOBOX(UI_ImageComboBox));
@@ -1313,7 +1339,7 @@
          }
       
          etk_tree_row_select(row);
-         etk_tree_row_unfold(evas_hash_find(Parts_Hash, "New image"));
+         etk_tree_row_unfold(row);
          PopulateRelComboBoxes();
          break;
       
@@ -1329,8 +1355,7 @@
             break;
          }
          //TODO generate a unique new name
-         AddPartToTree("New text");
-         row = AddStateToTree("New text", "default 0.00");
+         row = AddPartToTree("New text", NULL);
          
          char *font;
          item = etk_combobox_first_item_get(ETK_COMBOBOX(UI_FontComboBox));
@@ -1348,7 +1373,7 @@
          edje_edit_part_effect_set(edje_o, "New text", EDJE_TEXT_EFFECT_GLOW);
       
          etk_tree_row_select(row);
-         etk_tree_row_unfold(evas_hash_find(Parts_Hash, "New text"));
+         etk_tree_row_unfold(row);
          PopulateRelComboBoxes();
          break;
       
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -3 -r1.58 -r1.59
--- interface.c 18 Feb 2008 00:07:14 -0000      1.58
+++ interface.c 18 Feb 2008 02:58:14 -0000      1.59
@@ -57,8 +57,14 @@
  *
  ***********************************/
 Etk_Tree_Row *
-AddPartToTree(const char *part_name)//, char *group_name)//, int place_after, 
Engrave_Part* after)
+AddPartToTree(const char *part_name, Etk_Tree_Row *after)
 {
+   /* If after=0 then append to the tree
+      If after=1 then prepend to the tree
+      If after>1 then prepend relative to after
+      
+      I hope no one get a real row pointer = 1  :P
+   */
    Etk_Tree_Row *row = NULL;
    char buf[20];
 
@@ -72,22 +78,37 @@
       default:                       strcpy(buf,"NONE.PNG");  break;
    }
    
- /*  if (place_after)
+   if ((int)after > 1)
       row = etk_tree_row_insert(ETK_TREE(UI_PartsTree),
-                                ecore_hash_get(hash,part->parent),
-                                ecore_hash_get(hash,after),
-                                COL_NAME, EdjeFile,buf, part->name,
-                                COL_TYPE,ROW_PART,
+                                NULL,
+                                after,
+                                COL_NAME, EdjeFile, buf, part_name,
+                                COL_TYPE, ROW_PART,
+                                NULL);
+   else if ((int)after == 1)
+      row = etk_tree_row_prepend(ETK_TREE(UI_PartsTree),
+                                NULL,
+                                COL_NAME, EdjeFile, buf, part_name,
+                                COL_TYPE, ROW_PART,
+                                NULL);
+   else
+      row = etk_tree_row_append(ETK_TREE(UI_PartsTree),
+                                NULL,
+                                COL_NAME, EdjeFile, buf, part_name,
+                                COL_TYPE, ROW_PART,
                                 NULL);
-   else*/
-   row = etk_tree_row_append(ETK_TREE(UI_PartsTree),
-                             NULL,
-                             COL_NAME, EdjeFile,buf, part_name,
-                             COL_TYPE, ROW_PART,
-                             NULL);
 
    Parts_Hash = evas_hash_add(Parts_Hash, part_name, row);
-   //etk_tree_row_data_set(row, part_name);
+   
+   /* also add all state to the tree */
+   Evas_List *states, *sp;
+   states = sp = edje_edit_part_states_list_get(edje_o, part_name);
+   while(sp)
+   {
+      AddStateToTree(part_name, (char*)sp->data);
+      sp = sp->next;
+   }
+   edje_edit_string_list_free(states);
    
    return row;
 }
@@ -130,7 +151,6 @@
 PopulateTree(void)
 {
    Evas_List *parts, *pp;
-   Evas_List *states, *sp;
    Evas_List *progs;
    
    etk_tree_freeze(ETK_TREE(UI_PartsTree));
@@ -140,14 +160,7 @@
    while(pp)
    {
       printf("  P: %s\n", (char*)pp->data);
-      AddPartToTree((char*)pp->data);
-      states = sp = edje_edit_part_states_list_get(edje_o, (char*)pp->data);
-      while(sp)
-      {
-         AddStateToTree((char*)pp->data, (char*)sp->data);
-         sp = sp->next;
-      }
-      edje_edit_string_list_free(states);
+      AddPartToTree((char*)pp->data, NULL);
       pp = pp->next;
    }
    edje_edit_string_list_free(parts);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- interface.h 17 Feb 2008 21:39:18 -0000      1.28
+++ interface.h 18 Feb 2008 02:58:14 -0000      1.29
@@ -137,7 +137,7 @@
 
 void create_main_window(void);
 
-Etk_Tree_Row *AddPartToTree(const char *part_name);
+Etk_Tree_Row *AddPartToTree(const char *part_name, Etk_Tree_Row *after);
 Etk_Tree_Row *AddStateToTree(const char *part_name, const char *state_name);
 Etk_Tree_Row *AddProgramToTree(const char* prog);
 



-------------------------------------------------------------------------
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