Enlightenment CVS committal

Author  : handyande
Project : misc
Module  : engage

Dir     : misc/engage/src/module


Modified Files:
        e_mod_main.c tray.c 


Log Message:
OK - that looks like it could be the engage layout stuff fixed - woo hoo :) 
enbled / disabled system tray embeds correctly now
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/module/e_mod_main.c,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -3 -r1.75 -r1.76
--- e_mod_main.c        5 Dec 2005 22:30:32 -0000       1.75
+++ e_mod_main.c        6 Dec 2005 00:16:09 -0000       1.76
@@ -323,16 +323,10 @@
                  _engage_bar_menu_gen(eb);
 
                  /*add tray*/
-                 if (eb->conf->tray)
-                   {
-                      _engage_tray_init(eb);
-
-                      edje_object_part_swallow(eb->bar_object, "tray", 
eb->tray->tray);
-                   }
+                 _engage_tray_init(eb);
+                 edje_object_part_swallow(eb->bar_object, "tray", 
eb->tray->tray);
 
-                
                  /* Add main menu to bar menu */
-
                  mi = e_menu_item_new(e->config_menu);
                  e_menu_item_label_set(mi, con->name);
                  e_menu_item_submenu_set(mi, eb->menu);
@@ -735,11 +729,8 @@
    evas_object_del(eb->box_object);
    evas_object_del(eb->event_object);
         
-   if (eb->tray)
-     {
-       _engage_tray_shutdown(eb);
-       eb->tray = NULL;
-     }
+   _engage_tray_shutdown(eb);
+   eb->tray = NULL;
 
    e_gadman_client_save(eb->gmc);
    e_object_del(E_OBJECT(eb->gmc));
@@ -894,8 +885,7 @@
    evas_object_show(eb->bar_object);
    evas_object_show(eb->box_object);
    evas_object_show(eb->event_object);
-   if (eb->tray)
-     evas_object_show(eb->tray->tray);
+   evas_object_show(eb->tray->tray);
    e_config_save_queue();
 }
 
@@ -906,8 +896,7 @@
    evas_object_hide(eb->bar_object);
    evas_object_hide(eb->box_object);
    evas_object_hide(eb->event_object);
-   if (eb->tray)
-     evas_object_hide(eb->tray->tray);
+   evas_object_hide(eb->tray->tray);
    e_config_save_queue();
 }
 
@@ -1479,7 +1468,7 @@
 void
 _engage_bar_frame_resize(Engage_Bar *eb)
 {
-   Evas_Coord x, y, w, h;
+   Evas_Coord w, h;
    /* Not finished loading config yet! */
    if ((eb->x == -1)
        || (eb->y == -1)
@@ -1499,11 +1488,8 @@
    edje_object_part_swallow(eb->bar_object, "items", eb->box_object);
 
    edje_object_size_min_calc(eb->bar_object, &w, &h);
-   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_move(eb->event_object, x, y);
    e_box_thaw(eb->box_object);
    evas_event_thaw(eb->evas);
 }
@@ -2434,18 +2420,8 @@
 
    eb = data;
    eb->conf->tray = e_menu_item_toggle_get(mi);
-   if (eb->conf->tray)
-     {
-       _engage_tray_init(eb);
-       edje_object_part_swallow(eb->bar_object, "tray", eb->tray->tray);
-     }
-   else
-     {
-       edje_object_part_unswallow(eb->bar_object, eb->tray->tray);
-       _engage_tray_shutdown(eb);
-       eb->tray = NULL;
-       _engage_bar_frame_resize(eb);
-     }
+   _engage_tray_active_set(eb, eb->conf->tray);
+   _engage_bar_frame_resize(eb);
    e_config_save_queue();
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/module/tray.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- tray.c      5 Dec 2005 22:30:32 -0000       1.10
+++ tray.c      6 Dec 2005 00:16:09 -0000       1.11
@@ -13,7 +13,7 @@
 #define XEMBED_EMBEDDED_NOTIFY      0
 
 static int     _engage_tray_cb_msg(void *data, int type, void *event);
-static void    _engage_tray_active_set();
+void           _engage_tray_active_set();
 
 static void    _engage_tray_cb_move(void *data, Evas_Object *o, Evas_Coord x, 
Evas_Coord y);
 static void    _engage_tray_cb_resize(void *data, Evas_Object *o, Evas_Coord 
w, Evas_Coord h);
@@ -24,8 +24,6 @@
 void
 _engage_tray_init(Engage_Bar *eb)
 {
-   Evas_Coord x, y, w, h;
-
    /* FIXME - temp */
    eb->tray = malloc(sizeof(Engage_Tray));
    eb->tray->icons = 0;
@@ -35,21 +33,18 @@
 
    eb->tray->tray = evas_object_rectangle_add(eb->evas);
 
+   eb->tray->msg_handler = NULL;
+   eb->tray->dst_handler = NULL;
+   eb->tray->win = NULL;
+
    evas_object_resize(eb->tray->tray, eb->tray->w, eb->tray->h);
    evas_object_color_set(eb->tray->tray, 180, 0, 0, 255);
    evas_object_show(eb->tray->tray);
    evas_object_intercept_move_callback_add(eb->tray->tray, 
_engage_tray_cb_move, eb);
    evas_object_intercept_resize_callback_add(eb->tray->tray, 
_engage_tray_cb_resize, eb);
 
-   _engage_tray_active_set(eb, 1);
+   _engage_tray_active_set(eb, eb->conf->tray);
 
-   evas_object_geometry_get(eb->tray->tray, &x, &y, &w, &h);
-   eb->tray->win = ecore_x_window_new(eb->con->bg_win, x, y, w, h);
-   ecore_x_window_container_manage(eb->tray->win);
-   ecore_x_window_background_color_set(eb->tray->win, 0xcccc, 0xcccc, 0xcccc);
-  
-   eb->tray->msg_handler = 
ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _engage_tray_cb_msg, eb);
-   eb->tray->dst_handler = 
ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DESTROY, _engage_tray_cb_msg, eb);
 }
 
 void
@@ -59,13 +54,10 @@
 
    evas_list_free(eb->tray->wins);
    evas_object_del(eb->tray->tray);
-
-   ecore_event_handler_del(eb->tray->msg_handler);
-   ecore_event_handler_del(eb->tray->dst_handler);
-   ecore_x_window_del(eb->tray->win);
+   free(eb->tray);
 }
 
-static void
+void
 _engage_tray_active_set(Engage_Bar *eb, int active)
 {
    Ecore_X_Window win;
@@ -73,6 +65,7 @@
    Window root;
    char buf[32];
    Atom selection_atom;
+   Evas_Coord x, y, w, h;
 
    win = 0;
    if (active)
@@ -93,12 +86,32 @@
        ecore_x_client_message32_send(root, ecore_x_atom_get("MANAGER"),
                                      ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
                                      CurrentTime, selection_atom, win, 0, 0);
+
+       evas_object_geometry_get(eb->tray->tray, &x, &y, &w, &h);
+       eb->tray->win = ecore_x_window_new(eb->con->bg_win, x, y, w, h);
+       ecore_x_window_container_manage(eb->tray->win);
+       ecore_x_window_background_color_set(eb->tray->win, 0xcccc, 0xcccc, 
0xcccc);
+
+       eb->tray->msg_handler = 
ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _engage_tray_cb_msg, eb);
+       eb->tray->dst_handler = 
ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DESTROY, _engage_tray_cb_msg, eb);
+     }
+   else
+     {
+       if (eb->tray->msg_handler)
+         ecore_event_handler_del(eb->tray->msg_handler);
+       if (eb->tray->dst_handler)
+         ecore_event_handler_del(eb->tray->dst_handler);
+       if (eb->tray->win)
+         ecore_x_window_del(eb->tray->win);
      }
 }
 
 static void
 _engage_tray_add(Engage_Bar *eb, Ecore_X_Window win) {
 
+  if (!eb->conf->tray)
+    return;
+
   if (evas_list_find(eb->tray->wins, (void *)win))
     return;
   ecore_x_window_show(eb->tray->win);
@@ -119,6 +132,9 @@
 static void
 _engage_tray_remove(Engage_Bar *eb, Ecore_X_Window win) {
 
+  if (!eb->conf->tray)
+    return;
+
   if (!win)
     return;
   if (!evas_list_find(eb->tray->wins, (void *)win)) /* if was not found */
@@ -138,6 +154,9 @@
   Ecore_X_Event_Client_Message *ev;
   Ecore_X_Event_Window_Destroy *dst;
   Engage_Bar *eb;
+
+  if (!eb->conf->tray)
+    return 1;
   
   eb = data;
   if (type == ECORE_X_EVENT_CLIENT_MESSAGE) {
@@ -169,7 +188,8 @@
 
    eb = data;
    evas_object_move(o, x, y);
-   ecore_x_window_move(eb->tray->win, (int) x, (int) y);
+   if (eb->conf->tray)
+     ecore_x_window_move(eb->tray->win, (int) x, (int) y);
 }
 
 static void
@@ -191,12 +211,34 @@
    Evas_List *wins;
    E_Gadman_Edge edge;
 
-   if (!eb->gmc)
-     return;
-   if (!eb->tray)
+   if (!eb->gmc || !eb->conf)
      return;
 
-   edge = e_gadman_client_edge_get(eb->gmc); 
+   edge = e_gadman_client_edge_get(eb->gmc);
+   if (!eb->conf->tray)
+     {
+       int w, h;
+
+       if (edge == E_GADMAN_EDGE_BOTTOM || edge == E_GADMAN_EDGE_TOP)
+         {
+            w = 0;
+            h = eb->engage->conf->iconsize;
+         }
+       else
+         {
+            w = eb->engage->conf->iconsize;
+            h = 0;
+         }
+       edje_object_part_unswallow(eb->bar_object, eb->tray->tray);
+       evas_object_resize(eb->tray->tray, w, h);
+       ecore_x_window_resize(eb->tray->win, (int) w, (int) h);
+
+       edje_extern_object_min_size_set(eb->tray->tray, w, h);
+       edje_extern_object_max_size_set(eb->tray->tray, w, h);
+       edje_object_part_swallow(eb->bar_object, "tray", eb->tray->tray);
+       return;
+     }
+
    h = eb->engage->conf->iconsize;
    if (h < 24)
      h = 24;




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to