Enlightenment CVS committal Author : davemds Project : e17 Module : proto/edje_editor
Dir : e17/proto/edje_editor/src/bin Modified Files: callbacks.c callbacks.h interface.c interface.h main.c main.h Log Message: * Add shortcuts 'engine' ctrl+q = quit ctrl+f = fullscreen ctrl+s = save ...and more to come * Disable not in context menu items (but etk should grey-out disabled menu entry) =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v retrieving revision 1.68 retrieving revision 1.69 diff -u -3 -r1.68 -r1.69 --- callbacks.c 19 Apr 2008 21:24:54 -0000 1.68 +++ callbacks.c 21 Jun 2008 21:40:27 -0000 1.69 @@ -87,7 +87,7 @@ ShowFilechooser(FILECHOOSER_SAVE_EDJ); break; } - + edje_edit_save(edje_o); if (!ecore_file_cp(Cur.edj_temp_name->string, Cur.edj_file_name->string)) { @@ -101,12 +101,27 @@ ShowFilechooser(FILECHOOSER_SAVE_EDJ); break; case TOOLBAR_ADD: + if (!etk_string_length_get(Cur.part)) + etk_widget_disabled_set(UI_AddStateButton, 1); + else etk_widget_disabled_set(UI_AddStateButton, 0); etk_menu_popup(ETK_MENU(UI_AddMenu)); break; case TOOLBAR_REMOVE: + if (!etk_string_length_get(Cur.state)) + etk_widget_disabled_set(UI_RemoveStateButton, 1); + else etk_widget_disabled_set(UI_RemoveStateButton, 0); + if (!etk_string_length_get(Cur.part)) + etk_widget_disabled_set(UI_RemovePartButton, 1); + else etk_widget_disabled_set(UI_RemovePartButton, 0); + if (!etk_string_length_get(Cur.prog)) + etk_widget_disabled_set(UI_RemoveProgramButton, 1); + else etk_widget_disabled_set(UI_RemoveProgramButton, 0); + etk_menu_popup(ETK_MENU(UI_RemoveMenu)); break; - + case TOOLBAR_QUIT: + etk_main_quit(); + break; case TOOLBAR_MOVE_UP: //Lower if (!etk_string_length_get(Cur.part)) { @@ -215,6 +230,10 @@ case TOOLBAR_OPTION_BG4: edje_object_signal_emit(edje_ui,"set_bg4","edje_editor"); break; + case TOOLBAR_OPTION_FULLSCREEN: + Cur.fullscreen = !Cur.fullscreen; + ecore_evas_fullscreen_set(UI_ecore_MainWin, Cur.fullscreen); + break; case TOOLBAR_PLAY: TogglePlayButton(-1); break; @@ -248,6 +267,58 @@ return ETK_TRUE; } +void +on_Editing_click(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Object *o2; + int x, y; + Evas_Event_Mouse_Down *ev = event_info; + + evas_pointer_output_xy_get(e, &x, &y); + + printf("CLIK\n"); + //o2 = evas_object_top_at_pointer_get(e); + Evas_List *l = evas_objects_at_xy_get (e, ev->canvas.x, ev->canvas.y, 1, 1); + printf("CLIK %x [%d %d] num: %d\n", obj, ev->canvas.x, ev->canvas.y, evas_list_count(l)); + +} + +void +on_Mainwin_key_press(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Evas_Event_Key_Down *ev = event_info; + + printf("*** Logo receive key pressed\n"); + printf(" keyname: %s\n", ev->keyname); + printf(" key: %s\n", ev->key); + printf(" string: %s\n", ev->string); + printf(" compose: %s\n", ev->compose); + + + /* NOTE: To add new bindings you must add a keygrab for the key + you want in create_main_window(). And remember to update the README */ + + /* quit */ + if (!strcmp(ev->key, "q") && + evas_key_modifier_is_set(ev->modifiers, "Control")) + etk_main_quit(); + + /* fullscreen */ + else if (!strcmp(ev->key, "f") && + evas_key_modifier_is_set(ev->modifiers, "Control")) + { + Cur.fullscreen = !Cur.fullscreen; + ecore_evas_fullscreen_set(UI_ecore_MainWin, Cur.fullscreen); + } + + /* save (TODO make some sort of feedback for the user)*/ + else if (!strcmp(ev->key, "s") && + evas_key_modifier_is_set(ev->modifiers, "Control")) + on_AllButton_click(NULL, TOOLBAR_SAVE); + + +} + /* Tree callbacks */ Etk_Bool on_PartsTree_row_selected(Etk_Object *object, Etk_Tree_Row *row, void *data) @@ -359,7 +430,7 @@ Etk_Bool on_GroupNameEntry_key_down(Etk_Object *object, Etk_Event_Key_Down *event, void *data) { - printf("PRESSED %s\n", event->keyname); + //printf("PRESSED %s\n", event->keyname); if (!strcmp(event->keyname, "Return")) on_GroupNameEntryImage_mouse_clicked( =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.h,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- callbacks.h 26 Feb 2008 01:33:35 -0000 1.25 +++ callbacks.h 21 Jun 2008 21:40:27 -0000 1.26 @@ -21,6 +21,8 @@ Etk_Bool on_StateEntry_key_down (Etk_Object *object, Etk_Event_Key_Down *event, void *data); Etk_Bool on_StateEntryImage_mouse_clicked (Etk_Object *object, void *data); Etk_Bool on_AllButton_click (Etk_Button *button, void *data); +void on_Mainwin_key_press (void *data, Evas *e, Evas_Object *obj, void *event_info); +void on_Editing_click (void *data, Evas *e, Evas_Object *obj, void *event_info); Etk_Bool on_AddMenu_item_activated (Etk_Object *object, void *data); Etk_Bool on_RemoveMenu_item_activated (Etk_Object *object, void *data); Etk_Bool on_RelToComboBox_changed (Etk_Combobox *combobox, void *data); =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v retrieving revision 1.70 retrieving revision 1.71 diff -u -3 -r1.70 -r1.71 --- interface.c 19 Apr 2008 22:58:48 -0000 1.70 +++ interface.c 21 Jun 2008 21:40:27 -0000 1.71 @@ -38,11 +38,11 @@ stack = evas_list_remove_list(stack, evas_list_last(stack)); } - edje_object_part_text_set(Consolle, "line1", evas_list_nth(stack, 0)); - edje_object_part_text_set(Consolle, "line2", evas_list_nth(stack, 1)); - edje_object_part_text_set(Consolle, "line3", evas_list_nth(stack, 2)); - edje_object_part_text_set(Consolle, "line4", evas_list_nth(stack, 3)); - edje_object_part_text_set(Consolle, "line5", evas_list_nth(stack, 4)); + edje_object_part_text_set(Consolle, "line1", evas_list_nth(stack, 0)); + edje_object_part_text_set(Consolle, "line2", evas_list_nth(stack, 1)); + edje_object_part_text_set(Consolle, "line3", evas_list_nth(stack, 2)); + 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 @@ -1537,12 +1537,12 @@ etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item)); //New Description - menu_item = etk_menu_item_image_new_with_label("A new state to part"); + UI_AddStateButton = etk_menu_item_image_new_with_label("A new state to part"); image = etk_image_new_from_edje(EdjeFile,"DESC.PNG"); - etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image)); - etk_signal_connect("activated", ETK_OBJECT(menu_item), + etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(UI_AddStateButton), ETK_IMAGE(image)); + etk_signal_connect("activated", ETK_OBJECT(UI_AddStateButton), ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_DESC); - etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item)); + etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(UI_AddStateButton)); //New Group menu_item = etk_menu_item_image_new_with_label("A new group to edj"); @@ -1562,38 +1562,38 @@ UI_RemoveMenu = etk_menu_new(); //description - menu_item = etk_menu_item_image_new_with_label("Selected State"); + UI_RemoveStateButton = etk_menu_item_image_new_with_label("Selected State"); image = etk_image_new_from_edje(EdjeFile,"DESC.PNG"); - etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image)); - etk_signal_connect("activated", ETK_OBJECT(menu_item), + etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(UI_RemoveStateButton), ETK_IMAGE(image)); + etk_signal_connect("activated", ETK_OBJECT(UI_RemoveStateButton), ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_DESCRIPTION); - etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(menu_item)); + etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(UI_RemoveStateButton)); //part - menu_item = etk_menu_item_image_new_with_label("Selected Part"); - etk_signal_connect("activated", ETK_OBJECT(menu_item), + UI_RemovePartButton = etk_menu_item_image_new_with_label("Selected Part"); + etk_signal_connect("activated", ETK_OBJECT(UI_RemovePartButton), ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_PART); - etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(menu_item)); - - //group - menu_item = etk_menu_item_image_new_with_label("Selected Group"); - image = etk_image_new_from_edje(EdjeFile,"NONE.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_GROUP); - etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(menu_item)); + etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(UI_RemovePartButton)); //program - menu_item = etk_menu_item_image_new_with_label("Selected Program"); + UI_RemoveProgramButton = 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_menu_item_image_set(ETK_MENU_ITEM_IMAGE(UI_RemoveProgramButton), ETK_IMAGE(image)); + etk_signal_connect("activated", ETK_OBJECT(UI_RemoveProgramButton), ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_PROG); - etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(menu_item)); + etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(UI_RemoveProgramButton)); sep = etk_vseparator_new(); etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), sep, ETK_BOX_START); + //group + menu_item = etk_menu_item_image_new_with_label("Current Group"); + image = etk_image_new_from_edje(EdjeFile,"NONE.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_GROUP); + etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), ETK_MENU_ITEM(menu_item)); + //MoveUp Button button = etk_tool_button_new_from_stock( ETK_STOCK_GO_UP); etk_object_properties_set(ETK_OBJECT(button),"label","Lower",NULL); @@ -1639,7 +1639,7 @@ //set bg3 menu_item = etk_menu_item_image_new_with_label("White background"); - image = etk_image_new_from_edje(EdjeFile,"NONE.PNG"); + image = etk_image_new_from_edje(EdjeFile,"BG3_I.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_AllButton_click), (void*)TOOLBAR_OPTION_BG3); @@ -1647,12 +1647,24 @@ //set bg4 menu_item = etk_menu_item_image_new_with_label("Black background"); - image = etk_image_new_from_edje(EdjeFile,"NONE.PNG"); + image = etk_image_new_from_edje(EdjeFile,"BG4_I.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_AllButton_click), (void*)TOOLBAR_OPTION_BG4); etk_menu_shell_append(ETK_MENU_SHELL(UI_OptionsMenu), ETK_MENU_ITEM(menu_item)); + //Separator + menu_item = etk_menu_item_separator_new(); + etk_menu_shell_append(ETK_MENU_SHELL(UI_OptionsMenu), ETK_MENU_ITEM(menu_item)); + + //Fullscreen + menu_item = etk_menu_item_image_new_with_label("Toggle fullscreen"); + image = etk_image_new_from_stock(ETK_STOCK_VIDEO_DISPLAY, ETK_STOCK_SMALL); + 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_AllButton_click), (void*)TOOLBAR_OPTION_FULLSCREEN); + 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); @@ -1678,6 +1690,14 @@ ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_DEBUG); etk_object_properties_set(ETK_OBJECT(button),"label","Debug",NULL); #endif + + //QuitButton + button = etk_tool_button_new_from_stock(ETK_STOCK_SYSTEM_LOG_OUT); + etk_object_properties_set(ETK_OBJECT(button),"label","Quit",NULL); + etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), button, ETK_BOX_START); + etk_signal_connect("clicked", ETK_OBJECT(button), + ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_QUIT); + return UI_Toolbar; } @@ -2909,10 +2929,23 @@ _embed_position_set, UI_ecore_MainWin); etk_widget_show_all(UI_PartsTreeEmbed); - //Logo + //Logo (keygrabber) Evas_Object *logo; logo = edje_object_add(UI_evas); edje_object_file_set(logo, EdjeFile, "Logo"); + evas_object_event_callback_add(logo, EVAS_CALLBACK_KEY_DOWN, + on_Mainwin_key_press, NULL); + Evas_Modifier_Mask mask; + mask = evas_key_modifier_mask_get(UI_evas, "Control"); + evas_object_key_grab(logo, "q", mask, 0, 0); // quit + evas_object_key_grab(logo, "f", mask, 0, 0); // fullscreen + evas_object_key_grab(logo, "s", mask, 0, 0); // save + evas_object_key_grab(logo, "c", mask, 0, 0); // copy selection (TODO) + evas_object_key_grab(logo, "v", mask, 0, 0); // paste selection (TODO) + evas_object_key_grab(logo, "x", mask, 0, 0); // cut selection (TODO) + evas_object_key_grab(logo, "d", mask, 0, 0); // duplicate selection (TODO) + evas_object_key_grab(logo, "n", mask, 0, 0); // new object (TODO) + evas_object_show(logo); //GroupEmbed @@ -3021,6 +3054,9 @@ //Create the main edje object to edit edje_o = edje_object_add(UI_evas); edje_object_signal_callback_add(edje_o, "*", "*", signal_cb, NULL); + evas_object_event_callback_add(edje_o, EVAS_CALLBACK_MOUSE_DOWN, + on_Editing_click, NULL); + /*edje_object_signal_emit(edje_ui,"group_frame_show","edje_editor"); edje_object_signal_emit(edje_ui,"part_frame_show","edje_editor"); @@ -3032,6 +3068,3 @@ edje_object_signal_emit(edje_ui,"program_frame_show","edje_editor"); edje_object_signal_emit(edje_ui,"script_frame_show","edje_editor");*/ } - - - =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.h,v retrieving revision 1.35 retrieving revision 1.36 diff -u -3 -r1.35 -r1.36 --- interface.h 26 Feb 2008 01:33:36 -0000 1.35 +++ interface.h 21 Jun 2008 21:40:27 -0000 1.36 @@ -35,6 +35,11 @@ Etk_Widget *UI_PlayButton; Etk_Widget *UI_PlayImage; Etk_Widget *UI_PauseImage; +Etk_Widget *UI_AddStateButton; +Etk_Widget *UI_RemoveStateButton; +Etk_Widget *UI_RemovePartButton; +Etk_Widget *UI_RemoveProgramButton; + /* group frame objects */ Etk_Widget *UI_GroupNameEntry; Etk_Widget *UI_GroupNameEntryImage; =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -3 -r1.39 -r1.40 --- main.c 8 Mar 2008 23:20:41 -0000 1.39 +++ main.c 21 Jun 2008 21:40:27 -0000 1.40 @@ -292,6 +292,7 @@ Cur.open_file_name = NULL; Cur.source_dir = NULL; Cur.main_source_file = NULL; + Cur.fullscreen = 0; stack = NULL; //Setting Globals =================================================================== RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.h,v retrieving revision 1.32 retrieving revision 1.33 diff -u -3 -r1.32 -r1.33 --- main.h 26 Feb 2008 01:33:36 -0000 1.32 +++ main.h 21 Jun 2008 21:40:27 -0000 1.33 @@ -13,7 +13,7 @@ #define FAKEWIN_BORDER_BOTTOM 4 #define USE_GL_ENGINE 0 -#define DEBUG_MODE 0 +#define DEBUG_MODE 1 #if DEBUG_MODE #define TREE_WIDTH 365 @@ -59,8 +59,10 @@ TOOLBAR_OPTION_BG2, TOOLBAR_OPTION_BG3, TOOLBAR_OPTION_BG4, + TOOLBAR_OPTION_FULLSCREEN, TOOLBAR_IMAGE_FILE_ADD, TOOLBAR_FONT_FILE_ADD, + TOOLBAR_QUIT, COLOR_OBJECT_RECT, COLOR_OBJECT_TEXT, COLOR_OBJECT_SHADOW, @@ -125,7 +127,8 @@ Etk_String *edj_file_name; Etk_String *edj_temp_name; - + + int fullscreen; //The current main window state }Cur; /* GLOBALS */ ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs