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: Border drop on ibar (From Sébastien HOUZE). =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/ibar/e_mod_main.c,v retrieving revision 1.64 retrieving revision 1.65 diff -u -3 -r1.64 -r1.65 --- e_mod_main.c 25 Jul 2005 09:55:45 -0000 1.64 +++ e_mod_main.c 26 Jul 2005 11:03:35 -0000 1.65 @@ -71,7 +71,9 @@ 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_eapp(void *data, const char *type, void *event); +static void _ibar_bar_cb_drop_border(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); @@ -516,6 +518,13 @@ 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_border = e_drop_handler_add(ibb, + _ibar_bar_cb_enter, _ibar_bar_cb_move, + _ibar_bar_cb_leave, _ibar_bar_cb_drop_border, + "enlightenment/border", + 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, @@ -564,6 +573,7 @@ _ibar_icon_free(ibb->icons->data); e_drop_handler_del(ibb->drop_eapp); + e_drop_handler_del(ibb->drop_border); e_drop_handler_del(ibb->drop_file); if (ibb->timer) ecore_timer_del(ibb->timer); @@ -1608,6 +1618,52 @@ ev = event; ibb = data; app = 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); + ibb->drag_object = NULL; + evas_object_del(ibb->drag_object_overlay); + ibb->drag_object_overlay = NULL; + e_box_thaw(ibb->box_object); + + _ibar_bar_frame_resize(ibb); + + if (ic) + { + /* Add new eapp before this icon */ + e_app_prepend_relative(app, ic->app); + } + else + { + /* Add at the end */ + e_app_append(app, ibb->ibar->apps); + } +} + +static void +_ibar_bar_cb_drop_border(void *data, const char *type, void *event) +{ + E_Event_Dnd_Drop *ev; + E_App *app; + IBar_Bar *ibb; + IBar_Icon *ic; + + E_Border *bd; + char *title = ""; + + ev = event; + ibb = data; + bd = ev->data; + if (bd->client.netwm.name) title = bd->client.netwm.name; + else title = bd->client.icccm.title; + app = e_app_window_name_class_title_role_find(bd->client.icccm.name, + bd->client.icccm.class, + title, bd->client.icccm.window_role); /* add dropped element */ ic = _ibar_icon_pos_find(ibb, ev->x, ev->y); @@ -1709,6 +1765,10 @@ 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_border, + 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), =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/ibar/e_mod_main.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- e_mod_main.h 18 Jun 2005 00:10:31 -0000 1.19 +++ e_mod_main.h 26 Jul 2005 11:03:36 -0000 1.20 @@ -74,6 +74,7 @@ Config_Bar *conf; E_Drop_Handler *drop_eapp; + E_Drop_Handler *drop_border; E_Drop_Handler *drop_file; }; ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs