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 interface.h main.c main.h Log Message: * Add a small arrow in the center of part. If you drag it you can move the 2 points together. Aka move parts. * Add a toggle button on the toolbar to play/stop the edje execution. * Update edje_patch to recent edje change =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v retrieving revision 1.58 retrieving revision 1.59 diff -u -3 -r1.58 -r1.59 --- callbacks.c 22 Feb 2008 02:36:40 -0000 1.58 +++ callbacks.c 23 Feb 2008 03:54:46 -0000 1.59 @@ -209,11 +209,7 @@ edje_object_signal_emit(edje_ui,"set_bg4","edje_editor"); break; case TOOLBAR_PLAY: - ShowAlert("Not yet implemented"); - // snprintf(cmd,1024,"edje_editor -t \"%s\" \"%s\" &", - // Cur.open_file_name,Cur.eg->name); - // printf("TESTING EDJE. cmd: %s\n",cmd); - // system(cmd); + TogglePlayButton(-1); break; case TOOLBAR_DEBUG: //DebugInfo(FALSE); =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/evas.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- evas.c 20 Feb 2008 19:31:38 -0000 1.29 +++ evas.c 23 Feb 2008 03:54:46 -0000 1.30 @@ -10,7 +10,7 @@ #define MAIN_TOP 27 -static Evas_Coord dx, dy; +static Evas_Coord dx, dy, dx2, dy2; void on_Drag(void *data, Evas *e, Evas_Object *obj, void *event_info) @@ -36,6 +36,7 @@ if (y < 0) y = 0; ev_resize_fake((int)x,(int)y); } + // Move Rel1 Point if ((int)data == DRAG_REL1) { @@ -47,7 +48,6 @@ &parenty, &parentw, &parenth); edje_edit_state_rel1_relative_x_set(edje_o, Cur.part->string, Cur.state->string, (float)(mouse_x - parentx)/(float)parentw); - //Calc the rel1_relative_y value evas_object_geometry_get(rel1Y_parent_handler, &parentx, &parenty, &parentw, &parenth); @@ -68,7 +68,6 @@ &parentx, &parenty, &parentw, &parenth); edje_edit_state_rel2_relative_x_set(edje_o, Cur.part->string, Cur.state->string, (float)(mouse_x - parentx)/(float)parentw); - //Calc the rel2_relative_y value evas_object_geometry_get(rel2Y_parent_handler, &parentx, &parenty, &parentw, &parenth); @@ -77,27 +76,72 @@ UpdatePositionFrame(); } + // Move Move Handler + if ((int)data == DRAG_MOVE) + { + evas_pointer_output_xy_get(ecore_evas_get(UI_ecore_MainWin), + &mouse_x, &mouse_y); + //Calc the rel1_relative_x value + evas_object_geometry_get(rel1X_parent_handler, &parentx, + &parenty, &parentw, &parenth); + edje_edit_state_rel1_relative_x_set(edje_o, + Cur.part->string, Cur.state->string, + (float)(mouse_x - parentx - dx)/(float)parentw); + //Calc the rel1_relative_y value + evas_object_geometry_get(rel1Y_parent_handler, &parentx, + &parenty, &parentw, &parenth); + edje_edit_state_rel1_relative_y_set(edje_o, + Cur.part->string, Cur.state->string, + (float)(mouse_y - parenty - dy)/(float)parenth); + //Calc the rel2_relative_x value + evas_object_geometry_get(rel2X_parent_handler, + &parentx, &parenty, &parentw, &parenth); + edje_edit_state_rel2_relative_x_set(edje_o, + Cur.part->string, Cur.state->string, + (float)(mouse_x - parentx - dx + dx2)/(float)parentw); + //Calc the rel2_relative_y value + evas_object_geometry_get(rel2Y_parent_handler, &parentx, + &parenty, &parentw, &parenth); + edje_edit_state_rel2_relative_y_set(edje_o, + Cur.part->string, Cur.state->string, + (float)(mouse_y - parenty - dy + dy2)/(float)parenth); + + UpdatePositionFrame(); + } ev_redraw(); //printf("Drag %s - ",source); //printf("Position %i, %i\n", x, y); } + + void on_StartDrag(void *data, Evas_Object *o, const char *em, const char *src) { + Evas_Coord x, y, mx, my; //printf("Start Drag\n"); if ((int)data == DRAG_REL1) - edje_object_signal_callback_add(rel1_handler,"DRAG","rel1", - on_Drag,(void*)DRAG_REL1); + evas_object_event_callback_add(rel1_handler, EVAS_CALLBACK_MOUSE_MOVE, + on_Drag,(void*)DRAG_REL1); if ((int)data == DRAG_REL2) - edje_object_signal_callback_add(rel2_handler,"DRAG","rel2", - on_Drag,(void*)DRAG_REL2); - /* THIS COMMENT DISABLE THE FAKEWIN MOVE ABILITY (don't like it) */ + evas_object_event_callback_add(rel2_handler, EVAS_CALLBACK_MOUSE_MOVE, + on_Drag,(void*)DRAG_REL2); + if ((int)data == DRAG_MOVE) + { + evas_object_event_callback_add(move_handler, EVAS_CALLBACK_MOUSE_MOVE, + on_Drag,(void*)DRAG_MOVE); + evas_object_geometry_get(rel1_handler, &x, &y, NULL, NULL); + evas_pointer_output_xy_get(ecore_evas_get(UI_ecore_MainWin), &mx, &my); + dx = mx - x - 3; + dy = my - y - 3; + edje_object_part_geometry_get(edje_o, Cur.part->string, NULL, NULL, + &dx2, &dy2); + } + if ((int)data == 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); @@ -113,11 +157,13 @@ { //printf("End Drag\n"); if ((int)data == DRAG_REL1) - edje_object_signal_callback_del(rel1_handler,"DRAG","rel1",on_Drag); + evas_object_event_callback_del(rel1_handler,EVAS_CALLBACK_MOUSE_MOVE,on_Drag); if ((int)data == DRAG_REL2) - edje_object_signal_callback_del(rel2_handler,"DRAG","rel2",on_Drag); + evas_object_event_callback_del(rel2_handler,EVAS_CALLBACK_MOUSE_MOVE,on_Drag); + if ((int)data == DRAG_MOVE) + evas_object_event_callback_del(move_handler,EVAS_CALLBACK_MOUSE_MOVE,on_Drag); if ((int)data == DRAG_MOVEBOX) - evas_object_event_callback_del(EV_movebox, EVAS_CALLBACK_MOUSE_MOVE, on_Drag); + evas_object_event_callback_del(EV_movebox,EVAS_CALLBACK_MOUSE_MOVE,on_Drag); if ((int)data == DRAG_MINIARROW) { int fw,fh; //Fakewin geometry @@ -136,18 +182,26 @@ //Create Rel1 handler rel1_handler = edje_object_add(ecore_evas_get(UI_ecore_MainWin)); edje_object_file_set(rel1_handler, EdjeFile, "Rel1H"); - edje_object_signal_callback_add(rel1_handler,"START_DRAG","rel1", - on_StartDrag,(void*)DRAG_REL1); - edje_object_signal_callback_add(rel1_handler,"END_DRAG","rel1", - on_EndDrag,(void*)DRAG_REL1); + edje_object_signal_callback_add(rel1_handler, "START_DRAG", "rel1", + on_StartDrag, (void*)DRAG_REL1); + edje_object_signal_callback_add(rel1_handler, "END_DRAG", "rel1", + on_EndDrag, (void*)DRAG_REL1); //Create Rel2 handler rel2_handler = edje_object_add(ecore_evas_get(UI_ecore_MainWin)); - edje_object_file_set(rel2_handler,EdjeFile, "Rel2H"); - edje_object_signal_callback_add(rel2_handler,"START_DRAG","rel2", - on_StartDrag,(void*)DRAG_REL2); - edje_object_signal_callback_add(rel2_handler,"END_DRAG","rel2", - on_EndDrag,(void*)DRAG_REL2); + edje_object_file_set(rel2_handler, EdjeFile, "Rel2H"); + edje_object_signal_callback_add(rel2_handler, "START_DRAG", "rel2", + on_StartDrag, (void*)DRAG_REL2); + edje_object_signal_callback_add(rel2_handler, "END_DRAG", "rel2", + on_EndDrag, (void*)DRAG_REL2); + + //Create Move handler + move_handler = edje_object_add(ecore_evas_get(UI_ecore_MainWin)); + edje_object_file_set(move_handler, EdjeFile, "MoveH"); + edje_object_signal_callback_add(move_handler, "START_DRAG", "MoveH", + on_StartDrag, (void*)DRAG_MOVE); + edje_object_signal_callback_add(move_handler, "END_DRAG", "MoveH", + on_EndDrag, (void*)DRAG_MOVE); //Create Parent Handlers rel1X_parent_handler = evas_object_line_add(ecore_evas_get(UI_ecore_MainWin)); @@ -185,8 +239,8 @@ //Place Fakewin - ev_move_fake(TREE_WIDTH+15,75); - ev_resize_fake(200,200); + ev_move_fake(TREE_WIDTH + 15, 75); + ev_resize_fake(200, 200); } void @@ -258,9 +312,19 @@ fy + py + ph - o2y - 4); evas_object_show(rel2_handler); evas_object_raise(rel2_handler); - + + //Draw move_handler + evas_object_move(move_handler, + fx + px + pw/2 - 6, + fy + py + ph/2 - 6); + evas_object_show(move_handler); + evas_object_raise(move_handler); + + //draw Rel1X_ParentH (top line) - if((rel = edje_edit_state_rel1_to_x_get(edje_o, Cur.part->string, Cur.state->string))) + rel = edje_edit_state_rel1_to_x_get(edje_o, Cur.part->string, + Cur.state->string); + if(rel) { edje_object_part_geometry_get(edje_o, rel, &rx, &ry, &rw, &rh); ParentX = fx + rx; @@ -273,7 +337,7 @@ evas_object_geometry_get(EV_fakewin, &ParentX, &ParentY, &ParentW, &ParentH); evas_object_line_xy_set(rel1X_parent_handler, ParentX, ParentY, - ParentX+ParentW, ParentY+1); + ParentX+ParentW, ParentY); //draw Rel1Y_ParentH (left line) if((rel = edje_edit_state_rel1_to_y_get(edje_o, Cur.part->string, Cur.state->string))) @@ -305,7 +369,7 @@ evas_object_geometry_get(EV_fakewin, &ParentX, &ParentY, &ParentW, &ParentH); evas_object_line_xy_set(rel2X_parent_handler, ParentX, ParentY+ParentH, - ParentX+ParentW+1, ParentY+ParentH+1); + ParentX+ParentW, ParentY+ParentH); //draw Rel2Y_ParentH (right line) if((rel = edje_edit_state_rel2_to_y_get(edje_o, Cur.part->string, Cur.state->string))) @@ -334,6 +398,7 @@ evas_object_raise(focus_handler); evas_object_raise(rel1_handler); evas_object_raise(rel2_handler); + evas_object_raise(move_handler); }else{ //none selected, hide all edje_object_signal_emit(rel1_handler,"REL1_HIDE","edje_editor"); @@ -344,6 +409,7 @@ evas_object_hide(rel2Y_parent_handler); evas_object_hide(rel1_handler); evas_object_hide(rel2_handler); + evas_object_hide(move_handler); } } @@ -392,10 +458,6 @@ //printf("DRAW ALL\n"); if (etk_string_length_get(Cur.group)) { - //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); @@ -430,5 +492,6 @@ evas_object_hide(rel2Y_parent_handler); evas_object_hide(rel1_handler); evas_object_hide(rel2_handler); + evas_object_hide(move_handler); evas_object_hide(focus_handler); } =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v retrieving revision 1.63 retrieving revision 1.64 diff -u -3 -r1.63 -r1.64 --- interface.c 22 Feb 2008 02:36:40 -0000 1.63 +++ interface.c 23 Feb 2008 03:54:46 -0000 1.64 @@ -44,6 +44,28 @@ edje_object_part_text_set(Consolle, "line4", evas_list_nth(stack, 3)); edje_object_part_text_set(Consolle, "line5", evas_list_nth(stack, 4)); } + +void +TogglePlayButton(int set) +{ + /* set -1 = toggle 0 = pause 1 = play */ + if (set == -1) + set = !edje_object_play_get(edje_o); + + if (set == 0) + { + edje_object_play_set(edje_o, 0); + etk_button_image_set(ETK_BUTTON(UI_PlayButton), ETK_IMAGE(UI_PlayImage)); + etk_object_properties_set(ETK_OBJECT(UI_PlayButton),"label","Play Edje",NULL); + } + else if (set == 1) + { + edje_object_play_set(edje_o, 1); + etk_button_image_set(ETK_BUTTON(UI_PlayButton), ETK_IMAGE(UI_PauseImage)); + etk_object_properties_set(ETK_OBJECT(UI_PlayButton),"label","Pause Edje",NULL); + } +} + void ShowAlert(char* text) { @@ -1366,7 +1388,6 @@ 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"); @@ -1436,7 +1457,25 @@ etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_OPTION_BG4); etk_menu_shell_append(ETK_MENU_SHELL(UI_OptionsMenu), ETK_MENU_ITEM(menu_item)); + + sep = etk_vseparator_new(); + etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), sep, ETK_BOX_START); + + //UI_PlayButton + UI_PlayImage = etk_image_new_from_stock(ETK_STOCK_MEDIA_PLAYBACK_START, ETK_STOCK_MEDIUM); + UI_PauseImage = etk_image_new_from_stock(ETK_STOCK_MEDIA_PLAYBACK_PAUSE, ETK_STOCK_MEDIUM); + UI_PlayButton = etk_tool_button_new(); + etk_button_image_set (ETK_BUTTON(UI_PlayButton), ETK_IMAGE(UI_PauseImage)); + etk_object_properties_set(ETK_OBJECT(UI_PlayButton),"label","Pause Edje",NULL); + etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), UI_PlayButton, ETK_BOX_START); + etk_signal_connect("clicked", ETK_OBJECT(UI_PlayButton), + ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_PLAY); + #if DEBUG_MODE + //Separator + sep = etk_vseparator_new(); + etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), sep, ETK_BOX_START); + //DebugButton button = etk_tool_button_new_from_stock(ETK_STOCK_DOCUMENT_PROPERTIES); 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.32 retrieving revision 1.33 diff -u -3 -r1.32 -r1.33 --- interface.h 22 Feb 2008 02:36:40 -0000 1.32 +++ interface.h 23 Feb 2008 03:54:46 -0000 1.33 @@ -31,6 +31,10 @@ Etk_Widget *UI_FilechooserLoadButton; Etk_Widget *UI_ColorWin; Etk_Widget *UI_ColorPicker; +/* toolbar objects */ +Etk_Widget *UI_PlayButton; +Etk_Widget *UI_PlayImage; +Etk_Widget *UI_PauseImage; /* group frame objects */ Etk_Widget *UI_GroupNameEntry; Etk_Widget *UI_GroupNameEntryImage; @@ -171,5 +175,6 @@ void ShowAlert(char* text); void ConsolleLog(char *text); void ConsolleClear(void); +void TogglePlayButton(int set); #endif =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -3 -r1.34 -r1.35 --- main.c 20 Feb 2008 19:31:38 -0000 1.34 +++ main.c 23 Feb 2008 03:54:46 -0000 1.35 @@ -136,6 +136,9 @@ if (Cur.group->string && !strcmp(group, Cur.group->string)) return; printf("Change to group: %s\n", group); + + TogglePlayButton(1); + edje_edit_save(edje_o); evas_object_hide(edje_o); ConsolleClear(); =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.h,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- main.h 22 Feb 2008 02:36:40 -0000 1.28 +++ main.h 23 Feb 2008 03:54:46 -0000 1.29 @@ -52,6 +52,7 @@ TOOLBAR_SAVE_EDC, TOOLBAR_SAVE_EDJ, TOOLBAR_PLAY, + TOOLBAR_PAUSE, TOOLBAR_MOVE_UP, TOOLBAR_MOVE_DOWN, TOOLBAR_OPTION_BG1, @@ -97,6 +98,7 @@ DRAG_MINIARROW, DRAG_REL1, DRAG_REL2, + DRAG_MOVE, DRAG_MOVEBOX, REL_COMBO_INTERFACE, IMAGE_TWEEN_UP, @@ -136,6 +138,7 @@ Evas_Object *focus_handler; //The yellow box around the selected part Evas_Object *rel1_handler; //The red point Evas_Object *rel2_handler; //The blue point +Evas_Object *move_handler; //The central move arrows Evas_Object *rel1X_parent_handler; //The 4 line that show the container for each side of the part Evas_Object *rel1Y_parent_handler; // Evas_Object *rel2X_parent_handler; // ------------------------------------------------------------------------- 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