Enlightenment CVS committal

Author  : lordchaos
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_iconbox.c ewl_iconbox.h 


Log Message:
Add multiple-rubberband/click selections using CTRL key


===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -3 -r1.60 -r1.61
--- ewl_iconbox.c       29 Oct 2005 07:53:44 -0000      1.60
+++ ewl_iconbox.c       30 Oct 2005 01:35:15 -0000      1.61
@@ -545,12 +545,12 @@
 
 
 
-void ewl_iconbox_icon_select(Ewl_IconBox_Icon* ib, int loc) /* Loc 0= image, 
1= label */
+void ewl_iconbox_icon_select(Ewl_IconBox_Icon* ib, int loc, int deselect) /* 
Loc 0= image, 1= label */
 {
        
        int sel = ib->selected;
 
-       if (!ib->icon_box_parent->drag_box) {
+       if ((!ib->icon_box_parent->drag_box) && deselect) {
                Ewl_IconBox_Icon* list_item;
                
ecore_list_goto_first(ib->icon_box_parent->ewl_iconbox_icon_list);
                while((list_item = 
(Ewl_IconBox_Icon*)ecore_list_next(ib->icon_box_parent->ewl_iconbox_icon_list)) 
!= NULL) {
@@ -891,8 +891,8 @@
                                iy = 
ewl_object_current_y_get(EWL_OBJECT(list_item));
                                
                                if (ix >= lx && iy >= ly && ix <= hx && iy <= 
hy) {
-                                       
ewl_iconbox_icon_select(EWL_ICONBOX_ICON(list_item),0);
-                               } else if (list_item->selected) {
+                                       
ewl_iconbox_icon_select(EWL_ICONBOX_ICON(list_item),0,0);
+                               } else if (list_item->selected && 
!(ev->modifiers == EWL_KEY_MODIFIER_CTRL)) {
                                        
ewl_iconbox_icon_deselect(EWL_ICONBOX_ICON(list_item));
                                }
                        }
@@ -996,7 +996,11 @@
        ib->icon_box_parent->ydown = ev->y;
 
        /* Set this to selected */
-       ewl_iconbox_icon_select(ib,0);
+       if (ev->modifiers == EWL_KEY_MODIFIER_CTRL) {
+               ewl_iconbox_icon_select(ib,0,0);
+       } else {
+               ewl_iconbox_icon_select(ib,0,1);        
+       }
 
        ib->icon_box_parent->select_icon = ib; /*We rely on this being the 
first callback - so
                                                 client*/
@@ -1060,7 +1064,7 @@
        Ewl_IconBox_Icon* ib = user_data;
 
        /* Set this to selected */
-       ewl_iconbox_icon_select(ib,1);
+       ewl_iconbox_icon_select(ib,1, 1);
 }
 
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- ewl_iconbox.h       23 Oct 2005 09:58:12 -0000      1.20
+++ ewl_iconbox.h       30 Oct 2005 01:35:15 -0000      1.21
@@ -146,7 +146,7 @@
 
 
 /* Internal functions */
-void ewl_iconbox_icon_select(Ewl_IconBox_Icon* ib, int loc);
+void ewl_iconbox_icon_select(Ewl_IconBox_Icon* ib, int loc, int deselect);
 void ewl_iconbox_icon_deselect(Ewl_IconBox_Icon *ib);
 void ewl_iconbox_label_edit_key_down(Ewl_Widget *w, void *ev_data, void* 
user_data);
 void ewl_iconbox_inner_pane_calculate(Ewl_IconBox* ib);




-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.
Get Certified Today * Register for a JBoss Training Course
Free Certification Exam for All Training Attendees Through End of 2005
Visit http://www.jboss.com/services/certification for more information
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to