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