Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/ibar


Modified Files:
        e_mod_main.c e_mod_main.h 


Log Message:
Start xdnd integration.
shutdown dnd subsytem after modules.
Cleanup drop handlers on module shutdown.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/ibar/e_mod_main.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -3 -r1.58 -r1.59
--- e_mod_main.c        10 Jun 2005 16:01:00 -0000      1.58
+++ e_mod_main.c        10 Jun 2005 21:26:50 -0000      1.59
@@ -3,7 +3,6 @@
  */
 #include "e.h"
 #include "e_mod_main.h"
-#include <math.h>
 
 /* TODO List:
  *
@@ -72,7 +71,8 @@
 static void    _ibar_bar_cb_enter(void *data, const char *type, void *event);
 static void    _ibar_bar_cb_move(void *data, const char *type, void *event);
 static void    _ibar_bar_cb_leave(void *data, const char *type, void *event);
-static void    _ibar_bar_cb_drop(void *data, const char *type, void *event);
+static void    _ibar_bar_cb_drop_eapp(void *data, const char *type, void 
*event);
+static void    _ibar_bar_cb_drop_file(void *data, const char *type, void 
*event);
 static void    _ibar_bar_cb_finished(E_Drag *drag, int dropped);
 
 static void    _ibar_icon_cb_intercept_move(void *data, Evas_Object *o, 
Evas_Coord x, Evas_Coord y);
@@ -500,13 +500,20 @@
    ibb->icon_inset.b = 100 - (y + h);
    evas_object_del(o);
 
-   ibb->drop_handler = e_drop_handler_add(ibb,
-                                         _ibar_bar_cb_enter, _ibar_bar_cb_move,
-                                         _ibar_bar_cb_leave, _ibar_bar_cb_drop,
-                                         "enlightenment/eapp",
-                                         ibb->x + ibb->bar_inset.l, ibb->y + 
ibb->bar_inset.t,
-                                         ibb->w - (ibb->bar_inset.l + 
ibb->bar_inset.r),
-                                         ibb->h - (ibb->bar_inset.t + 
ibb->bar_inset.b));
+   ibb->drop_eapp = e_drop_handler_add(ibb,
+                                      _ibar_bar_cb_enter, _ibar_bar_cb_move,
+                                      _ibar_bar_cb_leave, 
_ibar_bar_cb_drop_eapp,
+                                      "enlightenment/eapp",
+                                      ibb->x + ibb->bar_inset.l, ibb->y + 
ibb->bar_inset.t,
+                                      ibb->w - (ibb->bar_inset.l + 
ibb->bar_inset.r),
+                                      ibb->h - (ibb->bar_inset.t + 
ibb->bar_inset.b));
+   ibb->drop_file = e_drop_handler_add(ibb,
+                                      _ibar_bar_cb_enter, _ibar_bar_cb_move,
+                                      _ibar_bar_cb_leave, 
_ibar_bar_cb_drop_file,
+                                      "enlightenment/x-file",
+                                      ibb->x + ibb->bar_inset.l, ibb->y + 
ibb->bar_inset.t,
+                                      ibb->w - (ibb->bar_inset.l + 
ibb->bar_inset.r),
+                                      ibb->h - (ibb->bar_inset.t + 
ibb->bar_inset.b));
 
    ibb->gmc = e_gadman_client_new(ibb->con->gadman);
    e_gadman_client_domain_set(ibb->gmc, "module.ibar", bar_count++);
@@ -547,6 +554,9 @@
    while (ibb->icons)
      _ibar_icon_free(ibb->icons->data);
 
+   e_drop_handler_del(ibb->drop_eapp);
+   e_drop_handler_del(ibb->drop_file);
+
    if (ibb->timer) ecore_timer_del(ibb->timer);
    if (ibb->animator) ecore_animator_del(ibb->animator);
    evas_object_del(ibb->bar_object);
@@ -1542,7 +1552,7 @@
 }
 
 static void
-_ibar_bar_cb_drop(void *data, const char *type, void *event)
+_ibar_bar_cb_drop_eapp(void *data, const char *type, void *event)
 {
    E_Event_Dnd_Drop *ev;
    E_App *app;
@@ -1577,6 +1587,41 @@
 }
 
 static void
+_ibar_bar_cb_drop_file(void *data, const char *type, void *event)
+{
+   E_Event_Dnd_Drop *ev;
+   IBar_Bar *ibb;
+   IBar_Icon *ic;
+   Evas_List *l;
+
+   ev = event;
+   ibb = data;
+   l = ev->data;
+
+   /* add dropped element */
+   ic = _ibar_icon_pos_find(ibb, ev->x, ev->y);
+
+   /* remove drag marker */
+   e_box_freeze(ibb->box_object);
+   e_box_unpack(ibb->drag_object);
+   evas_object_del(ibb->drag_object);
+   e_box_thaw(ibb->box_object);
+
+   _ibar_bar_frame_resize(ibb);
+
+   if (ic)
+     {
+       /* Add new eapp before this icon */
+       e_app_files_prepend_relative(l, ic->app);
+     }
+   else
+     {
+       /* Add at the end */
+       e_app_files_append(l, ibb->ibar->apps);
+     }
+}
+
+static void
 _ibar_bar_cb_finished(E_Drag *drag, int dropped)
 {
    /* Unref the object so it will be deleted. */
@@ -1606,7 +1651,11 @@
         _ibar_bar_follower_reset(ibb);
         _ibar_bar_timer_handle(ibb);
 
-        e_drop_handler_geometry_set(ibb->drop_handler,
+        e_drop_handler_geometry_set(ibb->drop_eapp,
+                                    ibb->x + ibb->bar_inset.l, ibb->y + 
ibb->bar_inset.t,
+                                    ibb->w - (ibb->bar_inset.l + 
ibb->bar_inset.r),
+                                    ibb->h - (ibb->bar_inset.t + 
ibb->bar_inset.b));
+        e_drop_handler_geometry_set(ibb->drop_file,
                                     ibb->x + ibb->bar_inset.l, ibb->y + 
ibb->bar_inset.t,
                                     ibb->w - (ibb->bar_inset.l + 
ibb->bar_inset.r),
                                     ibb->h - (ibb->bar_inset.t + 
ibb->bar_inset.b));
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/ibar/e_mod_main.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- e_mod_main.h        8 Jun 2005 13:08:44 -0000       1.16
+++ e_mod_main.h        10 Jun 2005 21:26:50 -0000      1.17
@@ -71,7 +71,8 @@
 
    Config_Bar     *conf;
 
-   E_Drop_Handler *drop_handler;
+   E_Drop_Handler *drop_eapp;
+   E_Drop_Handler *drop_file;
 };
 
 struct _IBar_Icon




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.  
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to