Enlightenment CVS committal

Author  : handyande
Project : misc
Module  : engage

Dir     : misc/engage/src/module


Modified Files:
        e_mod_main.c 


Log Message:
update from  Florian Zähring - hide / show keep icon and remove icon as 
neccessary
===================================================================
RCS file: /cvsroot/enlightenment/misc/engage/src/module/e_mod_main.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -3 -r1.69 -r1.70
--- e_mod_main.c        19 Oct 2005 04:26:30 -0000      1.69
+++ e_mod_main.c        29 Nov 2005 22:36:13 -0000      1.70
@@ -59,7 +59,7 @@
 
 static Engage_Bar *_engage_bar_new(Engage *e, E_Container *con);
 static void    _engage_bar_free(Engage_Bar *eb);
-static void    _engage_bar_menu_new(Engage_Bar *eb);
+static void    _engage_bar_menu_gen(Engage_Bar *eb);
 static void    _engage_bar_enable(Engage_Bar *eb);
 static void    _engage_bar_disable(Engage_Bar *eb);
 void           _engage_bar_frame_resize(Engage_Bar *eb);
@@ -83,7 +83,7 @@
 
 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);
+//static void    _engage_bar_cb_mouse_down(void *data, Evas *e, Evas_Object 
*obj, void *event_info);
 static void    _engage_bar_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, 
void *event_info);
 static void    _engage_bar_cb_mouse_move(void *data, Evas *e, Evas_Object 
*obj, void *event_info);
 
@@ -320,7 +320,7 @@
                  E_CONFIG_LIMIT(eb->conf->tray, 0, 1);
                  _engage_bar_iconsize_change(eb);
                  /* Menu */
-                 _engage_bar_menu_new(eb);
+                 _engage_bar_menu_gen(eb);
 
                  /*add tray*/
                  if (eb->conf->tray)
@@ -605,7 +605,7 @@
    evas_object_color_set(o, 0, 0, 0, 0);
    evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN,  
_engage_bar_cb_mouse_in,  eb);
    evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_OUT, 
_engage_bar_cb_mouse_out, eb);
-   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, 
_engage_bar_cb_mouse_down, eb);
+   //evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, 
_engage_bar_cb_mouse_down, eb);
    evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, 
_engage_bar_cb_mouse_up, eb);
    evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, 
_engage_bar_cb_mouse_move, eb);
    evas_object_show(o);
@@ -747,7 +747,7 @@
 }
 
 static void
-_engage_bar_menu_new(Engage_Bar *eb)
+_engage_bar_menu_gen(Engage_Bar *eb)
 {
    E_Menu *mn;
    E_Menu_Item *mi;
@@ -775,17 +775,42 @@
    mn = e_menu_new();
    eb->icon_menu = mn;
    
+   //check if selected_ic is in .order
+   
+   int indotorder = 0;
+   if (eb->engage->apps && eb->selected_ic)
+     {
+       Evas_List *ll;
+       for (ll = eb->engage->apps->subapps; ll; ll = ll->next)
+         {
+            E_App *a;
+            Engage_Icon *ic;
+
+            a = ll->data;
+            if (eb->selected_ic->app == a)
+              {
+                 indotorder = 1;
+                 break;
+              }
+         }
+     }
+   
    mi = e_menu_item_new(mn);
    e_menu_item_label_set(mi, "Edit Icon");
    e_menu_item_callback_set(mi, _engage_bar_cb_menu_edit_icon, eb);
    
-   mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, "Keep Icon");
-   e_menu_item_callback_set(mi, _engage_bar_cb_menu_keep_icon, eb);
-   
-   mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, "Remove Icon");
-   e_menu_item_callback_set(mi, _engage_bar_cb_menu_remove_icon, eb);
+   if (!indotorder)
+     {
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, "Keep Icon");
+       e_menu_item_callback_set(mi, _engage_bar_cb_menu_keep_icon, eb);
+     }
+   else
+     {
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, "Remove Icon");
+       e_menu_item_callback_set(mi, _engage_bar_cb_menu_remove_icon, eb);
+     }
 
    mn = e_menu_new();
    eb->menu = mn;
@@ -822,6 +847,8 @@
    mi = e_menu_item_new(mn);
    e_menu_item_label_set(mi, "Icon Options");
    e_menu_item_submenu_set(mi, eb->icon_menu);
+   if (eb->selected_ic)
+     e_menu_item_icon_edje_set(mi, eb->selected_ic->app->path, "icon");
    
    mi = e_menu_item_new(mn); 
    e_menu_item_separator_set(mi, 1);
@@ -2054,6 +2081,14 @@
        //set selected icon so we can access it
        //with the context menu
        ic->eb->selected_ic = ic;
+
+       //I just dont like this:
+       //generating the menu on the icon and not eb itself
+       _engage_bar_menu_gen(ic->eb);
+       e_menu_activate_mouse(ic->eb->menu, e_zone_current_get(ic->eb->con),
+                             ev->output.x, ev->output.y, 1, 1,
+                             E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
+       e_util_container_fake_mouse_up_all_later(ic->eb->con);
      }
 }
 
@@ -2253,7 +2288,7 @@
    return 1;
 }
 
-
+/*
 static void
 _engage_bar_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void 
*event_info)
 {
@@ -2270,6 +2305,7 @@
        e_util_container_fake_mouse_up_all_later(eb->con);
      }
 }
+*/
 
 static void
 _engage_bar_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void 
*event_info)




-------------------------------------------------------
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