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