Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_fileman_smart.c 


Log Message:
Rubberband can do real selections now. Still need to add support for
rubberband + control.


===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- e_fileman_smart.c   10 Oct 2005 20:49:26 -0000      1.13
+++ e_fileman_smart.c   10 Oct 2005 22:06:20 -0000      1.14
@@ -73,7 +73,6 @@
    } prop;
 
    struct {
-       unsigned char clicked : 1;
        unsigned char selected : 1;
    } state;
 
@@ -977,7 +976,6 @@
        if (!file) continue;
        edje_object_signal_emit(file->icon, "unclicked", "");
        edje_object_signal_emit(file->icon_img, "unclicked", "");
-       file->state.clicked = 0;
        file->state.selected = 0;
      }
    sd->selection.files = evas_list_free(sd->selection.files);
@@ -993,7 +991,7 @@
    edje_object_signal_emit(file->icon, "clicked", "");
    edje_object_signal_emit(file->icon_img, "clicked", "");
    file->sd->selection.current_file = file;
-   file->state.clicked = 1;
+   file->state.selected = 1;
    file->sd->selection.files = evas_list_append(file->sd->selection.files, 
file);
 }
 
@@ -1001,16 +999,26 @@
 _e_fm_selections_add_rect(E_Fileman_Smart_Data *sd, Evas_Coord x, Evas_Coord 
y, Evas_Coord w, Evas_Coord h)
 {
    Evas_List *l;
-
+      
    for (l = sd->files; l; l = l->next)
      {
        E_Fileman_File *file;
-       Evas_Coord x, y, w, h;
+       Evas_Coord xx, yy, ww, hh;
 
        file = l->data;
        if (!file) continue;
 
-       evas_object_geometry_get(file->icon, &x, &y, &w, &h);
+       evas_object_geometry_get(file->icon, &xx, &yy, &ww, &hh);
+       if(E_INTERSECTS(x, y, w, h, xx, yy, ww, hh))
+        {
+           if(!file->state.selected)
+            {
+               _e_fm_selections_add(file);
+            }
+        } else {
+           if(file->state.selected) // todo: add control+rubberband
+             _e_fm_selections_del(file);
+        }
      }
 }
 
@@ -1022,7 +1030,7 @@
 
    edje_object_signal_emit(file->icon, "unclicked", "");
    edje_object_signal_emit(file->icon_img, "unclicked", "");
-   file->state.clicked = 0;
+   file->state.selected = 0;
    file->sd->selection.files = evas_list_remove(file->sd->selection.files, 
file);
    file->sd->selection.current_file = evas_list_nth(file->sd->selection.files, 
0);
 }
@@ -1881,8 +1889,6 @@
      {
        Evas_Coord x, y, w, h;
 
-       printf("enabled!!\n");
-
        evas_object_geometry_get(sd->selection.band.obj, &x, &y, &w, &h);
 
        if ((ev->cur.canvas.x > sd->selection.band.x) &&
@@ -2129,7 +2135,7 @@
            file->sd->drag.file = file;
            printf("drag file: %s\n", file->dir_entry->d_name);
 
-           if (!file->state.clicked)
+           if (!file->state.selected)
              {
                 if 
(evas_key_modifier_is_set(evas_key_modifier_get(file->sd->evas), "Control"))
                   file->sd->selection.files =




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to