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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs