Enlightenment CVS committal

Author  : chaos
Project : e17
Module  : proto

Dir     : e17/proto/entropy/src/plugins


Modified Files:
        etk_icon_viewer.c etk_list_viewer.c 


Log Message:
* Event updates

===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/plugins/etk_icon_viewer.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- etk_icon_viewer.c   5 Sep 2006 06:27:40 -0000       1.18
+++ etk_icon_viewer.c   5 Sep 2006 08:10:10 -0000       1.19
@@ -47,6 +47,8 @@
 void
 icon_viewer_add_row (entropy_gui_component_instance * instance,
                          entropy_generic_file * file);
+void icon_viewer_remove_row(entropy_gui_component_instance * instance,
+                         entropy_generic_file * file);
 
 
 int
@@ -87,6 +89,16 @@
 
 }
 
+void
+gui_file_remove_destroy_single(entropy_gui_component_instance * comp,
+               gui_file* file)
+{
+       entropy_etk_iconbox_viewer *view = comp->data;
+       ecore_hash_remove(view->gui_hash, file->file);
+       entropy_free(file);
+       
+}
+
 Ecore_List* 
 gui_object_destroy_and_free (entropy_gui_component_instance * comp,
                             Ecore_Hash * gui_hash)
@@ -202,6 +214,8 @@
   entropy_gui_component_instance *instance;    
   entropy_etk_iconbox_viewer *viewer;
   entropy_generic_file* file;
+  Ecore_List* selected;
+  int selected_count  =0;
   Etk_Iconbox_Icon* icon;
   Etk_Event_Mouse_Down *event;
   Etk_Bool ctrl_pressed;
@@ -209,6 +223,7 @@
   instance = data;
   viewer = instance->data;
   event = event_info;
+  selected_count = 0;
 
  if (!(icon = etk_iconbox_icon_get_at_xy(ETK_ICONBOX(viewer->iconbox), 
        event->canvas.x, event->canvas.y, ETK_FALSE, ETK_TRUE, ETK_TRUE)))
@@ -225,10 +240,24 @@
                  }
          }
   } else if (event->button == 3) {
-         if (ctrl_pressed != ETK_TRUE) etk_iconbox_unselect_all(icon->iconbox);
+         if (ctrl_pressed != ETK_TRUE) 
etk_iconbox_unselect_all(ETK_ICONBOX(viewer->iconbox));
          etk_iconbox_icon_select(icon);
 
-         entropy_etk_context_menu_popup(instance, file);
+         selected = ecore_list_new();
+         for (icon = ETK_ICONBOX(viewer->iconbox)->first_icon; icon ; icon = 
icon->next ) {
+               if (etk_iconbox_is_selected(icon)) {
+                    file = etk_iconbox_icon_data_get(icon);
+                    ecore_list_append(selected, file);
+                    selected_count++;
+               }
+         }
+
+         if (selected_count > 1) {
+                 entropy_etk_context_menu_popup_multi(instance,selected);
+         } else {
+                 entropy_etk_context_menu_popup(instance, file);
+         }
+         ecore_list_destroy(selected);
   }
 }
 
@@ -275,9 +304,8 @@
              if (el && comp) {
                gui_file *obj;
                entropy_thumbnail *thumb = (entropy_thumbnail *) el;
-               entropy_etk_iconbox_viewer *view = comp->data;
        
-               obj = ecore_hash_get (view->gui_hash, thumb->parent);
+               obj = ecore_hash_get (viewer->gui_hash, thumb->parent);
 
                if (obj) {
                  etk_iconbox_icon_file_set(obj->icon, 
thumb->thumbnail_filename, NULL);
@@ -288,6 +316,12 @@
              }
            }                           //End case
            break;                                        
+
+     case ENTROPY_NOTIFY_FILE_REMOVE_DIRECTORY:
+     case ENTROPY_NOTIFY_FILE_REMOVE:{
+        icon_viewer_remove_row(comp, (entropy_generic_file*)el);
+     }
+     break;
   }
 }
 
@@ -312,6 +346,24 @@
        }
 
        entropy_core_file_cache_add_reference (file->md5);
+}
+
+void icon_viewer_remove_row(entropy_gui_component_instance * instance,
+                         entropy_generic_file * file)
+{
+       entropy_etk_iconbox_viewer* viewer;
+       Etk_Iconbox_Icon* icon;
+       gui_file* event_file = NULL;
+       
+       viewer = instance->data;
+
+       if (file) {
+               event_file = ecore_hash_get(viewer->gui_hash,file);
+               if (event_file) {
+                       etk_iconbox_icon_del(event_file->icon);
+                       gui_file_remove_destroy_single(instance,event_file);
+               }
+       }
 }
 
 static void _entropy_etk_icon_viewer_drag_begin_cb(Etk_Object *object, void 
*data)
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/plugins/etk_list_viewer.c,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -3 -r1.71 -r1.72
--- etk_list_viewer.c   1 Sep 2006 12:12:50 -0000       1.71
+++ etk_list_viewer.c   5 Sep 2006 08:10:11 -0000       1.72
@@ -22,7 +22,6 @@
   Etk_Tree_Col* tree_col1;
   Etk_Widget* parent_visual; 
 
-  Ecore_Hash* etk_list_viewer_row_hash;
   Ecore_Hash* gui_hash;
 
   Ecore_List *gui_events;
@@ -235,7 +234,7 @@
    Etk_Tree *tree;
    const char **types;
    unsigned int num_types;
-   Etk_Drag *drag;
+   Etk_Widget *drag;
    Etk_Widget *image;
    entropy_gui_component_instance* instance;
    entropy_etk_file_list_viewer* viewer;
@@ -319,8 +318,8 @@
 
    printf("Drag buffer: %s\n", buffer);
    
-   etk_drag_types_set(drag, types, num_types);
-   etk_drag_data_set(drag, buffer, strlen(buffer)+1);
+   etk_drag_types_set(ETK_DRAG(drag), types, num_types);
+   etk_drag_data_set(ETK_DRAG(drag), buffer, strlen(buffer)+1);
 
 
 



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to