Enlightenment CVS committal Author : handyande Project : misc Module : engage
Dir : misc/engage/src/module Modified Files: Makefile.am e_mod_main.c e_mod_main.h Added Files: tray.c Log Message: OK, trying to get some tray stuff in, please can someone tell me why I am not getting the CLIENT_MESSAGEs that I used to get??? I guess it is to do with the: ecore_x_client_message32_send(root, ecore_x_atom_get("MANAGER"), ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, CurrentTime , selection_atom, eb->con->win, 0, 0); but that is just a guess THANKS :) =================================================================== RCS file: /cvsroot/enlightenment/misc/engage/src/module/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Makefile.am 30 Mar 2005 18:40:31 -0000 1.3 +++ Makefile.am 11 Jun 2005 23:57:16 -0000 1.4 @@ -16,6 +16,7 @@ pkgdir = @e_modules@/engage/$(MODULE_ARCH) pkg_LTLIBRARIES = module.la module_la_SOURCES = e_mod_main.c \ + tray.c \ e_mod_main.h module_la_LIBADD = @e_libs@ -lm module_la_LDFLAGS = -module -avoid-version =================================================================== RCS file: /cvsroot/enlightenment/misc/engage/src/module/e_mod_main.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -3 -r1.52 -r1.53 --- e_mod_main.c 11 Jun 2005 20:27:40 -0000 1.52 +++ e_mod_main.c 11 Jun 2005 23:57:16 -0000 1.53 @@ -8,6 +8,7 @@ #include "config.h" + /* TODO List: * * immediate fixes needed: @@ -16,13 +17,8 @@ * * * pick up apps on enable (startup OK, disable then enable not) * * When a window gets focus move the selected_app pointer - * * zoom and unzoom (eb->zoom from 1.0 to conf->zoom_factor) on timer * * bounce icons on click ( following e_app exec hints? ) * - * * maybe add system tray - * - * * Fix menu - * * * description bubbles/tooltips for icons * * app subdirs - need to somehow handle these... * * use overlay object and repeat events for doing auto hide/show @@ -84,6 +80,7 @@ static void _engage_bar_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change change); static void _engage_bar_cb_intercept_move(void *data, Evas_Object *o, Evas_Coord x, Evas_Coord y); static void _engage_bar_cb_intercept_resize(void *data, Evas_Object *o, Evas_Coord w, Evas_Coord h); + static void _engage_bar_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _engage_bar_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _engage_bar_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); @@ -128,6 +125,10 @@ static void _engage_bar_cb_menu_context_change(void *data, E_Menu *m, E_Menu_Item *mi); +extern void _engage_tray_init(Engage_Bar *eb); +extern void _engage_tray_shutdown(Engage_Bar *eb); + + static int _engage_zoom_in_slave(void *data); static int _engage_zoom_out_slave(void *data); @@ -520,6 +521,19 @@ e_object_ref(E_OBJECT(con)); eb->evas = con->bg_evas; + o = e_box_add(eb->evas); + eb->box_object = o; + + _engage_tray_init(eb); + + e_box_pack_end(eb->box_object, eb->tray->tray); + e_box_pack_options_set(o, + 1, 1, /* fill */ + 0, 0, /* expand */ + 0.5, 0.5, /* align */ + eb->tray->w, eb->tray->h, /* min */ + eb->tray->w, eb->tray->h /* max */ + ); eb->contexts = NULL; eb->x = eb->y = eb->w = eb->h = -1; @@ -545,8 +559,8 @@ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _engage_bar_cb_mouse_move, eb); evas_object_show(o); - o = e_box_add(eb->evas); - eb->box_object = o; + o = eb->box_object; + evas_object_intercept_move_callback_add(o, _engage_bar_cb_intercept_move, eb); evas_object_intercept_resize_callback_add(o, _engage_bar_cb_intercept_resize, eb); e_box_freeze(o); @@ -657,6 +671,7 @@ evas_object_del(eb->bar_object); evas_object_del(eb->box_object); evas_object_del(eb->event_object); + _engage_tray_shutdown(eb); e_gadman_client_save(eb->gmc); e_object_del(E_OBJECT(eb->gmc)); @@ -771,6 +786,7 @@ evas_object_show(eb->bar_object); evas_object_show(eb->box_object); evas_object_show(eb->event_object); + evas_object_show(eb->tray->tray); e_config_save_queue(); } @@ -781,6 +797,7 @@ evas_object_hide(eb->bar_object); evas_object_hide(eb->box_object); evas_object_hide(eb->event_object); + evas_object_hide(eb->tray->tray); e_config_save_queue(); } @@ -838,7 +855,7 @@ evas_object_raise(ic->event_object); - e_box_pack_end(eb->box_object, ic->bg_object); + e_box_pack_before(eb->box_object, ic->bg_object, eb->tray->tray); e_box_pack_options_set(ic->bg_object, 1, 1, /* fill */ 0, 0, /* expand */ @@ -1298,7 +1315,7 @@ else { ic->eb->icons = evas_list_append(ic->eb->icons, ic); - e_box_pack_end(ic->eb->box_object, ic->bg_object); + e_box_pack_before(ic->eb->box_object, ic->bg_object, ic->eb->tray->tray); } edje_object_size_min_calc(ic->bg_object, &bw, &bh); e_box_pack_options_set(ic->bg_object, @@ -1329,7 +1346,7 @@ e_gadman_client_geometry_get(eb->gmc, &x, &y, NULL, NULL); e_gadman_client_resize(eb->gmc, w, h); - evas_object_resize(eb->event_object, w, h); + evas_object_resize(eb->event_object, w - eb->tray->w, h); evas_object_move(eb->event_object, x, y); e_box_thaw(eb->box_object); evas_event_thaw(eb->evas); @@ -1789,7 +1806,7 @@ eb = data; evas_object_resize(o, w, h); - evas_object_resize(eb->event_object, w, h); + evas_object_resize(eb->event_object, w - eb->tray->w, h); edje_extern_object_min_size_set(eb->box_object, w, h); if (eb->gmc) @@ -1984,20 +2001,20 @@ if (edge == E_GADMAN_EDGE_LEFT) { - evas_object_resize(eb->event_object, w * (multiplier + 1), h); + evas_object_resize(eb->event_object, w * (multiplier + 1), h - eb->tray->h); } else if (edge == E_GADMAN_EDGE_RIGHT) { - evas_object_resize(eb->event_object, w * (multiplier + 1), h); + evas_object_resize(eb->event_object, w * (multiplier + 1), h - eb->tray->h); evas_object_move(eb->event_object, x - w * multiplier, y); } else if (edge == E_GADMAN_EDGE_TOP) { - evas_object_resize(eb->event_object, w , h * (multiplier + 1)); + evas_object_resize(eb->event_object, w - eb->tray->w, h * (multiplier + 1)); } else { - evas_object_resize(eb->event_object, w , h * (multiplier + 1)); + evas_object_resize(eb->event_object, w - eb->tray->w, h * (multiplier + 1)); evas_object_move(eb->event_object, x, y - h * multiplier); } _engage_bar_motion_handle(eb, ev->canvas.x, ev->canvas.y); =================================================================== RCS file: /cvsroot/enlightenment/misc/engage/src/module/e_mod_main.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- e_mod_main.h 11 Jun 2005 20:27:42 -0000 1.12 +++ e_mod_main.h 11 Jun 2005 23:57:16 -0000 1.13 @@ -8,6 +8,7 @@ typedef struct _Config_Bar Config_Bar; typedef struct _Engage Engage; typedef struct _Engage_Bar Engage_Bar; +typedef struct _Engage_Tray Engage_Tray; typedef struct _Engage_Icon Engage_Icon; typedef struct _Engage_App_Icon Engage_App_Icon; @@ -40,6 +41,15 @@ Evas_Coord iconbordersize; }; +struct _Engage_Tray +{ + Evas_Object *tray; + int w, h; + int icons; + Evas_List *wins; + Ecore_X_Window tray_container; +}; + struct _Engage_Bar { Engage *engage; @@ -70,6 +80,8 @@ Ecore_Event_Handler *remove_handler; Ecore_Event_Handler *iconify_handler; Ecore_Event_Handler *uniconify_handler; + + Engage_Tray *tray; }; struct _Engage_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