Enlightenment CVS committal Author : lordchaos Project : e17 Module : proto
Dir : e17/proto/entropy/src/plugins Modified Files: etk_list_viewer.c Log Message: * Begin the slow, yet necessary migration from ecore_config -> eet * Support multiple application binding per mimetype =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/entropy/src/plugins/etk_list_viewer.c,v retrieving revision 1.44 retrieving revision 1.45 diff -u -3 -r1.44 -r1.45 --- etk_list_viewer.c 14 Mar 2006 13:05:43 -0000 1.44 +++ etk_list_viewer.c 16 Mar 2006 12:22:01 -0000 1.45 @@ -30,9 +30,9 @@ entropy_file_progress_window* progress; - Etk_Widget *last_selected_label; - Etk_Widget* popup; + Etk_Widget* open_with_menu; + Etk_Widget* open_with_menuitem; entropy_generic_file* current_folder; }; @@ -135,6 +135,51 @@ return menu_item; } +static void +_entropy_etk_list_viewer_menu_popup_cb(Etk_Object *object, void *data) +{ + entropy_gui_component_instance* instance; + entropy_etk_file_list_viewer* viewer; + Etk_Tree_Row* row; + gui_file* file; + Entropy_Config_Mime_Binding* binding; + Entropy_Config_Mime_Binding_Action* action; + Evas_List* l; + + + instance = data; + viewer = instance->data; + + row = etk_tree_selected_row_get(ETK_TREE(viewer->tree)); + file = ecore_hash_get(row_hash, row); + + if (file && strlen(file->file->mime_type)) { + + binding = entropy_config_mime_binding_for_type_get(file->file->mime_type); + + if (binding) { + + //etk_object_destroy(ETK_OBJECT(viewer->open_with_menu)); + + viewer->open_with_menu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(viewer->open_with_menuitem), ETK_MENU(viewer->open_with_menu)); + + for (l = binding->actions; l; ) { + action = l->data; + + _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _(action->app_description), + ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(viewer->open_with_menu),NULL); + + l = l->next; + } + } + + + } + + printf("Menu activated!\n"); +} + /* Compares two rows of the tree */ static int _entropy_etk_list_filename_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) @@ -876,6 +921,13 @@ /*Popup init*/ viewer->popup = etk_menu_new(); + etk_signal_connect("popped_up", ETK_OBJECT(viewer->popup), ETK_CALLBACK(_entropy_etk_list_viewer_menu_popup_cb), instance); + + viewer->open_with_menuitem = + _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Open With"), ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(viewer->popup),NULL); + viewer->open_with_menu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(viewer->open_with_menuitem), ETK_MENU(viewer->open_with_menu)); + _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Copy"), ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(viewer->popup),NULL); _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Cut"), ETK_STOCK_EDIT_CUT, ETK_MENU_SHELL(viewer->popup),NULL); _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Paste"), ETK_STOCK_EDIT_PASTE, ETK_MENU_SHELL(viewer->popup),NULL); ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs