Enlightenment CVS committal

Author  : chaos
Project : e17
Module  : proto

Dir     : e17/proto/entropy/src/dialogs


Modified Files:
        etk_file_context_menu.c 


Log Message:
* Work on multi-file select actions in context menu

===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/dialogs/etk_file_context_menu.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- etk_file_context_menu.c     17 Jul 2006 17:19:27 -0000      1.9
+++ etk_file_context_menu.c     18 Jul 2006 14:09:52 -0000      1.10
@@ -15,16 +15,20 @@
 Etk_Widget* _entropy_etk_context_menu_groups_add_to = NULL;
 Etk_Widget* _entropy_etk_context_menu_groups_add_to_item = NULL;
 
+
 Etk_Widget* _entropy_etk_context_menu_groups_remove_from = NULL;
 Etk_Widget* _entropy_etk_context_menu_groups_remove_from_item = NULL;
 
+Etk_Widget* _entropy_etk_context_menu_rename_menu_item = NULL;
+
 entropy_generic_file* _entropy_etk_context_menu_current_folder = NULL;
 entropy_generic_file* _entropy_etk_context_menu_current_file = NULL;
 Ecore_List* _entropy_etk_context_menu_selected_files = NULL;
 
 entropy_gui_component_instance* _entropy_etk_context_menu_current_instance = 
NULL;
 
-int check= 0;
+static int _entropy_etk_context_menu_mode = 0;
+
 
 typedef enum _Etk_Menu_Item_Type
 {
@@ -152,10 +156,19 @@
        const char* label;
 
        label = etk_menu_item_label_get(ETK_MENU_ITEM(object));
-
        printf("Add to group '%s'\n", label);
 
-       
entropy_plugin_filesystem_file_group_add(_entropy_etk_context_menu_current_file,
 label);
+       /*Check for multi, or single, selection*/
+       if (_entropy_etk_context_menu_mode == 0) {
+               
entropy_plugin_filesystem_file_group_add(_entropy_etk_context_menu_current_file,
 (char*)label);
+       } else {
+               entropy_generic_file* file;
+
+               ecore_list_goto_first(_entropy_etk_context_menu_selected_files);
+               while ( (file = 
ecore_list_next(_entropy_etk_context_menu_selected_files))) {
+                       entropy_plugin_filesystem_file_group_add(file, 
(char*)label);
+               }
+       }
 }
 
 void
@@ -281,11 +294,6 @@
        
        
        if (!_entropy_etk_context_menu) {
-               printf("Value of check: %d\n",check);
-               
-               printf("Making new menu..\n");
-               check = 1;
-               
                menu = etk_menu_new();
                _entropy_etk_context_menu = menu;
                
@@ -321,8 +329,13 @@
                _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Paste"), 
ETK_STOCK_EDIT_PASTE, ETK_MENU_SHELL(menu),NULL);
                menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, 
_("Delete"), ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(menu),NULL);
                etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_entropy_etk_context_menu_file_delete_cb), NULL);
-               menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, 
_("Rename"), ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(menu),NULL);
-               etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_entropy_etk_context_menu_file_rename_cb), NULL);
+               
+               _entropy_etk_context_menu_rename_menu_item = 
+                       _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, 
_("Rename"), ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(menu),NULL);
+               
+               etk_signal_connect("activated", 
ETK_OBJECT(_entropy_etk_context_menu_rename_menu_item), 
+                               
ETK_CALLBACK(_entropy_etk_context_menu_file_rename_cb), NULL);
+
                menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, 
_("Properties"), ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(menu),NULL);
                etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_entropy_etk_context_menu_properties_cb), NULL);
 
@@ -347,6 +360,42 @@
        
        if (!_entropy_etk_context_menu) 
                entropy_etk_context_menu_init();
+
+       /*Show*/
+       etk_widget_show_all(_entropy_etk_context_menu_open_with_item);
+       etk_widget_show_all(_entropy_etk_context_menu_rename_menu_item);
+
+       /*Mode = single*/
+       _entropy_etk_context_menu_mode = 0;     
+
+       etk_menu_popup(ETK_MENU(_entropy_etk_context_menu));
+}
+
+void entropy_etk_context_menu_popup_multi(entropy_gui_component_instance* 
instance, Ecore_List* current_files)
+{
+       _entropy_etk_context_menu_current_instance = instance;
+       entropy_generic_file* file;
+
+
+       /*Hide*/
+       etk_widget_hide(_entropy_etk_context_menu_open_with_item);
+       etk_widget_hide(_entropy_etk_context_menu_rename_menu_item);
+
+       if (_entropy_etk_context_menu_selected_files)
+               ecore_list_destroy(_entropy_etk_context_menu_selected_files);
+       _entropy_etk_context_menu_selected_files = NULL;
+
+       _entropy_etk_context_menu_selected_files = ecore_list_new();
+       ecore_list_goto_first(current_files);
+       while ( (file = ecore_list_next(current_files))) {
+               ecore_list_append(_entropy_etk_context_menu_selected_files, 
file);
+       }
+       
+       if (!_entropy_etk_context_menu) 
+               entropy_etk_context_menu_init();
+
+       /*Mode = multi*/
+       _entropy_etk_context_menu_mode = 1;
 
        etk_menu_popup(ETK_MENU(_entropy_etk_context_menu));
 }



-------------------------------------------------------------------------
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