Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto
Dir : e17/proto/exhibit/src/bin Modified Files: exhibit.h exhibit_image.c exhibit_image.h exhibit_main.c exhibit_main.h exhibit_menus.c exhibit_menus.h exhibit_slideshow.c exhibit_tab.c Log Message: - new patch from balony: - Added the run command (hardcoded for now, config based later) - work on the menus - general dialog function for simple usage - Statusbar report in slideshow - New tabs from menu now - some cleanups and minor fixes =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- exhibit.h 2 Aug 2006 19:23:22 -0000 1.23 +++ exhibit.h 3 Aug 2006 13:12:17 -0000 1.24 @@ -224,4 +224,6 @@ #include "exhibit_options.h" #include "exhibit_comment.h" +extern Exhibit *e; + #endif =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- exhibit_image.c 2 Aug 2006 19:23:22 -0000 1.27 +++ exhibit_image.c 3 Aug 2006 13:12:17 -0000 1.28 @@ -83,6 +83,11 @@ etk_toplevel_widget_pointer_push(ETK_TOPLEVEL_WIDGET(e->win), ETK_POINTER_MOVE); } + else if(ev->button == 2) + { + /* TODO Make this function configurable in options */ + _ex_tab_current_fit_to_window(e); + } else if(ev->button == 3) { Etk_Widget *menu_item; @@ -97,34 +102,35 @@ #endif e->menu = etk_menu_new(); - menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Sort"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Undo"), ETK_STOCK_EDIT_UNDO, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_undo_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), NULL, NULL); + + menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Run in ..."), ETK_STOCK_APPLICATION_X_EXECUTABLE, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + submenu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(submenu)); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("The Gimp"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("XV"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Xpaint"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Favorites"), ETK_STOCK_EMBLEM_FAVORITE, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); submenu = etk_menu_new(); etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(submenu)); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Undo"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_undo_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), NULL, NULL); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Date"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_date_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Size"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_size_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Name"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_name_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Resolution"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_resol_cb), e); - - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("in The Gimp"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("in XV"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("in Xpaint"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Add to favorites"), ETK_STOCK_EMBLEM_PHOTOS, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_add_to_fav_cb), e); + if(_ex_image_is_favorite(e)) + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Remove from favorites"), ETK_STOCK_LIST_REMOVE, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_remove_from_fav_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), NULL, NULL); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Rotate clockwise"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_rot_clockwise_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Rotate counterclockwise"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_rot_counter_clockwise_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Rotate clockwise"), ETK_STOCK_GO_NEXT, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_rot_clockwise_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Rotate counterclockwise"), ETK_STOCK_GO_PREVIOUS, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_rot_counter_clockwise_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Flip horizontally"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_flip_horizontal_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Flip vertically"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_flip_vertical_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), NULL, NULL); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Blur"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_blur_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Sharpen"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_sharpen_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Brighten"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_brighten_cb), e); - //_ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Darken"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_darken_cb), e); + menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Effects"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + submenu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(submenu)); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Blur"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_blur_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Sharpen"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_sharpen_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Brighten"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_brighten_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), NULL, NULL); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Add to favorites"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_add_to_fav_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Toggle Comments"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_comments_cb), e); - if(_ex_image_is_favorite(e)) - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Remove from favorites"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_remove_from_fav_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Set as wallpaper"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_set_wallpaper_cb), e); etk_menu_popup(ETK_MENU(e->menu)); } @@ -656,11 +662,12 @@ ret = remove(string); if (ret == -1) { - perror("Error deleting file\n"); + _ex_main_dialog_show("Error deleting file!", ETK_MESSAGE_DIALOG_ERROR); + etk_object_destroy(ETK_OBJECT(tab->dialog)); return; } - _ex_main_image_unset(e); + _ex_main_image_unset(); /* Refresh the tree as we deleted the file first */ etk_tree_clear(ETK_TREE(tab->itree)); @@ -694,37 +701,23 @@ void _ex_image_delete(Exhibit *e) { - Etk_Widget *label; Ex_Tab *tab = e->cur_tab; char string[PATH_MAX]; - sprintf(string, "%s%s", tab->set_img_path, tab->cur_file); + sprintf(string, "Are you sure you want to delete this image? <br>%s%s<br> ", tab->set_img_path, tab->cur_file); D(("Ex_Tab pointer in _ex_image_delete %p\n", e->cur_tab)); - tab->dialog = etk_dialog_new(); - - etk_signal_connect("delete_event", ETK_OBJECT(tab->dialog), - ETK_CALLBACK(etk_object_destroy), tab->dialog); - - label = etk_label_new("Are you sure you want to delete picture?"); - etk_dialog_pack_in_main_area(ETK_DIALOG(tab->dialog), label, - ETK_TRUE, ETK_TRUE, 3, ETK_FALSE); - label = etk_label_new(string); - etk_dialog_pack_in_main_area(ETK_DIALOG(tab->dialog), label, - ETK_TRUE, ETK_TRUE, 3, ETK_FALSE); - - etk_dialog_button_add_from_stock(ETK_DIALOG(tab->dialog), - ETK_STOCK_DIALOG_OK, ETK_RESPONSE_OK); - etk_dialog_button_add_from_stock(ETK_DIALOG(tab->dialog), - ETK_STOCK_DIALOG_CANCEL, ETK_RESPONSE_CANCEL); + tab->dialog = etk_message_dialog_new(ETK_MESSAGE_DIALOG_QUESTION, + ETK_MESSAGE_DIALOG_OK_CANCEL, + string); etk_signal_connect("response", ETK_OBJECT(tab->dialog), ETK_CALLBACK(_ex_image_delete_dialog_response), e); etk_container_border_width_set(ETK_CONTAINER(tab->dialog), 4); etk_window_title_set(ETK_WINDOW(tab->dialog), - _("Exhibit, confirm delete")); + _("Exhibit - Confirm delete")); etk_widget_show_all(tab->dialog); @@ -734,6 +727,42 @@ */ } +void +_ex_image_run(const char *app) +{ + Ecore_Exe *exe = NULL; + char *tmp = NULL; + + D(("Application from menu: %s\n", app)); + + tmp = malloc(PATH_MAX + 10); + memset(tmp, 0, PATH_MAX + 10); + + if (!tmp) + return; + + if (!strcasecmp(app, "The Gimp")) + sprintf(tmp, "gimp %s%s", e->cur_tab->set_img_path, e->cur_tab->cur_file); + else if (!strcasecmp(app, "XV")) + sprintf(tmp, "xv %s%s", e->cur_tab->set_img_path, e->cur_tab->cur_file); + else if (!strcasecmp(app, "Xpaint")) + sprintf(tmp, "xpaint %s%s", e->cur_tab->set_img_path, e->cur_tab->cur_file); + + if (strlen(tmp) <= 0) + return; + + exe = ecore_exe_run(tmp, NULL); + if (exe) + { + D(("ecore_exe_run: %s\n", tmp)); + return; + } + else + _ex_main_dialog_show("Error runnng command", ETK_MESSAGE_DIALOG_ERROR); + + E_FREE(tmp); + E_FREE(exe); +} void _ex_image_zoom(Etk_Image *im, int zoom) =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_image.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- exhibit_image.h 2 Aug 2006 17:31:03 -0000 1.9 +++ exhibit_image.h 3 Aug 2006 13:12:17 -0000 1.10 @@ -19,6 +19,7 @@ void _ex_image_save_as_cb(void *data); void _ex_image_save_as(Exhibit *e); void _ex_image_delete(Exhibit *e); +void _ex_image_run(const char *app); void _ex_image_zoom(Etk_Image *im, int zoom); void _ex_image_brightness(Etk_Image *im, int brightness); void _ex_image_wallpaper_set(Etk_Image *im); =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.59 retrieving revision 1.60 diff -u -3 -r1.59 -r1.60 --- exhibit_main.c 2 Aug 2006 19:23:22 -0000 1.59 +++ exhibit_main.c 3 Aug 2006 13:12:17 -0000 1.60 @@ -10,6 +10,8 @@ Exhibit *e; Evas_List *event_handlers; + + static void _ex_main_button_zoom_in_cb(Etk_Object *obj, void *data); static void _ex_main_button_zoom_out_cb(Etk_Object *obj, void *data); static void _ex_main_button_zoom_one_to_one_cb(Etk_Object *obj, void *data); @@ -91,7 +93,7 @@ } void -_ex_main_image_unset(Exhibit *e) +_ex_main_image_unset() { Ex_Tab *tab = e->cur_tab; @@ -443,10 +445,11 @@ } else if(!strcmp(ev->key, "w")) { + D(("Number of tabs: %d\n", evas_list_count(e->tabs))); if(evas_list_count(e->tabs) > 1) { - //_ex_main_window_tab_remove(e->cur_tab); - //_ex_tab_del(e->cur_tab); + _ex_main_window_tab_remove(e->cur_tab); + _ex_tab_delete(e->cur_tab); } } else if(!strcmp(ev->key, "q")) @@ -510,7 +513,7 @@ void _ex_main_window_tab_remove(Ex_Tab *tab) { - + D(("_ex_main_window_tab_remove\n")); } void @@ -603,6 +606,19 @@ } } +void +_ex_main_dialog_show(char *text, Etk_Message_Dialog_Type type) +{ + Etk_Widget *dialog; + + dialog = etk_message_dialog_new(type, ETK_MESSAGE_DIALOG_OK, text); + etk_signal_connect_swapped("response", ETK_OBJECT(dialog), + ETK_CALLBACK(etk_object_destroy), dialog); + + etk_window_title_set(ETK_WINDOW(dialog), _("Exhibit - Notice")); + etk_widget_show_all(dialog); +} + void _ex_main_window_show(char *dir) @@ -691,7 +707,13 @@ /* Set the File submenu to the File menu item and populate it */ etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("New window"), ETK_STOCK_WINDOW_NEW, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_new_window_cb), e); + + menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("New"), ETK_STOCK_WINDOW_NEW, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + submenu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(submenu)); + + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Window"), ETK_STOCK_WINDOW_NEW, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_new_window_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Tab"), ETK_STOCK_TAB_NEW, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_new_tab_cb), NULL); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Save image"), ETK_STOCK_DOCUMENT_SAVE, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_save_image_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Save image as"), ETK_STOCK_DOCUMENT_SAVE, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_save_image_as_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), NULL, NULL); @@ -700,10 +722,16 @@ _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Rename"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_rename_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Delete"), ETK_STOCK_X_DIRECTORY_TRASH, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_delete_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), NULL, NULL); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Options"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_options_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Options"), ETK_STOCK_PREFERENCES_SYSTEM, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_options_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), NULL, NULL); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Close window"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_close_window_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Quit"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_quit_cb), e); + + menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Close"), ETK_STOCK_LIST_REMOVE, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + submenu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(submenu)); + + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Window"), ETK_STOCK_WINDOW_NEW, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_close_window_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Tab"), ETK_STOCK_TAB_NEW, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_delete_tab_cb), NULL); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Quit"), ETK_STOCK_DIALOG_CLOSE, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_quit_cb), e); /* Create "Edit" menu item */ menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Edit"), -99, ETK_MENU_SHELL(e->menu_bar), NULL, NULL); @@ -712,21 +740,22 @@ /* Set the File submenu to the File menu item and populate it */ etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Undo"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_undo_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Undo"), ETK_STOCK_EDIT_UNDO, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_undo_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), NULL, NULL); /* Run in submenu */ - menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Run in ..."), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Run in ..."), ETK_STOCK_APPLICATION_X_EXECUTABLE, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); submenu = etk_menu_new(); etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(submenu)); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("The Gimp"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_run_in_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("XV"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_run_in_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Xpaint"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("The Gimp"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_run_in_cb), NULL); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("XV"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_run_in_cb), NULL); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Xpaint"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_menu_run_in_cb), NULL); /* Continue "Edit" menu */ _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), NULL, NULL); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Rotate clockwise"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_rot_clockwise_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Rotate counterclockwise"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_rot_counter_clockwise_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Rotate clockwise"), ETK_STOCK_GO_NEXT, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_rot_clockwise_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Rotate counterclockwise"), ETK_STOCK_GO_PREVIOUS, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_rot_counter_clockwise_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Flip horizontally"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_flip_horizontal_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Flip vertically"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_flip_vertical_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), NULL, NULL); @@ -877,7 +906,7 @@ etk_statusbar_push(ETK_STATUSBAR(e->statusbar[2]), "1:1", 0); e->statusbar[3] = etk_statusbar_new(); - etk_box_pack_start(ETK_BOX(e->hbox), e->statusbar[3], ETK_FALSE, ETK_FALSE, 0); + etk_box_pack_start(ETK_BOX(e->hbox), e->statusbar[3], ETK_TRUE, ETK_TRUE, 0); etk_widget_show_all(e->win); } =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_main.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- exhibit_main.h 2 Aug 2006 19:23:22 -0000 1.10 +++ exhibit_main.h 3 Aug 2006 13:12:17 -0000 1.11 @@ -9,8 +9,12 @@ int _ex_main_window_slideshow_next(void *data); void _ex_main_window_slideshow_toggle(Exhibit *e); void _ex_main_window_tab_append(Exhibit *e, Ex_Tab *tab); +void _ex_main_window_tab_remove(Ex_Tab *tab); +void _ex_main_dialog_show(char *text, Etk_Message_Dialog_Type type); void _ex_main_window_show(char *dir); -void _ex_main_image_unset(Exhibit *e); +void _ex_main_image_unset(); +void _ex_main_image_set(Exhibit *e, char *image); + #endif =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_menus.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- exhibit_menus.c 2 Aug 2006 19:23:22 -0000 1.23 +++ exhibit_menus.c 3 Aug 2006 13:12:17 -0000 1.24 @@ -70,10 +70,39 @@ _ex_menu_new_window_cb(Etk_Object *obj, void *data) { EX_MENU_ITEM_GET_RETURN(obj); + D(("new window\n")); } void +_ex_menu_new_tab_cb(Etk_Object *obj, void *data) +{ + Ex_Tab *tab; + + EX_MENU_ITEM_GET_RETURN(obj); + + tab = _ex_tab_new(e, e->cur_tab->cur_path); + _ex_main_window_tab_append(e, tab); + _ex_main_populate_files(e, NULL); +} + +void +_ex_menu_delete_tab_cb(Etk_Object *obj, void *data) +{ + if(evas_list_count(e->tabs) <= 1) + { + _ex_main_dialog_show("No tabs open! Create new with Ctrl^t", + ETK_MESSAGE_DIALOG_INFO); + return; + } + + EX_MENU_ITEM_GET_RETURN(obj); + + _ex_main_window_tab_remove(e->cur_tab); + _ex_tab_delete(e->cur_tab); +} + +void _ex_menu_save_image_cb(Etk_Object *obj, void *data) { Exhibit *e; @@ -158,14 +187,20 @@ void _ex_menu_run_in_cb(Etk_Object *obj, void *data) { + const char *app; EX_MENU_ITEM_GET_RETURN(obj); - D(("run in\n")); + + if (!e->cur_tab->image_loaded) + return; + + app = etk_menu_item_label_get(ETK_MENU_ITEM(obj)); + _ex_image_run(app); } void _ex_menu_undo_cb(Etk_Object *obj, void *data) { - Exhibit *e = data; + Exhibit *e = data; EX_MENU_ITEM_GET_RETURN(obj); if (!e->cur_tab->image_loaded) =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_menus.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- exhibit_menus.h 2 Aug 2006 03:10:43 -0000 1.7 +++ exhibit_menus.h 3 Aug 2006 13:12:17 -0000 1.8 @@ -12,6 +12,8 @@ Etk_Widget *_ex_menu_item_new(Ex_Menu_Item_Type item_type, const char *label, int stock_id, Etk_Menu_Shell *menu_shell, Etk_Signal_Callback_Function callback, void *data); void _ex_menu_new_window_cb(Etk_Object *obj, void *data); +void _ex_menu_new_tab_cb(Etk_Object *obj, void *data); +void _ex_menu_delete_tab_cb(Etk_Object *obj, void *data); void _ex_menu_save_image_cb(Etk_Object *obj, void *data); void _ex_menu_save_image_as_cb(Etk_Object *obj, void *data); void _ex_menu_search_cb(Etk_Object *obj, void *data); =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_slideshow.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- exhibit_slideshow.c 15 Jan 2006 12:31:48 -0000 1.2 +++ exhibit_slideshow.c 3 Aug 2006 13:12:17 -0000 1.3 @@ -5,6 +5,7 @@ { if(e->slideshow.active) { + etk_statusbar_push(ETK_STATUSBAR(e->statusbar[3]), "", 0); e->slideshow.active = ETK_FALSE; ecore_timer_del(e->slideshow.timer); } @@ -15,6 +16,7 @@ { if(!e->slideshow.active) { + etk_statusbar_push(ETK_STATUSBAR(e->statusbar[3]), "Slideshow running", 0); e->slideshow.timer = ecore_timer_add(e->slideshow.interval, _ex_slideshow_next, e); e->slideshow.active = ETK_TRUE; } @@ -24,13 +26,24 @@ _ex_slideshow_next(void *data) { Exhibit *e; - Etk_Tree_Row *row, *first_row, *last_row;; - + Etk_Tree_Row *row, *first_row, *last_row, *count; + int i; + e = data; row = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); last_row = etk_tree_last_row_get(ETK_TREE(e->cur_tab->itree), ETK_FALSE, ETK_FALSE); - first_row = etk_tree_first_row_get(ETK_TREE(e->cur_tab->itree)); - + first_row = etk_tree_first_row_get(ETK_TREE(e->cur_tab->itree)); + + /* FIXME + * Need an etk function for this, this isnt even working properly. + * Would be nice to display slideshow image x of maximages in sbar. + */ + for (count = etk_tree_first_row_get(ETK_TREE(e->cur_tab->itree)), i = 0; + count && count != row; i++) + count = etk_tree_next_row_get(count, ETK_FALSE, ETK_FALSE); + + D(("Rownumber: %d\n", i)); + if(!row || row == last_row) row = etk_tree_first_row_get(ETK_TREE(e->cur_tab->itree)); else =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_tab.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- exhibit_tab.c 2 Aug 2006 19:23:22 -0000 1.20 +++ exhibit_tab.c 3 Aug 2006 13:12:17 -0000 1.21 @@ -88,7 +88,7 @@ void _ex_tab_delete(Ex_Tab *tab) { - + D (("Delete tab\n")); } void ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs