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

Reply via email to