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 main.h Log Message: direct-edje version: * Add save ability !! :) * Catch all the events from the edje and show on console * Add programs Need edje patch version 6 on bugzilla #294 =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -3 -r1.42 -r1.43 --- callbacks.c 8 Dec 2007 20:56:14 -0000 1.42 +++ callbacks.c 18 Dec 2007 06:20:49 -0000 1.43 @@ -56,7 +56,7 @@ ShowAlert("Not yet reimplemented ;)"); break; case TOOLBAR_SAVE_EDJ: - ShowAlert("Not yet reimplemented ;)"); + ShowFilechooser(FILECHOOSER_SAVE_EDJ); break; case TOOLBAR_ADD: ShowAlert("Not yet reimplemented ;)"); @@ -332,10 +332,30 @@ edje_object_signal_emit(edje_ui,"group_frame_hide","edje_editor"); edje_object_signal_emit(edje_ui,"program_frame_hide","edje_editor"); edje_object_signal_emit(edje_ui,"script_frame_hide","edje_editor"); - edje_object_signal_emit(edje_ui,"description_frame_show","edje_editor"); edje_object_signal_emit(edje_ui,"position_frame_show","edje_editor"); break; + + case ROW_PROG: + Cur.prog = etk_string_set(Cur.prog, name); + Cur.part = etk_string_clear(Cur.part); + Cur.state = etk_string_clear(Cur.state); + + edje_object_signal_emit(edje_ui,"description_frame_hide","edje_editor"); + edje_object_signal_emit(edje_ui,"position_frame_hide","edje_editor"); + edje_object_signal_emit(edje_ui,"rect_frame_hide","edje_editor"); + edje_object_signal_emit(edje_ui,"image_frame_hide","edje_editor"); + edje_object_signal_emit(edje_ui,"text_frame_hide","edje_editor"); + edje_object_signal_emit(edje_ui,"group_frame_hide","edje_editor"); + edje_object_signal_emit(edje_ui,"part_frame_hide","edje_editor"); + + edje_object_signal_emit(edje_ui,"program_frame_show","edje_editor"); + edje_object_signal_emit(edje_ui,"script_frame_show_small","edje_editor"); + + // UpdateScriptFrame(); + UpdateProgFrame(); + // PopulateSourceComboBox(); + break; } ev_redraw(); @@ -1807,7 +1827,11 @@ snprintf(cmd,4096,"%s/%s", etk_filechooser_widget_current_folder_get (ETK_FILECHOOSER_WIDGET(UI_FileChooser)), etk_filechooser_widget_selected_file_get (ETK_FILECHOOSER_WIDGET(UI_FileChooser))); +#if TEST_DIRECT_EDJE + edje_edit_save(edje_o,cmd); +#else SaveEDJ(cmd); +#endif break; case FILECHOOSER_SAVE_EDC: printf("SAVE EDC\n"); =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/evas.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- evas.c 8 Dec 2007 20:56:14 -0000 1.23 +++ evas.c 18 Dec 2007 06:20:49 -0000 1.24 @@ -520,7 +520,7 @@ //printf("DRAW ALL\n"); //printf("PART: %s\n", Cur.part->string); - if (Cur.part) + if (etk_string_length_get(Cur.part)) { //Get the geometry of ETK_canvas //evas_object_geometry_get(EV_canvas_bg,&x,&y,&w,&h); =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v retrieving revision 1.49 retrieving revision 1.50 diff -u -3 -r1.49 -r1.50 --- interface.c 8 Dec 2007 20:56:14 -0000 1.49 +++ interface.c 18 Dec 2007 06:20:49 -0000 1.50 @@ -165,11 +165,28 @@ etk_tree_row_data_set(row, prog); } #if TEST_DIRECT_EDJE +void +AddProgramToTree2(const char* prog) +{ + 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); +} void PopulateTree2(void) { Evas_List *parts, *pp; Evas_List *states, *sp; + Evas_List *progs; etk_tree_clear(ETK_TREE(UI_PartsTree)); @@ -188,6 +205,15 @@ pp = pp->next; } edje_edit_string_list_free(parts); + + progs = pp = edje_edit_programs_list_get(edje_o); + while(pp) + { + AddProgramToTree2((char*)pp->data); + pp = pp->next; + } + edje_edit_string_list_free(progs); + etk_tree_row_select(etk_tree_first_row_get (ETK_TREE(UI_PartsTree))); } void @@ -368,7 +394,7 @@ parts = l = edje_edit_parts_list_get(edje_o); while (l) { - printf("-- %s\n", (char *)l->data); + //printf("-- %s\n", (char *)l->data); type = edje_edit_part_type_get(edje_o,(char *)l->data); if (type == EDJE_PART_TYPE_RECTANGLE) @@ -486,7 +512,7 @@ tweens = l = edje_edit_state_tweens_list_get(edje_o, Cur.part->string, Cur.state->string); while (l) { - printf("RET: %s (id: %d)\n", l->data, edje_edit_image_id_get(edje_o, l->data)); + //printf("RET: %s (id: %d)\n", l->data, edje_edit_image_id_get(edje_o, l->data)); //snprintf(buf, sizeof(buf), "images/%d", edje_edit_image_id_get(edje_o, l->data)); TODO: find a way to append image directly from the edje file. etk_tree_row_append(ETK_TREE(UI_ImageTweenList), NULL, col, NULL, NULL, l->data, @@ -1242,11 +1268,6 @@ void UpdateProgFrame(void) { - if (!Cur.epr) - return; - - printf("Update Program: %s\n",Cur.epr->name); - //Stop signal propagation etk_signal_block("text-changed", ETK_OBJECT(UI_ProgramEntry), ETK_CALLBACK(on_ProgramEntry_text_changed), NULL); @@ -1274,7 +1295,90 @@ etk_signal_block("text-changed", ETK_OBJECT(UI_Param2Entry), ETK_CALLBACK(on_Param2Entry_text_changed), NULL); - +#if TEST_DIRECT_EDJE + char *s; + + if (!etk_string_length_get(Cur.prog)) return; //TODO place before signal_blocks + //Update Program + etk_entry_text_set(ETK_ENTRY(UI_ProgramEntry),Cur.prog->string); + + //Update Source + s = edje_edit_program_source_get(edje_o, Cur.prog->string); + etk_entry_text_set(ETK_ENTRY(etk_combobox_entry_entry_get(ETK_COMBOBOX_ENTRY(UI_SourceEntry))),s); + edje_edit_string_free(s); + printf("-----------\n"); + //Update Signal + s = edje_edit_program_signal_get(edje_o, Cur.prog->string); + etk_entry_text_set(ETK_ENTRY(UI_SignalEntry),s); + edje_edit_string_free(s); + + + //Update Delay + etk_range_value_set(ETK_RANGE(UI_DelayFromSpinner), + edje_edit_program_in_from_get(edje_o, Cur.prog->string)); + etk_range_value_set(ETK_RANGE(UI_DelayRangeSpinner), + edje_edit_program_in_range_get(edje_o, Cur.prog->string)); + + //Update Action + /* if (Cur.epr->action == ENGRAVE_ACTION_SIGNAL_EMIT) + etk_combobox_active_item_set (ETK_COMBOBOX(UI_ActionComboBox), + etk_combobox_nth_item_get(ETK_COMBOBOX(UI_ActionComboBox),2)); + if (Cur.epr->action == ENGRAVE_ACTION_STATE_SET) + etk_combobox_active_item_set (ETK_COMBOBOX(UI_ActionComboBox), + etk_combobox_nth_item_get(ETK_COMBOBOX(UI_ActionComboBox),0)); + if (Cur.epr->action == ENGRAVE_ACTION_STOP) + etk_combobox_active_item_set (ETK_COMBOBOX(UI_ActionComboBox), + etk_combobox_nth_item_get(ETK_COMBOBOX(UI_ActionComboBox),1)); + + //Update Target(s) + Evas_List *tl; //target list + Etk_String *str=etk_string_new(""); + for (tl = Cur.epr->targets; tl; tl = tl->next) + { + str = etk_string_append(str,tl->data); + str = etk_string_append(str,", "); + } + if (str->length > 2) + etk_string_truncate (str, str->length - 2); + etk_entry_text_set(ETK_ENTRY(UI_TargetEntry),str->string); + + //Update Param1/2 + etk_entry_text_set(ETK_ENTRY(UI_Param1Entry),Cur.epr->state); + etk_entry_text_set(ETK_ENTRY(UI_Param2Entry),Cur.epr->state2); + etk_range_value_set (ETK_RANGE(UI_Param1Spinner), Cur.epr->value); + + //Update Transition + if (Cur.epr->transition== ENGRAVE_TRANSITION_LINEAR) + etk_combobox_active_item_set (ETK_COMBOBOX(UI_TransiComboBox), + etk_combobox_nth_item_get(ETK_COMBOBOX(UI_TransiComboBox),0)); + if (Cur.epr->transition == ENGRAVE_TRANSITION_SINUSOIDAL) + etk_combobox_active_item_set (ETK_COMBOBOX(UI_TransiComboBox), + etk_combobox_nth_item_get(ETK_COMBOBOX(UI_TransiComboBox),1)); + if (Cur.epr->transition == ENGRAVE_TRANSITION_ACCELERATE) + etk_combobox_active_item_set (ETK_COMBOBOX(UI_TransiComboBox), + etk_combobox_nth_item_get(ETK_COMBOBOX(UI_TransiComboBox),2)); + if (Cur.epr->transition == ENGRAVE_TRANSITION_DECELERATE) + etk_combobox_active_item_set (ETK_COMBOBOX(UI_TransiComboBox), + etk_combobox_nth_item_get(ETK_COMBOBOX(UI_TransiComboBox),3)); + etk_range_value_set (ETK_RANGE(UI_DurationSpinner), Cur.epr->duration); + + //Update Afters(s) + etk_string_truncate(str,0); + for (tl = Cur.epr->afters; tl; tl = tl->next) + { + str = etk_string_append(str,tl->data); + str = etk_string_append(str,", "); + } + if (str->length > 2) + etk_string_truncate (str, str->length - 2); + etk_entry_text_set(ETK_ENTRY(UI_AfterEntry),str->string); + etk_object_destroy(ETK_OBJECT(str));*/ +#else + + if (!Cur.epr) return; + + //printf("Update Program: %s\n",Cur.epr->name); + //Update Program etk_entry_text_set(ETK_ENTRY(UI_ProgramEntry),Cur.epr->name); @@ -1343,7 +1447,7 @@ etk_string_truncate (str, str->length - 2); etk_entry_text_set(ETK_ENTRY(UI_AfterEntry),str->string); etk_object_destroy(ETK_OBJECT(str)); - +#endif //Reenable signal propagation etk_signal_unblock("text-changed", ETK_OBJECT(UI_ProgramEntry), ETK_CALLBACK(on_ProgramEntry_text_changed), NULL); =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- main.c 8 Dec 2007 20:56:14 -0000 1.23 +++ main.c 18 Dec 2007 06:20:49 -0000 1.24 @@ -263,10 +263,10 @@ printf(" ** Cur state: %s\n",Cur.state->string); else printf(" ** Cur state: (NULL)\n"); - /*if (Cur.epr) - printf(" ** Cur program: %s\n",Cur.epr->name); + if (etk_string_length_get(Cur.prog)) + printf(" ** Cur program: %s\n",Cur.prog->string); else - printf(" ** Cur program: (NULL)\n");*/ + printf(" ** Cur program: (NULL)\n"); printf(" *********************** E N D *****************************\n\n"); } #else @@ -399,10 +399,13 @@ } #if TEST_DIRECT_EDJE void -ChangeGroup(const char *group) +ChangeGroup(char *group) { + if (!group) return; + printf("Selected group: %s\n", group); + evas_object_hide(edje_o); edje_object_file_set(edje_o, Cur.edj_file_name->string, group); - + evas_object_show(edje_o); Parts_Hash = NULL; //TODO FREE Cur.group = etk_string_set(Cur.group, group); @@ -414,6 +417,13 @@ PopulateRelComboBoxes(); } #endif + +static void signal_cb(void *data, Evas_Object *o, const char *sig, const char *src) +{ + printf("CALLBACK for \"%s\" \"%s\"\n", sig, src); +} + + /* main */ int main(int argc, char **argv) @@ -516,19 +526,28 @@ Cur.group = etk_string_new(""); Cur.part = etk_string_new(""); Cur.state = etk_string_new(""); + Cur.prog = etk_string_new(""); Parts_Hash = NULL; //Create the main edje object to edit edje_o = edje_object_add(UI_evas); - + edje_object_signal_callback_add(edje_o, "*", "*", signal_cb, NULL); + edje_object_file_set(edje_o, Cur.edj_file_name->string, "icon"); + evas_object_resize(edje_o, 100, 100); + evas_object_move(edje_o, 100, 100); + evas_object_show(edje_o); + + /* Evas_Object *o2; + o2 = edje_object_add(UI_evas); + edje_object_file_set(o2,"/home/dave/test/globe2.edj","icon"); + evas_object_show(o2); + evas_object_resize(o2, 100, 100); + */ PopulateGroupsComboBox(); - PopulateTree2(); PopulateFontsComboBox(); PopulateImagesComboBox(); - - evas_object_show(edje_o); #else =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- main.h 8 Dec 2007 20:56:14 -0000 1.20 +++ main.h 18 Dec 2007 06:20:49 -0000 1.21 @@ -15,7 +15,7 @@ #define TEST_DIRECT_EDJE 0 -#define DEBUG_TREE 1 +#define DEBUG_TREE 0 #if DEBUG_TREE #define TREE_WIDTH 365 #else @@ -125,6 +125,7 @@ Etk_String *group; Etk_String *part; Etk_String *state; + Etk_String *prog; Etk_String *edj_file_name; @@ -181,7 +182,7 @@ Evas_Hash *Parts_Hash; -void ChangeGroup(const char *group); +void ChangeGroup(char *group); #endif #endif // INCLUSION_GUARD ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs