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