Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_shelf.c e_shelf.h 


Log Message:


start code on moving shelves... need to complete this with resizing too...
and do it all properly

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_shelf.c   2 Mar 2006 12:03:48 -0000       1.8
+++ e_shelf.c   26 Mar 2006 06:06:57 -0000      1.9
@@ -5,6 +5,10 @@
 
 static void _e_shelf_free(E_Shelf *es);
 static void _e_shelf_config_port(E_Config_Shelf_Config *cf1, 
E_Config_Shelf_Config *cf2);
+static void _e_shelf_cb_signal_all(void *data, Evas_Object *obj, const char 
*emission, const char *source);
+static void _e_shelf_cb_signal_move_start(void *data, Evas_Object *obj, const 
char *emission, const char *source);
+static void _e_shelf_cb_signal_move_go(void *data, Evas_Object *obj, const 
char *emission, const char *source);
+static void _e_shelf_cb_signal_move_stop(void *data, Evas_Object *obj, const 
char *emission, const char *source);
 
 static Evas_List *shelves = NULL;
 static int shelf_id = 0;
@@ -150,6 +154,16 @@
        evas_object_move(es->o_base, es->zone->x + es->x, es->zone->y + es->y);
        evas_object_layer_set(es->o_base, layer);
      }
+
+   edje_object_signal_callback_add(es->o_base, "*", "*",
+                                  _e_shelf_cb_signal_all, es);
+   edje_object_signal_callback_add(es->o_base, "mouse,down,1", "drag*",
+                                  _e_shelf_cb_signal_move_start, es);
+   edje_object_signal_callback_add(es->o_base, "mouse,move", "drag*",
+                                  _e_shelf_cb_signal_move_go, es);
+   edje_object_signal_callback_add(es->o_base, "mouse,up,1", "drag*", 
+                                  _e_shelf_cb_signal_move_stop, es);
+   
    
    snprintf(buf, sizeof(buf), "%i", shelf_id);
    shelf_id++;
@@ -402,4 +416,63 @@
    cf2->y = py[0];
    cf2->w = px[3] - px[0] + 1;
    cf2->h = py[3] = py[0] + 1;
+}
+
+static void
+_e_shelf_cb_signal_all(void *data, Evas_Object *obj, const char *emission, 
const char *source)
+{
+   E_Shelf *es;
+   
+   es = data;
+   printf("SIG: %s %s\n", emission, source);
+}
+
+static void
+_e_shelf_cb_signal_move_start(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Shelf *es;
+   
+   es = data;
+   printf("MV start\n");
+   es->moveresize.pos.x = es->x;
+   es->moveresize.pos.y = es->y;
+   es->moveresize.move = 1;
+   ecore_x_pointer_last_xy_get(&(es->moveresize.x), &(es->moveresize.y));
+}
+
+static void
+_e_shelf_cb_signal_move_go(void *data, Evas_Object *obj, const char *emission, 
const char *source)
+{
+   E_Shelf *es;
+   int x, y;
+   
+   es = data;
+   if (es->moveresize.move)
+     {
+       int x, y, nx, ny, nw, nh;
+       
+       printf("MV go\n");
+       ecore_x_pointer_last_xy_get(&x, &y);
+       nx = x = es->moveresize.pos.x + (x - es->moveresize.x);
+       ny = y = es->moveresize.pos.y + (y - es->moveresize.y);
+       e_resist_container_border_position(es->zone->container,
+                                          NULL,
+                                          es->x, es->y, es->w, es->h,
+                                          x, y, es->w, es->h,
+                                          &nx, &ny, &nw, &nh);
+       e_shelf_move(es, nx, ny);
+     }
+}
+
+static void
+_e_shelf_cb_signal_move_stop(void *data, Evas_Object *obj, const char 
*emission, const char *source)
+{
+   E_Shelf *es;
+   
+   es = data;
+   if (es->moveresize.move)
+     {
+       printf("MV stop\n");
+       es->moveresize.move = 0;
+     }
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_shelf.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_shelf.h   2 Mar 2006 12:03:48 -0000       1.6
+++ e_shelf.h   26 Mar 2006 06:06:57 -0000      1.7
@@ -25,6 +25,14 @@
    const char          *name;
    const char          *style;
    E_Config_Shelf      *cfg;
+   struct {
+      int               x, y;
+      struct {
+        int            x, y;
+      } pos;
+      int               move;
+      int               resize;
+   } moveresize;
 };
 
 EAPI int              e_shelf_init(void);




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to