Enlightenment CVS committal

Author  : chaos
Project : e17
Module  : proto

Dir     : e17/proto/entropy/src/dialogs


Modified Files:
        etk_file_context_menu.c 


Log Message:
Patch from Mi Reflejo to add a 'view file' option to the context menu

===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/dialogs/etk_file_context_menu.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- etk_file_context_menu.c     7 Sep 2006 13:40:15 -0000       1.19
+++ etk_file_context_menu.c     7 Mar 2007 09:56:33 -0000       1.20
@@ -20,6 +20,7 @@
 Etk_Widget* _entropy_etk_context_menu_groups_remove_from_item = NULL;
 
 Etk_Widget* _entropy_etk_context_menu_rename_menu_item = NULL;
+Etk_Widget* _entropy_etk_context_menu_view_menu_item = NULL;
 Etk_Widget* _entropy_etk_context_menu_restore_trash_menu_item = NULL;
 
 entropy_generic_file* _entropy_etk_context_menu_current_folder = NULL;
@@ -162,6 +163,30 @@
 }
 
 static void
+_entropy_etk_context_menu_file_view_cb(Etk_Object *obj, void *data)
+{
+       entropy_generic_file* file;
+
+       file = _entropy_etk_context_menu_current_file;
+
+       strcpy(file->mime_type, "text/plain");
+       int i;
+       entropy_gui_event* gui_event;
+       
+       i = (int)etk_object_data_get(obj, "INDEX");
+
+       if (file) {
+               gui_event = entropy_malloc (sizeof (entropy_gui_event));
+               gui_event->event_type =
+                       entropy_core_gui_event_get 
(ENTROPY_GUI_EVENT_ACTION_FILE);
+               gui_event->data = file;
+               gui_event->key = i;
+               entropy_core_layout_notify_event 
(_entropy_etk_context_menu_current_instance, 
+                       gui_event, ENTROPY_EVENT_GLOBAL);
+       }
+}
+
+static void
 _entropy_etk_context_menu_group_file_paste_cb(Etk_Object *object, void *data)
 {
        Entropy_Selection_Type stype;
@@ -503,6 +528,13 @@
                etk_signal_connect("activated", 
ETK_OBJECT(_entropy_etk_context_menu_rename_menu_item), 
                                
ETK_CALLBACK(_entropy_etk_context_menu_file_rename_cb), NULL);
 
+               _entropy_etk_context_menu_view_menu_item = 
+                       _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, 
_("View/Edit file"), 
+               ETK_STOCK_ACCESSORIES_TEXT_EDITOR, ETK_MENU_SHELL(menu),NULL);
+
+               etk_signal_connect("activated", 
ETK_OBJECT(_entropy_etk_context_menu_view_menu_item), 
+                               
ETK_CALLBACK(_entropy_etk_context_menu_file_view_cb), NULL);
+
                menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, 
                _("Properties"), ETK_STOCK_DOCUMENT_PROPERTIES, 
ETK_MENU_SHELL(menu),NULL);
                etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(_entropy_etk_context_menu_properties_cb), NULL);
@@ -537,6 +569,8 @@
         _entropy_etk_context_menu_current_file = current_file;
        _entropy_etk_context_menu_current_instance = instance;
 
+       entropy_generic_file* file;
+       file = _entropy_etk_context_menu_current_file;
        
        if (!_entropy_etk_context_menu) 
                entropy_etk_context_menu_init();
@@ -544,6 +578,10 @@
        /*Show*/
        etk_widget_show_all(_entropy_etk_context_menu_open_with_item);
        etk_widget_show_all(_entropy_etk_context_menu_rename_menu_item);
+       if (file && (strcmp(file->mime_type, "file/folder")))
+               etk_widget_show_all(_entropy_etk_context_menu_view_menu_item);
+       else
+               etk_widget_hide(_entropy_etk_context_menu_view_menu_item);
 
        if (!strcmp(current_file->uri_base, "trash"))
            
etk_widget_show_all(_entropy_etk_context_menu_restore_trash_menu_item);
@@ -565,6 +603,7 @@
        /*Hide*/
        etk_widget_hide(_entropy_etk_context_menu_open_with_item);
        etk_widget_hide(_entropy_etk_context_menu_rename_menu_item);
+       etk_widget_hide(_entropy_etk_context_menu_view_menu_item);
        etk_widget_hide(_entropy_etk_context_menu_restore_trash_menu_item);
 
        if (_entropy_etk_context_menu_selected_files)



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