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: * more on testing the direct-edje-editing version (need edje patch on bugzilla #294 version 2) * patch from Massimiliano to remove programs (thanks) =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- callbacks.c 28 Nov 2007 07:10:52 -0000 1.37 +++ callbacks.c 2 Dec 2007 16:44:14 -0000 1.38 @@ -15,6 +15,7 @@ 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); +extern void PROTO_engrave_group_program_remove(Engrave_Group *eg, Engrave_Program *epr); int current_color_object; @@ -263,8 +264,7 @@ case ROW_PART: #if TEST_DIRECT_EDJE Cur.part = etk_string_set(Cur.part, etk_tree_row_data_get (row)); - Cur.state = etk_string_clear(Cur.state); - Cur.state_n = 0; + Cur.state = NULL; edje_object_signal_emit(edje_ui,"description_frame_hide","edje_editor"); edje_object_signal_emit(edje_ui,"position_frame_hide","edje_editor"); @@ -296,15 +296,17 @@ break; case ROW_DESC: #if TEST_DIRECT_EDJE - Cur.state = etk_string_set(Cur.state,etk_tree_row_data_get (row)); + Cur.state = etk_string_set(Cur.state, etk_tree_row_data_get (row)); //get the parent part of the row from the hidden col etk_tree_row_fields_get(row, etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 3),&part, NULL); Cur.part = etk_string_set(Cur.part, part); - UpdatePositionFrame(); + edje_edit_part_selected_state_set(edje_o, Cur.part->string, Cur.state->string); + UpdatePositionFrame(); + edje_object_signal_emit(edje_ui,"part_frame_hide","edje_editor"); edje_object_signal_emit(edje_ui,"group_frame_hide","edje_editor"); edje_object_signal_emit(edje_ui,"program_frame_hide","edje_editor"); @@ -795,7 +797,36 @@ on_RelOffsetSpinner_value_changed(Etk_Range *range, double value, void *data) { printf("Value Changed Signal on Offset Spinner EMITTED\n"); - +#if TEST_DIRECT_EDJE + if (etk_string_length_get(Cur.state) && etk_string_length_get(Cur.part)) + { + switch ((int)data) + { + case REL1X_SPINNER: + edje_edit_state_rel1_offset_x_set(edje_o, + Cur.part->string, Cur.state->string, + etk_range_value_get(range)); + break; + case REL1Y_SPINNER: + edje_edit_state_rel1_offset_y_set(edje_o, + Cur.part->string, Cur.state->string, + etk_range_value_get(range)); + break; + case REL2X_SPINNER: + edje_edit_state_rel2_offset_x_set(edje_o, + Cur.part->string, Cur.state->string, + etk_range_value_get(range)); + break; + case REL2Y_SPINNER: + edje_edit_state_rel2_offset_y_set(edje_o, + Cur.part->string, Cur.state->string, + etk_range_value_get(range)); + break; + } + ev_redraw(); + //ev_draw_focus(); + } +#else if (Cur.eps) { switch ((int)data) @@ -816,7 +847,7 @@ ev_redraw(); //ev_draw_focus(); } - +#endif return ETK_TRUE; } @@ -1507,6 +1538,25 @@ if (row) etk_tree_row_select(row); }else{ ShowAlert("No group selected"); + } + break; + case REMOVE_PROG: + if (Cur.epr) + { + row = NULL; + row = etk_tree_row_next_get(ecore_hash_get(hash,Cur.epr)); + if (!row) row = etk_tree_row_prev_get(ecore_hash_get(hash,Cur.epr)); + etk_tree_row_delete(ecore_hash_get(hash,Cur.epr)); + ecore_hash_remove (hash, Cur.epr); + PROTO_engrave_group_program_remove(Cur.eg, Cur.epr); + engrave_program_free(Cur.epr); + + Cur.epr = NULL; + + ev_redraw(); + if (row) etk_tree_row_select(row); + }else{ + ShowAlert("No program selected"); } break; } =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/evas.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- evas.c 28 Nov 2007 07:10:52 -0000 1.18 +++ evas.c 2 Dec 2007 16:44:14 -0000 1.19 @@ -194,10 +194,15 @@ //printf("DRAW FOCUS\n"); - if (Cur.ep && !Cur.ep->current_state) - Cur.ep->current_state = Cur.ep->states->data; - #if TEST_DIRECT_EDJE + int o1x, o1y, o2x, o2y; + char *state; + + state = edje_edit_part_selected_state_get(edje_o, Cur.part->string); + o1x = edje_edit_state_rel1_offset_x_get(edje_o, Cur.part->string, state); + o1y = edje_edit_state_rel1_offset_y_get(edje_o, Cur.part->string, state); + o2x = edje_edit_state_rel2_offset_x_get(edje_o, Cur.part->string, state); + o2y = edje_edit_state_rel2_offset_y_get(edje_o, Cur.part->string, state); // If a part is selected draw the Focus Handler (only the yellow box) if (etk_string_length_get(Cur.part))//&& Cur.ep->current_state) { @@ -206,14 +211,18 @@ evas_object_geometry_get(EV_fakewin,&wx,&wy,NULL,NULL); - edje_edit_part_real_coord_get(edje_o, Cur.part->string, &px, &py, &pw, &ph); + edje_object_part_geometry_get(edje_o, Cur.part->string, &px, &py, &pw, &ph); + + + printf("CURRENT STATE: %s - %d\n",state,o1x); + evas_object_move(focus_handler, - px + wx - 2, //- Cur.ep->current_state->rel1.offset.x - 2, - py + wy - 2);// - Cur.ep->current_state->rel1.offset.y - 2); + px + wx - o1x - 2, //- Cur.ep->current_state->rel1.offset.x - 2, + py + wy - o1y - 2);// - Cur.ep->current_state->rel1.offset.y - 2); evas_object_resize(focus_handler, - pw + 2, // + Cur.ep->current_state->rel1.offset.x - Cur.ep->current_state->rel2.offset.x + 2, - ph + 2);// + Cur.ep->current_state->rel1.offset.y - Cur.ep->current_state->rel2.offset.y + 2); + pw + o1x - o2x + 2, // + Cur.ep->current_state->rel1.offset.x - Cur.ep->current_state->rel2.offset.x + 2, + ph + o1y - o2y + 2);// + Cur.ep->current_state->rel1.offset.y - Cur.ep->current_state->rel2.offset.y + 2); evas_object_raise (focus_handler); evas_object_show(focus_handler); }else @@ -222,31 +231,30 @@ } // if a part description is selected draw also the parent handlers (the red and blue lines) //if(Cur.eps && EV_fakewin && 0) - if (etk_string_length_get(Cur.state)) + if (etk_string_length_get(Cur.state) && etk_string_length_get(Cur.part)) { int px,py,pw,ph; printf("Draw parent Handlers\n"); //Get the geometry of fakewin evas_object_geometry_get(EV_fakewin,&fx,&fy,&fw,&fh); - edje_edit_part_real_coord_get(edje_o, Cur.part->string, &px, &py, &pw, &ph); + edje_object_part_geometry_get(edje_o, Cur.part->string, &px, &py, &pw, &ph); printf("FW geom: %d %d %d %d\n",fx,fy,fw,fh); printf("PA geom: %d %d %d %d\n",px,py,pw,ph); //Draw rel1 & rel2 point evas_object_move (rel1_handler, - fx + px - 2, - fy + py - 2); + fx + px - o1x - 2, + fy + py - o1y - 2); evas_object_show(rel1_handler); evas_object_raise(rel1_handler); evas_object_move (rel2_handler, - fx + px + pw - 4, - fy + py + ph - 4); + fx + px + pw - o2x - 4, + fy + py + ph - o2y - 4); evas_object_show(rel2_handler); evas_object_raise(rel2_handler); - ParentX = fx; ParentY = fy; ParentW = fw; @@ -345,6 +353,9 @@ evas_object_hide(rel2_handler); } #else + if (Cur.ep && !Cur.ep->current_state) + Cur.ep->current_state = Cur.ep->states->data; + // If a part is selected draw the Focus Handler (only the yellow box) if (Cur.ep && Cur.ep->current_state) { =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v retrieving revision 1.44 retrieving revision 1.45 diff -u -3 -r1.44 -r1.45 --- interface.c 28 Nov 2007 07:10:52 -0000 1.44 +++ interface.c 2 Dec 2007 16:44:14 -0000 1.45 @@ -71,29 +71,24 @@ { Etk_Tree_Col *col1,*col2,*col3, *col4; Etk_Tree_Row *row; - - char buf[4096]; + const char *stock_key; col1 = etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 0); col2 = etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 1); col3 = etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 2); col4 = etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 3); - //snprintf(buf,4096,"%s %.2f",state->name,state->value); - snprintf(buf,4096,"%s",state_name); + stock_key = etk_stock_key_get(ETK_STOCK_TEXT_X_GENERIC, ETK_STOCK_SMALL); row = etk_tree_row_append(ETK_TREE(UI_PartsTree), evas_hash_find(Parts_Hash,part_name), - col1, EdjeFile, "DESC.PNG", buf, + col1, EdjeFile, "DESC.PNG", state_name, col2, TRUE, col3, ROW_DESC, col4, part_name, NULL); etk_tree_row_data_set (row, state_name); //ecore_hash_set(hash, state, row); - - - } #endif @@ -221,12 +216,11 @@ parts = edje_edit_parts_list_get(edje_o); while(parts) { - //printf(" P: %s\n", (char*)parts->data); + printf(" P: %s\n", (char*)parts->data); AddPartToTree2((char*)parts->data); - states = edje_edit_part_states_get(edje_o, (char*)parts->data); + states = edje_edit_part_states_list_get(edje_o, (char*)parts->data); while(states) { - //printf(" s: %s\n", (char*)states->data); AddStateToTree2((char*)parts->data, (char*)states->data); states = states->next; } @@ -782,10 +776,10 @@ etk_signal_block("value-changed", ETK_OBJECT(UI_Rel2YOffsetSpinner), ETK_CALLBACK(on_RelOffsetSpinner_value_changed), (void*)REL2Y_SPINNER); #if TEST_DIRECT_EDJE - if (!etk_string_length_get(Cur.state)) return; if (!etk_string_length_get(Cur.part)) return; + //Set relative position spinners etk_range_value_set(ETK_RANGE(UI_Rel1XSpinner), edje_edit_state_rel1_relative_x_get(edje_o, Cur.part->string,Cur.state->string)); etk_range_value_set(ETK_RANGE(UI_Rel1YSpinner), @@ -794,6 +788,15 @@ edje_edit_state_rel2_relative_x_get(edje_o, Cur.part->string,Cur.state->string)); etk_range_value_set(ETK_RANGE(UI_Rel2YSpinner), edje_edit_state_rel2_relative_y_get(edje_o, Cur.part->string,Cur.state->string)); + + etk_range_value_set (ETK_RANGE(UI_Rel1XOffsetSpinner), + edje_edit_state_rel1_offset_x_get(edje_o, Cur.part->string,Cur.state->string)); + etk_range_value_set (ETK_RANGE(UI_Rel1YOffsetSpinner), + edje_edit_state_rel1_offset_y_get(edje_o, Cur.part->string,Cur.state->string)); + etk_range_value_set (ETK_RANGE(UI_Rel2XOffsetSpinner), + edje_edit_state_rel2_offset_x_get(edje_o, Cur.part->string,Cur.state->string)); + etk_range_value_set (ETK_RANGE(UI_Rel2YOffsetSpinner), + edje_edit_state_rel2_offset_y_get(edje_o, Cur.part->string,Cur.state->string)); #else //Set relative position spinners etk_range_value_set (ETK_RANGE(UI_Rel1XSpinner), Cur.eps->rel1.relative.x); @@ -1351,6 +1354,15 @@ ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_GROUP); etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(menu_item)); + + //program + menu_item = etk_menu_item_image_new_with_label("Selected Program"); + image = etk_image_new_from_edje(EdjeFile,"PROG.PNG"); + etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image)); + etk_signal_connect("activated", ETK_OBJECT(menu_item), + ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_PROG); + etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(menu_item)); + sep = etk_vseparator_new(); etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), sep, ETK_BOX_START); =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- main.c 28 Nov 2007 07:10:52 -0000 1.17 +++ main.c 2 Dec 2007 16:44:14 -0000 1.18 @@ -155,6 +155,26 @@ eg->parts = evas_list_remove(eg->parts,ep); engrave_part_parent_set(ep, NULL); } + +/** + * engrave_group_program_remove - remove the given program from the group + * @param eg: The Engrave_Group to remove the program too. + * @param ep: The Engrave_Program to remove. + * + * @return Returns no value. + */ +/*EAPI*/ void +PROTO_engrave_group_program_remove(Engrave_Group *eg, Engrave_Program *epr) { + Engrave_Group * group; + Evas_List * list; + + if (!eg || !epr) return; + + eg->programs = evas_list_remove(eg->programs, epr); + engrave_program_parent_set(epr, NULL); + +} + /** * engrave_file_group_remove - remove the group from the given file * @param ef: The Engrave_File to remove the group too. @@ -217,6 +237,33 @@ //evas_object_lower(ep->object); return TRUE; } +#if TEST_DIRECT_EDJE +void +DebugInfo(int full) +{ + Engrave_Group *gro; + Engrave_Part *par; + Engrave_Part_State *sta; + Evas_List *gp,*pp,*sp; + + printf("\n\n ********************* D E B U G ***************************\n"); + printf(" ** open file name: %s\n",Cur.edj_file_name->string); + printf(" ** edje_editor.edj: %s\n",EdjeFile); + if (etk_string_length_get(Cur.part)) + printf(" ** Cur part: %s\n",Cur.part->string); + else + printf(" ** Cur group: (NULL)\n"); + if (etk_string_length_get(Cur.state)) + 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); + else + printf(" ** Cur program: (NULL)\n");*/ + printf(" *********************** E N D *****************************\n\n"); +} +#else void DebugInfo(int full) { @@ -282,6 +329,7 @@ printf(" *********************** E N D *****************************\n\n"); } +#endif void TestEdjeGroup(char *File,char *Group) { @@ -424,8 +472,14 @@ printf("Testing edje direct access!!...\n"); printf("*********************************\n"); char *file; - + double val = 1.2; + printf("TEST:\n"); + + setlocale(LC_NUMERIC,"C"); + sscanf("3.2","%lf", &val); + printf("%f\n", val); + if (argc > 1) { @@ -451,10 +505,8 @@ ecore_evas_title_set(UI_ecore_MainWin, Cur.edj_file_name->string); Cur.part = etk_string_new(""); - Cur.state = etk_string_new(""); + Cur.state = NULL; Parts_Hash = NULL; - Cur.part = etk_string_new(""); - Cur.state = etk_string_new(""); //Create the main edje object to edit edje_o = edje_object_add(UI_evas); =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- main.h 28 Nov 2007 07:10:52 -0000 1.15 +++ main.h 2 Dec 2007 16:44:14 -0000 1.16 @@ -2,6 +2,7 @@ #define INCLUSION_GUARD #include <Engrave.h> +#include <Edje.h> #include <Ecore_Data.h> #include <Ecore_File.h> #include <Ecore_Evas.h> @@ -67,6 +68,7 @@ REMOVE_DESCRIPTION, REMOVE_PART, REMOVE_GROUP, + REMOVE_PROG, REL1X_SPINNER, REL1Y_SPINNER, REL2X_SPINNER, @@ -115,8 +117,9 @@ #if TEST_DIRECT_EDJE Etk_String *part; Etk_String *state; + Etk_String *edj_file_name; - double *state_n; + #endif }Cur; ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs