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

Reply via email to