Enlightenment CVS committal

Author  : lordchaos
Project : e17
Module  : proto

Dir     : e17/proto/entropy/src/plugins


Modified Files:
        etk_list_viewer.c etk_structure_viewer.c 


Log Message:
* DND File copy for ETK/entropy.  Don't be too scared - this is an identicial 
code path to the tried and tested file copy code already in entropy.

===================================================================
RCS file: 
/cvsroot/enlightenment/e17/proto/entropy/src/plugins/etk_list_viewer.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- etk_list_viewer.c   21 Feb 2006 10:45:18 -0000      1.13
+++ etk_list_viewer.c   21 Feb 2006 11:28:54 -0000      1.14
@@ -81,9 +81,6 @@
 static void _entropy_etk_list_viewer_drag_begin_cb(Etk_Object *object, void 
*data)
 {
    Etk_Tree *tree;
-   Etk_Tree_Row *row;
-   char *icol1_string;   
-   char *icol2_string;
    const char **types;
    unsigned int num_types;
    void *drag_data;
@@ -91,40 +88,50 @@
    Etk_Widget *image;
    entropy_gui_component_instance* instance;
    entropy_etk_file_list_viewer* viewer;
+   int i=0;
+
+   char buffer[8192]; /* Um - help - what do we size this to? */
+   
+   int count = 0;
 
    Evas_List* rows;
 
    instance = data;
    viewer = instance->data;
 
-   printf("Drag start...\n");
-
    tree = ETK_TREE(object);
+   rows = etk_tree_selected_rows_get(tree);
    drag = (ETK_WIDGET(tree))->drag;
 
-   for (rows = etk_tree_selected_rows_get(tree); rows; rows = rows->next ) {
+   count = evas_list_count(rows);
+   bzero(buffer,8192);
+   for (; rows; rows = rows->next ) {
           printf("Row %p resolves to %p:%s!\n", rows->data, 
ecore_hash_get(row_hash, rows->data),
                           ((gui_file*)ecore_hash_get(row_hash, 
rows->data))->file->uri );
+          strcat(buffer, ((gui_file*)ecore_hash_get(row_hash, 
rows->data))->file->uri);
+          strcat(buffer, "\r\n");
    }
   
 
    types = calloc(1, sizeof(char*));
    num_types = 1;
-   types[0] = strdup("text/plain");
-   drag_data = strdup("Hi!"); //ecore_hash_get(row_hash,  row);
+   types[0] = strdup("text/uri-list");
+    
 
-   printf("Row: %p, Drag data: %p\n", row, drag_data);
-   
-   //snprintf(drag_data, PATH_MAX * sizeof(char), "file://%s/%s", 
tab->cur_path, icol2_string);
+   printf("Drag buffer: %s\n", buffer);
    
    etk_drag_types_set(drag, types, num_types);
-   etk_drag_data_set(drag, drag_data, strlen(drag_data)+1);
+   etk_drag_data_set(drag, buffer, strlen(buffer)+1);
+
+
+
+   
    /*image = etk_image_new_from_file(icol1_string);
    etk_image_keep_aspect_set(ETK_IMAGE(image), ETK_TRUE);
    etk_widget_size_request_set(image, 96, 96);
    etk_container_add(ETK_CONTAINER(drag), image);*/
 
-
+   evas_list_free(rows);
 }
 
 
@@ -402,7 +409,7 @@
   /*DND Setup*/
    dnd_types_num = 1;
    dnd_types = calloc(dnd_types_num, sizeof(char*));
-   dnd_types[0] = strdup("text/plain");  
+   dnd_types[0] = strdup("text/uri-list");  
   etk_widget_dnd_source_set(viewer->tree, ETK_TRUE);
   etk_widget_dnd_drag_widget_set(viewer->tree, etk_button_new_with_label("Drag 
Widget"));
   //etk_widget_dnd_drag_data_set(viewer->tree, dnd_types, dnd_types_num, "This 
is the drag data!", strlen("This is the drag data!") + 1);
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/proto/entropy/src/plugins/etk_structure_viewer.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- etk_structure_viewer.c      21 Feb 2006 10:15:56 -0000      1.4
+++ etk_structure_viewer.c      21 Feb 2006 11:28:54 -0000      1.5
@@ -63,15 +63,42 @@
 static void _etk_structure_viewer_xdnd_drag_drop_cb(Etk_Object *object, void 
*event, void *data)
 {
    Etk_Event_Selection_Request *ev;   
-   Etk_Selection_Data_Text *text;
-   
+   Etk_Selection_Data_Files *files;
+   Etk_Tree* tree;
+   Etk_Tree_Row* row;
    int i;
+   entropy_etk_file_structure_viewer* viewer;
+   entropy_gui_component_instance* instance;
+   event_file_core* e_event;
    
    ev = event;
-   text = ev->data;
-   
+   files = ev->data;
+   tree = ETK_TREE(object);
+   row = etk_tree_selected_row_get(tree);
 
-   printf("Drop data '%p'\n", (char*)text->text);
+   instance = ecore_hash_get(instance_map_hash, row);
+   if (instance) {
+          viewer = instance->data;
+          e_event = ecore_hash_get(viewer->row_hash, row);
+   
+          if(ev->content != ETK_SELECTION_CONTENT_FILES) {
+            printf("Drop wasn't files!\n");
+            return;
+          }
+
+          printf("We received %d files\n", files->num_files);
+          for (i = 0; i < files->num_files; i++)
+            {
+                    entropy_generic_file* file = 
entropy_core_uri_generic_file_retrieve(files->files[i]);
+            
+                    printf("File is '%s' ---> %p\n", files->files[i], file);
+                    printf("Destination: %s\n", e_event->file->uri);
+
+                    entropy_plugin_filesystem_file_copy(file, 
e_event->file->uri, instance);
+            }
+   } else {
+          printf("Could not get instance for dropped row!\n");
+   }
 }
 
 static void _etk_structure_viewer_row_clicked(Etk_Object *object, Etk_Tree_Row 
*row, Etk_Event_Mouse_Up_Down *event, void *data)
@@ -117,7 +144,6 @@
 {
   Etk_Tree_Row* new_row;
   entropy_etk_file_structure_viewer* viewer;
-  char* folder;
   event_file_core *event;
   Etk_Tree_Col* col;
   Etk_Tree_Row* parent;
@@ -252,7 +278,7 @@
          /*Accept drops*/
           dnd_types_num = 1;
           dnd_types = calloc(dnd_types_num, sizeof(char*));
-          dnd_types[0] = strdup("text/plain");  
+          dnd_types[0] = strdup("text/uri-list");  
           etk_widget_dnd_types_set(  ((Etk_Tree_Row*)parent_visual)->tree, 
                                dnd_types, dnd_types_num);
           etk_widget_dnd_dest_set( ((Etk_Tree_Row*)parent_visual)->tree  , 
ETK_TRUE);




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to