Enlightenment CVS committal

Author  : davemds
Project : e17
Module  : proto/edje_editor

Dir     : e17/proto/edje_editor/src/bin


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


Log Message:
 * implemented edje_edit_[group/part/state/prog]_exist() funcions
 * some char* in edje_private.h declared static
 * Create a unique name when creating group/part/state/prog
 * Fix Fakewin placement when moving
 * Fix Fakewin size on first show
 * some bugs fixed 

 * and some cosmetic change that make the commit unreadable :P

===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -3 -r1.56 -r1.57
--- callbacks.c 19 Feb 2008 23:44:41 -0000      1.56
+++ callbacks.c 20 Feb 2008 19:31:38 -0000      1.57
@@ -1272,6 +1272,10 @@
    printf("Item Activated Signal on AddMenu EMITTED\n");
    Etk_Tree_Row *row;
    Etk_Combobox_Item *item;
+   int i;
+   char name[32];
+   char name2[32];
+   
    switch ((int)data)
    {
        case NEW_RECT:
@@ -1280,13 +1284,19 @@
             ShowAlert("You must first select a group.");
             break;
          }
-         if (!edje_edit_part_add(edje_o, "New rectangle", 
EDJE_PART_TYPE_RECTANGLE))
+         //generate a unique new name
+         snprintf(name, sizeof(name), "New rectangle");
+         i = 2;
+         while (edje_edit_part_exist(edje_o, name))
+            snprintf(name, sizeof(name), "New rectangle %d", i++);
+         
+         if (!edje_edit_part_add(edje_o, name, EDJE_PART_TYPE_RECTANGLE))
          {
             ShowAlert("Can't create part.");
             break;
          }
-         //TODO generate a unique new name
-         row = AddPartToTree("New rectangle", NULL);
+         
+         row = AddPartToTree(name, NULL);
          etk_tree_row_select(row);
          etk_tree_row_unfold(row);
          PopulateRelComboBoxes();
@@ -1298,13 +1308,19 @@
             ShowAlert("You must first select a group.");
             break;
          }
-         if (!edje_edit_part_add(edje_o, "New image", EDJE_PART_TYPE_IMAGE))
+         //generate a unique new name
+         snprintf(name, sizeof(name), "New image");
+         i = 2;
+         while (edje_edit_part_exist(edje_o, name))
+            snprintf(name, sizeof(name), "New image %d", i++);
+      
+         if (!edje_edit_part_add(edje_o, name, EDJE_PART_TYPE_IMAGE))
          {
             ShowAlert("Can't create part.");
             break;
          }
          //TODO generate a unique new name
-         row = AddPartToTree("New image", NULL);
+         row = AddPartToTree(name, NULL);
          
          char *image;
          item = etk_combobox_first_item_get(ETK_COMBOBOX(UI_ImageComboBox));
@@ -1312,7 +1328,7 @@
          {
             image = etk_combobox_item_field_get(item, 1);
             if (image)
-               edje_edit_state_image_set(edje_o, "New image",
+               edje_edit_state_image_set(edje_o, name,
                                          "default 0.00", image);
          }
       
@@ -1327,13 +1343,18 @@
             ShowAlert("You must first select a group.");
             break;
          }
-         if (!edje_edit_part_add(edje_o, "New text", EDJE_PART_TYPE_TEXT))
+         //generate a unique new name
+         snprintf(name, sizeof(name), "New text");
+         i = 2;
+         while (edje_edit_part_exist(edje_o, name))
+            snprintf(name, sizeof(name), "New text %d", i++);
+         
+         if (!edje_edit_part_add(edje_o, name, EDJE_PART_TYPE_TEXT))
          {
             ShowAlert("Can't create part.");
             break;
          }
-         //TODO generate a unique new name
-         row = AddPartToTree("New text", NULL);
+         row = AddPartToTree(name, NULL);
          
          char *font;
          item = etk_combobox_first_item_get(ETK_COMBOBOX(UI_FontComboBox));
@@ -1341,14 +1362,12 @@
          {
             font = etk_combobox_item_field_get(item, 1);
             if (font)
-               edje_edit_state_font_set(edje_o, "New text",
-                                        "default 0.00", font);
+               edje_edit_state_font_set(edje_o, name, "default 0.00", font);
          }
-         edje_edit_state_text_size_set(edje_o, "New text",
-                                       "default 0.00", 16);
-         edje_edit_state_text_set(edje_o, "New text",
-                                  "default 0.00", "Something to say !");
-         edje_edit_part_effect_set(edje_o, "New text", EDJE_TEXT_EFFECT_GLOW);
+         edje_edit_state_text_size_set(edje_o, name, "default 0.00", 16);
+         edje_edit_state_text_set(edje_o, name, "default 0.00",
+                                  "Something to say !");
+         edje_edit_part_effect_set(edje_o, name, EDJE_TEXT_EFFECT_GLOW);
       
          etk_tree_row_select(row);
          etk_tree_row_unfold(row);
@@ -1362,20 +1381,27 @@
             break;
          }
          
+         //Generate a unique name
+         snprintf(name, sizeof(name), "state");
+         snprintf(name2, sizeof(name2), "state 0.00");
+         i = 2;
+         while (edje_edit_state_exist(edje_o, Cur.part->string, name2))
+         {
+            snprintf(name, sizeof(name), "state%d", i++);
+            snprintf(name2, sizeof(name2), "%s 0.00", name);
+         }
+         
          //Create state
-         edje_edit_state_add(edje_o, Cur.part->string, "New state");
-         edje_edit_state_rel1_relative_x_set(edje_o, Cur.part->string,
-                                    "New state 0.00", 0.1);
-         edje_edit_state_rel1_relative_y_set(edje_o, Cur.part->string,
-                                    "New state 0.00", 0.1);
-         edje_edit_state_rel2_relative_x_set(edje_o, Cur.part->string,
-                                    "New state 0.00", 0.9);
-         edje_edit_state_rel2_relative_y_set(edje_o, Cur.part->string,
-                                    "New state 0.00", 0.9);
-         edje_edit_state_text_size_set(edje_o, Cur.part->string,
-                                       "New state 0.00", 16);
+         edje_edit_state_add(edje_o, Cur.part->string, name);
+         
+         
edje_edit_state_rel1_relative_x_set(edje_o,Cur.part->string,name2,0.1);
+         
edje_edit_state_rel1_relative_y_set(edje_o,Cur.part->string,name2,0.1);
+         
edje_edit_state_rel2_relative_x_set(edje_o,Cur.part->string,name2,0.9);
+         
edje_edit_state_rel2_relative_y_set(edje_o,Cur.part->string,name2,0.9);
+         edje_edit_state_text_size_set(edje_o, Cur.part->string, name2, 16);
+      
          //Add state to tree
-         row = AddStateToTree(Cur.part->string, "New state 0.00");
+         row = AddStateToTree(Cur.part->string, name2);
          etk_tree_row_select(row);
          etk_tree_row_unfold(evas_hash_find(Parts_Hash,Cur.part->string));
          break;
@@ -1386,18 +1412,30 @@
             ShowAlert("You must first select a group.");
             break;
          }
-         if (!edje_edit_program_add(edje_o, "New program"))
+         //generate a unique new name
+         snprintf(name, sizeof(name), "New program");
+         i = 2;
+         while (edje_edit_program_exist(edje_o, name))
+            snprintf(name, sizeof(name), "New program %d", i++);
+      
+         if (!edje_edit_program_add(edje_o, name))
          {
             ShowAlert("ERROR: can't add program");
             break;
          }
-         row = AddProgramToTree("New program");
+         row = AddProgramToTree(name);
          etk_tree_row_select(row);
          etk_tree_row_scroll_to(row, ETK_FALSE);
          break;
       
       case NEW_GROUP:
-         if (edje_edit_group_add(edje_o, "New group"))
+         //generate a unique new name
+         snprintf(name, sizeof(name), "New group");
+         i = 2;
+         while (edje_edit_group_exist(edje_o, name))
+            snprintf(name, sizeof(name), "New group %d", i++);
+      
+         if (edje_edit_group_add(edje_o, name))
          {
             PopulateGroupsComboBox();
             etk_combobox_active_item_set(ETK_COMBOBOX(UI_GroupsComboBox),
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/evas.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- evas.c      18 Feb 2008 16:44:22 -0000      1.28
+++ evas.c      20 Feb 2008 19:31:38 -0000      1.29
@@ -9,19 +9,23 @@
 #define MAIN_LEFT 20
 #define MAIN_TOP 27
 
+
+static Evas_Coord dx, dy;
+
 void
 on_Drag(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    //printf("ON DRAG\n");
    Evas_Coord parentx,parenty,parentw,parenth;
    Evas_Coord x,y;
-   int mouse_x, mouse_y;
+   Evas_Coord mouse_x, mouse_y;
 
    // MoveBox
    if ((int)data == DRAG_MOVEBOX)
    {
-      evas_pointer_output_xy_get(ecore_evas_get(UI_ecore_MainWin),&x, &y);
-      ev_move_fake(x-30,y+8);//TODO
+      evas_pointer_output_xy_get(ecore_evas_get(UI_ecore_MainWin),
+                                 &mouse_x, &mouse_y);
+      ev_move_fake(mouse_x - dx, mouse_y + 16 - dy);
    }
 
    // Resize fake win
@@ -92,8 +96,15 @@
                                       on_Drag,(void*)DRAG_REL2);
    /* THIS COMMENT DISABLE THE FAKEWIN MOVE ABILITY (don't like it) */
    if ((int)data == DRAG_MOVEBOX)
-       evas_object_event_callback_add(EV_movebox, EVAS_CALLBACK_MOUSE_MOVE,
-                                        on_Drag, (void*)DRAG_MOVEBOX);
+   {
+      Evas_Coord x, y, mx, my;
+      evas_object_event_callback_add(EV_movebox, EVAS_CALLBACK_MOUSE_MOVE,
+                                     on_Drag, (void*)DRAG_MOVEBOX);
+      evas_object_geometry_get(EV_movebox, &x, &y, NULL, NULL);
+      evas_pointer_output_xy_get(ecore_evas_get(UI_ecore_MainWin), &mx, &my);
+      dx = mx - x;
+      dy = my - y;
+   }
    
 }
 
@@ -357,7 +368,7 @@
    if (h < 0) h = 100;
 
    evas_object_resize(EV_fakewin, w, h);
-   evas_object_resize(EV_movebox, w, 10);
+   evas_object_resize(EV_movebox, w+8, 14);
    edje_object_part_drag_value_set(EV_fakewin, "miniarrow",
                                    (double)w, (double)h);
    char buf[100];
@@ -370,7 +381,7 @@
 {
    //printf("MOVEBOX: %d %d\n",x,y);
    evas_object_move(EV_fakewin, x, y);
-   evas_object_move(EV_movebox, x, y-14);
+   evas_object_move(EV_movebox, x-4, y-16);
 }
 
 void
@@ -384,9 +395,14 @@
       //Get the geometry of ETK_canvas
       //evas_object_geometry_get(EV_canvas_bg,&x,&y,&w,&h);
 
+      
       //Get the geometry of fakewin
       evas_object_geometry_get(EV_fakewin,&x,&y,&w,&h);
-
+      
+      //Ensure we respect min e max group size
+      ev_resize_fake(w, h);
+      evas_object_geometry_get(EV_fakewin,&x,&y,&w,&h);
+      
       //place edje editing object
       evas_object_move(edje_o, x, y);
       evas_object_resize(edje_o, w+1, h);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -3 -r1.61 -r1.62
--- interface.c 18 Feb 2008 20:38:40 -0000      1.61
+++ interface.c 20 Feb 2008 19:31:38 -0000      1.62
@@ -95,11 +95,11 @@
 Etk_Tree_Row *
 AddPartToTree(const char *part_name, Etk_Tree_Row *after)
 {
-   /* If after=0 then append to the tree
+   /* If after=0 then append to the tree (but before programs)
       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
+      I hope no one get a real row pointer == 1  :P
    */
    Etk_Tree_Row *row = NULL;
    char buf[20];
@@ -114,6 +114,21 @@
       default:                       strcpy(buf,"NONE.PNG");  break;
    }
    
+   /* Search for the last row that isn't a program */
+   if (after == 0)
+   {
+      int row_type;
+      
+      after = etk_tree_last_row_get(ETK_TREE(UI_PartsTree));
+      etk_tree_row_fields_get(after, COL_TYPE, &row_type, NULL);
+      
+      while (after && row_type && row_type == ROW_PROG)
+      {
+         after = etk_tree_row_prev_get(after);
+         etk_tree_row_fields_get(after, COL_TYPE, &row_type, NULL);
+      }
+   }
+   
    if ((int)after > 1)
       row = etk_tree_row_insert(ETK_TREE(UI_PartsTree),
                                 NULL,
@@ -172,15 +187,12 @@
    Etk_Tree_Row *row = NULL;
 
    //printf("Add Program to tree: %s\n",prog->name);
-   
-   //TODO: place the prog after all the parts
    row = etk_tree_row_append(ETK_TREE(UI_PartsTree),
                NULL,
                COL_NAME, EdjeFile,"PROG.PNG", prog,
                COL_TYPE,ROW_PROG,
                NULL);
 
-   //ecore_hash_set(hash, prog, row);
    return row;
 }
 void 
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- main.c      18 Feb 2008 20:38:40 -0000      1.33
+++ main.c      20 Feb 2008 19:31:38 -0000      1.34
@@ -76,17 +76,17 @@
    printf("Test EdjeFile: %s\nGroup: %s\nTheme: %s\n",File,Group,EdjeFile);
    
    /* ecore evas init */
-       ecore_init();      
-       ecore_evas_init();
-       ee = ecore_evas_software_x11_new(NULL, 0,  0, 0, 0, 0);
-       ecore_evas_title_set(ee, "Edje Test Application");
+   ecore_init();
+   ecore_evas_init();
+   ee = ecore_evas_software_x11_new(NULL, 0,  0, 0, 0, 0);
+   ecore_evas_title_set(ee, "Edje Test Application");
    ecore_evas_callback_resize_set(ee, on_test_win_resize);
-       edje_init();
+   edje_init();
    evas = ecore_evas_get(ee);
    
    /* Background */
    EdjeTest_bg = evas_object_image_add(evas);
-   evas_object_image_file_set(EdjeTest_bg, EdjeFile, "images/1");              
//TODO Find a method to load by name and not by number
+   evas_object_image_file_set(EdjeTest_bg, EdjeFile, "images/1");//TODO Find a 
method to load by name and not by number
    evas_object_image_fill_set(EdjeTest_bg,0,0,240,240);
    evas_object_move(EdjeTest_bg, 0, 0);
    evas_object_resize(EdjeTest_bg, 300, 300);
@@ -159,6 +159,7 @@
    
    //update FakeWin title
    edje_object_part_text_set(EV_fakewin, "title", group);
+   
 }
 
 int



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