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